第七章MCS-51与键盘、显示器的接口-精品文档资料.ppt

上传人:安*** 文档编号:78983209 上传时间:2023-03-19 格式:PPT 页数:30 大小:293.50KB
返回 下载 相关 举报
第七章MCS-51与键盘、显示器的接口-精品文档资料.ppt_第1页
第1页 / 共30页
第七章MCS-51与键盘、显示器的接口-精品文档资料.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《第七章MCS-51与键盘、显示器的接口-精品文档资料.ppt》由会员分享,可在线阅读,更多相关《第七章MCS-51与键盘、显示器的接口-精品文档资料.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第七章 MCS-51与键盘、显示器的接口 第七章第七章 MCS-51与键盘、显示器的接口与键盘、显示器的接口 7.1 MCS-51单片机与键盘接口单片机与键盘接口7.1.1 键盘的工作原理键盘的工作原理键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。P1.1VCCGND断开闭合断开P1.1(a)(b)第七章 MCS-51与键盘、显示器的接口 键盘的处理主要涉及三个方面:1按键的识别按键的识别2抖动的消除抖动的消除消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用RS

2、触发器或单稳态电路。如图。断开闭合+5V+5V输出软件消抖是利用延时来跳过抖动过程 第七章 MCS-51与键盘、显示器的接口 3键位的编码键位的编码通常有两种方法编码。(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)第七章 MCS

3、-51与键盘、显示器的接口 7.1.2 独立式键盘与单片机的接口独立式键盘与单片机的接口键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。GNDVCCGNDVCC或(b)8051(a)INT08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7第七章 MCS-51与键盘、显示器的接口 图(a)为中断方式工作的独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式 下面是针对图7.4(b)图查询方

4、式的汇编语言形式的键盘程序。总共有8个键位,KEY0KEY7为8个键的功能程序。START:MOV A,#0FFH;MOV P1,A ;置P1口为输入状态MOV A,P1 ;键状态输入CPL AJZ START ;没有键按下,则转开始JB ACC.0,K0 ;检测0号键是否按下,按下转JB ACC.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号键是否按下,按下转J

5、B ACC.7,K7 ;检测7号键是否按下,按下转JMP START ;无键按下返回,再顺次检测第七章 MCS-51与键盘、显示器的接口 K0:AJMP KEY0K1:AJMP KEY1K7:AJIMP KEY7KEY0:;0号键功能程序JMP START ;0号键功能程序执行完返回KEY1:;0号键功能程序JMP START ;1号键功能程序执行完返回KEY7:;7号键功能程序JMP START ;7号键功能程序执行完返回7.1.3 矩阵键盘与单片机的接口矩阵键盘与单片机的接口 矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如44的行、列结构可组成16个键的

6、键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。第七章 MCS-51与键盘、显示器的接口 矩阵键盘的连接方法有多种,可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利用可编程的键盘、显示接口芯片(如8279)进行连接等等。其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。下图就是通过8255A芯片扩展的并行I/O口连接48的矩阵键盘。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

7、 26 27 28 29 30 31 CS74LS373WR RDA1A0P2.7WRRDALEP0.0P0.7D0D7RESET1K20F+5V+5V82555.1K48051第七章 MCS-51与键盘、显示器的接口 一矩阵键盘的工作过程一矩阵键盘的工作过程 对矩阵键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。1检测键盘上是否有键按下处理方法是:将列线送入全扫描字,读入行线的状态来判别。其具体过程如下:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为

8、1。2识别键盘中哪一个键按下处理方法是:将列线逐列置低电平,检查行输入状态,称为逐列扫描。其具体过程如下:从PA0开始,依次输出“0”,置对应的列线为低电平,然后从PC口读入行线状态,如果全为“1”,则按下的键不在此列;如果不全为“1”,则按下的键必在此列,而且是该列与“0”电平行线相交的交点上的那个键。为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键的编码。二矩阵键盘的工作方式二矩阵键盘的工作方式第七章 MCS-51与键盘、显示器的接口 1查询工作方式查询工作方式 这种方式是直接在主程序中插入键盘检测子程序,主程序每执行一次

9、则键盘检测子程序被执行一次,对键盘进行检测一次,如果把没有键按下,则跳过键识别,直接执行主程序;如果有键按下,则通过键盘扫描子程序识别按键,得到按键的编码值,然后根据编码值进行相应的处理,处理完后再回到主程序执行。键盘扫描子程序流程如图。开始有键按下否?调用6ms延时子程序?调用12ms延时子程序?有键按下否?判闭合键,编码入栈保护闭合键释放否?编码A返回否否否是是是第七章 MCS-51与键盘、显示器的接口 键盘扫描子程序如下:(硬件线路如图7.4,8255A的A口、B口、C口和控制口地址分别为7F00H、7F01H、7F02H、7F03H,设8255A已在主程序中初始化。已设定为A口方式0输

10、出,C口的低4位方式0输入。)KEY1:ACALL KS1 ;调用判断有无键按下子程序JNZ LK1 ;有键按下时,(A)0转消抖延时KEY2:ACALL TM6msAJMP KEY1 ;无键按下返回LK1:ACALL TM12ms ;调12 ms延时子程序ACALL KS1 ;查有无键按下,若有则真有键按下JNZ LK2 ;键(A)0逐列扫描AJMP KEY2 ;不是真有键按下,返回LK2:MOV R2,#0FEH ;初始列扫描字(0列)送入R2MOV R4,#00H ;初始列(0列)号送入R4LK4:MOV DPTR,#7F00H ;DPTR指向8155PA口MOV A,R2 ;列扫描字送

11、至8155PA口MOVX DPTR,AINC DPTR ;DPTR指向8155PC口INC DPTR 第七章 MCS-51与键盘、显示器的接口 MOVX A,DPTR ;从8155 PC口读入行状态JB ACC.0,LONE ;查第0行无键按下,转查第1行MOV A,#00H ;第0行有键按下,行首键码#00HAAJMP LKP ;转求键码LONE:JB ACC.1,LTWO ;查第1行无键按下,转查第2行MOV A,#08H ;第1行有键按下,行首键码#08HAAJMP LKP ;转求键码LTWO:JB ACC.2,LTHR ;查第2行无键按下,转查第3行MOV A,#10H ;第2行有键按

12、下,行首键码#10HAAJMP LKP ;转求键码LTHR:JB ACC.3,NEXT ;查第3行无键按下,转该查下一列MOV A,#18H ;第3行有键按下,行首键码#18HALKP:ADD A,R4 ;求键码,键码=行首键码+列号PUSH ACC ;键码进栈保护LK3:ACALL KS1 ;等待键释放JNZ LK3 ;键未释放,等待POP ACC ;键释放,键码ARET ;键扫描结束,出口状态(A)=键码第七章 MCS-51与键盘、显示器的接口 NEXT:INC R4 ;准备扫描下一列,列号加1MOV A,R2 ;取列扫描字送累加器AJNB ACC.7,KEND ;判断8列扫描否?扫描完返

13、回RL A ;扫描字左移一位,变为下一列扫描字MOV R2,A ;扫描字送入R2保存AJMP LK4 ;转下一列扫描KEND:AJMP KEY1 KS1:MOV DPTR,#7F00H ;DPTR指向8155PA口MOV A,#00H ;全扫描字AMOVX DPTR,A ;全扫描字送往8155PA口INC DPTR ;DPTR指向8155PC口INC DPTR MOVX A,DPTR;读入PC口行状态CPL A ;变正逻辑,以高电平表示有键按下ANL A,#0FH ;屏蔽高4位,只保留低4位行线值RET ;出口状态:(A)0时有键按下第七章 MCS-51与键盘、显示器的接口 TM12ms:MO

14、V R7,#18H ;延时12 ms子程序TM:MOV R6,#0FFHTM6:DJNZ R6,TM6DJNZ R7,TMRETTM6ms:MOV R7,#0CH ;延时6 ms子程序TM2:MOV R6,#0FFHTM62:DJNZ R6,TM6DJNZ R7,TMRETC语言键盘扫描子程序:略2定时扫描工作方式定时扫描工作方式3中断处理方式中断处理方式第七章 MCS-51与键盘、显示器的接口 7.2 MCS-51单片机与单片机与LED显示器接口显示器接口7.2.1 LED显示器的结构与原理显示器的结构与原理在单片机应用系统中通常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种,如图

15、所示。abcdefgdpcomabcdefgdpcomabcdefgdp10 9 8 7 61 2 3 4 5 g f com a be d com c dp(a)(b)(c)第七章 MCS-51与键盘、显示器的接口 其中:(a)为共阴极结构。(b)为共阳极结构。(c)图为管脚图,从ag管脚输入不同的8位二进制编码,可显示不同的数字或字符。共阴极和共阳极的字段码互为反码。显示字符共阴极字段码共阳极字段码显示字符共阴极字段码共阳极字段码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EH

16、C1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“灭”00FFHB7CH83H第七章 MCS-51与键盘、显示器的接口 7.2.2 LED数码管显示器的译码方式一硬件译码方式一硬件译码方式译码方式是指由显示字符转换得到对应的字段码的方式 硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换,这样的硬件电路有很多,比如MOTOTOLA公司生产的MC14495芯片就是其中的一种,MC14495是共阴极一位十六进制数字段码转换芯片,能够输出用四位二进制表示形式的一位十六进制数的七位字段码,不带小数点。它的内

17、部结构如图。4锁存器地址译码和字段码ROM阵列ABCDLE569107Vss VDD8 16abcdefgh+iVCR11121314151234第七章 MCS-51与键盘、显示器的接口 二软件译码方式二软件译码方式 软件译码方式就是通过编写软件译码程序,通过译码程序来得到要显示的字符的字段码。7.2.3 LED数码管的显示方式一一LED静态显示静态显示 LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与I/O口线相连。要显示字符,直接在I/O线送相应的字段码。a b c d e f g d pI/O(1)a b c d e f g d pI/O(2)第七章 MCS

18、-51与键盘、显示器的接口 二二LED动态显示方式动态显示方式 LED动态显示是将所有的数码管的段选线并接在一起,用一个I/O口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O口线控制。D3D2D1D0I/O(1)I/O(2)第七章 MCS-51与键盘、显示器的接口 设数码管为共阳极,它的工作过程为:第一步使右边第一个数码管的公共端D0为1,其余的数码管的公共端为0,同时在I/O(1)上送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端D1为1,其余的数码管的公共端为0,同时在I/O(1)上送右边第二个数码管的字段码

19、,这时,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的了。这就是动态显示的原理。而这个循环周期对于计算机来说很容易实现。所以在单片机中经常用到动态显示。7.2.4 LED显示器与单片机的接口显示器与单片机的接口 LED显示器从译码方式上有硬件译码方式和软件译码方式。从显示方式上有静态显示方式和动态显示方式。在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个

20、数较多时,则通常用软件译码动态显示。第七章 MCS-51与键盘、显示器的接口 一硬件译码静态显示一硬件译码静态显示下图是一个两位数码管硬件译码静态显示的接口电路图。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第七章 MCS-51与键盘、显示器的接口 二软件译码动态显示二软件译码动态显示下图是一个8位软件译码动态显示的接口电路图。图中用8255A扩展并行I/O口接数码管,数码管采用动态显示方式,8位数码管的段选线并联与

21、8255A的A口通过74LS373相连,8位数码管的公共端通过74LS373分别与8255A的B口相连。也即8255A的B口输出位选码选择要显示的数码管,8255A的A口输出字段码使数码管显示相应的字符,8255A的A口和B口都工作于方式0输出。A口、B口、C口和控制口的地址分别为7F00H、7F01H、7F02H和7F03H。第七章 MCS-51与键盘、显示器的接口 D0D1D2D7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7G OEVCC74LS373Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7G OEVCC74LS373PA0PA1PA2PA3PA

22、4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7CSWRRD74LS373P2.7WRRDALEP0.0P0.78051D0D7A1A0GA1A08255第七章 MCS-51与键盘、显示器的接口 软件译码动态显示汇编语言程序为:(设8个数码管的显示缓冲区为片内RAM的57H50H单元)DISPLAY:MOV A,#10000000B ;8255初始化MOV DPTR,#7F03H ;使DPTR指向8155控制寄存器端口MOVX DPTR,AMOV R0,#57H ;动态显示初始化,使R0指向缓冲区首址MOV R3,#7FH ;首位位选字送R3MOV A,R3LD0:MOV

23、DPTR,#7F00H ;使DPTR指向PA口MOVX DPTR,A ;选通显示器低位(最右端一位)INC DPTR ;使DPTR指向PB口MOV A,R0 ;读要显示数ADD A,#0DH ;调整距段选码表首的偏移量MOVC A,A+PC ;查表取得段选码MOVX DPTR,A ;段选码从PB口输出ACALL DL1 ;调用1 ms延时子程序DEC R0 ;指向缓冲区下一单元MOV A,R3 ;位选码送累加器A第七章 MCS-51与键盘、显示器的接口 JNB ACC.0,LD1 ;判断8位是否显示完毕,显示完返回RR A ;未显示完,把位选字变为下一位选字MOV R3,A ;修改后的位选字送

24、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第七章 MCS-51与键盘、显示器的接口 软件译码动态显示C语言程序为:#include#include /定义绝对地址访问#define uchar unsigned char#define uint unsigned intvoid delay(ui

25、nt);/声明延时函数void display(void);/声明显示函数uchar disbuffer8=0,1,2,3,4,5,6,7;/定义显示缓冲区void main(void)XBYTE0 x7f03=0 x80;/8255A初始化while(1)display();/设显示函数/*延时函数*void delay(uint i)/延时函数uint j;for (j=0;ji;j+)第七章 MCS-51与键盘、显示器的接口/*显示函数void display(void)/定义显示函数uchar codevalue16=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6

26、d,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;/查得显示字符的字段码XBYTE0 x7f00=temp;/送出字段码temp=chocodei;/取当前的位选码XBYTE0 x7f01=temp;/送出位选码delay(20);/延时

27、1ms第七章 MCS-51与键盘、显示器的接口 7.3 MCS-51单片机与行程开关、晶闸管、继电器的接口单片机与行程开关、晶闸管、继电器的接口7.3.1 行程开关、继电器与行程开关、继电器与MCS-51单片机接口单片机接口行程开关和继电器常开触点与单片机的接口如图所示。E1E2S10K10K10K10F光电耦合器件单片机的I/O引脚第七章 MCS-51与键盘、显示器的接口 7.3.2 晶闸管与晶闸管与MCS-51单片机接口单片机接口8051P1.0P1.1过零电路大功率晶闸管及负载5V5V740774079118012126546410K10001F220V4N40MOC3041RsCs第七章 MCS-51与键盘、显示器的接口 7.3.3 继电器与继电器与MCS-51单片机接口单片机接口8051P1.17406VD1R+5VVCCVD2S1V18051P1.1R+5VS174064N25R1R2V1VD1VCC第七章 MCS-51与键盘、显示器的接口 7.3.4 蜂鸣器与蜂鸣器与1单片机接口单片机接口8051P1.07406+5VPB2130UP002A8051P1.0+5VPB2130UP002AR1R2V1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁