第八章 应用系统.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:60 大小:6.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第八章 应用系统.ppt

第八章应用系统.ppt

预览

免费试读已结束,剩余 50 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第八章应用系统及接口技术主要内容系统组成、信号的输入与输出应用小系统设计实例开始人一机通道配置与接口技术程序:START:MOVP1,#0FFHMOVA,P1;读键JNBACC.0,POF;KO按下转移JNBACC.1,P1F;K1按下转移……JNBACC.7,P7F;K7按下转移SJMPSTART;无键,重新读键P0F:LJMPPROM0P1F:LJMPPROM1……P7F:LJMPPROM7PROM0:……LJMPSTART……PROM7:……LJMPSTART2.行列式键盘接口4×4键盘D0-D3:输出,列线D4-D7:输入,行线工作原理:⑴.有键闭合确认端口输出FOH(全扫描),D0-D3=0000B读入端口,判断D4-D7是否为1111B若无键闭合,重新全扫描若有键闭合,则调用延时子程(去抖动)第二次判断是否有键闭合。若仍有键闭合,则进入键识别,否则重新全扫描。⑵.键识别:逐列置低电平,读入行值,例:扫描左数第1列:D3-D0=0111B=7H读入行线值:若上数第一行有键按下则行值D7-D4=0111B=7H故第一列第一行键值为77H,同理第一列第二行键值为01111011B=7BH每一键对应于唯一的键值。*键值的数值排列离散,还需通过一定的算法求出键号(键号一般为连续排列),以利于后续的键处理。㈡.单片机键扫描控制方式1.程序控制键扫描⑴电路:4×8行列式键盘,利用8155PA、PC实现接口。列线:8155PA0-PA7(PA为基本I/O,输出)行线:8155PC0-PC3(PC为基本I/O,输入)键值:PAPC键号:0-31例:0号键PA=FEH,PC=XEH键值FEXEH9号键PA=FDH,PC=XDH键值FDXDH键值→键号的转换:键号=行首键号+列号行首键号:0、8、16、24列号:0-7(可由PA为0的位置确定)例:PA=11111101B,读得PC=1101B第一行、第一列,键号=8+1=9⑵.键扫描子程序功能:扫描键盘,无键继续扫描,有键求出键号。入口参数:无出口参数:A=键号子程嵌套:KS1:有无键按下判断,出口A≠0有键。T12MS:延时12ms子程寄存器分配:R2—列扫描字;R4—列号程序:KEY1:ACALLKS1;调用判断有无键按下子程序JNZLK1;有键按下时,(A)≠0,转消抖延时AJMPKEY1;无键按下返回扫描LK1:ACALLT12MS;调延时12ms子程序ACALLKS1;查有无键按下,若有则为键确实按下JNZLK2;键按下,(A)≠0,转逐列扫描AJMPKEY1;不是键按下,返回扫描LK2:MOVR2,#0FEH;首列扫描字入R2MOVR4,#00H;首列号入R4LK4:MOVDPTR,#7F01H;列扫描字送至8155PA口MOVA,R2;第一次列扫描MOVX@DPTR,A;使第0列线为0INCDPTRINCDPTR;指向8155PC口MOVXA,@DPTR;8155PC口读入行状态JBACC.O,LONE;第0行无键按下,转查第1行,ACC.0=0时为有键按下MOVA,#00H;第0行有键按下,该行首键号00H→AAJMPLKP;转求键号LONE:JBACC.1,LTWO;第1行无键按下,转查第2行MOVA,#08H;第1行有键按下,该行首键号08H→AAJMPLKPLTWO:JBACC.2,LTHR;第2行无键下,转查第3行MOVA,#10H;第2行有键按下,该行首键号10H→AAJMPLKPLTHR:JBACC.3,NEXT;第3行无键下,改查下一列MOVA,#18H;第3行有键按下,该行首键号18H→ALKP:ADDA,R4;键号=行首键号+列号PUSHACC;键号进栈保护LK3:ACALLKS1;等待键释放JNZLK3;未释放,等待POPACC;键释放,键号→ARET;键扫描结束,出口状态:(A)=键号NEXT:INCR4;指向下一列,列号加1MOVA,R2;判断8列扫描完没有JNBACC.7,KND;8列扫描完,返回RLA;扫描字左移一位,转变为下一列扫描字MOVR2,A;扫描字入R2AJMPLK4;转下列扫描KND:AJMPKEY1KS1:MOVDPTR,#7F01H;指向PA口MOVA,#00H;全扫描字00H=00000000BMOVX@DPTR,A;全扫描字入PA口INCDPTR;指向PC口INCDPTRMOVXA,@DPTR;读入PC口行状态CPLA;变正逻辑,以高电平表示有键按下ANLA,#0FH;屏蔽高4位R