- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机并行接口扩展技术第六章文档
第六章 AT89S51 单片机并行接口扩展技术6.1 键盘 / 显示器接口扩展
??? 键盘和显示器是单片机系统的中最重要的组成部分,键盘为输入设备,通过键盘可以设置系统的参数或输命令;显示器则为输出设备,单片机通过显示器显示采集的数据或处理结果。本节首先介绍单片机系统扩展键盘和LED显示技术。
6.1.1? 键盘的工作原理
? ( 1 )按键的去抖动处理。键盘是一组按钮开关矩阵,通常情况下,按钮开关处于断开状态,当按下键时它们才闭合 ( 短路 ) ,如图6.1所示。按照识别按键的方法不同,键盘可分为编码键盘和非编码键盘。按键的识别由专用的硬件实现,并能产生键值的称为编码键盘,自编软件识别的键盘称为非编码键盘。由于采用非编码键盘可以降低成本,在单片机系统中,当按键数量不多时,大家更喜欢采用非编码键盘。? ??? 通常情况下,当按下和松开按钮开关K1时,由于机械触点的弹性作用,图 6.1中O点的电压变化如图6.2所示。没按键时,O点为高电平(t1);按下的瞬间,O点的电压处于一种不稳定(抖动)状态(t2);然后,进入闭合期,O点电压为低电平(t3);当松开的瞬间,O点的电压再一次处于抖动状态(t4);最后,O点电压恢复为高电平(t5)。按一次键要经过两个抖动期t1和t2,每次抖动的时间大约在5~10ms之间。由于单片机工作在微秒数量级,必须进行去抖动处理,否则,按键一次会造成单片机的多次响应。常用的去抖动方法有两种,一种是采用硬件电路如滤波电路、双稳态电路等实现去抖;另一种是通过软件实现,即发现有键按下时,延时10~20ms再查询一次,若仍为低电平说明确实有键被按下,然后,等待按键的释放,即查询到图6.1中的O点为高电平时,还要延时10~20ms ,当O点仍为高电平时,才为一次按键结束。如果不检测按键的释放,当按键时间很长时,同样可能一次按键造成单片机的多次处理。?? ( 2 )键盘的结构与工作原理。 非编码键盘按照结构的不同可分为:独立式键盘和行列式键盘。独立式键盘的处理程序简单,适合于键数较少的场合,行列式键盘处理程序稍复杂点,适合于键数较多的场合。 ??? 1 )独立式键盘及其工作原理。独立式键盘是各按键互相独立,分别接一条输入数据线,各按键的状态互不影响,结构如图6.3所示。? ??? 当没有键被按下时,由于外边有上拉电阻,读得P1口的值为0FFH,当有键被按下时,如K4被按下,则读得P1口的值为0F7H。只要读得数据口的值即可知道是否有键被按下,或按下了哪个键。??? 2 )行列式键盘的结构与工作原理。键数较多时,独立式键盘结构需要占用很多I/O口线,会浪费许多资源,这时,常采用行列式键盘结构,即将键盘排列成行、列矩阵式,如图6.4 所示。??? 图6.4中,每一水平线(行线)与垂直线(列线)的交叉处连接一个按钮开关,即开关的两端分别接在行线和列线上,N个行线和M个列线可组成M×N个按键的键盘。工作原理为所有行线输出为高电平,所有列线输出为低电平,读行线,若有键闭合,读回的行线值不全为高。??? 对按键的识别方法如下:??? 第一步:确定是否有键被按下。具体方法为所有的行线输出高电平,所有的列线输出低电平,读行线,若行线中有低电平,延时20ms再读一次行线(去抖动),若仍为低电平说明有键闭合,把读到的四位行线状态保存起来;??? 第二步:当确认有键闭合时,使所有的行线输出低电平,所有的列线输出高电平,然后,读列线状态;??? 第三步:将第一次读得的四位行线值作为低4位,第二次读得的4位列线值做为高4位组成一个字节,然后,将该字节取反得到的值称为键值。??? 键值和键号是两个不同的概念,键值即当有键按下时,单片机读得的值,键号是印在键帽上的值,两者存在一一对应的关系。如在图6.4中,设键号为“6”的键闭合,则第一次读的行线P1.3、P1.2、P1.1、P1.0的状态为1101;第二次的列线P1.7、P1.6、P1.5、P1.4的状态为1011,列、行状态组合后,取反后,以十六进数计为42H,即键号为“6”的键对应的键值为42H。同理可以求出图6.4中的其它键号与键值的对应关系如表6.1 所示: ??? 表6.1中的键值由两位16进制数组成,高位和低位分别为闭合键所在列号和行号,1、2、 4、8分别表示第1、2、3、4行或列,如果需要可以通过软件将键值转成键号。?? 【 例 6.1 】 设某单片机系统的键盘电路如 图6.4所示,编写程序当有键闭合时,将闭合键的键号存于键盘缓冲KEYBUFF单元,并将按键标志KPRESSED置1。??? 解:设键盘缓冲KEYBUFF为30H单元,按键标志KPRESSED的位地址为00H,系统的晶体振荡器频率为6MHz,
文档评论(0)