欢迎来到天天文库
浏览记录
ID:27848627
大小:1.96 MB
页数:89页
时间:2018-12-04
《[工学]第9章应用系统配置及接口技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章应用系统配置及接口技术应用系统配置及接口系统前向通道:数字量、开关量、模拟量输入(A/D)系统后向通道:数字量、开关量、模拟量输出(D/A)人机通道:键盘、显示器、打印机等9.1人机通道配置与接口技术进行人机对话。包括人对系统的状态干预与数据输入,还有系统显示运行状态与运行结果等。键盘、显示器用来完成人机对话的人机通道。9.1.1键盘接口及处理程序键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。键盘中的按键:都是一个常开
2、开关电路。当按键K未被按下时,P1.0输入为高电平;当按键K闭合时,P1.0输入为低电平。图9-2按键电路通常按键在闭合及断开的瞬间均伴有一连串的抖动。如图所示。抖动时间一般为5~10ms。键抖动会引起一次按键被误读多次,必须去除键抖动。可用硬件或软件两种方法消除。软件方法去抖动,即检测出键闭合后执行一个5~10ms延时程序,再一次检测,如果仍保持闭合,则确认为真正按下。当检测到按键释放后,也要给5~10ms的延时,待后沿抖动消失后,才能转入该键的处理程序。键的消抖1)独立式非编码键盘接口及处理程序各按键相互独立地接通一条输入数据线,如图所示。
3、当一个键按下时,与之相连的输入数据线即清0(低电平),平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令十分方便。优点:电路简单;缺点:占用I/O线多。图9-4独立连接式非编码键盘1、键盘结构查询方式键盘的处理程序程序清单(设I/O为P1口):START:MOVA,#0FFH;输入时先置P1口为全1MOVP1,AMOVA,P1;键状态输入PL1:JNBACC.0,P0F;0号键按下转P0F标号地址JNBACC.1,P1F;1号键按下转P1F标号地址JNBACC.2,P2F;2号键按下转P2F标号地址JNBACC.3,P3F;3号键
4、按下转P3F标号地址JNBACC.4,P4F;4号键按下转P4F标号地址JNBACC.5,P5F;5号键按下转P5F标号地址JNBACC.6,P6F;6号键按下转P6F标号地址JNBACC.7,P7F;7号键按下转P7F标号地址LJMPSTART;无键按下返回P0F:LJMPPROM0P1F:LJMPPROM1;入口地址表┊┊P7F:LJMPPROM7PROM0:…;0号键功能程序LJMPSTART;0号键执行完返回PROM1:…LJMPSTART┊PROM7:…LJMPSTART由程序可以看出,各按键由软件设置了优先级,优先级顺序依次为0~
5、7。2)行列式键盘接口及工作原理图9-64×4矩阵键盘接口图为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式按键扫描的工作过程如下:①判断键盘中是否有键按下;②进行行扫描,判断是哪一个键按下,若有键按下,则调用延时子程序去抖动;③读取按键的位置码;④将按键的位置码转换为键值(键的顺序号)0、1、2…、F。1)判别键盘中有无键按下:由I/O口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法:向行线(水平线)输出全扫描字00H,把全部行线置为“0”,然后将列线的状态读入累加器A中。如果有按键
6、按下,总有一根列线电平被拉至低电平,使列输入不全为1。2)判断键盘中哪一个键被按下:通过将行线逐行置低电平后,检查列输入状态实现的。方法:依次给行线送“0”,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与“0”列线相交交点上的那键。3)行扫描法识别键号的工作原理:将第0行输出低电平,其余行高电平时,输出编码为1110。然后读取列,判别第0行是否有键按下。若有一键按下,则相应列被拉到低电平,则表示第0行和此列相交位置上有按键按下。若没有任一条列线为低电平,则说明0行上无键按下。将第1
7、行变为低电平,其余行高电平时,输出编码为1101。读取各列,判别是有哪一列键按下方法同上。将第2行变为低电平,其余行为高电平时,输出编码为1011。判别是否有哪一列键按下的方法同上。将第3行变为低电平,其余行为高电平时,输出编码为0111。判别是否有哪一列键按下的方法同上。根据行线扫描值(行码)与列线输入值(列码)可唯一确定按下的键并获得该键的位置码(键码)例如:行码=1011B;列码=1101B则:键码=10111101B4)键的位置码及键值的译码过程:扫描过程后得到的行号存放在R0,列号存放在R2中。键值(号)的获得(译码)通常采用计数译码
8、法。根据矩阵的结构,每个按键值=行号×每行按键数+列号键号(值)=行首键号+列号第0行的键值为:0行×4+列号(0~3)为0、1、2、3;第1行的键值
此文档下载收益归作者所有