51单片机与显示器键盘接口及编程ppt课件.ppt
《51单片机与显示器键盘接口及编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《51单片机与显示器键盘接口及编程ppt课件.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章 51单片机与显示器、键盘单片机与显示器、键盘接口及编程接口及编程 9.1 51单片机与单片机与LED显示器接口显示器接口9.1.1 LED显示器的结构与原理显示器的结构与原理在单片机应用系统中通常使用的是在单片机应用系统中通常使用的是8段式段式LED数码管显示器,它有数码管显示器,它有共阴极和共阳极两种,如图所示。共阴极和共阳极两种,如图所示。abcdefgdpcomabcdefgdpcomabcdefgdp10 9 8 7 61 2 3 4 5 g f com a be d com c dp( a )( b )(c )其中:(其中:(a)为共阴极结构。()为共阴极结构。(b)为
2、共阳极结构。()为共阳极结构。(c)图为管脚)图为管脚图,从图,从ag管脚输入不同的管脚输入不同的8位二进制编码,可显示不同的数字或位二进制编码,可显示不同的数字或字符。共阴极和共阳极的字段码互为反码字符。共阴极和共阳极的字段码互为反码 。显示字符显示字符共阴极字段码共阴极字段码共阳极字段码共阳极字段码显示字符显示字符共阴极字段码共阴极字段码共阳极字段码共阳极字段码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH
3、80HL38HC7H96FH90H8FFH00HA77H88H“灭灭”00FFHB7CH83H9.1.2 LED数码管显示器的译码方式数码管显示器的译码方式一硬件译码方式一硬件译码方式译码方式是指由显示字符转换得到对应的字段码的方式译码方式是指由显示字符转换得到对应的字段码的方式 硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换,这样的硬件电路有很多,比如的转换,这样的硬件电路有很多,比如MOTOTOLA公司生产的公司生产的MC14495芯片就是其中的一种,芯片就是其中的一种,MC14495是共阴极一位十六进制是共阴极一位十
4、六进制数数字段码转换芯片,能够输出用四位二进制表示形式的一位十六字段码转换芯片,能够输出用四位二进制表示形式的一位十六进制数的七位字段码,不带小数点。它的内部结构如图。进制数的七位字段码,不带小数点。它的内部结构如图。 4锁存器地址译码和字段码ROM阵列ABCDLE569107Vss VDD8 16abcdefgh+iV CR11121314151234二软件译码方式二软件译码方式 软件译码方式就是通过编写软件译码程序,通过译码程序来得到要软件译码方式就是通过编写软件译码程序,通过译码程序来得到要显示的字符的字段码。显示的字符的字段码。 9.1.3 LED数码管的显示方式数码管的显示方式一一L
5、ED静态显示静态显示 LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与极),各段选线分别与I/O口线相连。要显示字符,直接在口线相连。要显示字符,直接在I/O线送相应线送相应的字段码。的字段码。 a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)二二LED动态显示方式动态显示方式 LED动态显示是将所有的数码管的段选线并接在一起,用一个动态显示是将所有的数码管的段选线并接在一起,用一个I/O口控制,公共端不是直接接地(共阴极)或电源(共阳极),而口控制,公共端不是直接接地(共
6、阴极)或电源(共阳极),而是通过相应的是通过相应的I/O口线控制。口线控制。 D3D2D1D0I/O(1)I/O(2) 设数码管为共阳极,它的工作过程为:第一步使右边第一个数码设数码管为共阳极,它的工作过程为:第一步使右边第一个数码管的公共端管的公共端D0为为1,其余的数码管的公共端为,其余的数码管的公共端为0,同时在,同时在I/O(1)上送)上送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端余不显示;第二步使右边第二个数码管的公共端D1为为1,其余的数码管,其余的数码管的公共端
7、为的公共端为0,同时在,同时在I/O(1)上送右边第二个数码管的字段码,这时,)上送右边第二个数码管的字段码,这时,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的
8、了。这就是动态显示的原理。而这个循环周期对于计算机来说很容易了。这就是动态显示的原理。而这个循环周期对于计算机来说很容易实现。所以在单片机中经常用到动态显示。实现。所以在单片机中经常用到动态显示。 9.1.4 LED显示器与单片机的接口显示器与单片机的接口 LED显示器从译码方式上有显示器从译码方式上有硬件译码硬件译码方式和方式和软件译码软件译码方式。从显方式。从显示方式上有示方式上有静态显示静态显示方式和方式和动态显示动态显示方式。在使用时可以把它们组合方式。在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显起来。在实际应用时,如果数码管个数较少,通常用硬件译
9、码静态显示,在数码管个数较多时,则通常用软件译码动态显示。示,在数码管个数较多时,则通常用软件译码动态显示。 一硬件译码静态显示一硬件译码静态显示下图是一个两位数码管硬件译码静态显示的接口电路图。下图是一个两位数码管硬件译码静态显示的接口电路图。 a b c d e f gMC14495a b c d e f ga b c d e f gA B C DLEMC14495a b c d e f gA B C DLEP1.0P1.1P1.2P1.3P1.4P1.58051二软件译码动态显示二软件译码动态显示下图是一个下图是一个8位软件译码动态显示的接口电路图。图中用位软件译码动态显示的接口电路图。
10、图中用8255A扩展并行扩展并行I/O口接数码管,数码管采用动态显示方式,口接数码管,数码管采用动态显示方式,8位数码管位数码管的段选线并联与的段选线并联与8255A的的A口通过口通过74LS373相连,相连,8位数码管的位数码管的公共端通过公共端通过74LS373分别与分别与8255A的的B口相连。也即口相连。也即8255A的的B口输出位选码选择要显示的数码管,口输出位选码选择要显示的数码管,8255A的的A口输出字段码使口输出字段码使数码管显示相应的字符,数码管显示相应的字符,8255A的的A口和口和B口都工作于方式口都工作于方式0输出。输出。A口、口、B口、口、C口和控制口的地址分别为口
11、和控制口的地址分别为7F00H、7F01H、7F02H和和7F03H。 D0D1D2D7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7 VCC74LS373Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7 VCC74LS373PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7CSWRRD74373P2.7WRRDALEP0.0P0.78051D0D7A1A0GA1A08255GGOEOE软件译码动态显示汇编语言程序为:(设软件译码动态显示汇编语言程序为:(设8个数码管的显示缓冲个数码管的显示缓冲区为片内区为片内RA
12、M的的57H50H单元)单元)DISPLAY:MOV A,#10000000B ;8255初始化初始化MOV DPTR,#7F03H ;使;使DPTR指向指向8155控制寄存器端口控制寄存器端口MOVX DPTR,AMOV R0,#57H ;动态显示初始化,使;动态显示初始化,使R0指向缓冲区首指向缓冲区首址址MOV R3,#7FH ;首位位选字送;首位位选字送R3MOV A,R3LD0:MOV DPTR,#7F00H ;使;使DPTR指向指向PA口口MOVX DPTR,A ;选通显示器低位;选通显示器低位(最右端一位最右端一位)INC DPTR ;使;使DPTR指向指向PB口口MOV A,R
13、0 ;读要显示数;读要显示数ADD A,#0DH ;调整距段选码表首的偏移量;调整距段选码表首的偏移量MOVC A,A+PC ;查表取得段选码;查表取得段选码MOVX DPTR,A ;段选码从;段选码从PB口输出口输出ACALL DL1 ;调用;调用1 ms延时子程序延时子程序DEC R0 ;指向缓冲区下一单元;指向缓冲区下一单元MOV A,R3 ;位选码送累加器;位选码送累加器AJNB ACC.0,LD1 ;判断;判断8位是否显示完毕,显示完返回位是否显示完毕,显示完返回RR A ;未显示完,把位选字变为下一位选字;未显示完,把位选字变为下一位选字MOV R3,A ;修改后的位选字送;修改后
14、的位选字送R3AJMP LD0 ;循环实现按位序依次显示;循环实现按位序依次显示LD1:RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;字;字 段码表段码表DB: 7FH,6FH,77H,7CH,39H,5EH,79H,71HDL1:MOV R7,#02H ;延时子程序;延时子程序DL: MOV R6,#0FFHDL0:DJNZ R6,DL0DJNZ R7,DLRET软件译码动态显示软件译码动态显示C语言程序为:语言程序为:#include #include /定义绝对地址访问定义绝对地址访问#define uchar unsigned char#defi
15、ne uint unsigned intvoid delay(uint); /声明延时函数声明延时函数void display(void); /声明显示函数声明显示函数uchar disbuffer8=0,1,2,3,4,5,6,7; /定义显示缓冲区定义显示缓冲区void main( ) XBYTE0 x7f03=0 x80; /8255初始化初始化 while(1) display( ); /设显示函数设显示函数 /*延时函数延时函数*void delay(uint i) /延时函数延时函数 uint j; for (j=0;ji;j+) /*显示函数显示函数*void display(v
16、oid) /定义显示函数定义显示函数uchar codevalue16=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; /0F的字段码的字段码表表uchar chocode8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; /位选位选码表码表uchar i,p,temp;for (i=0;i8;i+) p=disbufferi; /取当前显示的字符取当前显示的字符 temp=codevaluep;
17、/查得显示字符的字段码查得显示字符的字段码 XBYTE0 x7f00=temp; /送出字段码送出字段码 temp=chocodei; /取当前的位选码取当前的位选码 XBYTE0 x7f01=temp; /送出位选码送出位选码 delay(20); /延时延时1ms 9.2 51单片机与键盘接口单片机与键盘接口9.2.1 键盘的工作原理键盘的工作原理键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。当按下键时它才闭合。它的结构和产生的波形如图所示。P1.1VCCGND断
18、开闭合断开P1.1( a )( b )图图9.1键盘的处理主要涉及三个方面:键盘的处理主要涉及三个方面: 1按键的识别按键的识别2抖动的消除抖动的消除消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用一般采用RS触发器或单稳态电路。如图。触发器或单稳态电路。如图。 断开闭合+5V+5V输出软件消抖是利用延时来跳过抖动过程软件消抖是利用延时来跳过抖动过程 图图9.23键位的编码键位的编码通常有两种方法编码。通常有两种方法编
19、码。 (1)用连接键盘的)用连接键盘的I/O线的二进制组合进行编码。如(线的二进制组合进行编码。如(a)图)图 (2)顺序排列编码。如()顺序排列编码。如(b)图,处理方法如下:编码值)图,处理方法如下:编码值=行首编行首编码值码值X+列号列号Y。 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.788 84 82 8148 44 42 4128 24 22 2118 14 12 11P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7F E D CB A 9 87 6 5 43 2 1 0( a )( b )图图9.39.2.2 独立式键盘与单片机的接口独立式键盘与
20、单片机的接口键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。 独立式键盘就是各按键相互独立,每个按键各接一根独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每口线,每根根I/O口线上的按键都不会影响其它的口线上的按键都不会影响其它的I/O口线。口线。 G NDVCCG NDVCC或( b )8051( a )I N T08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7图图9.4 图图9.4(a)为中断方式工作的独立式键盘的结构形式,()为中断方式
21、工作的独立式键盘的结构形式,(b)为查)为查询方式工作的独立式键盘的结构形式询方式工作的独立式键盘的结构形式 下面是针对图下面是针对图9.2(b)图查询方式的汇编语言形式的键盘程序。总)图查询方式的汇编语言形式的键盘程序。总共有共有8个键位,个键位,KEY0KEY7为为8个键的功能程序。个键的功能程序。START:MOV A,#0FFH;MOV P1,A ;置;置P1口为输入状态口为输入状态MOV A,P1 ;键状态输入;键状态输入CPL AJZ START ;没有键按下,则转开始;没有键按下,则转开始JB ACC.0,K0 ;检测;检测0号键是否按下,按下转号键是否按下,按下转JB ACC.
22、1,K1 ;检测;检测1号键是否按下,按下转号键是否按下,按下转JB ACC.2,K2 ;检测;检测2号键是否按下,按下转号键是否按下,按下转JB ACC.3,K3 ;检测;检测3号键是否按下,按下转号键是否按下,按下转JB ACC.4,K4 ;检测;检测4号键是否按下,按下转号键是否按下,按下转JB ACC.5,K5 ;检测;检测5号键是否按下,按下转号键是否按下,按下转JB ACC.6,K6 ;检测;检测6号键是否按下,按下转号键是否按下,按下转JB ACC.7,K7 ;检测;检测7号键是否按下,按下转号键是否按下,按下转JMP START ;无键按下返回,再顺次检测;无键按下返回,再顺次
23、检测K0:AJMP KEY0K1:AJMP KEY1K7:AJIMP KEY7KEY0: ;0号键功能程序号键功能程序JMP START ;0号键功能程序执行完返回号键功能程序执行完返回KEY1: ;0号键功能程序号键功能程序JMP START ;1号键功能程序执行完返回号键功能程序执行完返回KEY7: ;7号键功能程序号键功能程序JMP START ;7号键功能程序执行完返回号键功能程序执行完返回9.2.3 矩阵键盘与单片机的接口矩阵键盘与单片机的接口 矩阵式键盘又叫行列式键盘。用矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位口线组成行、列结构,键位设置在行列的交点上。例如设置在
24、行列的交点上。例如44的行、列结构可组成的行、列结构可组成16个键的键盘,个键的键盘,比一个键位用一根比一个键位用一根I/O口线的独立式键盘少了一半的口线的独立式键盘少了一半的I/O口线。口线。 矩阵键盘的连接方法有多种,可直接连接于单片机的矩阵键盘的连接方法有多种,可直接连接于单片机的I/O口线口线;可利可利用扩展的并行用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片口连接;也可利用可编程的键盘、显示接口芯片(如(如8279)进行连接等等。其中,利用扩展的并行)进行连接等等。其中,利用扩展的并行I/O口连接方便口连接方便灵活,在单片机应用系统中比较常用。下图就是通过灵活,在单片机
25、应用系统中比较常用。下图就是通过8255芯片扩芯片扩展的并行展的并行I/O口连接口连接4 8的矩阵键盘。的矩阵键盘。PA7PA6PA5PA4PA3PA2PA1PA0PC0PC1PC2PC30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 316 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CS74LS373WR RDA1A0P2.7WRRDALEP0.0P0.7D0D7RESET1K20F+5V+5V82555.1K48051图图9.5一矩阵键盘的工作过程一矩阵键盘的工作过程对矩阵键盘的工作过程可分两步:第一步是对矩阵键盘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 显示器 键盘 接口 编程 ppt 课件
限制150内