第八章键盘显示.ppt_第1页
第八章键盘显示.ppt_第2页
第八章键盘显示.ppt_第3页
第八章键盘显示.ppt_第4页
第八章键盘显示.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章键盘显示,8.1 MCS-51单片机与LED显示器接口,8.1.1 LED显示器的结构与原理,在单片机应用系统中通常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种,如图所示。,其中:(a)为共阴极结构。(b)为共阳极结构。(c)图为管脚图,从ag管脚输入不同的8位二进制编码,可显示不同的数字或字符。共阴极和共阳极的字段码互为反码 。,dp g f e d c b a 0: 0 0 1 1 1 1 1 1 3FH(共阴) 1 1 0 0 0 0 0 0 C0H(共阳),独立LED显示器多用于信号指示,它实际是一个压降为1.52.5V,电流为510mA的发光二极管,通过LED的电流

2、决定它的发光强度 。,8.12 LED数码管显示器的译码方式,一硬件译码方式,译码方式是指由显示字符转换得到对应的字段码的方式,硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换,这样的硬件电路有很多,比如MOTOTOLA公司生产的MC14495芯片就是其中的一种,MC14495是共阴极一位十六进制数字段码转换芯片,能够输出用四位二进制表示形式的一位十六进制数的七位字段码,不带小数点。它的内部结构如图。,4 锁 存 器,地址 译码 和字 段码 ROM 阵列,A,B,C,D,LE,5,6,9,10,7,Vss,VDD,8,16,a,b,c,d,e,f,g,h+i,VCR,11,12,

3、13,14,15,1,2,3,4,二软件译码方式,软件译码方式就是通过编写软件译码程序,通过译码程序来得到要显示的字符的字段码。,8.1.3 LED数码管的显示方式,一LED静态显示,LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与I/O口线相连。要显示字符,直接在I/O线送相应的字段码。,p1.0-p1.7,驱动,p2.0-p2.7,驱动,如图数码管显示线路,要求显示数存放在30H,高位在P1口输出,低位在P2口输出,请编写程序。,答:从图分析数码管是共阴,则在程序存储器设立共阴的数据表格。 程序中可以将30H位拆分,查表后输出到P1、P2口。程序如下。 显示子

4、程序 ORG 200H XIANSHI:MOV A,30H ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,A MOV A,30H ANL A,#0F0H SWAP A MOVC A,A+DPTR MOV P1,A RET,ORG 300H TAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,二LED动态显示方式,LED动态显示是将所有的数码管的段选线并接在一起,用一个I/O口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O口

5、线控制。,设数码管为共阳极,它的工作过程为:第一步使右边第一个数码管的公共端D0为1,其余的数码管的公共端为0,同时在I/O(1)上送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端D1为1,其余的数码管的公共端为0,同时在I/O(1)上送右边第二个数码管的字段码,这时,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的了。这就是动态显示的原理。而这个

6、循环周期对于计算机来说很容易实现。所以在单片机中经常用到动态显示。,D3,D2,D1,D0,P1,P3.3-3.0,如图数码管显示线路(共阴),要求显示数存放在30H、31H。请编写程序。其中30H低位在D0显示、 30H高位在D1显示、 31H低位在D2显示, 31H高位在D3显示。,驱动,驱动,答:从图分析数码管是共阴,则在程序存储器设立共阴的数据表格。程序中可以将30H、31H位拆分,P3.0-P3.3分别置0后,查表后输出到P1口,每次延迟2MS,程序如下。,ORG 200H XIANSHI:MOV R0,#30H MOV DPTR,#TAB ACALL CHAIFEN MOV A,R

7、6 MOVC A,A+DPTR MOV P3,#11111110B MOV P1,A ACALL DLE2MS MOV A,R7 MOVC A,A+DPTR MOV P3,#11111101B MOV P1,A ACALL DLE2MS INC R0 ACALL CHAIFEN MOV A,R6 MOVC A,A+DPTR MOV P3,#11111011B MOV P1,A ACALL DLE2MS,ORG 250H CHAIFEN:MOV A,R0 ANL A,#0FH MOV R7,A MOV A, ,R0 ANL A,#0F0H SWAP A MOV R6,A RET,ACALL DL

8、E2MS MOV A,R7 MOVC A,A+DPTR MOV P3,#11110111B MOV P1,A ACALL DLE2MS RET,ORG 300H TAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,8.2 MCS-51单片机与键盘接口,8.2.1 键盘的工作原理,键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。,0、1状态不定,10MS,键盘的处理主要涉及三个方面:,1抖动的消除,消除按键盘抖动通常有两种方法:硬件

9、消抖和软件消抖。,硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用RS触发器或单稳态电路。,软件消抖是利用延时来跳过抖动过程,键按下否,键按释放否,延时10MS,键按释放否,键按下否,N,Y,延时10MS,N,读键值,Y,N,N,有硬件电路消除抖动方法。,R、S触发器 R、S Q 0 1 0 0 1 1 1 不变 0 0 不定,P158,8.2.2 独立式键盘与单片机的接口,键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。,独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。,GND,VCC,GND,VCC,或,( b

10、 ),8051,( a ),INT0,8051,P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,每个按键单独占有一根I/O接口引线, I/O口线浪费大。 配置灵活,结构简单,编程容易。 独立式按键的软件常采用查询式结构。,图(a)为中断方式工作的独立式键盘的结构形式,(b)为查询方式工作的独立式键盘的结构形式,下面是针对图7.4(b)图查询方式的汇编语言形式的键盘程序。总共有8个键位,KEY0KEY7为8个键的功能程序。 START:MOV A,#0FFH; MOV P1,A ;置P

11、1口为输入状态 MOV A,P1 ;键状态输入 CPL A JZ 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号键是否按下,按下转 JB ACC.7,K7 ;检测7号键是否按下,按下转 AJMP START ;无键按下返回,再顺次检测,K0:AJMP

12、KEY0 K1:AJMP KEY1 K7:AJIMP KEY7 KEY0: ;0号键功能程序 AJMP START ;0号键功能程序执行完返回 KEY1: ;0号键功能程序 AJMP START ;1号键功能程序执行完返回 KEY7: ;7号键功能程序 AJMP START ;7号键功能程序执行完返回,独立按键软件取抖编程举例: 30H单元P1.5所接按键每按下一次,则将30H单元内容加1。 P1.6所接按键每按下一次,则将30H单元内容减1。,JCL: JB P1.5 ,JCL2 ;键未按下则转移 ACALL D20MS ;延时去抖 JB P1.5 ,JCL2 INC 30H JCL1: J

13、NB P1.5 ,JCL1 ;等待按键释放 ACALL D20MS JCL2: JB P1.6 ,JCLR ;键未按下则退出返回 ACALL D20MS ;延时去抖 JB P1.6 ,JCLR DEC 30H JCL1: JNB P1.6 ,JCL2 ;等待按键释放 ACALL D20MS JCLR: RET ;返回主程序,上述编程中CPU需要不断查询按键情况降低了效率,如何解决问题。 方法有二个: 1、定时查询法 2、中断法 定时查询法: 利用定时器产生10MS的定时时间,每次定时时间到查询一次,判别是否 有键被按下,有置标志位,再在下一次继续判别,若还有说明有键被按下,处理键并清标志位后设

14、立键处理标志位,若无则清标志位。再在下一次中断中等待键释放。,上图中要求用定时查询方法:设键按下标志00H,键释放标志01H,键值30H单元。晶振12MHZ,编写程序。 答:采用T1方式1,TMOD=00010000B 定时10MS初值:65536-10000=55536=D8F0H TH1=0D8H,TL1=0F0H,ORG 0000H AJMP MAIN ORG 0013H AJMP JPZD ORG 100H MAIN :CLR 00H CLR 01H CLR 03H MOV SP,#60H MOV 30H,#00H,MOV TMOD,#10H MOV TH1,#0D8H MOV TL1

15、,#0F0H Setb ea Setb et1 SETB TR1 MAIN1 :JNB 03H, MAIN2 ;有键否判别 ACALL JCHL;键处理子程序 CLR 03H;键处理完毕 Main2:. AJMP MAIN1,ORG 150H JPZD:PUSH ACC CLR TR1 Clr et1 MOV TH1,#0D8H MOV TL1,#0F0H MOV P1,#0FFH MOV A,P1 CPL A JnZ JPZD1 CLR 00H CLR 01H;无键 AJMP JPZD2,JPZD1:JB 00H,JPZD3 SETB 00H;第一次,取抖 AJMP JPZD2 JPZD3:

16、JB 01H, JPZD2;等释放键是否处理 MOV 30H,A;读键值 SETB 01H SETB 03H JPZD2:SETB TR1 Setb et1 POP ACC RETI,中断方式,首先设立中断,只有中断时才进行键盘操作,在中断时设立标志位并关中断,一直到处理完成键盘后才开中断。具体如下: ORG 0000H AJMP MAIN ORG 0003H AJMP ZD ORG 0000H SET EA SETB EX0 SET IT0 MAIN2:JNB 00H,MAIN1: ACALL JPCL MAIN1: AJMP MAIN2,JPCL:ACALL DEL10MS JB P3.2

17、,JPCL1 MOV P1,#0FFH MOV A,P1 MOV 30H,A JNB P3.2,$ ACALL DEL 10MS JNB P3.2,$ JPCL1: CLR 00H SETB EX0 RET,ORG 150H ZD:CLR EX0 SETB 00H RETI,6.2.2 行列式键盘,1)扫描法 列线输出,行线输入。 列线逐行输出0,某行有按键,行线输入有0,若无按键,行线输入全部为1。 2)反转法 行列线交换输入、输出,两步获取按键键码值。,按键设置在行线与列线交叉点上,按键数量多时占用I/O口线少。 编程复杂。,特点:,键盘工作方式:,接口电路,键按下/释放判断,KS: MO

18、V A,#00H MOV P1,A ;全扫描字#00H送P1口 MOV P1,#0FH MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下,扫描法编程:,流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。,原理: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,键盘扫描程序,SERCH: MOV R2,#0EFH MOV R3,#00H LI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论