显示器与键盘接口技术.ppt_第1页
显示器与键盘接口技术.ppt_第2页
显示器与键盘接口技术.ppt_第3页
显示器与键盘接口技术.ppt_第4页
显示器与键盘接口技术.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、,非编码键盘接口,键盘与显示系统,第七章 显示器与键盘接口技术,LED数码管显示接口,第七章 显示器与键盘接口技术,第一节 LED数码管显示接口,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,图 7-2 数码管静态显示实例,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,图 7-3 数码管静态显示程序流程图,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,解:相应程序如下:,CN

2、T_H EQU 61H ;计数待显示十位数据 CNT_L EQU 60H ;计数待显示个位数据 ORG 0000H LJMP MAIN ORG 0066H MAIN: MOV SP, #70H MOV CNT_H, #00H ;清除RAM 61H、60H单元内容 MOV CNT_L, #00H LCALL DISPLAY ;调用显示子程序,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,LOOP:LCALLDELAY1S INCCNT_L MOVA, CNT_L XRLA, #10 JNZDSP MOVCNT_L, #00H INCCNT_H MOVA, CNT_H XRLA, #

3、10 JNZDSP MOVCNT_H, #00H,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,DSP:LCALLDISPLAY ;调用显示子程序 LJMPLOOP ;* DISPLAY:MOVDPTR, #TABLE ;显示子程序 MOVA, CNT_H MOVCA, A+DPTR MOVP3, A MOVDPTR, #TABLE MOVA, CNT_L MOVCA, A+DPTR MOVP1, A RET,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,;* DELAY1S: MOVR3, #04H;延时1秒子程序 LOOP3: MOVR2, #0FAH LOOP

4、2: MOVR1, #0F9H NOP LOOP1: NOP NOP DJNZR1, LOOP1 DJNZR2, LOOP2 DJNZR3, LOOP3 RET TABLE: DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,图 7-4 数码管动态显示实例,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,图 7-5 数码管动态显示程序流程图,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,解:相应程序如下:,H_C EQU P1.0 ;P1.0控制十位数码管阳

5、极 L_C EQU P1.1 ;P1.1控制个位数码管阳极 PORT_G EQU P3 ;数码管数据端 DSP_C EQU 20H.0 ;显示控制位:1-显示个位,0-显示十位 CNT_H EQU 61H ;计数待显示十位数据 CNT_L EQU 60H ;计数待显示个位数据 ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,ORG0066H MAIN:MOVSP, #70H MOVCNT_H, #00H;清除RAM 61H、60H单元内容 MOVCNT_L, #00H MOVTMOD, #01H M

6、OVTH0, #0F0H;T0装初值,延时4ms MOVTL0, #5FH SETBET0 SETBEA SETBTR0,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,LOOP:LCALLDELAY1S;调用延时1秒子程序 INCCNT_L MOVA, CNT_L XRLA,#10 JNZLOOP MOVCNT_L,#00H INCCNT_H MOVA, CNT_H XRLA,#10 JNZLOOP MOVCNT_H,#00H LJMPLOOP,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,;* INT_T0:PUSHACC;T0中断,实现动态显示 PUSHPSW

7、CPLDSP_C;显示子程序 JBDSP_C, DSPL CLRL_C SETBH_C MOVDPTR, #TABLE MOVA, CNT_H MOVCA, A+DPTR LJMPDPS_END,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,DSPL: CLRH_C SETBL_C MOVDPTR, #TABLE MOVA, CNT_L MOVCA, A+DPTR DPS_END: MOVPORT_G, A MOVTH0, #0F0H;T0重装初值 MOVTL0, #5FH POPPSW POPACC RET,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,;* DE

8、LAY1S:MOVR3, #04H;延时1秒子程序 LOOP3:MOVR2, #0FAH LOOP2:MOVR1, #0F9H NOP LOOP1:NOP NOP DJNZR1, LOOP1 DJNZR2, LOOP2 DJNZR3, LOOP3 RET TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H END,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,图 7-6 按键触点的机械抖动,触点去抖动:分软件去抖动(软件延时10ms) 和硬件去抖动; 键盘可以分为独立连接式和行列(矩阵)式 两类,每一类又可根据对键盘的译码

9、方法分为 编码键盘和非编码键盘两种类型。,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,编码键盘是通过一个编码电路来识别闭合键的键码, 具有去抖动功能,但硬件较复杂,PC机所用的标准键盘 就属于这种; 非编码键盘是通过软件来识别键码,需占用CPU一定 的时间,但硬件简单,可以方便地增减键的数量,单片 机应用系统中得到广泛的应用; 本节仅介绍非编码键盘的原理和接口电路。,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,图 7-7 AT89C51对独立式键盘的接口,实例7-3:根据如图7-7所示的AT89C51单片机与独立式键盘的

10、接口 电路,请用查询的方式写出其键盘扫描程序。,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,解:相应程序如下:,ORG 0100H KEYSCAN: MOV P1, #0FFH ;置P1口为输入态 MOV A, P1 ;读入键值 LCALL DELAY10ms ;延时10ms,去抖动 MOV B, P1 ;再读键值 CJNE A, B, GORET ;两次键值不一致,直接返回 JNB ACC.0, KEY0 ;0号键按下,转0号键功能程序 JNB ACC.1, KEY1 ;1号键按下,转1号键功能程序 JNB ACC.2, KEY2 ;2号键按下,转2号键功能程序 JNB ACC.3

11、, KEY3 ;3号键按下,转3号键功能程序 JNB ACC.4, KEY4 ;4号键按下,转4号键功能程序 JNB ACC.5, KEY5 ;5号键按下,转5号键功能程序 JNB ACC.6, KEY6 ;6号键按下,转6号键功能程序 JNB ACC.7, KEY7 ;7号键按下,转7号键功能程序 GORET: RET ;从键盘服务子程序返回,第一节 LED数码管显示接口,第七章 显示器与键盘接口技术,KEY0:LCALLFUNC0;执行0号键功能服务程序 RET;从键盘服务子程序返回 KEY1:LCALLFUNC1;执行1号键功能服务程序 RET;从键盘服务子程序返回 KEY2:LCALL

12、FUNC2;执行2号键功能服务程序 RET;从键盘服务子程序返回 KEY3:LCALLFUNC3;执行3号键功能服务程序 RET;从键盘服务子程序返回 KEY4:LCALLFUNC4;执行4号键功能服务程序 RET;从键盘服务子程序返回 KEY5:LCALLFUNC5;执行5号键功能服务程序 RET;从键盘服务子程序返回 KEY6:LCALLFUNC6;执行6号键功能服务程序 RET;从键盘服务子程序返回 KEY7:LCALLFUNC7;执行7号键功能服务程序 RET;从键盘服务子程序返回,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,图 7-8 44矩阵键盘电路图,第二节 非编码键盘

13、接口,第七章 显示器与键盘接口技术,图 7-8 44矩阵键盘电路图,1).判别是否有键按下,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,图 7-9 键盘扫描子程序流程图,实例7-4:根据图7-8所示的44矩阵键盘电路图 (程序流程图如图7-9所示),请写出其键盘扫描程序。,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,解:相应程序如下:,KEYSCAN:ACALL KSCAN ;查有没有键按下 JZ GORET ;A

14、=0表示没有键按下,返回 LCALL DELAY10ms ;有键按下,延时10ms,防抖动。 ;(延时10ms的子程序DELAY10ms略) ACALL KSCAN ;再查有没有键按下 JZ GORET ;A=0表示没有键按下,返回 ACALL KEYSUM ;有键按下,扫描确定键值 RL A RL A ;键值4 ; 主要考虑FTAB 以下指令LCALL(3字节)和RET(1字节)的总 ;字节数为4 MOV DPTR, #FTAB JMP A+DPTR ;散转,执行所按键相应功能子程序GORET: RET,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,FTAB:LCALLFUNC0;调

15、用0号键功能子程序 RET LCALLFUNC1;调用1键功能子程序 RET . . . LCALLFUNC15;调用15键功能子程序 RET LCALLERRSUB;键值为16,异常处理 RET,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,; KSCAN为判断有无键按下子程序,表示有键按下 KSCAN: MOVP1, #0F0H ;行线置低电平,列线置输入态 MOVA, P1 ;读列线数据 CPLA ;A取反 ANLA, #0F0H ;屏蔽行线 RET ;返回,表示有键按下 ; KEYSUM为求键值子程序,键值在A中 KEYSUM:MOVR6, #00H ;R6存放每行最左键的键值

16、,初始清零 MOVR7, #0FEH ;准备扫描第0行,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,LOOP:MOVP1, R7;逐行输出0扫描 MOVA, P1;读列线数据 SWAPA;A的高低半字节交换 JBACC.0, L1;第0列无键按下,转查第1列 MOVA, #0;第0列有键按下, SJMPKSOLVE;转求键值 L1:JBACC.1, L2;第1列无键按下,转查第2列 MOVA, #1;第1列有键按下,SJMPKSOLVE;转求键值 L2:JBACC.2, L3;第2列无键按下,转查第3列 MOVA, #2;第2列有键按下,SJMPKSOLVE;转求键值 L3:JBAC

17、C.3, NEXT;4列均无键按下,本行扫描结束 MOVA, #3;第3列有键按下,SJMPKSOLVE;转求键值,第二节 非编码键盘接口,第七章 显示器与键盘接口技术,NEXT: MOV A, R7;准备扫描下一行 JNB ACC.3,ERR;扫描完未读到键值,异常处理 RL A;R7循环左移一位 MOV R7, A;得到下一行行扫描字 ADD R6, #4;得到下一行首键键值 SJMP LOOP;转LOOP,扫描下一行 ERR: MOV A, #16;键值赋16,表示出错! RET KSOLVE:ADD A,R6;得键值 PUSH ACC;键值进栈暂存 WAIT: ACALL KSCAN;

18、查按键释放否?防止重复执行键功能 JNZ WAIT;没有释放,等待 POP ACC;键值出栈 RET,在单片机应用系统中,为节省I/O口线,可将 显示电路和键盘做在一起,构成实用的键盘、 显示器电路。 图7-10 所示为实用的键盘/显示器接口电路。,第七章 显示器与键盘接口技术,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,第三节 键盘与显示系统,图 7-10 AT89C51对键盘/LED的接口,图7-10所示的44矩阵键盘电路已在第二节中 介绍过,键盘扫描程序与实例7-4介绍的KEYSCAN 子程序相同; 图7-10所示的4位LED动态显示电路与图7-4 介绍的电路相同,只是LED的

19、位数变成4位 。其 动态显示子程序如下:,第七章 显示器与键盘接口技术,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,第三节 键盘与显示系统,DPLAY: MOV R0,#30H ;R0指针指向显示缓冲区首址 MOV DPTR,#SEGTAB MOV R2,#01H ;置位选码初值 MOV A,R2 DISP: MOV P1,A ;输出位选码 MOV A,R0 ;取出要显示的数,准备查段选码 MOVC A,A+DPTR ;查字型码 MOV P3,A ;段选码送P3口 ACALL DELAY1ms ;延时1ms。延时子程序DELAY1ms略 INC R0 ;修改显示缓冲区单元地址 MOV

20、 A,R2 JB ACC.3,GORET;4位显示完否? RL A ;未显示完,位选码左移1位 MOV R2,A AJMP DISP GORET: RET SEGTAB:DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H DB 88H,83H,C6H,A1H,86H,8EH ;段选码表“0,1,2,,D,E,F”,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,图 7-11 键盘、显示程序流程图,实例7-5:请写出图7-11所示的键盘、显示程序流程图对应的程序 。,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,解:相应程序如下:,ORG0000H

21、 LJMPMAIN ORG0100H MAIN: . ;初始化部分 . . KEYSCAN:LCALLKSCAN ;查有没有键按下 JZ KS1 ;A=0表示没有键按下,转KS1 AJMPKS2 KS1: LCALLDPLAY ;调用动态显示子程序,显示一遍 AJMPKEYSCAN,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,;以下循环次数L的选取要使显示子程序运行总时间约为10ms,作为防 ;抖动延时。 KS2:MOVR3, #L;防抖动延时10ms DELY:LCALLDPLAY;调用动态显示子程序,显示一遍 DJNZR3, DELY;延时结束 LCALLKSCAN;查有没有键按

22、下 JZKS1;A=0表示没有键按下,转KS1 LCALLKEYSUM;有键按下,行扫描法确定键值 ;以下条指令完成键值中的内容乘以倍 MOVR2, A RL A ADDA,R2 RL A;键值6,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,; 主要考虑FTAB 以下指令LCALL(3字节)和LJMP(3字节)的总 ;字节数为6 MOVDPTR, #FTAB JMPA+DPTR;散转,执行所按键相应功能子程序 FTAB:LCALLFUNC0;调用0号键功能子程序 LJMPKS1;程序进入循环 LCALLFUNC1;调用1键功能子程序 LJMPKS1;程序进入循环 . . . LCALLFUNC15;调用15键功能子程序 LJMPKS1;程序进入循环 LCALLERRSUB;键值为16,异常处理 LJMPKS1;程序进入循环,第三节 键盘与显示系统,第七章 显示器与键盘接口技术,; KSCAN为判有无键按下子程序,表示有键按下 KSCAN:MOV P1, #0F0H;行线置低电平,列线置输入态 MOV A, P1;读列线数据 CPL A;A取反 ANL A, #0F0H;屏蔽

温馨提示

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

评论

0/150

提交评论