第9章应用系统配置及接口技术 单片机,教程ppt.ppt

第9章应用系统配置及接口技术 单片机,教程ppt.ppt

第9章应用系统配置及接口技术 单片机,教程ppt

第9章 应用系统配置及接口技术;图9-1 系统前向、后向人机通道配置框图;9.1 人机通道配置与接口技术;9.1.1 键盘接口及处理程序;键盘中每个按键都是一个常开开关电路,如图9-2所示。 当按键K未被按下时,P1.0输入为高电平;当K闭合时,P1.0输入为低电平。 ;通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号波形如图9-3所示。 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。 因而在闭合及断开的瞬间均伴随有一连串的抖动,如图9-3所示。抖动时间的长短由按键的机械特性决定,一般为5~10 ms。这是一个很重要的时间参数,在很多场合都要用到。;键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。 如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生5~10 ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5~10 ms的延时,待后沿抖动消失后,才能转入该键的处理程序。 ;1. 键盘结构;1) 独立式非编码键盘接口及处理程序;图9-4所示查询方式键盘的处理程序比较简单。程序中没有使用散转指令,并且省略了软件去抖动措施,只包括键查询、键功能程序转移。P0F~P7F为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节;PROM0~PROM7分别为每个按键的功能程序。 ;程序清单(设I/O为P1口): START: MOV A,#0FFH;输入时先置P1口为全1 MOV P1,A MOV A,P1;键状态输入 PL1: JNB ACC.0,P0F;0号键按下转P0F标号地址 JNB ACC.1,P1F;1号键按下转P1F标号地址 JNB ACC.2,P2F;2号键按下转P2F标号地址 JNB ACC.3,P3F;3号键按下转P3F标号地址 JNB ACC.4,P4F;4号键按下转P4F标号地址 JNB ACC.5,P5F;5号键按下转P5F标号地址 JNB ACC.6,P6F;6号键按下转P6F标号地址 JNBA CC.7,P7F;7号键按下???P7F标号地址 LJMP START;无键按下返回;P0F: LJMP PROM0 ┊ ┊ P1F: LJMP PROM1 ;入口地址表  P7F: LJMP PROM7 PROM0:… ;0号键功能程序 LJMP START ;0号键执行完返回 PROM1:… LJMP START  ┊ PROM7:… LJMP START 由程序可以看出,各按键由软件设置了优先级,优先级顺序依次为0~7。 ;【例9-1】 设计一个有4个独立式按键的键盘接口,并编写键扫描程序。 解: 电路原理图如图9-5所示。 ;程序清单: KEY: MOV P1,#0FFH;P1口为输入,各位应先置位为高电平 MOV A,P1;读取按键状态 CPL A;取正逻辑,高电平表示有键按下 ANL A,#0FH JZ KEY;A=0时无键按下,重新扫描键盘 LCALL D10 ms;有键按下延时去抖动 MOV A,P1;读取按键状态 CPL A;取正逻辑,高电平表示有键按下 ANL A,#0FH;再判别是否有键按下 JZ KEY;A=0时无键按下重新扫描键盘 MOV B,A;有键按下,键值送B暂存 MOV A,P1 CPL A; ANL A,#0FH;判别按键释放 KEY1:JNZ KEY1;按键未释放,等待 LCALL D10ms;释放,延时去抖动 MOV A,B;取键值送A JB ACC.0,PKEY1;K1按下转PKEY1 JB ACC.1,PKEY2;K2按下转PKEY2 JB ACC.2,PKEY3;K3按下转PKEY3 JB ACC.3,PKEY4;K4按下转PKEY4 EKEY:RET;PKEY1:LCALL K1;K1命令处理程序 RET PKEY2:LCALL K2;K2命令处理程序 RET PKEY3:LCALL K3;K3命令处理程序 RET PKEY4:LCALL K4;K4命令处理程序 RET D10ms:MOV R7,#10H;10 ms延时子程序 DS1: MOV R6,#0FFH DS2: DJNZ R6,DS2 DJNZ R7,DS1

文档评论(0)

1亿VIP精品文档

相关文档