第7章显示器与键盘接口技术0.ppt

上传人:赵** 文档编号:78661214 上传时间:2023-03-18 格式:PPT 页数:48 大小:1.01MB
返回 下载 相关 举报
第7章显示器与键盘接口技术0.ppt_第1页
第1页 / 共48页
第7章显示器与键盘接口技术0.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《第7章显示器与键盘接口技术0.ppt》由会员分享,可在线阅读,更多相关《第7章显示器与键盘接口技术0.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、非编码键盘接口非编码键盘接口 键盘与显示系统键盘与显示系统 第七章第七章 显示器与键盘接口技术显示器与键盘接口技术 LEDLED数码管显示接口数码管显示接口 2021/9/211LEDLED(发光二极管)(发光二极管)是单片机系统的重要外设,是单片机系统的重要外设,用于显示控制过程和运算结果。用于显示控制过程和运算结果。第七章 显示器与键盘接口技术第一节 LED数码管显示接口2021/9/2121.1.LEDLED数码管显示原理数码管显示原理 LEDLED显示器是单片机显示器是单片机应用系统常用的输出器应用系统常用的输出器件。由若干发光二极管件。由若干发光二极管组成。组成。控制不同组合的发光控

2、制不同组合的发光二极管导通,就能显示二极管导通,就能显示出各种不同的字形。出各种不同的字形。这种显示器可分为共这种显示器可分为共阴极和共阳极两种,它阴极和共阳极两种,它们的结构分别如右图。们的结构分别如右图。第一节 LED数码管显示接口第七章 显示器与键盘接口技术(a)(a)外型外型 (b)(b)共阴极共阴极 (c)(c)共阳极共阳极 图图 7-1 LED 7-1 LED显示器结构图显示器结构图 2021/9/213表表7-1 八段八段LED段码表段码表第一节 LED数码管显示接口第七章 显示器与键盘接口技术显示显示字符字符共阴极接法八段状态共阴极接法八段状态 s 共阴极接法共阴极接法段码段码

3、(十六进制十六进制)共阳极接法共阳极接法段码段码(十六进制十六进制)0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90HA0111011177H88Hb011111007CH83Hc0011100139HC6Hd010111105EHA1HE0111100179H86HF0111000171H8EH灭(空格)0000000000HFFHP011100

4、1173H8CHH0111011076H89H1000000080H7FH0100000040HBFH2021/9/2142.2.数码管显示器的显示方式数码管显示器的显示方式 单片机应用系统单片机应用系统 ,通常由多块,通常由多块LEDLED显示器构成一个显示器构成一个N N位的位的LEDLED显示器;显示器;N N位位LEDLED显示器有显示器有N N根位选线和根位选线和8N8N根段选线;根段选线;位选线用于选中一个位选线用于选中一个LEDLED显示器,段选线控制显示的字形。显示器,段选线控制显示的字形。第一节 LED数码管显示接口第七章 显示器与键盘接口技术显示方式显示方式分类分类静态显示

5、静态显示 动态显示动态显示 2021/9/2151 1).数码管显示器的静态显示方式数码管显示器的静态显示方式 静态显示是指静态显示是指LED显示器显示某一字符时,相应的发光二极管恒定导通显示器显示某一字符时,相应的发光二极管恒定导通或恒定截止。或恒定截止。图图7-2所示为单片机所示为单片机AT89C51控制的控制的2位静态位静态LED显示器接口电路,图中显示器接口电路,图中显示器为共阳极显示器。显示器为共阳极显示器。第一节 LED数码管显示接口第七章 显示器与键盘接口技术图图 7-2 7-2 数码管静态显示实例数码管静态显示实例 2021/9/216 图图7-3所示所示流程图:完流程图:完成

6、成099的计的计数功能。数功能。其中其中LED2显显示十位计数示十位计数值,值,LED1显显示个位计数示个位计数值。值。静态显示静态显示唯有当计数唯有当计数值发生改变值发生改变时,才进行时,才进行数据的显示数据的显示更新更新!第一节 LED数码管显示接口第七章 显示器与键盘接口技术图图 7-3 7-3 数码管静态显示程序流程图数码管静态显示程序流程图 2021/9/217实例实例7-17-1:根据如图根据如图7-2所示的数码管静态显示实例和图所示的数码管静态显示实例和图7-3所示的所示的流程图,请列写出实现流程图,请列写出实现099循环计数静态显示的程序循环计数静态显示的程序()。第一节 LE

7、D数码管显示接口第七章 显示器与键盘接口技术解:相应程序如下:解:相应程序如下:CNT_H EQU 61H ;计数待显示十位数据计数待显示十位数据CNT_L EQU 60H ;计数待显示个位数据计数待显示个位数据 ORG 0000HLJMP MAINORG 0066HMAIN:MOV SP,#70HMOV CNT_H,#00H ;清除清除RAM 61H、60H单元内容单元内容MOV CNT_L,#00HLCALL DISPLAY ;调用显示子程序调用显示子程序2021/9/218第一节 LED数码管显示接口第七章 显示器与键盘接口技术LOOP:LCALL DELAY1SINCCNT_LMOVA

8、,CNT_LXRLA,#10JNZDSPMOVCNT_L,#00HINCCNT_HMOVA,CNT_HXRLA,#10JNZDSPMOVCNT_H,#00H2021/9/219第一节 LED数码管显示接口第七章 显示器与键盘接口技术DSP:LCALL DISPLAY ;调用显示子程序调用显示子程序LJMPLOOP;*DISPLAY:MOVDPTR,#TABLE ;显示子程序显示子程序MOVA,CNT_HMOVC A,A+DPTRMOVP3,AMOVDPTR,#TABLEMOVA,CNT_LMOVC A,A+DPTRMOVP1,ARET2021/9/2110第一节 LED数码管显示接口第七章 显

9、示器与键盘接口技术;*DELAY1S:MOVR3,#04H;延时延时1秒子程序秒子程序LOOP3:MOVR2,#0FAHLOOP2:MOVR1,#0F9H NOPLOOP1:NOP NOP DJNZR1,LOOP1 DJNZR2,LOOP2 DJNZR3,LOOP3 RETTABLE:DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 2021/9/21112 2).数码管显示器的动态显示方式数码管显示器的动态显示方式 动态显示是一位一位地轮流循环点亮各位显示器动态显示是一位一位地轮流循环点亮各位显示器。每位延时点亮的时间为每位延时点亮的时间为

10、15ms。利用人眼的视觉暂留效应,就可以给人同时显示的感觉。利用人眼的视觉暂留效应,就可以给人同时显示的感觉。图图7-4所示为单片机所示为单片机AT89C51控制的控制的2位动态位动态LED显示器接口电路显示器接口电路 第一节 LED数码管显示接口第七章 显示器与键盘接口技术图图 7-4 数码管动态显示实例数码管动态显示实例 2021/9/2112图图7-5所示所示流程图:完流程图:完成成0099的计的计数功能。数功能。共阳极显共阳极显示器示器!为了实现电为了实现电路的动态扫路的动态扫描,程序采描,程序采用用T0溢出中溢出中断方式,实断方式,实现现4ms的动的动态扫描。态扫描。第一节 LED数

11、码管显示接口第七章 显示器与键盘接口技术图图 7-5 数码管动态显示程序流程图数码管动态显示程序流程图 开 始初始化系统(T0定时器初始化、T0开中断)延时1S个位计数值加1个位计数值=10?个位计数值清0,且十位计数值加1十位计数值=10?十位计数值清0结 束Y YN NY YN N动态显示T0中断服务子程序显示控制位取反显示控制位=1?个位数码管阳极置高电平十位数码管阳极置低电平查找个位数据编码个位数码管阳极置低电平十位数码管阳极置高电平查找十位数据编码数据端口=数据编码恢复现场保护现场 中断返回Y YN NT0重装初值2021/9/2113实例实例7-27-2:根据如图根据如图7-4所示

12、的数码管动态显示实例和图所示的数码管动态显示实例和图7-5所示的所示的流程图,请编写实现流程图,请编写实现099循环计数动态显示程序循环计数动态显示程序()。第一节 LED数码管显示接口第七章 显示器与键盘接口技术解:相应程序如下:解:相应程序如下:H_C EQU P1.0 ;P1.0控制十位数码管阳极控制十位数码管阳极L_C EQU P1.1 ;P1.1控制个位数码管阳极控制个位数码管阳极PORT_G EQU P3 ;数码管数据端数码管数据端DSP_C EQU 20H.0 ;显示控制位:显示控制位:1-显示个位,显示个位,0-显示十位显示十位CNT_H EQU 61H ;计数待显示十位数据计

13、数待显示十位数据CNT_L EQU 60H ;计数待显示个位数据计数待显示个位数据 ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T02021/9/2114第一节 LED数码管显示接口第七章 显示器与键盘接口技术ORG0066HMAIN:MOVSP,#70HMOVCNT_H,#00H;清除清除RAM 61H、60H单元内容单元内容MOVCNT_L,#00HMOVTMOD,#01HMOVTH0,#0F0H;T0装初值装初值,延时延时4msMOVTL0,#5FHSETBET0SETBEASETBTR0 2021/9/2115第一节 LED数码管显示接口第七章 显示器

14、与键盘接口技术LOOP:LCALL DELAY1S;调用延时调用延时1秒子程序秒子程序INCCNT_LMOVA,CNT_LXRLA,#10JNZLOOPMOVCNT_L,#00HINCCNT_HMOVA,CNT_HXRLA,#10JNZLOOPMOVCNT_H,#00HLJMPLOOP2021/9/2116第一节 LED数码管显示接口第七章 显示器与键盘接口技术;*INT_T0:PUSH ACC;T0中断,实现动态显示中断,实现动态显示PUSHPSWCPLDSP_C;显示子程序显示子程序JBDSP_C,DSPLCLRL_CSETBH_CMOVDPTR,#TABLE MOVA,CNT_HMOVC

15、 A,A+DPTRLJMPDPS_END 2021/9/2117第一节 LED数码管显示接口第七章 显示器与键盘接口技术DSPL:CLRH_C SETBL_C MOVDPTR,#TABLE MOVA,CNT_L MOVCA,A+DPTRDPS_END:MOVPORT_G,A MOVTH0,#0F0H;T0重装初值重装初值 MOVTL0,#5FH POPPSW POPACC RETI2021/9/2118第一节 LED数码管显示接口第七章 显示器与键盘接口技术;*DELAY1S:MOVR3,#04H;延时延时1秒子程序秒子程序LOOP3:MOVR2,#0FAHLOOP2:MOVR1,#0F9HN

16、OPLOOP1:NOPNOPDJNZR1,LOOP1DJNZR2,LOOP2DJNZR3,LOOP3RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H END 2021/9/2119键盘是若干按键的集合,是单片机的常用输入键盘是若干按键的集合,是单片机的常用输入设备,操作人员可以通过键盘输入数据或命令,设备,操作人员可以通过键盘输入数据或命令,实现人机通信实现人机通信;单片机的键盘通常使用机械触点式按键开关单片机的键盘通常使用机械触点式按键开关;图图 7-6 7-6 反映了按键触点的机械抖动情况反映了按键触点的机械抖动情况。第

17、七章 显示器与键盘接口技术第二节 非非编编码码键键盘盘接接口口 图图 7-6 7-6 按键触点的机械抖动按键触点的机械抖动 2021/9/2120触点去抖动:分触点去抖动:分软件去抖动软件去抖动(软件延时软件延时10ms10ms)和和硬件去抖动硬件去抖动;键盘可以分为键盘可以分为独立连接式独立连接式和和行列(矩阵)式行列(矩阵)式两类,每一类又可根据对键盘的译码方法分为两类,每一类又可根据对键盘的译码方法分为编码键盘编码键盘和和非编码键盘非编码键盘两种类型。两种类型。第七章 显示器与键盘接口技术第二节 非非编编码码键键盘盘接接口口 2021/9/2121编码键盘编码键盘是通过一个编码电路来识别

18、闭合键的键码,是通过一个编码电路来识别闭合键的键码,具有去抖动功能,但硬件较复杂,具有去抖动功能,但硬件较复杂,PCPC机所用的标准键盘机所用的标准键盘就属于这种;就属于这种;非编码键盘非编码键盘是通过软件来识别键码,需占用是通过软件来识别键码,需占用CPUCPU一定一定的时间,但硬件简单,可以方便地增减键的数量,单片的时间,但硬件简单,可以方便地增减键的数量,单片机应用系统中得到广泛的应用;机应用系统中得到广泛的应用;本节仅介绍本节仅介绍非编码键盘非编码键盘的原理和接口电路。的原理和接口电路。第七章 显示器与键盘接口技术第二节 非非编编码码键键盘盘接接口口 2021/9/21221.1.独立

19、式按键接口独立式按键接口 独立式键独立式键盘是每个按盘是每个按键独立地占键独立地占用一根数据用一根数据输入线,图输入线,图7-77-7所示。所示。通常应用通常应用于按键数量于按键数量较少的场合。较少的场合。第二节 非非编编码码键键盘盘接接口口 第七章 显示器与键盘接口技术图图 7-7 AT89C51 7-7 AT89C51对独立式键盘的接口对独立式键盘的接口 2021/9/2123实例实例7-37-3:根据如图根据如图7-77-7所示的所示的AT89C51AT89C51单片机与独立式键盘的接口单片机与独立式键盘的接口电路,请用查询的方式写出其键盘扫描程序。电路,请用查询的方式写出其键盘扫描程序

20、。第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术解:相应程序如下:解:相应程序如下:ORG 0100HKEYSCAN: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

21、ACC.2,KEY2 ;2号键按下,转号键按下,转2号键功能程序号键功能程序 JNB ACC.3,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 ;从键盘服务子程序返回从键盘服务子程序返回2021/9/2124第一节 L

22、ED数码管显示接口第七章 显示器与键盘接口技术KEY0:LCALL FUNC0;执行执行0号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY1:LCALL FUNC1;执行执行1号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY2:LCALL FUNC2;执行执行2号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY3:LCALL FUNC3;执行执行3号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY4:LCALL FUNC4;执行执行4号键功能服务程

23、序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY5:LCALL FUNC5;执行执行5号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY6:LCALL FUNC6;执行执行6号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回KEY7:LCALL FUNC7;执行执行7号键功能服务程序号键功能服务程序RET;从键盘服务子程序返回从键盘服务子程序返回 2021/9/21252.2.行列式非编码键盘接口行列式非编码键盘接口 行列式键盘行列式键盘又称矩阵式键又称矩阵式键盘盘。它是将它是将I/OI/O线的一部分作线

24、的一部分作为行线,另一为行线,另一部分作为列线,部分作为列线,按键设置在行按键设置在行线和列线的交线和列线的交叉处。叉处。第二节 非非编编码码键键盘盘接接口口 第七章 显示器与键盘接口技术图图 7-8 44 7-8 44矩阵键盘电路图矩阵键盘电路图 2021/9/2126第二节 非非编编码码键键盘盘接接口口 第七章 显示器与键盘接口技术判别是否有键按下判别是否有键按下 识别按键位置(行扫描法)识别按键位置(行扫描法)键值的计算键值的计算 图图图图 7-8 44 7-8 44 7-8 44 7-8 44矩矩矩矩阵键盘电路图阵键盘电路图阵键盘电路图阵键盘电路图 2021/9/21271 1).判别

25、是否有键按下判别是否有键按下 首先把首先把I/OI/O口口P1.0P1.0P1.3 P1.3 设置成输出口,把设置成输出口,把P1.4P1.4P1.7P1.7设置成输入口,接着把全设置成输入口,接着把全“0”“0”送到送到P1.0P1.0 P1.3P1.3,这样就可以在所有行线这样就可以在所有行线x0 x0 x3x3上得到低电平,然后读取上得到低电平,然后读取y0y0y3y3上的列值就可以判断是否有键按下。上的列值就可以判断是否有键按下。若无键按下,则所读列值必全为若无键按下,则所读列值必全为“1”“1”;若;若有键按下有键按下,则所读列值必因被按按键的行、列线接通而则所读列值必因被按按键的行

26、、列线接通而不全为不全为“1”“1”。第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术2021/9/21282 2).识别按键位置(行扫描法)识别按键位置(行扫描法)当键盘上某一个按键闭合时,则该按键所对应当键盘上某一个按键闭合时,则该按键所对应的列线与行线短接。的列线与行线短接。应用应用“行扫描法行扫描法”来识别按键的位置。来识别按键的位置。第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术2021/9/21293 3).键值的计算键值的计算 第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术设键盘为设键盘为 矩阵键盘,其中,矩阵键盘,其中,为行数

27、,为行数,为列数。为列数。如果由扫描法得按下按键的行号和列号分别为如果由扫描法得按下按键的行号和列号分别为m m和和n n,则,则所按下按键的键值为:所按下按键的键值为:。2021/9/2130 图图7-97-9为键盘扫描子程序的程序流程图为键盘扫描子程序的程序流程图第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术图图 7-9 7-9 键盘扫描子程序流程图键盘扫描子程序流程图 2021/9/2131实例实例7-47-4:根据图根据图7-87-8所示的所示的4444矩阵键盘电路图矩阵键盘电路图(程序流程图如图(程序流程图如图7-97-9所示),请写出其键盘扫描程序。所示),请写出

28、其键盘扫描程序。第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术解:相应程序如下:解:相应程序如下:KEYSCAN:ACALL KSCAN ;查有没有键按下查有没有键按下 JZ GORET ;A=0表示没有键按下,返回表示没有键按下,返回 LCALL DELAY10ms ;有键按下,延时有键按下,延时10ms,防抖动。,防抖动。;(延时(延时10ms的子程序的子程序DELAY10ms略)略)ACALL KSCAN ;再查有没有键按下再查有没有键按下 JZ GORET ;A=0表示没有键按下,返回表示没有键按下,返回 ACALL KEYSUM ;有键按下,扫描确定键值有键按下,扫

29、描确定键值 RL A RL A ;键值键值4;主要考虑主要考虑FTAB 以下指令以下指令LCALL(3字节)和字节)和RET(1字节)的总字节)的总;字节数为字节数为4 MOV DPTR,#FTAB JMP A+DPTR ;散转,执行所按键相应功能子程序散转,执行所按键相应功能子程序GORET:RET 2021/9/2132第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术FTAB:LCALL FUNC0;调用调用0号键功能子程序号键功能子程序RETLCALL FUNC1;调用调用1键功能子程序键功能子程序RET.LCALL FUNC15;调用调用15键功能子程序键功能子程序RE

30、TLCALL ERRSUB;键值为键值为16,异常处理,异常处理RET2021/9/2133第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术;KSCAN为判断有无键按下子程序,表示有键按下为判断有无键按下子程序,表示有键按下KSCAN:MOVP1,#0F0H ;行线置低电平,列线置输入态行线置低电平,列线置输入态 MOV A,P1 ;读列线数据读列线数据 CPL A ;A取反取反 ANL A,#0F0H ;屏蔽行线屏蔽行线 RET ;返回,表示有键按下返回,表示有键按下;KEYSUM为求键值子程序,键值在为求键值子程序,键值在A中中KEYSUM:MOV R6,#00H ;R6存

31、放每行最左键的键值,初始清零存放每行最左键的键值,初始清零 MOV R7,#0FEH ;准备扫描第准备扫描第0行行 2021/9/2134第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术LOOP:MOVP1,R7;逐行输出逐行输出0扫描扫描MOVA,P1;读列线数据读列线数据SWAP A;A的高低半字节交换的高低半字节交换JBACC.0,L1;第第0列无键按下,转查第列无键按下,转查第1列列MOVA,#0;第第0列有键按下,列有键按下,SJMPKSOLVE;转求键值转求键值L1:JBACC.1,L2;第第1列无键按下,转查第列无键按下,转查第2列列MOVA,#1;第第1列有键按

32、下,列有键按下,SJMPKSOLVE;转求键值转求键值L2:JBACC.2,L3;第第2列无键按下,转查第列无键按下,转查第3列列MOVA,#2;第第2列有键按下,列有键按下,SJMPKSOLVE;转求键值转求键值L3:JBACC.3,NEXT;4列均无键按下,本行扫描结束列均无键按下,本行扫描结束MOVA,#3;第第3列有键按下,列有键按下,SJMPKSOLVE;转求键值转求键值 2021/9/2135第二节 非非编编码码键键盘盘接接口口第七章 显示器与键盘接口技术NEXT:MOV A,R7;准备扫描下一行准备扫描下一行 JNB ACC.3,ERR;扫描完未读到键值,异常处理扫描完未读到键值

33、,异常处理 RL A;R7循环左移一位循环左移一位 MOV R7,A;得到下一行行扫描字得到下一行行扫描字 ADD R6,#4;得到下一行首键键值得到下一行首键键值 SJMP LOOP;转转LOOP,扫描下一行,扫描下一行ERR:MOV A,#16;键值赋键值赋16,表示出错,表示出错!RETKSOLVE:ADD A,R6;得键值得键值 PUSH ACC;键值进栈暂存键值进栈暂存WAIT:ACALL KSCAN;查按键释放否?防止重复执行键功能查按键释放否?防止重复执行键功能 JNZ WAIT;没有释放,等待没有释放,等待 POP ACC;键值出栈键值出栈 RET 2021/9/2136在单片

34、机应用系统中,为节省在单片机应用系统中,为节省I/OI/O口线,可将口线,可将显示电路和键盘做在一起,构成实用的键盘、显示电路和键盘做在一起,构成实用的键盘、显示器电路显示器电路。图图7-10 7-10 所示为实用的键盘所示为实用的键盘/显示器接口电路显示器接口电路。第七章 显示器与键盘接口技术第三节 键键盘盘与与显显示示系系统统 2021/9/2137第七章 显示器与键盘接口技术第三节 键键盘盘与与显显示示系系统统 图图 7-10 AT89C51 7-10 AT89C51对键盘对键盘/LED/LED的接口的接口 2021/9/2138图图7-107-10所示的所示的4444矩阵键盘电路已在第

35、二节中矩阵键盘电路已在第二节中介绍过,键盘扫描程序与介绍过,键盘扫描程序与实例实例7-47-4介绍的介绍的KEYSCANKEYSCAN子程序相同;子程序相同;图图7-107-10所示的所示的4 4位位LEDLED动态显示电路与图动态显示电路与图7-4 7-4 介绍的电路相同,只是介绍的电路相同,只是LEDLED的位数变成的位数变成4 4位位。其其动态显示子程序如下:动态显示子程序如下:第七章 显示器与键盘接口技术第三节 键键盘盘与与显显示示系系统统 2021/9/2139第七章 显示器与键盘接口技术第三节 键键盘盘与与显显示示系系统统 DPLAY:MOV R0,#30H ;R0指针指向显示缓冲

36、区首址指针指向显示缓冲区首址 MOV DPTR,#SEGTAB MOV R2,#01H ;置位选码初值置位选码初值 MOV A,R2DISP:MOV P1,A ;输出位选码输出位选码 MOV A,R0 ;取出要显示的数,准备查段选码取出要显示的数,准备查段选码 MOVC A,A+DPTR ;查字型码查字型码 MOV P3,A ;段选码送段选码送P3口口 ACALL DELAY1ms ;延时延时1ms。延时子程序。延时子程序DELAY1ms略略 INC R0 ;修改显示缓冲区单元地址修改显示缓冲区单元地址 MOV A,R2 JB ACC.3,GORET;4位显示完否?位显示完否?RL A ;未显

37、示完,位选码左移未显示完,位选码左移1位位 MOV R2,A AJMP DISPGORET:RETSEGTAB:DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H DB 88H,83H,C6H,A1H,86H,8EH;段选码表段选码表“0,1,2,,D,E,F”2021/9/2140由于键盘和显由于键盘和显示器共用一个接示器共用一个接口电路,所以键口电路,所以键盘和显示器的控盘和显示器的控制要统筹考虑,制要统筹考虑,程序中既要完成程序中既要完成键盘的扫描,又键盘的扫描,又要完成要完成LEDLED显示显示器的动态显示。器的动态显示。程序的框图如程序的框图如图图7

38、-117-11所示。所示。第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术图图 7-11 7-11 键盘、显示程序流程图键盘、显示程序流程图 2021/9/2141实例实例7-57-5:请写出图请写出图7-117-11所示的键盘、显示程序流程图对应的程序所示的键盘、显示程序流程图对应的程序。第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术解:相应程序如下:解:相应程序如下:ORG0000H LJMPMAIN ORG0100HMAIN:.;初始化部分初始化部分 .KEYSCAN:LCALLKSCAN ;查有没有键按下查有没有键按下 JZ KS1 ;A=0表示没

39、有键按下,转表示没有键按下,转KS1 AJMPKS2KS1:LCALLDPLAY ;调用动态显示子程序,显示一遍调用动态显示子程序,显示一遍 AJMPKEYSCAN2021/9/2142第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术;以下循环次数以下循环次数L的选取要使显示子程序运行总时间约为的选取要使显示子程序运行总时间约为10ms,作为防,作为防;抖动延时。抖动延时。KS2:MOVR3,#L;防抖动延时防抖动延时10msDELY:LCALL DPLAY;调用动态显示子程序,显示一遍调用动态显示子程序,显示一遍DJNZR3,DELY;延时结束延时结束LCALL KSCAN

40、;查有没有键按下查有没有键按下JZKS1;A=0表示没有键按下,转表示没有键按下,转KS1LCALL KEYSUM;有键按下,行扫描法确定键值有键按下,行扫描法确定键值;以下条指令完成键值中的内容乘以倍以下条指令完成键值中的内容乘以倍 MOVR2,A RL AADDA,R2RL A;键值键值6 2021/9/2143第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术;主要考虑主要考虑FTAB 以下指令以下指令LCALL(3字节)和字节)和LJMP(3字节)的总字节)的总;字节数为字节数为6MOVDPTR,#FTABJMPA+DPTR;散转,执行所按键相应功能子程序散转,执行所按

41、键相应功能子程序FTAB:LCALL FUNC0;调用调用0号键功能子程序号键功能子程序LJMPKS1;程序进入循环程序进入循环LCALL FUNC1;调用调用1键功能子程序键功能子程序LJMPKS1;程序进入循环程序进入循环 .LCALL FUNC15;调用调用15键功能子程序键功能子程序LJMPKS1;程序进入循环程序进入循环LCALL ERRSUB;键值为键值为16,异常处理,异常处理LJMPKS1;程序进入循环程序进入循环 2021/9/2144第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术;KSCAN为判有无键按下子程序,表示有键按下为判有无键按下子程序,表示有键

42、按下KSCAN:MOV P1,#0F0H;行线置行线置 低电平,列线置输入态低电平,列线置输入态 MOV A,P1;读列线数据读列线数据 CPL A;A取反取反 ANL A,#0F0H;屏蔽行线屏蔽行线 RET;返回,表示有键按下返回,表示有键按下;KEYSUM为求键值子程序,键值在为求键值子程序,键值在A中中KEYSUM:MOV R6,#00H;R6存放每行最左键的键值,初始清零存放每行最左键的键值,初始清零 MOV R7,#0FEH;准备扫描第准备扫描第0行行LOOP:MOV P1,R7;逐行输出逐行输出0扫描扫描 MOV A,P1;读列线数据读列线数据 SWAP A;A的高低半字节交换的

43、高低半字节交换 JB ACC.0,L1;第第0列无键按下,转查第列无键按下,转查第1列列 MOV A,#0;第第0列有键按下,列有键按下,SJMP KSOLVE;转求键值转求键值2021/9/2145第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术L1:JB ACC.1,L2;第第1列无键按下,转查第列无键按下,转查第2列列 MOV A,#1;第第1列有键按下,列有键按下,SJMP KSOLVE;转求键值转求键值L2:JB ACC.2,L3;第第2列无键按下,转查第列无键按下,转查第3列列 MOV A,#2;第第2列有键按下,列有键按下,SJMP KSOLVE;转求键值转求键

44、值L3:JB ACC.3,NEXT;4列均无键按下,本行扫描结束列均无键按下,本行扫描结束 MOV A,#3;第第3列有键按下,列有键按下,SJMP KSOLVE;转求键值转求键值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 2021/9/2146第三节 键键盘盘与与显显示示系系统统 第七章 显示器与键盘接口技术KSOLVE:ADD A,R6;得键值得键值 PUSH ACC;键值进栈暂存键值进栈暂存WAIT:ACALL KSCAN;查按键释放否?防止重复执行键功能查按键释放否?防止重复执行键功能 JNZ WAIT;没有释放,等待没有释放,等待 POP ACC;键值出栈键值出栈 RET END 2021/9/2147THE END 2021/9/2148

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

当前位置:首页 > 教育专区 > 高考资料

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

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