1、第第1010章章 AT89S51 AT89S51单片机与输入单片机与输入/输出输出 外设的接口外设的接口1社删哆袄扰尸蒋您高稗死茎样毅玲措叶瞬嘘丧庆利最阁众幅岁都咀露暇喻(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)12第第1010章章 目目录录10.1LED数数码码管的管的显显示原理示原理10.1.1LED数码管的结构10.1.2LED数码管工作原理10.2键盘键盘接口原理接口原理10.2.1键盘输入应解决的问题10.2.2键盘的工作原理10.2.3键盘的工作方式10.3键盘键盘/显显示器接口示器接口设计实设计实例例10.3.1利用AT89S51单片机串行口实现的键盘/
2、显示器接口惑躬戮词柄丑涨阐威皖陌穿城蟹记汉韵霜色垒苗藻毯钧男渺僻阔委哎捏篡(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)210.3.2各种专用的键盘/显示器接口芯片简介10.3.3专用接口芯片CH451实现的键盘/显示器控制10.3.4专用接口芯片HD7279实现的键盘/显示器控制10.4AT89S51单单片机与液晶片机与液晶显显示器(示器(LCD)的接口)的接口10.4.1LCD显示器的分类10.4.2点阵字符型液晶显示模块介绍10.4.3AT89S51单片机与LCD的接口及软件编程10.5AT89S51单单片机与微型打印机片机与微型打印机TP P-40A/16A的接口
3、的接口10.6AT89S51单单片机与片机与BCD码拨盘码拨盘的接口的接口设计设计肖奈威倚济藻男枚碧哩惕图扎恐被埋牢姑靴觅优蜜箍智幼透伎拨坏崎腔拢(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)3内容概要内容概要大多数的单片机应用系统,都要配置输入外设和输出外设。常用的输入外设输入外设有键盘、键盘、BCD码拨盘码拨盘等;常用的输出输出外设外设有LED数码管、数码管、LCD显示器、打印机显示器、打印机等。本章介绍AT89S51与各种输入外设、输出外设的接口与各种输入外设、输出外设的接口设计以及软件编程软件编程。豫迹含俊嘴防含藏坐颂糯弄帘糙娩柏蕴滩谤电锋禾典媳洱乌洽勉拇签碴母(
4、单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)410.1LED数码管的显示原理数码管的显示原理LED(LightEmittingDiode)发光二极管缩写。LED数码管数码管是由发光二极管构成是由发光二极管构成的。10.1.1LED数码管的结构数码管的结构常见的LED数码管为“8”字型字型的,共计8段段。每一段对每一段对应一个发光二极管应一个发光二极管。有共阳极共阳极和共阴极共阴极两种,如图图10-1所所示示。共阴极共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平阳极为高电平时,发光二极管点亮。同样,共阳极共阳极LED数码管的发光二极管的阳极连接在阳极连接在
5、一起一起,公共阳极接正电压接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。5天浊厅节篇界鼓宽别晚允田持酵衬蒂杉磅圾褂扼固瓦遗未综到坦串井沈某(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)56图图10-18段段LED数数码码管管结结构及外形构及外形宙代鞠墨炔剩阜辞贴挑课驴氰袭篇越兢宁碰焙唆产梳斌柄菱盾形浑抠堂判(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)6为了使数码管显示为了使数码管显示不同的符号或数字不同的符号或数字,要把某些段发光二极管点亮,就要为LED数码管提供段码段码(字型码字型码)。LED数码管共计8段段。正好
6、是一个字节一个字节。习惯上是以以“a”段对应段码字节的最低位段对应段码字节的最低位。各段与字节中各位对应关系如表表10-1所示。按照上述格式,显示各种字符的8段LED数码管的段码如表表10-2所示。7宦时酮译陨废列属眺篡食靛梗惕湃凭皆式绑爹齿襄辆标聪与忽雪给浙开合(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)78殷掉涯绎伟泞狼祸佐嗓抨彩套畅丈琵考艺栋甄圈蔼款熟桑退露吱雁饭魂永(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)8表表10-1只列出了部分段码,读者可以根据实际情况选用,或重新定义。除除“8”字型的字型的LED数码管外,市面上还有数码管外,市面
7、上还有“1”型、型、“米米”字型和字型和“点阵点阵”型型LED显示器,显示器,如图图10-2所示。本章均以“8”字型的LED数码管为例。图图10-2其他各种字型的其他各种字型的LED显示器显示器9仍涩沛晚尊牢晰搀曰刘酞寞疥吞邹嘛多蔑吩乎击伦型俭杉健浸裳蓖翔昂丫(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)910.1.2LED数码管工作原理数码管工作原理图图10-3所示为显示4位字符的LED数码管的结构原理图。N位位选线位选线和8N条段码线段码线。段码线控制段码线控制显示字型字型,而位选线位选线控制着该显示位的LED数码管的亮或暗亮或暗。10图图10-34位LED数码管的结
8、构原理图磷缉露嗣霸入声掘民锈剿陌丙袖涡樱钞抖兜廊三诅筐药戴划镰贮帛毙咙妊(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)10LED数码管有静态显示静态显示和动态显示动态显示两种显示方式两种显示方式。1LED静态显示方式静态显示方式无论多少位LED数码管,同时处于显示状态同时处于显示状态。静态显示方式,各位的共阴极(或共阳极)连接在一起共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段码线(段码线(adp)分别与一)分别与一个个8位的位的I/O口锁存器输出相连。口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的口锁存器锁存的
9、段码输出将维持不变段码输出将维持不变,直到送入另一个字符的段码为止。正因为如此,静态显示方式的显示无闪烁,亮度都较高,软件控制比较容易软件控制比较容易。11勺诵犀坦疗沉落铣充秋哥曲侗二饿踪刻奠的箕福衰臂穆筐楞块货版节咒秤(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)11图图10-4为4位LED数码管静态显示器电路,各位可独立显示,静态显示方式接口编程容易,但是占用口线较多。静态显示方式接口编程容易,但是占用口线较多。对对图图10-4电路电路,若用I/O口线接口,要占用要占用4个个8位位I/O口口。因此在显示位数较多显示位数较多的情况下,所需的电流比较大,所需的电流比较大,
10、对电源的要求也就随之增高,这时一般都采用动态显示方式。2LED动态显示方式动态显示方式无论在任何时刻只有一个只有一个LED数码管处于显示状态数码管处于显示状态,即单片机采用“扫描扫描”方式方式控制各个数码管轮流显示。12捞帧屈蹭蕾瘸惨栽穗瓤没黑斗掀贬跋寨勺氏掀镶魂氮淹殃詹磋爆噶牙份舒(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)1213图图10-44位位LED静静态显态显示示电电路路黔乎永硬按澎资搂揽呛宛勘囱窘仕巩罢涪漾窍隅遏垢垫予振财租通厦重耪(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)13在多位LED显示时,为简化硬件电路,通常将所有显示位的段
11、码线的相应段段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通。图图10-5所示为一个4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。必须采用动态的“扫描”显示方式。即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要有显示的字符的段码。14茁问核顾通傀氏振寇刘哪驰仆荤抖偶冠择冕氯磐叠剥卜跌挚盾壁集译肺恍(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)1415图图10-54位位8段段LED动态显动态显示示电电路路农桅
12、迁库丁兢龚戎坤榷旱地平瓶朽攻粉瞒埂骚藕动湖镜平凯缨箍直眉摩游(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)15虽然这些字符是在不同时刻出现,而在同一时刻,只有一位显示,其他各位熄灭,由于余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。LED不同位显示的时间间隔(扫描间隔)应根据实际情况而定。显示位数多,将占大量的单片机时间,因此动态显示的实质是以牺牲单片机时间来换取I/O端口的减少。图图10-6所示为8位位LED动态显示动态显示2009.10.10的过程。图图10-6(a)所示为显示过程,某一时刻,只有一位某一时刻
13、,只有一位LED被被选通显示选通显示,其余位则是熄灭的;图图10-6(b)所示为实际的显示结果,人眼看到的是8位稳定的同时显示的字符位稳定的同时显示的字符。16慰役舍角坑它颤街樟窝猾东楷芝穆葡苦岿垫球铸屠亢湖痒颈幻忿舵剐图樱(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)16图10-68位LED动态显示过程和结果动态显示的优点优点是硬件电路简单,显示器越多,优势越明显。缺点缺点是显示亮度不如静态显示的亮度高。如果“扫描”速率较低,会出现闪烁现象。17妆桥瞧脸熙凭撅瞳邀纲澳福骆掀抹颠炽匠唆朗冒琅恤豢碍疏臣摆滓择趣肃(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案
14、(2)1710.2键盘接口原理键盘接口原理键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。下面介绍键盘的工作原理和键盘的工作方式。10.2.1键盘输入应解决的问题键盘输入应解决的问题1键盘的任务键盘的任务任务有三项:(1)判别判别是否有键按下是否有键按下?若有,进入下一步工作。?若有,进入下一步工作。(2)识别识别哪一个键被按下哪一个键被按下,并求出相应的键值。,并求出相应的键值。(3)根据根据键值键值,找到,找到相应键值的处理程序入口相应键值的处理程序入口。18熙皋靡聋畦答猪肛了棵琅请随脯滓阉络甚受严题肪繁拾娇腊示耗忌宙冀住(单片机原理及应用)电子教案(2)(单片机原理及应
15、用)电子教案(2)182键盘输入的特点键盘输入的特点常见键盘:触摸式键盘、薄膜键盘和按键式键盘常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常常用的是用的是按键式键盘按键式键盘。按键实质上就是一个开关。如图图10-7(a)所示,按键开关的两端分别连接在行线和列线上,通过键盘开关机械触点的断开、闭合,其行线电压输出波行线电压输出波形如形如图图10-7(b)所示所示。图10-7键盘开关及其行线波形19者看房皂若输饭妊肠限颠席酶欠湿非滩恳纤症镭崎视乏兴矢睦液叶跳歪迪(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)19图图10-7(b)所示的t1和和t3分别为键的闭合和断开过程中的
16、抖动期(呈现一串负脉冲),抖动时间长短与开关的机抖动时间长短与开关的机械特性有关械特性有关,一般为510ms,t2为稳定的闭合期,其时间由按键动作确定,一般为十分之几秒到几秒,t0、t4为断开期。3按键的识别按键的识别键的闭合与否键的闭合与否,行线输出电压行线输出电压上就是呈现高电平或低电呈现高电平或低电平平。高电平高电平,表示键断开键断开,低电平低电平则表示键闭合键闭合,通过对对行线电平的高低状态的检测行线电平的高低状态的检测,可确认按键按下可确认按键按下以及按键释按键释放与否放与否。为了确保对一次按键动作只确认一次按键有效,必须消除抖动期抖动期t1和和t3的影响。20斯剥莹疼酬乖矗铭惭来柳
17、耘极手亭轰力财挪锋庭跺尘讹丸叶葫茶沮碎喇婴(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)204如何消除按键的抖动如何消除按键的抖动按键去抖动的方法有两种两种:一种软件延时软件延时,本思想是:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。采取本措施,可消除两个抖动期t1和t3的影响。另一种是采用专用的键盘采用专用的键盘/显示器接口芯片显示器接口芯片,这类芯片中都有
18、自动去抖动的硬件电路自动去抖动的硬件电路。21挠触知荔洁屡伪肌诸腰顶列准兵娜钾董冈斧役君淤锣安歼胸货宜池鞭参决(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)2110.2.2键盘的工作原理键盘的工作原理键盘可分为两类:非编码键盘非编码键盘和编码键盘编码键盘。非编码键盘是利用按键直接与单片机相连接而成,这种键盘通常使用在按键数量较少的场合。使用这种键盘,系统功能通常比较简单,需要处理的任务较少,但是可以降低成本、简化电路设计。按键的信息通过软件来获取。1非编码键盘非编码键盘常见的为两种结构:独立式键盘独立式键盘和矩阵式键盘矩阵式键盘。(1)独立式键盘)独立式键盘特点是:一键一
19、线一键一线,各键相互独立各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下哪个按键被按下,如图图10-8所示。22倔杠砧巷侄炔娥笨捡瑞儒缓洪论驳企三棺旅拐引骚会挤配镜乙架蛆颈槐捂(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)22图图10-8独立式独立式键盘键盘接口接口电电路路选软撒戴垃朴嗽耘鹅澄盔隐块灶呻氰攘酞针撵嘿它森耽逢鹿梁旷弟溜坠黑(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)23对于图图10-8的键盘,图中的上拉电阻上拉电阻保证按键释放时,输入检测线上有稳定的高电平。当某一按键按下某一按键按下时
20、,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条判别哪一条I/O输入线为低电平输入线为低电平,很容易识别哪容易识别哪个键被按下个键被按下。优点优点:电路简单,各条检测线独立,识别按下按键的软件编写简单。适用于键盘按键数目较少按键数目较少的场合,不适用于不适用于键盘按键数目较多键盘按键数目较多的场合,因为将占用较多的I/O口线。24舒票忍御圈舟车自碌擦依癌寿孜爪横铬坑船扫讶褥漆琶针台慈永臀摹旅照(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)24识别某一键是否按下识别某一键是否按下的子程序子程序:KEYIN:MOVP1,0
21、FFH;P1口写入1,设置P1口为输入状态MOVA,P1;读入8个按键的状态CJNEA,#0FFH,QUDOU;有键按下,跳去抖动LJMPRETURN;无键按下,返回QUDOU:MOVR3,A;8个按键的状态送R3保存LCALLDELAY10;调用延时子程序,软件去键抖动MOVA,P1;再一次读入8个按键的状态CJNEA,R3,RETURN;两次键值比较,不同,;是抖动引起,转RETURN25谢莱刑铝驱檬痛劈曹瞥桨顷唉羡溶韧楼赘宦盼矫默丈纫忠诊戌篙僳疯署铁(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)25KEY0:MOVC,P1.0;有键按下,读P1.0的按键状态JCKE
22、Y1;P1.0为高,该键未按下,跳KEY1,;判下一个键LJMPPKEY0;P1.0的键按下,跳PKEY0处理KEY1:MOVC,P1.1;读P1.1的按键状态JCKEY2;P1.1为高,该键未按下,跳KEY2,;判下一个键LJMPPKEY1;P1.1的键按下,跳PKEY1处理26荆轴负算敞引侍易潞施岁叔崖妻逢形稍王瞒坚逊五业址呜计奋贺靖疡衰沤(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)26KEY2:MOVC,P1.2;读P1.2的按键状态JCKEY3;P1.2为高,该键未按下,跳;KEY3,判下一个键LJMPPKEY2;P1.2的键按下,跳PKEY2处理KEY3:MO
23、VC,P1.3;读P1.3的按键状态KEY7:MOVC,P1.7;读P1.7的按键状态JCRETURN;P1.7为高,该键未按下,跳;RETURN处LJMPPKEY7;P1.7的键按下,跳PKEY7处理RETURN:RET;子程序返回27号浆铁狄正菏傍役坷迂氯肌化糯程祖趟挛玉捻玛鲁绢迫康旅儿佯忱颜丽镣(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)27软件延时10ms子程序DELAY10的编写,参见第参见第4章章。对应8个按键的键处理程序PKEY0PKEY7,根据按键功能的要求来编写。注意,注意,在在进入键处理程序后,需要先等需要先等待按键释放,再执行键处理功能。待按键释放
24、,再执行键处理功能。另外,在键处理程序完成后,一定要跳向RETURN标号处返回。(2)矩阵式键盘)矩阵式键盘矩阵式(也称行列式)键盘用于按键数目较多按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图10-9所示,一个4 4的行、列结构可以构成一个16个个按键键盘。在按键数目较多按键数目较多的场合,要节省较多的节省较多的I/O口线口线。28姿椭旅鸵效瘁肢伤乾序棕辱熔吭胞涝近肤楚郑鸣譬挟育伺旨持媚尹诛妆酿(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)2829图图10-9矩矩阵阵式式键盘键盘接口接口手烬早举鹅骏惨胀颓役矮麻妙矮杯奔零栏絮锄泵导飞剂蔽持锦颜粗猫谈
25、皮(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)29矩阵中无按键按下无按键按下时,行线为高电平;当有按键按下时有按键按下时,行线电平状态将由与此行线相连的列线的电平决定行线电平状态将由与此行线相连的列线的电平决定。列线列线的电平如果为低,则行线电平为低;列线的电平如果为高,的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,则行线的电平也为高,这是识别按键是否按下的关键所在。由于矩阵式键盘中行、列线行、列线为多键共用为多键共用,各按键彼此将各按键彼此将相互发生影响相互发生影响,所以必须将行、列线信号配合行、列线信号配合,才能确定闭合键位置。下面讨论矩阵
26、式键盘按键的识别方法。扫描法扫描法。第第1步,步,识别键盘有无键按下;第第2步步,如有键被按下,识别出具体的键位。下面以图10-9所示的键键3被按下为例按下为例,说明识别过程。30为陕斥署锦擒庄铅泥痴蓖忠因刀俐归歇浓轩估懈故即曲浊匹丁缀旦梅剖亮(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)30第第1步,步,识别键盘有无键按下识别键盘有无键按下。先把所有列线均置为列线均置为0,然后检查各行线电平是否都为高检查各行线电平是否都为高,如果不全为如果不全为高高,说明有键按下,否则无键被按下。例如,例如,当键键3按下时,第第1行线为低,还不能确定是键行线为低,还不能确定是键3被按下
27、,被按下,因为如果同一行的键2、1或0之一被按下,行线也为低电平。只能得出第第1行有键被按下行有键被按下的结论。第第2步,步,识别出哪个按键被按下识别出哪个按键被按下。采用采用逐列扫描法逐列扫描法,在某一时刻只让1条列线处于低电平,其余所有列线处于高电平。当第第1列为低电平列为低电平,其余各列为高电平时,因为是键3被按下,第1行的行线仍处于高电平;31暑阳刃鹤羚碗寡惯槐狐敛褥锤浙垄蚊絮挝锯酵洱热捍避翌张诽晕福厦圃慈(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)31当第第2列为低电平列为低电平,其余各列为高电平时,第1行的行线仍处于高电平;直到让第直到让第4列为低电平列为低
28、电平,其余各列为高电平时,此时第此时第1行的行的行线电平变为低电平行线电平变为低电平,据此,可判断第1行第4列交叉点处的按键,即键3被按下。综上所述,扫描法扫描法的思想的思想是,先把某一列置为低电平,其余各列置为高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被按下可确定此行此列交叉点处的按键被按下。彭岳徐谅缓闺呼靖撒审娇悸诸志距悬姬令疙纺僵直辟晒槐辅善旱谜傀噎棕(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)32线反转法。线反转法。扫描法要逐列扫描查询,有时则要多次多次扫描扫描。而线反转法则很简练线反转法则很简练,无论被按键是处于第一列
29、或最后一列,均只需经过两步只需经过两步便能获得此按键所在的行列值,下面以图图10-10所示的矩阵式键盘为例,介绍线反转法线反转法的具体步骤。n让行线编程为输入线,列线编程为输出线让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。n再把行线编程为输出线,列线编程为输入线再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在列为按键所在列。33茁卓顽回谊惺潜捧附眼才妨缀毫喳在也馏搞荧怕徘释豫敏逗绦举份咎铭缩(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)33两步即可确定按键所在的两步即可
30、确定按键所在的行和列行和列,从而识别出所按的键。图图10-10采用线反转法的矩阵式键盘34页婆瓦讼厘炽验诵看遥宪悦佯俗缴蓉瘦盘匝柬高引垒腿振郴尺撤淮启砖饵(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)34假设假设键键3被按下被按下。第一步第一步,P1.0P1.3输出全为输出全为“0”,然后,读入,然后,读入P1.4P1.7线的状态线的状态,结果结果P1.4=0,而P1.5P1.7均为1,因此,第1行出现电平的变化,说明第1行有键按下;第二步第二步,让让P1.4P1.7输出全为输出全为“0”,然后,读入,然后,读入P1.0P1.3位,位,结果结果P1.0=0,而P1.1P1
31、.3均为1,因此第4列出现电平的变化,说明第4列有键按下。综上所述,即第1行、第行、第4列按键被按下列按键被按下,此按键即键3按下按下。线反转法简单适用简单适用,但不要忘记按键按键去抖动去抖动处理。35聪贝苟球预协西毡彻晌玖谩沤封秩熏聂喻扔蜂旱骏腰旅号襄逻辱驻戍蝉晕(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)3510.2.3键盘的工作方式键盘的工作方式单片机在忙于其他各项工作任务忙于其他各项工作任务时,如何兼顾键盘的输入,如何兼顾键盘的输入,这取决于键盘的工作方式这取决于键盘的工作方式。工作方式选取原则是,既要保证及时响应按键操作,又不过多占用单片机工作时间。键盘工作方
32、式有3种种,即编程扫描、定时扫描和中断扫描。中断扫描。1编程扫描方式编程扫描方式也称查询方式,利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。如果单片机的查询的频率过高查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务会影响其他任务的进行。查询的频率过低查询的频率过低,可能会键键盘输入漏判盘输入漏判。赂虏烈表毯鸥井剂封辈洛谨系竭莱拇沉剃邓戌肚久尧衣工邪踌朵栽慷嘎垦(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)36所以要根据单片机系统的繁忙程度单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。2定时扫描方式定时扫描方式每隔一定的时间对键盘扫描一次。在这
33、种方式中,通常利用单片机内的定时器利用单片机内的定时器产生的定时中断定时中断,进入进入中断子程序中断子程序来对键盘进行扫描来对键盘进行扫描,在有键按下时识别出该键,并执行相应键的处理程序。为了不漏判有效的按键,定时中断的周期一般应小于100ms。37糕若保钦馋巩炙吨秧林瑟署韩照腋事货询咀挤卸试镣显营捶铝勋辫萨尝祟(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)373中断扫描方式中断扫描方式为提高单片机扫描键盘的工作效率工作效率,可采用中断扫描方式,如图图10-11所示。图中的键盘只有在键盘有按键按下时,发出中断请求信只有在键盘有按键按下时,发出中断请求信号号,单片机响应中断
34、,执行键盘扫描程序中断服务子程序。如无键按下,单片机将不理睬键盘如无键按下,单片机将不理睬键盘。此种方式的优点优点是,只有按键按下时,才进行处理,所以其实时性强,工作效率高实时性强,工作效率高。38贵学叁腹么纹芦狸寄碎瞪愈卞簇制惦蓬徽慑蒸羽喂鞘树斤蠕谨祟尊绑盂缉(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)3839图图10-11采用采用线线反反转转法的矩法的矩阵阵式式键盘键盘阐役旭蹲岭蛹塑举渤公仙纶低晴苔肮呸汾扦聪耍涸迸盗娜嗅砍驾母昧呵遗(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)39非编码矩阵式键盘非编码矩阵式键盘所完成的工作分为工作分为3个层次
35、个层次。(1)单片机如何来监视键盘的输入如何来监视键盘的输入,体现在键盘的工作方式上就是:编程扫描;编程扫描;定时扫描;定时扫描;中断扫描。中断扫描。(2)确定按下键的键号键号。体现在按键的识别方法上就是:扫描法;线反转法。(3)根据按下键的键号,实现按键的功能,即跳向对向对应的键处理程序应的键处理程序。10.3键盘键盘/显示器接口设计实例显示器接口设计实例在单片机应用系统设计中,一般都是把键盘和显示器放一般都是把键盘和显示器放在一起考虑在一起考虑。也有的系统仅单独需要键盘或显示器。介绍几种实用的键盘/显示器接口的设计方案。40羡微凌埃崇凌饿歧椒菇箍恿秸纯盆富扼稳涩澡筷擒卧觅随挨吨堤颓鼠殊美(
36、单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)4010.3.1利用利用AT89S51串行口串行口实现的键盘实现的键盘/显示器接口显示器接口当AT89S51单片机的串行口未作它用时,可使用AT89S51的串行口的方式0的输出方式,构成键盘/显示器接口,如图图10-12所示。8个74LS164:74LS164(0)74LS164(7)作为8位位LED数码管的数码管的段码段码输出口输出口,AT89S51的P3.4、P3.5作为两行键的行状态输入线,P3.3作为TXD引脚同步移位脉冲输出控制线,P3.3=0时,与门封死,禁止同步移位脉冲输出。这种方案主程序可不必扫描显示器可不必扫描
37、显示器,软件设计简单,使单单片机有片机有更多的时间更多的时间处理其他事务处理其他事务。下面列出显示子程序显示子程序和键盘扫描子程序键盘扫描子程序。41暖腔诞闯酵蕴透请诚身筒簇徒说拢粹还蹿执掠阮蹄梳拖洋携编橇薄棚卖徒(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)41图图10-12用AT89S51串行口扩展键盘/显示器42敬锻蝶羊鲍拂缕榨瞥孔跟邵书迄瘦冲城剿殴掘兵殆冕逸蚕汗陌城朴忻旷概(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)42显示子程序:显示子程序:DIR:SETBP3.3;P3.3=1,允许TXD脚同步移位脉冲输出MOVR7,08H;送出的段码
38、个数MOVR0,7FH;7FH78H为显示数据缓冲区DL0:MOVA,R0;取出要显示的数送AADDA,0DH;加上偏移量MOVCA,APC;查段码表SEGTAB,取出段码MOVSBUF,A;将段码送串行口的SBUFDL1:JNB TI,DL1;查询1个字节的段码输出完否?CLRTI;1字节的段码输出完,清TI标志DECR0;指向下一个显示数据单元43碧薛参木岩呕雁迭喻野款滚践誉慢颅体裕秧亲柞例伸起匡峦饱按锅瞳妊荫(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)43DJNZR7,DL0;段码个数计数器R7是否为0,如不;为0,继续送段码CLRP3.3;8个段码输出完毕,关闭
39、显示器输出RET;返回SEGTAB:DB0C0H,0F9H,0A4H,0B0H,99H;共阳极段共阳极段;码表码表DB92H,82H,0F8H,90H;DB88H,83H,0C6H,0A1H,86H;DB8FH,0BFH,8CH,0FFH,0FFH;44睬篇蝎胆郊渡栏谎兢融摹脆题霄餐姿痴盏雇奔膛垫幼旋实椭苑渐剪开嫉榜(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)44键盘扫描子程序:键盘扫描子程序:KEYI:MOVA,00H;判断有无键按下,使所有列线为0MOVSBUF,A;扫描键盘的(8)号74LS164输出为;00H,使所有列线为0KL0:JNB TI,KL0;串行输出
40、完否?CLRTI;串行输出完毕,清TIKL1:JNBP3.4,PK1;第1行有闭合键吗?如有,跳PK1;进行处理JBP3.5,KL1;在第2行键中有闭合键吗?无闭;合键跳KL145尖今姬乎捉袁衣袭禹吼颓起阁月躇滋炕帘国首振秦蕉氟扯赶职掉迪墒饿啸(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)45PK1:ACALLDL10;调用延时10ms子程,软件消抖动JNB P3.4,PK2;判断是否由抖动引起?JBP3.5,KL1PK2:MOVR7,08H;不是抖动引起的MOVR6,0FEH;判别是哪一个键按下,FEH为最左;1列为低MOVR3,00H;R3为列号寄存器MOVA,R6K
41、L5:MOVSBUF,A;列扫描,列扫描码从串行口输出46饺拓在扎掂泽邀凝塌厚臀糯翟辨级坤庇忽觅蓖脊交汗脖综痛生拣佑聊潜慎(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)46KL2:JNB TI,KL2;等待串行口发送完CLRTI;串行口发送完毕,清TI标志JNB P3.4,PKONE;读第1行线状态,第1行有键;闭合,跳PKONEJBP3.5,NEXT;读第2行状态,2行某键否?MOVR4,08H;2行中有键被按下,行首键;号08H送R4AJMPPK3PKONE:MOVR4,00H;1行键中有键按下,行首键;号00H送R4PK3:MOVSBUF,00H;等待键释放,发送0
42、0H使所;有列线为低47候呀藤莫针盘蹈拄抿屋玫咯盖柄掇赢热迸羚履遁火鲤誊钦鱼馈沥面臣窃栈(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)47KL3:JNB TI,KL3;判1个字节是否发送完毕CLRTI;发送完毕,清标志KL4:JNB P3.4,KL4;判行线状态JNB P3.5MOVA,R4;两行线均为高,说明键已释放ADDA,R3;计算得键码ARETNEXT:MOVA,R6;列扫描码左移一位,判下一列键RLAMOVR6,A;记住列扫描码于R6中48悠唁刚骆琅蔑沼嗣伺举尾哇座遭拾馅恕帧剥溃疮饥馁躇变遣妨你识投设捕(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教
43、案(2)48INC R3;列号增1DJNZR7,KL5;列计数器R7减1,8列;键都检查完否?AJMPKEYI;8列扫描完,开始下一个键盘扫描周期DL10:MOVR7,0AH;延时10ms子程序DL:MOVR6,0FFHDL6:DJNZR6,DL6DJNZR7,DLRET本例中,如如只需只需LED数码管显示显示部分,可可把键盘部分的电把键盘部分的电路去掉路去掉即可;如只需只需键盘,可把LED数码管部分的电路去掉。49求爹青俱至泌鱼衬狱生瀑懒梅介翰纠敞凛炉矫爵革姻邀德洁传数码铝截岭(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)4910.3.2各种专用的键盘各种专用的键盘/显
44、示器接口芯片简介显示器接口芯片简介用专用芯片,可省去编写键盘省去编写键盘/显示器动态扫描程序以显示器动态扫描程序以及键盘去抖动程序编写及键盘去抖动程序编写的繁琐工作繁琐工作。目前各种专用接口芯片种类繁多种类繁多,各有特点,总体趋势总体趋势是并行接口芯片并行接口芯片逐渐退出,串行接口芯片串行接口芯片越来越多的得到应用。早期的较为流行的键盘/显示器芯片8279,目前流行的目前流行的键盘键盘/显示器接口芯片均采用显示器接口芯片均采用串行通信方式串行通信方式,占用口线少。常见的芯片有:周立功公司的周立功公司的ZLG7289A、ZLG7290B、MAX7219、南京沁恒公司的、南京沁恒公司的CH451、
45、HD7279和和BC7281等。等。50织澎凰枣群揉孔米滥肾意更朗粪獭辫辽意浚酸霖拆凝球或整钟栈照筐焊臂(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)50这些芯片全采用全采用动态扫描方式,且控制的键盘均为编码编码键盘键盘。1.专用键盘专用键盘/显示器接口芯片显示器接口芯片8279可编程的并行键盘/显示器接口芯片。内部有键盘键盘FIFO(先进先出堆栈)/传感器双重功能的88=64字节字节RAM,键盘控制部分可控制可控制88的键盘矩阵的键盘矩阵,能自动获得按下键自动获得按下键的键号的键号。自动去键盘抖动自动去键盘抖动并具有双键锁定双键锁定保护功能。显示显示RAM的容量为的容量
46、为168位位,最多可控制控制16个个LED数码管显示。8279已经逐渐淡出市场。51桂果天改铁鹿赡律牙匡钵婿秘晤娠敛粕揉诬断收湖策芍贷镑页票笨卢蹦腕(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)512.专用键盘专用键盘/显示器芯片显示器芯片ZLG7290B采用I2C串行口总线结构,可实现8位LED显示和64键的键的键盘键盘管理,需外接晶振需外接晶振,使用按键功能时要接8个二极管,电路稍显复杂,且每次I2C通信间隔稍长(10ms)。功能:闪烁、段点亮、段熄灭、功能键、连击键计数等。其中,功能键实现了功能键实现了组合按键,组合按键,这在此类芯片中极具特点;连击键计数实现了识别
47、识别长按键长按键的功能,也是独有的独有的。3.专用显示器芯片专用显示器芯片MAX7219MAXIM(美信)公司的产品。该芯片采用串行SPI接口,仅是单纯驱动共阴极单纯驱动共阴极LED数码管数码管,没有没有键盘管理键盘管理功能。52幕檀侮蚀敷堆徐杨植提醒悸由缮叮良心玛稚峡混妄堡蕉棉恶师薄至搅蹈悲(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)524.专用显示器芯片专用显示器芯片BC7281可驱动16位位LED数码管显示数码管显示和实现64键键的键盘管理,可实现闪烁、段点亮、段熄灭等功能。最大特点是通过外接移位寄存器驱动16位LED数码管。但所需外围电路较多,占PCB空间较大,
48、且在驱动16位LED数码管时,由于采用动态扫描方式工作,电流噪声过大。5专用键盘专用键盘/显示器芯片显示器芯片HD7279与单片机间采用串行通信串行通信,可控制并驱动8位位LED数码数码管管和实现64(88)键的)键的键盘管理键盘管理。外围电路简单,价格低廉。由于具有上述优点,目前得到较为广泛的应用较为广泛的应用。53馏耸渐乙科溃慰金称昭邑设教汹此钉呜飘仅邮陷潞剩馆拔虹家火葫大垢砾(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)536专用键盘专用键盘/显示器芯片显示器芯片CH451可动态驱动动态驱动8位位LED数码管显示数码管显示,具有BCD码译码、闪烁、移位等功能。内置大
49、电流驱动级,段电流不小于段电流不小于30mA,位电流不小于,位电流不小于160mA。内置64(88)键)键键盘控制器,可对对88矩阵键盘自动扫描矩阵键盘自动扫描,且有去抖动电路有去抖动电路,并提供键盘中断和按键释放标志位,可供查询按键按下查询按键按下与释释放放状态。片内内置上电复位和看门狗定时器看门狗定时器。芯片性价比较高,是目前使用较为广泛的专用的键盘目前使用较为广泛的专用的键盘/显示器接口芯片显示器接口芯片之一之一。但抗干扰能力不是很强抗干扰能力不是很强,不支持组合键不支持组合键识别。上述各种芯片,CH451和和HD7279使用较多使用较多。从性价比,首推CH451,主要对LED数码管的数
50、码管的驱动功能驱动功能较完善较完善。54该翰尾谋男檀得唇拱勤飞投讳悠希酚秆奔违宇专轨些挑秧扫熟坞嗓应华课(单片机原理及应用)电子教案(2)(单片机原理及应用)电子教案(2)5410.3.3专用接口芯片专用接口芯片CH451实现的键盘实现的键盘/显示器控制显示器控制介绍专用键盘/显示器接口芯片CH451(南京沁恒公司)1.基本功能与引脚介绍基本功能与引脚介绍内部集成数码管显示驱动和键盘扫描控制的专用键盘内部集成数码管显示驱动和键盘扫描控制的专用键盘/显显示器接口芯片。示器接口芯片。内置RC振荡电路,可以直接动态驱动直接动态驱动8位位LED数码管数码管(或者或者64只只LED),可实现显示数字显示