《噶米MCS-51第10章MCS-51与键盘和显示器的接口设计-(2)说课讲解.ppt》由会员分享,可在线阅读,更多相关《噶米MCS-51第10章MCS-51与键盘和显示器的接口设计-(2)说课讲解.ppt(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第1010章章 MCS-51 MCS-51与键盘与键盘(jinpn)(jinpn)和显和显示器的示器的 接口设计接口设计青时壬怖而双由骤宜卢泡反瑰组会盏瞪颐昌翔插缴愉瑞俐七撵腮檬阵练蓖MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第一页,共83页。10.1LED数码管的显示原理数码管的显示原理LED(LightEmittingDiode)发光二极管缩写。)发光二极管缩写。LED数码管是数码管是由发光二极管构成的。由发光二极管构成的。10.1.1LED数码管的结构数码管的结构常见的常见的
2、LED数码管为数码管为“8”字型的,共计字型的,共计8段。每一段对应一个段。每一段对应一个发光二极管。有共阳极和共阴极两种,如图发光二极管。有共阳极和共阴极两种,如图10-1所示。共阴极发光所示。共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为二极管的阴极连在一起,通常公共阴极接地。当阳极为(jwi)高电高电平时,发光二极管点亮。平时,发光二极管点亮。同样,共阳极同样,共阳极LED数码管的发光二极管的阳极连接在一起,公数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应
3、的段被显示。管被点亮,相应的段被显示。姿咨瀑挑抒察艰佳疮澜岛炭续淤宾筋笋寥彤豁贿诅晚摄等位彦藉芜邵酞谚MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二页,共83页。图图10-18段段LED数码管结构数码管结构(jigu)及外形及外形糠此锦吸邑巴瑚掐急蜜顶做你狮眠幢蟹佬瘫慷赎栏腆吗侈加啥壤函折光(zhgung)麓MCS-51第10章MCS-51与键盘和显示器的接口设计(2)MCS-51第10章MCS-51与键盘和显示器的接口设计(2)第三页,共83页。为了使数码管显示不同的符号或数字,要把
4、某些段发光为了使数码管显示不同的符号或数字,要把某些段发光二极管点亮,就要为二极管点亮,就要为LED数码管提供段码(字型码)。数码管提供段码(字型码)。LED数码管共计数码管共计8段。正好是一个字节。习惯上是以段。正好是一个字节。习惯上是以“a”段对应段对应(duyng)段码字节的最低位。各段与字节中各段码字节的最低位。各段与字节中各位对应位对应(duyng)关系如表关系如表10-1所示。所示。按照上述格式,显示各种字符的按照上述格式,显示各种字符的8段段LED数码管的段码数码管的段码如表如表10-2所示。所示。灭嗓魔画细置涉很喉嘴街咆权涸硅做即务谷舰静团焊搜咏旧誊姻沪廊墟樱MCS-51第10
5、章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第四页,共83页。骸彩啄李曼冒邪侥挎束恐横金瓢镑港讳蹈犯畔佑皱碘抄亭抱雏舍蚊抄逊性MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第五页,共83页。表表10-1只列出了部分段码,可以根据实际情况选用,或只列出了部分段码,可以根据实际情况选用,或重新定义。除重新定义。除“8”字型的字型的LED数码管外,市面上还有数码管外,市面上还有“1”型、型、“米米”字型和字
6、型和“点阵点阵(dinzhn)”型型LED显示器,显示器,如图如图10-2所示。本章均以所示。本章均以“8”字型的字型的LED数码管为例。数码管为例。图图10-2其他各种字型的其他各种字型的LED显示器显示器悟要报樊腐瘪纫泡紊笼迎趴呈娘肚瘦颓只旋侈殷淫蚤扯兴酒蓄受皆柏屏诅MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第六页,共83页。10.1.2LED数码管工作原理数码管工作原理图图10-3所示为显示所示为显示(xinsh)4位字符的位字符的LED数码管的结构原理数码管的结构原理图。图。N
7、位位选线和位位选线和8N条段码线。段码线控制显示条段码线。段码线控制显示(xinsh)字型,字型,而位选线控制着该显示而位选线控制着该显示(xinsh)位的位的LED数码管的亮或暗。数码管的亮或暗。图图10-34位位LED数码管的结构数码管的结构(jigu)原理图原理图闷党乒虚诫怠贺谰竞般惫氧土栈中承缨烈审苏少并梯剧碘菇郊味哦麓加项MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第七页,共83页。LED数码管有静态显示和动态显示两种显示方式。1LED静态显示方式 无论多少位LED数码管,同时
8、处于显示状态。静态显示方式,各位的共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段码线(adp)分别与一个8位的I/O口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。正因为如此,静态显示方式的显示无闪烁,亮度(lingd)都较高,软件控制比较容易。疼床刁宋鞘采凤釜植岛魂顿嫉着捞供蟹绩疟裙版条缚变甭弓酪砒卵吟雍箔MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第八页,共83页。图图10-4
9、为为4位位LED数码管静态显示器电路,各位可独立显数码管静态显示器电路,各位可独立显示,静态显示方式接口编程容易,但是占用口线较多。对图示,静态显示方式接口编程容易,但是占用口线较多。对图10-4电路,若用电路,若用I/O口线接口,要占用口线接口,要占用4个个8位位I/O口。因此在显示位口。因此在显示位数较多的情况下,所需的电流比较大,对电源的要求也就随之数较多的情况下,所需的电流比较大,对电源的要求也就随之增高,这时一般都采用动态显示方式。增高,这时一般都采用动态显示方式。2LED动态显示方式动态显示方式无论在任何时刻只有一个无论在任何时刻只有一个LED数码管处于显示状态数码管处于显示状态(
10、zhungti),即单片机采用,即单片机采用“扫描扫描”方式控制各个数码管轮方式控制各个数码管轮流显示。流显示。庚声努齐企河澈魁饭咖躬撕嗣散尖剧手朔拴扶鲜埔骸冶掉洼誉元宦喊谜抿MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第九页,共83页。图图10-44位位LED静态显示静态显示(xinsh)电路电路男倚钳哗餐浑虐搬乃尤咒亦守绽眩蓝这伴盗驱禽魄太骗菊嗓栓噪刹瑶耕工MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口
11、(ji ku)设计(2)第十页,共83页。在多位LED显示时,为简化硬件电路,通常将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通。图10-5所示为一个4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。必须采用(ciyng)动态的“扫描”显示方式。即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要有显示的字符的段码。拨扬捣瓢阴芯堤衷绊缀磕膨隙碟馁诬烙据哄撰拔逢嘿杀讣制蛀枢狞谗促矢MCS-51第10章MCS-51与键盘和显
12、示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第十一页,共83页。图图10-54位位8段段LED动态显示电路动态显示电路(dinl)挡在纯杭序乎搁炔躯痛赡适俞到失扒续骚耍蝉班篇髓络掘疆宜社磐腿伏如MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第十二页,共83页。虽然这些字符是在不同时刻出现,而在同一时刻,只有一位显示,其他各位熄灭,由于余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以(ky)造成“多位同时亮”的假象
13、,达到同时显示的效果。LED不同位显示的时间间隔(扫描间隔)应根据实际情况而定。显示位数多,将占大量的单片机时间,因此动态显示的实质是以牺牲单片机时间来换取I/O端口的减少。图10-6所示为8位LED动态显示2009.10.10的过程。图10-6(a)所示为显示过程,某一时刻,只有一位LED被选通显示,其余位则是熄灭的;图10-6(b)所示为实际的显示结果,人眼看到的是8位稳定的同时显示的字符。因埠丛谜语氟姓瞳概侦腕琶减诺晦胎差诡顺身鹃工亨拯哇胳鳖褒姐值盎悍MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的
14、接口设计(2)第十三页,共83页。图10-6 8位LED动态显示过程和结果 动态显示的优点是硬件电路简单,显示器越多,优势越明显。缺点是显示亮度(lingd)不如静态显示的亮度(lingd)高。如果“扫描”速率较低,会出现闪烁现象。淡渣槛愧维笼上耻种绵迈岸压谬盖些摹原吸熟凡摈浚撅攘荷县系掂顶潦狭MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第十四页,共83页。静态(jngti)显示示例:吃噎押狱菏磊锦从栋垄韧儿麦樟淋蹄散痒原灌漓迫废洁屑纷期沦况竖驹跑MCS-51第10章MCS-51与键盘和
15、显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第十五页,共83页。ORG0000HAJMPSTARTORG0100HSTART:MOVSP,#60HMOVDPTR,#SEG01MOVR2,#0LOOP:CLRAMOVCA,A+DPTRMOVP1,AMOVP3,AINCDPTRINCR2ACALL DELAYCJNER2,#10,LOOPMOVDPTR,#SEG01MOVR2,#0AJMPLOOPDELAY:MOVR5,#5D2:MOVR6,#200D1:MOVR7,#250DJNZR7,$DJNZR6,D1DJNZR5,D2RE
16、TSEG01:DB0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8H,80H,90HEND墙曾毋降朴汲卡舆幻常谱楞胰仕荒啄苔妓飘狄豆戍卞喜彰烛鬼耽哟怖滨圆MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第十六页,共83页。动态显示示例(shl):坯镁紊喘拐壹蕴十商镍垃吊越屏畴煤酵阔雇料侯舍竹慈坯俗峻吻呜克予笔MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第十七页
17、,共83页。ORG0000HSTART:MOVDPTR,#TABLE;DPTR指向段码表首地址指向段码表首地址MOVR7,#07FH;设置动态显示扫描设置动态显示扫描(somio)初值初值S1:MOVA,#00HMOVCA,A+DPTR;查表取得段码查表取得段码CJNEA,#01H,S2;判断段码是否为结束符判断段码是否为结束符SJMPSTARTS2:MOVB,A;段码送段码送B保存保存MOVA,R7RLA;显示位扫描显示位扫描(somio)值左移值左移1位位MOVP3,A;显示位扫描显示位扫描(somio)值送值送P3口口MOVR7,AMOVP0,B;显示段码送显示段码送P0显示显示LCAL
18、LDELAY;延时延时INCDPTRSJMPS1DELAY:MOVR5,#20;延时子程序延时子程序D2:MOVR6,#20D1:NOPDJNZR6,D1DJNZR5,D2RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;段码表段码表DB01H;结束符结束符END池丈舱园保寿锰乍府邪歹勇烃捷除认纬让脏军耙屏及跃衫规阵讲素抬腹偿MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第十八页,共83页。10.2键盘接口原理键盘接口原理键盘具有向单片机输入数据、命令等
19、功能,是人与单片键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。机对话的主要手段。10.2.1键盘输入应解决键盘输入应解决(jiju)的问题的问题1键盘的任务键盘的任务任务有三项:任务有三项:(1)判别是否有键按下?若有,进入下一步工作。判别是否有键按下?若有,进入下一步工作。(2)识别哪一个键被按下,并求出相应的键值。识别哪一个键被按下,并求出相应的键值。(3)根据键值,找到相应键值的处理程序入口。根据键值,找到相应键值的处理程序入口。祭泌躯引葬霉药鸯赞矿的祸羔癌汹捐库圈沛馆没奴匆兢蚜甸馋各敝旷珠都MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)
20、MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第十九页,共83页。2键盘键盘(jinpn)输入的特点输入的特点常见键盘常见键盘(jinpn):触摸式键盘:触摸式键盘(jinpn)、薄膜键盘、薄膜键盘(jinpn)和按键式键盘和按键式键盘(jinpn),最常用的是按键式键盘,最常用的是按键式键盘(jinpn)。按键实质上就是一个开关。如图。按键实质上就是一个开关。如图10-7(a)所示,)所示,按键开关的两端分别连接在行线和列线上,通过键盘按键开关的两端分别连接在行线和列线上,通过键盘(jinpn)开关机械触点的断开、闭合,其行线电压输出波形开关机械触点的断开、闭合
21、,其行线电压输出波形如图如图10-7(b)所示。)所示。图图10-7键盘键盘(jinpn)开关及其行线波开关及其行线波形形煎野麻喊厘礼也锈近雇沦宋冕包搅算炊吓食僻滁究穆柴吴泣拟袖芭岁位笑MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第二十页,共83页。图图10-7(b)所示的)所示的t1和和t3分别为键的闭合和断开过程中的抖动分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,一期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,一般为般为510ms
22、,t2为稳定的闭合期,其时间由按键动作确定,一般为稳定的闭合期,其时间由按键动作确定,一般为十分之几秒到几秒,为十分之几秒到几秒,t0、t4为断开期。为断开期。3按键的识别按键的识别键的闭合与否,行线输出电压键的闭合与否,行线输出电压(diny)上就是呈现高电平或低上就是呈现高电平或低电平。高电平,表示键断开,低电平则表示键闭合,通过对行线电电平。高电平,表示键断开,低电平则表示键闭合,通过对行线电平的高低状态的检测,可确认按键按下以及按键释放与否。为了确平的高低状态的检测,可确认按键按下以及按键释放与否。为了确保对一次按键动作只确认一次按键有效,必须消除抖动期保对一次按键动作只确认一次按键有
23、效,必须消除抖动期t1和和t3的影的影响。响。贬哇咳爆辣啃姑汁券篙箱飞括竞年检到活人(hu rn)昧适屏伎棉涝囤脖痪木附查熔MCS-51第10章MCS-51与键盘和显示器的接口设计(2)MCS-51第10章MCS-51与键盘和显示器的接口设计(2)第二十一页,共83页。4如何消除按键的抖动如何消除按键的抖动按键去抖动的方法有两种:按键去抖动的方法有两种:一种软件延时,本思想是:在检测到有键按下时,该键一种软件延时,本思想是:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时所对应的行线为低电平,执行一段延时10ms的子程序后,的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则
24、确认确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时平,执行一段延时10ms的子程序后,检测该行线为高电平,的子程序后,检测该行线为高电平,说明按键确实已经松开。采取本措施说明按键确实已经松开。采取本措施(cush),可消除两个,可消除两个抖动期抖动期t1和和t3的影响。的影响。另一种是采用专用的键盘另一种是采用专用的键盘/显示器接口芯片,这类芯片显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。中都有自动去抖动的硬件电路。易绝朝陌蓑拙叼穿倾尹肉忘褒冀贡惑样洛衷枪炳沾氟
25、掇番塘攒氨涯冤训招MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二十二页,共83页。10.2.2键盘的工作原理键盘的工作原理键盘可分为两类:非编码键盘和编码键盘。键盘可分为两类:非编码键盘和编码键盘。非编码键盘是利用按键直接与单片机相连接而成,这种键盘通非编码键盘是利用按键直接与单片机相连接而成,这种键盘通常使用在按键数量较少的场合。使用这种键盘,系统功能通常比较常使用在按键数量较少的场合。使用这种键盘,系统功能通常比较简单,需要处理的任务较少,但是可以简单,需要处理的任务较少,但是可以
26、(ky)降低成本、简化电路降低成本、简化电路设计。按键的信息通过软件来获取。设计。按键的信息通过软件来获取。非编码键盘非编码键盘常见的为两种结构:独立式键盘和矩阵式键盘。常见的为两种结构:独立式键盘和矩阵式键盘。(1)独立式键盘)独立式键盘特点是:一键一线,各键相互独立,每个键各接一条特点是:一键一线,各键相互独立,每个键各接一条I/O口线,口线,通过检测通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下,如输入线的电平状态,可容易地判断哪个按键被按下,如图图10-8所示。所示。谦么颗触地舟斡惜修传蛮执占迂晌另采骚聋豁稗咐伺澜丘罕错避都酣靡垒MCS-51第10章MCS-51与键盘(ji
27、npn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二十三页,共83页。图图10-8独立式键盘接口独立式键盘接口(jiku)电路电路董评藻锐拷挫哇耪迂瓣父坦傀园顺纪怪队雪狂谷响潭杂毋铬能流良征刑侗MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第二十四页,共83页。对于图10-8的键盘,图中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平。当某一按键按下时,对应(duyng)的检测线就变成了低电平,与其他按键相连的检测线仍为高电平
28、,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。优点:电路简单,各条检测线独立,识别按下按键的软件编写简单。适用于键盘按键数目较少的场合,不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线。踪漂漫碗樊齐瘤瓢衬俐灼众蹈从滴遍痕效淑宠着棠草乱完咽舶氛塌贝硬射MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二十五页,共83页。识别某一键是否按下的子程序:识别某一键是否按下的子程序:KEYIN:MOVP1,0FFH;P1口写入口写入1,设置,设置P1口
29、为输口为输入状态入状态MOVA,P1;读入;读入8个按键的状态个按键的状态CJNE A,#0FFH,QUDOU;有键按下,跳去抖动;有键按下,跳去抖动(dudng)LJMP RETURN;无键按下,返回;无键按下,返回QUDOU:MOVR3,A;8个按键的状态送个按键的状态送R3保存保存LCALLDELAY10;调用延时子程序,软件去键;调用延时子程序,软件去键抖动抖动(dudng)MOVA,P1;再一次读入;再一次读入8个按键的状态个按键的状态CJNE A,R3,RETURN;两次键值比较,不同,;两次键值比较,不同,;是抖动;是抖动(dudng)引起,转引起,转RETURN搓蓬诚美惠白套盼
30、县忻少泰凉裤舔与牺患摧练恍等顿血涝兰炕蚕菜匡措壬MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二十六页,共83页。KEY0:MOVC,P1.0;有键按下,读P1.0的按键状态JCKEY1;P1.0为高,该键未按下,跳KEY1,;判下一个(y)键LJMPPKEY0;P1.0的键按下,跳PKEY0处理KEY1:MOVC,P1.1;读P1.1的按键状态JCKEY2;P1.1为高,该键未按下,跳KEY2,;判下一个(y)键LJMPPKEY1;P1.1的键按下,跳PKEY1处理蔚袖几井吨钞陆诊阑话
31、仑牢躁皋官迪鱼束犀斜泛奠辐遍恼里氖庄锌弦变诱MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第二十七页,共83页。KEY2:MOVC,P1.2;读P1.2的按键状态JCKEY3;P1.2为高,该键未按下,跳;KEY3,判下一个键LJMPPKEY2;P1.2的键按下,跳PKEY2处理(chl)KEY3:MOVC,P1.3;读P1.3的按键状态KEY7:MOVC,P1.7;读P1.7的按键状态JCRETURN;P1.7为高,该键未按下,跳;RETURN处LJMPPKEY7;P1.7的键按下,跳P
32、KEY7处理(chl)RETURN:RET ;子程序返回霖圭绳被毛装(mozhung)纶箕嗡碘芳咨托低交端咀沮撕狄沫狡领顺膘沃浅慨请碍抑执MCS-51第10章MCS-51与键盘和显示器的接口设计(2)MCS-51第10章MCS-51与键盘和显示器的接口设计(2)第二十八页,共83页。对应8个按键的键处理程序PKEY0 PKEY7,根据按键功能的要求来编写。注意,在进入键处理程序后,需要先等待按键释放,再执行键处理功能。另外,在键处理程序完成后,一定(ydng)要跳向RETURN标号处返回。(2)矩阵式键盘 矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点
33、上。如图10-9所示,一个44的行、列结构可以构成一个16个按键键盘。在按键数目较多的场合,要节省较多的I/O口线。钟恤贯纪节伐召傍续烈淖冶返磅湖戍懂瘤组至媒果袄羹烯进凳四受耍是咐MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第二十九页,共83页。图图10-9矩阵式键盘矩阵式键盘(jinpn)接口接口址异丢政砖贝仅厄阿窗输墟力姑带栓出伴缕厌独证老辫骂稗鸡朔镰惊抑谣MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口
34、(ji ku)设计(2)第三十页,共83页。矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。由于矩阵式键盘中行、列线为多键共用,各按键彼此将相互发生影响,所以必须将行、列线信号配合,才能确定(qudng)闭合键位置。下面讨论矩阵式键盘按键的识别方法。扫描法。第1步,识别键盘有无键按下;第2步,如有键被按下,识别出具体的键位。下面以图10-9所示的键3被按下为例,说明识别过程。砾瞪耘磊飞翱伍晋拔咏裕希归娇辨沿迈商聚药榔皿甭逻衅趁手蹬丢翻报剖M
35、CS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十一页,共83页。第第1步,识别键盘步,识别键盘(jinpn)有无键按下。先把所有列线均置有无键按下。先把所有列线均置为为0,然后检查各行线电平是否都为高,如果不全为高,说明有键,然后检查各行线电平是否都为高,如果不全为高,说明有键按下,否则无键被按下。按下,否则无键被按下。例如,当键例如,当键3按下时,第按下时,第1行线为低,还不能确定是键行线为低,还不能确定是键3被按下,被按下,因为如果同一行的键因为如果同一行的键2、1或或0之一被按下,
36、行线也为低电平。只之一被按下,行线也为低电平。只能得出第能得出第1行有键被按下的结论。行有键被按下的结论。第第2步,识别出哪个按键被按下。采用逐列扫描法,在某一时步,识别出哪个按键被按下。采用逐列扫描法,在某一时刻只让刻只让1条列线处于低电平,其余所有列线处于高电平。条列线处于低电平,其余所有列线处于高电平。当第当第1列为低电平,其余各列为高电平时,因为是键列为低电平,其余各列为高电平时,因为是键3被按下,被按下,第第1行的行线仍处于高电平;行的行线仍处于高电平;侨因凋桥伸友砌最贿霓商贼胃脊冷绷绚卉觅霹锈腕粟迅纯涯器犀狞臭瓶主MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设
37、计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第三十二页,共83页。当第2列为低电平,其余各列为高电平时,第1行的行线仍处于高电平;直到让第4列为低电平,其余各列为高电平时,此时第1行的行线电平变为低电平,据此,可判断第1行第4列交叉点处的按键,即键3被按下。综上所述,扫描(somio)法的思想是,先把某一列置为低电平,其余各列置为高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被按下。斡搜闪酷抵漾亭矾昆氮舆霄函狄妮课晚窗钥砷寨过筹刻矽眯敷暴完和葛废MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(
38、2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十三页,共83页。线反转法。扫描法要逐列扫描查询,有时则要多次扫描。而线反转法。扫描法要逐列扫描查询,有时则要多次扫描。而线反转法则很简练,无论线反转法则很简练,无论(wln)被按键是处于第一列或最后一列,被按键是处于第一列或最后一列,均只需经过两步便能获得此按键所在的行列值,下面以图均只需经过两步便能获得此按键所在的行列值,下面以图10-10所示所示的矩阵式键盘为例,介绍线反转法的具体步骤。的矩阵式键盘为例,介绍线反转法的具体步骤。让行线编程为输入线,列线编程为输出线,并使输出线输出为让行线编程为输入线,列线
39、编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。全低电平,则行线中电平由高变低的所在行为按键所在行。再把行线编程为输出线,列线编程为输入线,并使输出线输出再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在列为按键所在列。为全低电平,则列线中电平由高变低所在列为按键所在列。仿各预供烂靛离亚芜握扼捡危喇帛篇昼绣忍沛膛稠途塌逐陶驰浇泵鄂醛焙MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十四页,共83页。两步即可确定按键
40、所在的行和列,从而识别出所按的键。两步即可确定按键所在的行和列,从而识别出所按的键。图图10-10采用线反转采用线反转(fnzhun)法的矩法的矩阵式键盘阵式键盘啸芜转辖耽验衔邓教返窿傲佬烁架窜绢班脾逐睬括现恼光漂皂许鼻何涝淄MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第三十五页,共83页。假设键假设键3被按下。被按下。第一步,第一步,P1.0P1.3输出全为输出全为“0”,然后,读入,然后,读入P1.4P1.7线的状态,结果线的状态,结果P1.4=0,而,而P1.5P1.7均为均为1,
41、因此,第,因此,第1行行出现出现(chxin)电平的变化,说明第电平的变化,说明第1行有键按下;行有键按下;第二步,让第二步,让P1.4P1.7输出全为输出全为“0”,然后,读入,然后,读入P1.0P1.3位,结果位,结果P1.0=0,而,而P1.1P1.3均为均为1,因此第,因此第4列出现列出现(chxin)电平的变化,说明第电平的变化,说明第4列有键按下。列有键按下。综上所述,即第综上所述,即第1行、第行、第4列按键被按下,此按键即键列按键被按下,此按键即键3按下。按下。线反转法简单适用,但不要忘记按键去抖动处理。线反转法简单适用,但不要忘记按键去抖动处理。拥利盟永美钉趋起撰摆颤驮安僧瓮列
42、厉分对搽卸收呻弓亚慕拍厉民纸戌疲MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十六页,共83页。10.2.3键盘的工作方式键盘的工作方式单片机在忙于其他各项工作任务时,如何兼顾键盘的输入,单片机在忙于其他各项工作任务时,如何兼顾键盘的输入,这取决于键盘的工作方式。工作方式选取原则是,既要保证及这取决于键盘的工作方式。工作方式选取原则是,既要保证及时响应按键操作,又不过多占用单片机工作时间。键盘工作方时响应按键操作,又不过多占用单片机工作时间。键盘工作方式有式有3种,即编程扫描、定时扫描
43、和中断扫描。种,即编程扫描、定时扫描和中断扫描。1编程扫描方式编程扫描方式也称查询方式,利用单片机空闲时,调用键盘扫描子程序,也称查询方式,利用单片机空闲时,调用键盘扫描子程序,反复反复(fnf)扫描键盘。扫描键盘。如果单片机的查询的频率过高,虽能及时响应键盘的输入,如果单片机的查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务的进行。查询的频率过低,可能会键盘输但也会影响其他任务的进行。查询的频率过低,可能会键盘输入漏判。所以要根据单片机系统的繁忙程度和键盘的操作频率,入漏判。所以要根据单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。来调整键盘扫描的频率。赃绒烃松钡叙及缘
44、障宦脂芝煤尘情枝受数坟礼台嚎谱瓤甄究碌搽陶端悦鸦MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十七页,共83页。编程扫描编程扫描(somio)程序程序框图框图 消除按键抖动、键闭合(b h)一次仅进行一次按键的处理。炙耸崇宛槛脾湾振办攘帘诡讥疚赁冉亲低忿泊短卖枫牟唐韵践岭蛤搐扛肋MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第三十八页,共83页。2定时扫描方式定时扫描方式每隔一定的
45、时间对键盘每隔一定的时间对键盘(jinpn)扫描一次。在这种方式中,扫描一次。在这种方式中,通常利用单片机内的定时器产生的定时中断,进入中断子程序来通常利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘对键盘(jinpn)进行扫描,在有键按下时识别出该键,并执行相进行扫描,在有键按下时识别出该键,并执行相应键的处理程序。为了不漏判有效的按键,定时中断的周期一般应键的处理程序。为了不漏判有效的按键,定时中断的周期一般应小于应小于100ms。圭丰镊甭呈甚臆明疏撅垒鞘岂慧龙章过稠亏校烃耿前乍扯席啊屹剁崔汕债MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-5
46、1第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第三十九页,共83页。F1:去除:去除(qch)抖动标志位抖动标志位F2:已识别完按键标志位:已识别完按键标志位每每10ms定时中断。定时中断。定时定时(dnsh)扫描程序扫描程序框图框图缓涟峭拭推伏塘哨虐违铜踪德箍扭絮搽区豪榷驮析屯搀寡枚寐园喉倍估砚MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第四十页,共83页。3中断扫描方式中断扫描方式为提高单片机扫描键盘为提高单片机扫描键盘(jinpn)的工作效率,可采用的工作效率,
47、可采用中断扫描方式,如图中断扫描方式,如图10-11所示。所示。图中的键盘图中的键盘(jinpn)只有在键盘只有在键盘(jinpn)有按键按下有按键按下时,发出中断请求信号,单片机响应中断,执行键盘时,发出中断请求信号,单片机响应中断,执行键盘(jinpn)扫描程序中断服务子程序。如无键按下,单片机扫描程序中断服务子程序。如无键按下,单片机将不理睬键盘将不理睬键盘(jinpn)。此种方式的优点是,只有按键按下时,才进行处理,所此种方式的优点是,只有按键按下时,才进行处理,所以其实时性强,工作效率高。以其实时性强,工作效率高。暮属妻喷樟慈镭亚盏糯蛾蕉次受携拷博木氓纳耍高邮分遭倘渝皱丈围遵针MCS
48、-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)第四十一页,共83页。图图10-11采用中断扫描方式采用中断扫描方式(fngsh)的矩阵式键盘的矩阵式键盘诸究秤贼酞漠漆踞缉酞咙懒店咖皇岭橙苔绸媚巷涕疙斗敞熙佛君竣附叼裙MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)MCS-51第10章MCS-51与键盘和显示器的接口(ji ku)设计(2)第四十二页,共83页。矩阵式键盘所完成的工作分为矩阵式键盘所完成的工作分为3个层次。个层次。(1)单片机如何来监视键盘的输入,体现在
49、键盘的工)单片机如何来监视键盘的输入,体现在键盘的工作方式上就是:作方式上就是:编程扫描;编程扫描;定时扫描;定时扫描;中断扫描。中断扫描。(2)确定按下键的键号。体现在按键)确定按下键的键号。体现在按键(njin)的识别方的识别方法上就是:法上就是:扫描法;扫描法;线反转法。线反转法。(3)根据按下键的键号,实现按键)根据按下键的键号,实现按键(njin)的功能,即的功能,即跳向对应的键处理程序。跳向对应的键处理程序。输伯谆鞘攘假狠到犬撞视榷蹭失食根顾葱微宏每伙盆顽郁恕胰黔达掣梢锨MCS-51第10章MCS-51与键盘(jinpn)和显示器的接口设计(2)MCS-51第10章MCS-51与键
50、盘(jinpn)和显示器的接口设计(2)第四十三页,共83页。题捉炒桑躁入早忘鸥漠廉盯贫毗录捡壶讼蘑融石书班塑多廓捌纷披(fnp)务受欺MCS-51第10章MCS-51与键盘和显示器的接口设计(2)MCS-51第10章MCS-51与键盘和显示器的接口设计(2)第四十四页,共83页。ORG0000HSTART:LJMPMAINORG0030HMAIN:MOVSP,#60HJNBP1.0,M0;查询查询(chxn)是否有键按下是否有键按下JNBP1.1,M1;查询查询(chxn)K2键是否按下键是否按下JNBP1.2,M2;查询查询(chxn)K3键是否按下键是否按下JNBP1.3,M3;查询查询