ImageVerifierCode 换一换
格式:PPT , 页数:164 ,大小:4.68MB ,
资源ID:12675080      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12675080.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(键盘显示器接口优选ppt资料.ppt)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

键盘显示器接口优选ppt资料.ppt

1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,键盘(jinpn)显示器接口,第一页,共164页。,1,2,第10章 目录,10.1 LED数码管的显示原理,10.1.1 LED数码管的结构,10.1.2 LED数码管工作原理,

2、10.2 键盘接口原理,10.2.1 键盘输入应解决的问题(wnt),10.2.2 键盘的工作原理,10.2.3 键盘的工作方式,10.3 键盘/显示器接口设计实例,10.3.1 利用AT89S51单片机串行口实现的键盘/显示器接口,第二页,共164页。,2,10.3.2 各种专用的键盘/显示器接口芯片简介,10.3.3 专用接口芯片CH451实现的键盘/显示器控制,10.3.4 专用接口芯片HD7279实现的键盘/显示器控制,10.4 AT89S51单片机与液晶(yjng)显示器(LCD)的接口,10.4.1 LCD显示器的分类,10.4.2 点阵字符型液晶(yjng)显示模块介绍,10.4

3、3 AT89S51单片机与LCD的接口及软件编程,10.5 AT89S51单片机与微型打印机TPP-40A/16A的接口,10.6 AT89S51单片机与BCD码拨盘的接口设计,第三页,共164页。,3,内容概要,大多数的单片机应用系统,都要配置输入外设和输出外设。常用的输入外设有键盘、BCD码拨盘等;常用的输出外设有LED数码管、LCD显示器、打印机等。,本章介绍AT89S51与各种输入外设、输出外设的接口设计以及(yj)软件编程。,第四页,共164页。,4,10.1 LED数码管的显示原理,LED(Light Emitting Diode)发光二极管缩写。LED数码管是由发光二极管构成的

4、10.1.1 LED数码管的结构,常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。有共阳极和共阴极两种,如图10-1所示。共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。,同样,共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压(diny),当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。,5,第五页,共164页。,5,6,图10-1 8段LED数码管结构(jigu)及外形,第六页,共164页。,6,为了使数码管显示不同的符号或数字(shz),要把某些段发光二极管点亮,就要为LED数码管提供段码(字

5、型码)。,LED数码管共计8段。正好是一个字节。习惯上是以“a”段对应段码字节的最低位。各段与字节中各位对应关系如表10-1所示。,按照上述格式,显示各种字符的8段LED数码管的段码如表10-2所示。,7,第七页,共164页。,7,8,第八页,共164页。,8,表10-1只列出了部分段码,读者可以(ky)根据实际情况选用,或重新定义。除“8”字型的LED数码管外,市面上还有“1”型、“米”字型和“点阵”型LED显示器,如图10-2所示。本章均以“8”字型的LED数码管为例。,图10-2 其他各种字型的LED显示器,9,第九页,共164页。,9,10.1.2 LED数码管工作原理(yunl),图

6、10-3所示为显示4位字符的LED数码管的结构原理(yunl)图。N位位选线和8N条段码线。段码线控制显示字型,而位选线控制着该显示位的LED数码管的亮或暗。,10,图10-3 4位LED数码管的结构(jigu)原理图,第十页,共164页。,10,LED数码管有静态(jngti)显示和动态显示两种显示方式。,1LED静态(jngti)显示方式,无论多少位LED数码管,同时处于显示状态。,静态(jngti)显示方式,各位的共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段码线(adp)分别与一个8位的I/O口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口

7、锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。正因为如此,静态(jngti)显示方式的显示无闪烁,亮度都较高,软件控制比较容易。,11,第十一页,共164页。,11,图10-4为4位LED数码管静态显示器电路,各位可独立显示,静态显示方式接口(ji ku)编程容易,但是占用口线较多。对图10-4电路,若用I/O口线接口(ji ku),要占用4个8位I/O口。因此在显示位数较多的情况下,所需的电流比较大,对电源的要求也就随之增高,这时一般都采用动态显示方式。,2LED动态显示方式,无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管轮流显示。,1

8、2,第十二页,共164页。,12,13,图10-4 4位LED静态(jngti)显示电路,第十三页,共164页。,13,在多位LED显示时,为简化硬件电路,通常将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成(xngchng)各位的分时选通。,图10-5所示为一个4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。必须采用动态的“扫描”显示方式。即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要有显示的字符的段码。,14,第十四页,共1

9、64页。,14,15,图10-5 4位8段LED动态显示电路(dinl),第十五页,共164页。,15,虽然这些字符是在不同时刻出现,而在同一时刻,只有(zhyu)一位显示,其他各位熄灭,由于余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。,LED不同位显示的时间间隔(扫描间隔)应根据实际情况而定。显示位数多,将占大量的单片机时间,因此动态显示的实质是以牺牲单片机时间来换取I/O端口的减少。,图10-6所示为8位LED动态显示的过程。图10-6(a)所示为显示过程,某一时刻,只有(zhyu)一位LED被选通显示,其余位则是熄灭的;图10

10、6(b)所示为实际的显示结果,人眼看到的是8位稳定的同时显示的字符。,16,第十六页,共164页。,16,图10-6 8位LED动态显示过程和结果,动态显示的优点是硬件电路简单(jindn),显示器越多,优势越明显。缺点是显示亮度不如静态显示的亮度高。如果“扫描”速率较低,会出现闪烁现象。,17,第十七页,共164页。,17,10.2 键盘接口原理,键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。下面介绍键盘的工作原理和键盘的工作方式。,10.2.1 键盘输入应解决的问题,1键盘的任务,任务有三项:,(1)判别是否有键按下?若有,进入(jnr)下一步工作。,(2)识别哪一个

11、键被按下,并求出相应的键值。,(3)根据键值,找到相应键值的处理程序入口。,18,第十八页,共164页。,18,2键盘输入的特点,常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常用的是按键式键盘。按键实质上就是一个开关。如图10-7(a)所示,按键开关的两端分别连接在行线和列线上,通过键盘开关机械(jxi)触点的断开、闭合,其行线电压输出波形如图10-7(b)所示。,图10-7 键盘开关及其行线波形,19,第十九页,共164页。,19,图10-7(b)所示的t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,一般为510ms,t2为稳定的闭合期,其

12、时间由按键动作确定,一般为十分之几秒到几秒,t0、t4为断开期。,3按键的识别,键的闭合与否,行线输出电压上就是呈现高电平或低电平。高电平,表示键断开,低电平则表示键闭合,通过对行线电平的高低状态的检测,可确认按键按下以及按键释放与否。为了确保对一次按键动作只确认一次按键有效,必须消除(xioch)抖动期t1和t3的影响。,20,第二十页,共164页。,20,4如何消除按键的抖动,按键去抖动的方法有两种:,一种软件延时,本思想是:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否(sh fu)仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按

13、键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。采取本措施,可消除两个抖动期t1和t3的影响。,另一种是采用专用的键盘/显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。,21,第二十一页,共164页。,21,10.2.2 键盘的工作(gngzu)原理,键盘可分为两类:非编码键盘和编码键盘。,非编码键盘是利用按键直接与单片机相连接而成,这种键盘通常使用在按键数量较少的场合。使用这种键盘,系统功能通常比较简单,需要处理的任务较少,但是可以降低成本、简化电路设计。按键的信息通过软件来获取。,1非编码键盘,常见的为两种结构:独立式键盘和矩

14、阵式键盘。,(1)独立式键盘,特点是:一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下,如图10-8所示。,22,第二十二页,共164页。,22,图10-8 独立式键盘接口(ji ku)电路,第二十三页,共164页。,23,对于图10-8的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平。,当某一按键按下时,对应的检测线就变成了低电平,与其他(qt)按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。,优点:电路简单,各条检测线独立,识别按下按键的软件编写简单。

15、适用于键盘按键数目较少的场合,不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线。,24,第二十四页,共164页。,24,识别某一键是否按下的子程序:,KEYIN:MOVP1,0FFH;P1口写入1,设置P1口为输入状态,MOVA,P1;读入8个按键的状态,CJNEA,#0FFH,QUDOU;有键按下,跳去抖动,LJMPRETURN;无键按下,返回,QUDOU:MOV R3,A;8个按键的状态送R3保存,LCALL DELAY10;调用延时子程序,软件(run jin)去键抖动,MOVA,P1;再一次读入8个按键的状态,CJNEA,R3,RETURN;两次键值比较,不同,;是抖动引起,

16、转RETURN,25,第二十五页,共164页。,25,KEY0:MOVC,;有键按下,读的按键(n jin)状态,JCKEY1;为高,该键未按下,跳KEY1,;判下一个键,LJMPPKEY0;的键按下,跳PKEY0处理,KEY1:MOVC,;读的按键(n jin)状态,JCKEY2;为高,该键未按下,跳KEY2,,;判下一个键,LJMPPKEY1;的键按下,跳PKEY1处理,26,第二十六页,共164页。,26,KEY2:MOVC,P1.2;读的按键状态(zhungti),JCKEY3;为高,该键未按下,跳;KEY3,判下一个键,LJMPPKEY2;的键按下,跳PKEY2处理,KEY3:MOV

17、C,P1.3;读的按键状态(zhungti),KEY7:MOVC,P1.7;读的按键状态(zhungti),JCRETURN;为高,该键未按下,跳,;RETURN处,LJMPPKEY7;的键按下,跳PKEY7处理,RETURN:RET ;子程序返回,27,第二十七页,共164页。,27,软件延时10ms子程序DELAY10的编写,参见第4章。对应8个按键(n jin)的键处理程序PKEY0 PKEY7,根据按键(n jin)功能的要求来编写。注意,在进入键处理程序后,需要先等待按键(n jin)释放,再执行键处理功能。另外,在键处理程序完成后,一定要跳向RETURN标号处返回。,(2)矩阵式键

18、盘,矩阵式(也称行列式)键盘用于按键(n jin)数目较多的场合,由行线和列线组成,按键(n jin)位于行、列的交叉点上。如图10-9所示,一个44的行、列结构可以构成一个16个按键(n jin)键盘。在按键(n jin)数目较多的场合,要节省较多的I/O口线。,28,第二十八页,共164页。,28,29,图10-9 矩阵式键盘(jinpn)接口,第二十九页,共164页。,29,矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。,由于矩阵式

19、键盘中行、列线为多键共用,各按键彼此将相互发生影响,所以必须将行、列线信号(xnho)配合,才能确定闭合键位置。下面讨论矩阵式键盘按键的识别方法。,扫描法。第1步,识别键盘有无键按下;第2步,如有键被按下,识别出具体的键位。,下面以图10-9所示的键3被按下为例,说明识别过程。,30,第三十页,共164页。,30,第1步,识别键盘有无键按下。先把所有列线均置为0,然后检查各行线电平是否都为高,如果不全为高,说明有键按下,否则无键被按下。,例如,当键3按下时,第1行线为低,还不能确定是键3被按下,因为如果同一行的键2、1或0之一被按下,行线也为低电平。只能得出第1行有键被按下的结论。,第2步,识

20、别出哪个按键被按下。采用逐列扫描法,在某一时刻(shk)只让1条列线处于低电平,其余所有列线处于高电平。,当第1列为低电平,其余各列为高电平时,因为是键3被按下,第1行的行线仍处于高电平;,31,第三十一页,共164页。,31,当第2列为低电平,其余各列为高电平时,第1行的行线仍处于高电平;,直到(zhdo)让第4列为低电平,其余各列为高电平时,此时第1行的行线电平变为低电平,据此,可判断第1行第4列交叉点处的按键,即键3被按下。,综上所述,扫描法的思想是,先把某一列置为低电平,其余各列置为高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被按下。,第三十二页

21、共164页。,32,线反转法。扫描法要逐列扫描查询,有时则要多次扫描。而线反转法则很简练,无论被按键是处于第一列或最后一列,均只需经过两步便能获得此按键所在(suzi)的行列值,下面以图10-10所示的矩阵式键盘为例,介绍线反转法的具体步骤。,让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在(suzi)行为按键所在(suzi)行。,再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在(suzi)列为按键所在(suzi)列。,33,第三十三页,共164页。,33,两步即可确定按键所在的行和列,从而识别(shbi)出

22、所按的键。,图10-10 采用线反转法的矩阵式键盘,34,第三十四页,共164页。,34,假设键3被按下。,第一步,输出全为“0”,然后,读入线的状态,结果(ji gu)P1.4=0,而均为1,因此,第1行出现电平的变化,说明第1行有键按下;,第二步,让输出全为“0”,然后,读入位,结果(ji gu)P1.0=0,而均为1,因此第4列出现电平的变化,说明第4列有键按下。,综上所述,即第1行、第4列按键被按下,此按键即键3按下。线反转法简单适用,但不要忘记按键去抖动处理。,35,第三十五页,共164页。,35,10.2.3 键盘的工作方式,单片机在忙于其他各项工作任务时,如何(rh)兼顾键盘的输

23、入,这取决于键盘的工作方式。工作方式选取原则是,既要保证及时响应按键操作,又不过多占用单片机工作时间。键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。,1编程扫描方式,也称查询方式,利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。,如果单片机的查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务的进行。查询的频率过低,可能会键盘输入漏判。,第三十六页,共164页。,36,所以要根据单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。,2定时扫描方式,每隔一定的时间对键盘扫描一次。在这种方式中,通常(tngchng)利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘

24、进行扫描,在有键按下时识别出该键,并执行相应键的处理程序。为了不漏判有效的按键,定时中断的周期一般应小于100ms。,37,第三十七页,共164页。,37,3中断扫描方式,为提高单片机扫描键盘(jinpn)的工作效率,可采用中断扫描方式,如图10-11所示。,图中的键盘(jinpn)只有在键盘(jinpn)有按键按下时,发出中断请求信号,单片机响应中断,执行键盘(jinpn)扫描程序中断服务子程序。如无键按下,单片机将不理睬键盘(jinpn)。,此种方式的优点是,只有按键按下时,才进行处理,所以其实时性强,工作效率高。,38,第三十八页,共164页。,38,39,图10-11 采用(ciyng

25、)线反转法的矩阵式键盘,第三十九页,共164页。,39,非编码矩阵式键盘所完成的工作分为3个层次。,(1)单片机如何来监视键盘的输入,体现在键盘的工作方式上就是:编程扫描;定时扫描;中断扫描。,(2)确定按下键的键号。体现在按键的识别方法上就是:扫描法;线反转法。,(3)根据按下键的键号,实现按键的功能,即跳向对应的键处理程序。,10.3 键盘/显示器接口设计实例,在单片机应用系统(xtng)设计中,一般都是把键盘和显示器放在一起考虑。也有的系统(xtng)仅单独需要键盘或显示器。介绍几种实用的键盘/显示器接口的设计方案。,40,第四十页,共164页。,40,10.3.1 利用AT89S51串

26、行口实现(shxin)的键盘/显示器接口,当AT89S51单片机的串行口未作它用时,可使用AT89S51的串行口的方式0的输出方式,构成键盘/显示器接口,如图10-12所示。,8个74LS164:74LS164(0)74LS164(7)作为8位LED数码管的段码输出口,AT89S51的、作为两行键的行状态输入线,作为TXD引脚同步移位脉冲输出控制线,P3.3=0时,与门封死,禁止同步移位脉冲输出。这种方案主程序可不必扫描显示器,软件设计简单,使单片机有更多的时间处理其他事务。,下面列出显示子程序和键盘扫描子程序。,41,第四十一页,共164页。,41,图10-12 用AT89S51串行口扩展(

27、kuzhn)键盘/显示器,42,第四十二页,共164页。,42,显示子程序:,DIR:SETBP3.3;P3.3=1,允许TXD脚同步(tngb)移位脉冲输出,MOVR7,08H;送出的段码个数,MOVR0,7FH;7FH78H为显示数据缓冲区,DL0:MOV A,R0;取出要显示的数送A,ADD A,0DH;加上偏移量,MOVC A,APC;查段码表SEGTAB,取出段码,MOV SBUF,A;将段码送串行口的SBUF,DL1:JNB TI,DL1;查询1个字节的段码输出完否?,CLRTI;1字节的段码输出完,清TI标志,DECR0;指向下一个显示数据单元,43,第四十三页,共164页。,4

28、3,DJNZR7,DL0;段码个数计数器R7是否为0,如不,;为0,继续送段码,CLR P3.3;8个段码输出完毕,关闭显示器输出,RET ;返回(fnhu),SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳极段;码表,DB92H,82H,0F8H,90H;,DB88H,83H,0C6H,0A1H,86H;,DB8FH,0BFH,8CH,0FFH,0FFH;,44,第四十四页,共164页。,44,键盘扫描子程序:,KEYI:MOV A,00H;判断有无键按下,使所有(suyu)列线为0 MOV SBUF,A;扫描键盘的(8)号74LS164输出为,;00H,使所有(su

29、yu)列线为0,KL0:JNB TI,KL0;串行输出完否?,CLR TI;串行输出完毕,清TI,KL1:,PK1;第1行有闭合键吗?如有,跳PK1,;进行处理,,KL1;在第2行键中有闭合键吗?无闭,;合键跳KL1,45,第四十五页,共164页。,45,PK1:ACALL DL10;调用延时10ms子程,软件消抖动,,PK2;判断是否由抖动引起?,,KL1,PK2:MOV R7,08H;不是抖动引起的,MOV R6,0FEH;判别(pnbi)是哪一个键按下,FEH为最左;1列为低,MOV R3,00H;R3为列号寄存器,MOV A,R6,KL5:MOV SBUF,A;列扫描,列扫描码从串行口

30、输出,46,第四十六页,共164页。,46,KL2:JNB TI,KL2;等待(dngdi)串行口发送完,CLR TI;串行口发送完毕,清TI标志,,PKONE;读第1行线状态,第1行有键,;闭合,跳PKONE,,NEXT;读第2行状态,2行某键否?,MOV R4,08H;2行中有键被按下,行首键,;号08H送R4,AJMP PK3,PKONE:MOV R4,00H;1行键中有键按下,行首键;号00H送R4,PK3:MOV SBUF,00H;等待(dngdi)键释放,发送00H使所,;有列线为低,47,第四十七页,共164页。,47,KL3:JNB TI,KL3;判1个字节是否发送完毕,CLR

31、 TI;发送完毕,清标志,KL4:,KL4;判行线状态,MOV A,R4;两行线均为高,说明键已释放,ADD A,R3;计算(j sun)得键码A,RET,NEXT:MOV A,R6;列扫描码左移一位,判下一列键,RL A,MOV R6,A;记住列扫描码于R6中,48,第四十八页,共164页。,48,INC R3;列号增1,DJNZ R7,KL5;列计数器R7减1,8列;键都检查完否?,AJMP KEYI;8列扫描(somio)完,开始下一个键盘扫描(somio)周期,DL10:MOV R7,0AH;延时10ms子程序,DL:MOV R6,0FFH,DL6:DJNZ R6,DL6,DJNZ R

32、7,DL,RET,本例中,如只需LED数码管显示部分,可把键盘部分的电路去掉即可;如只需键盘,可把LED数码管部分的电路去掉。,49,第四十九页,共164页。,49,10.3.2 各种专用的键盘/显示器接口芯片简介,用专用芯片,可省去编写键盘/显示器动态扫描程序(chngx)以及键盘去抖动程序(chngx)编写的繁琐工作。,目前各种专用接口芯片种类繁多,各有特点,总体趋势是并行接口芯片逐渐退出,串行接口芯片越来越多的得到应用。,早期的较为流行的键盘/显示器芯片8279,目前流行的键盘/显示器接口芯片均采用串行通信方式,占用口线少。常见的芯片有:周立功公司的ZLG7289A、ZLG7290B、M

33、AX7219、南京沁恒公司的CH451、HD7279和BC7281等。,50,第五十页,共164页。,50,这些芯片全采用动态扫描方式,且控制的键盘均为编码键盘。,1.专用键盘/显示器接口芯片8279,可编程的并行键盘/显示器接口芯片。内部有键盘FIFO(先进先出堆栈)/传感器双重功能的88=64字节RAM,键盘控制部分可控制88的键盘矩阵,能自动获得(hud)按下键的键号。,自动去键盘抖动并具有双键锁定保护功能。显示RAM的容量为168位,最多可控制16个LED数码管显示。8279已经逐渐淡出市场。,51,第五十一页,共164页。,51,2.专用键盘/显示器芯片ZLG7290B,采用I2C串

34、行口总线结构,可实现8位LED显示和64键的键盘管理,需外接晶振,使用按键功能时要接8个二极管,电路稍显复杂,且每次I2C通信间隔稍长(10ms)。,功能:闪烁、段点亮、段熄灭(xmi)、功能键、连击键计数等。其中,功能键实现了组合按键,这在此类芯片中极具特点;连击键计数实现了识别长按键的功能,也是独有的。,3.专用显示器芯片MAX7219,MAXIM(美信)公司的产品。该芯片采用串行SPI接口,仅是单纯驱动共阴极LED数码管,没有键盘管理功能。,52,第五十二页,共164页。,52,4.专用显示器芯片BC7281,可驱动16位LED数码管显示和实现(shxin)64键的键盘管理,可实现(sh

35、xin)闪烁、段点亮、段熄灭等功能。最大特点是通过外接移位寄存器驱动16位LED数码管。但所需外围电路较多,占PCB空间较大,且在驱动16位LED数码管时,由于采用动态扫描方式工作,电流噪声过大。,5专用键盘/显示器芯片HD7279,与单片机间采用串行通信,可控制并驱动8位LED数码管和实现(shxin)64(88)键的键盘管理。外围电路简单,价格低廉。由于具有上述优点,目前得到较为广泛的应用。,53,第五十三页,共164页。,53,6专用键盘/显示器芯片CH451,可动态驱动8位LED数码管显示,具有(jyu)BCD码译码、闪烁、移位等功能。内置大电流驱动级,段电流不小于30mA,位电流不小

36、于160mA。内置64(88)键键盘控制器,可对88矩阵键盘自动扫描,且有去抖动电路,并提供键盘中断和按键释放标志位,可供查询按键按下与释放状态。片内内置上电复位和看门狗定时器。芯片性价比较高,是目前使用较为广泛的专用的键盘/显示器接口芯片之一。但抗干扰能力不是很强,不支持组合键识别。,上述各种芯片,CH451和HD7279使用较多。从性价比,首推CH451,主要对LED数码管的驱动功能较完善。,54,第五十四页,共164页。,54,10.3.3 专用接口芯片CH451实现的键盘/显示器控制,介绍专用键盘/显示器接口芯片CH451(南京沁恒公司),1.基本功能与引脚介绍,内部集成数码管显示驱动

37、和键盘扫描控制的专用键盘/显示器接口芯片。内置RC振荡电路,可以直接动态驱动8位LED数码管(或者64只LED),可实现显示数字(shz)左移、右移、左循环、右循环、各位显示数字(shz)独立闪烁等功能。,内置大电流驱动级,段电流不小于30mA,字电流不小于160mA,并有16级亮度控制功能;,55,第五十五页,共164页。,55,在键盘控制方面,该芯片内有64键键盘控制器,可实现88矩阵编码键盘的扫描,并内置自动去抖动电路,可提供按键中断与按键释放标志位等功能。,与单片机的接口,可选用1线串行接口或高速4线串行接口,片内有上电复位电路,同时(tngsh)可提供高电平有效复位和低电平有效复位两

38、种输出,同时(tngsh)片内提供看门狗WatchDog。,第五十六页,共164页。,56,两种封装形式(xngsh):28脚的表贴型封装(SOP型)以及24脚的双列直插(DIP)封装,如图10-13所示。,图10-13 CH451的封装与引脚,57,第五十七页,共164页。,57,58,28脚与24脚在功能(gngnng)上稍有差别,引脚定义见表10-3。,第五十八页,共164页。,58,.CH451的操作命令,命令均为12位,其中高4位为标识码,低8位为参数(cnsh),,(1)空操作命令,编码:0000。,对CH451无任何影响。可应用在多个CH451的级联中,透过前级CH451向后级C

39、H451发送操作命令而不影响前级CH451的状态。,例如,要将操作命令001000000001B发送给两级级联电路中的后级CH451(后级CH451的DIN引脚连接到前级CH451的DOUT引脚),只要在该操作命令后添加空操作,59,第五十九页,共164页。,59,命令000000000000B再发送,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。,另外,为在不影响CH451的前提下,使DCLK变化以清除看门狗计时器,也可以发送空操作命令。在非级联的应用中,空操作命令可只发送高4位。,(2)芯片内部复位命令,编码:001000000001B。,可将CH45

40、1的各个(gg)寄存器和各种参数复位到默认的状态。芯片上电时,CH451均被复位,此时各个(gg)寄存器均复位为0,各种参数均恢复为默认值。,第六十页,共164页。,60,(3)字数据移位命令,编码:0011000000D1D0B。,命令共有个:开环左移、右移,闭环左移、右移。D0=0时为开环,D0=时为闭环;D1=0时左移,D1=1时为右移。,开环左移时,DIG引脚对应(duyng)的单元补00,此时不译码方式显示为空格,BCD译码方式时显示为0;,开环右移时,DIG7引脚对应(duyng)的单元补00;而在闭环时 DIG0与DIG7头尾相接,闭环移位。,61,第六十一页,共164页。,61

41、4)设定(sh dn)系统参数命令,编码:010000000WDOGKEYBDISPB。,用于设定(sh dn)CH451的系统级参数,如看门狗WDOG使能、键盘扫描使能KEYB、显示驱动使能DISP等。各个参数均可通过命令中的位数据来进行控制,将相应数据位置为可启用该功能,否则关闭该功能(默认值)。,(5)设定(sh dn)显示参数命令,编码:0101MODE(1位)LIMIT(3位)INTENSITY(4位)B。,设定(sh dn)CH451的显示参数,其中译码方式MODE(1位)、扫描极限LIMIT(3位)、显示亮度INTENSITY(4位)。,62,第六十二页,共164页。,62,

42、译码方式MODE=1,为BCD译码方式,MODE=时为不译码方式。,CH451默认不译码方式,此时8个数据寄存器中字节数据的位7位0分别对应8个数码管的小数点和段a段g,当某段数据位为1时,对应的段点亮;当某段数据位为0时熄灭。,CH451BCD译码方式主要用于LED数码管驱动,单片机只要给出二进制数的BCD码,便由CH451将其译码并直接驱动LED数码管以显示对应的字符(z f)。,BCD译码方式是对显示数据寄存器字节中的数据位4位0进行BCD译码,可用于控制段驱动引脚SEG6SEG0的输出,它们对应于数码管的段g段a,同时可用字节,63,第六十三页,共164页。,63,数据的位7来控制SE

43、G7段对应的LED数码管的小数点,字节数据的位和位不影响BCD译码的输出,它们可以是任意值。,将位4位0进行BCD译码可显示以下(yxi)28个字符,,其中00000B01111B分别对应于显示字符“0F”,,10000B11010B分别对应于显示“空格”、“+”、“-”、“=”、“”、“”、“_”、“H”、“L”、“P”、“”,其余值为空格。,扫描极限LIMIT控制位001B111和000B(默认值)可分别设定扫描极限17和8。,第六十四页,共164页。,64,显示亮度INTENSITY控制位(4位)可实现16级显示亮度控制。00011111和0000(默认值)则用于分别设定显示驱动占空比1

44、161516和1616,,(6)设定闪烁控制命令,编码:D7SD6SD5SD4SD3SD2SD1SD0SB用于设定CH451的闪烁显示属性,其中D7SD0S位分别对应于8个数码管的字驱动DIG7DIG0,并控制DIG7DIG0的属性,将相应(xingyng)的数据位置为1则闪烁显示,否则为不闪烁的正常显示(默认值)。,(7)加载显示数据命令,编码:DIG_ADDR DIG_DATAB。,65,第六十五页,共164页。,65,用于将显示字节数据DIG_DATA(8位)写入DIG_ADDR(3位)指定的数据寄存器中。,DIG_ADDR的000B111B分别用于指定显示寄存器的地址07,并分别对应于

45、DIG0DIG7引脚驱动的8个LED数码管。DIG_DATA为待写入的显示字节数据。,(8)读取按键代码命令,编码:0111B。,用于获得CH451最近检测到的有效按键的代码。CH451通常从DOUT引脚向单片机输出按键代码,按键代码是7位数据,最高位是状态码,位5位0是扫描(somio)码。读取按键代码命令的位7位0可以是任意值,可将该命令缩短为位,即位11位8。,66,第六十六页,共164页。,66,例如,CH451检测到有效按键并向单片机发出中断请求时,假如按键代码是5EH,则单片机先向CH451发出读取按键代码命令0111B,然后再从DOUT获得(hud)按键代码5EH。CH451所提

46、供的按键代码为位,位2位0是列扫描码,位5位3是行扫描码,位6是按键的状态码(键按下为,键释放为)。,对88键盘,即连接在DIG7DIG0与SEG7SEG0之间的键按下时,CH451所提供的按键代码是固定的,如图10-14所示。如果需要键被释放时的按键代码,可将图10-14所示的按键代码的位6 置0,也可将按键代码减去40H。,67,第六十七页,共164页。,67,例如,连接DIG3与SEG4的键被按下时,按键代码为63H,键被释放后,按键代码是23H。,单片机可在任何时候读取有效按键的代码,但一般在CH451检测到有效按键并向发出键盘中断请求时,进入中断服务程序读取按键代码,此时按键代码的位

47、6总是1。,另外,如需了解按键何时释放,可通过查询(chxn)方式定期读取按键代码,直到按键代码的位6为0。,注意:CH451不支持组合键。如需要组合键功能,则可利用两片CH451来实现。具体的实现,请见相关资料。,第六十八页,共164页。,68,3.CH451与AT89S51单片机的接口,接口电路如图10-14所示,使用线串行接口。其中DOUT脚连到外部中断输入 脚,用中断方式响应(xingyng)有效按键。也可用查询方式确定CH451是否检测到有效按键,同时还可向单片机提供复位信号RESET,并带有WatchDog功能。,CH451的段驱动脚串200电阻用于限制和均衡段驱动电流。在5V下,

48、串接200电阻对应的段电流为13mA。CH451具有64键的键盘扫描功能,为防止键按下后在SEG信号线与DIG信号线之间形成短路而影响数码管显示,一般应在CH451的DIGDIG脚与键盘矩阵之间串接限流电阻,阻值1k10k。,69,第六十九页,共164页。,69,图10-14 CH451与AT89S51单片机的接口(ji ku)电路,第七十页,共164页。,70,将与DIN连接可用于输入串行数据,串行数据输入的顺序是低位在前,高位在后。,另外,在上电复位后,CH451 默认选择线串行接口,如需选择线串行接口,则应在DCLK输出串行时钟之前(zhqin),先在DIN上输出一个低电平脉冲,以通知C

49、H451为4线串行接口。将与DCLK连接可提供串行时钟,以使CH451在其上升沿从DIN输入数据,并在其下降沿从DOUT输出数据。,71,第七十一页,共164页。,71,LOAD用于加载串行数据(shj),CH451一般在其上升沿加载移位寄存器中的12位数据(shj)以作为操作命令进行分析并处理。也就是说,LOAD的上升沿是串行数据(shj)帧的帧完成标志,此时无论移位寄存器中的12位数据(shj)是否有效,CH451都会将其当作操作命令来处理。,应注意,在级联电路中,单片机每次输出的串行数据(shj)必须是单个CH451的串行数据(shj)的位数乘以级联的级数。下面介绍该接口电路的驱动程序:

50、第七十二页,共164页。,72,CH451初始化子程序:,INIT:CLR P1.0;DIN脚先置低,当有上跳沿时,;选择CH451为线串行接口,SETB P1.1;置DCLK为默认的高电平,SETB P1.0;置DIN为高电平,产生上跳,;沿,选线串行接口,SETB P1.2;置LOAD脚为高电平,SETB P3.2;置()为输入(shr),MOVB,#04H;设置系统参数命令,MOV,#07H;WatchDog使能,开键盘、显示功能,LCALL WRITE;调用写命令子程序WRITE,MOV B,#03H;设置移位命令,73,第七十三页,共164页。,73,MOV A,#00H;开环左移

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服