2019年单片机原理及应用键盘与显示器接口ppt课件

上传人:我*** 文档编号:149043282 上传时间:2020-10-23 格式:PPT 页数:57 大小:324KB
返回 下载 相关 举报
2019年单片机原理及应用键盘与显示器接口ppt课件_第1页
第1页 / 共57页
2019年单片机原理及应用键盘与显示器接口ppt课件_第2页
第2页 / 共57页
2019年单片机原理及应用键盘与显示器接口ppt课件_第3页
第3页 / 共57页
2019年单片机原理及应用键盘与显示器接口ppt课件_第4页
第4页 / 共57页
2019年单片机原理及应用键盘与显示器接口ppt课件_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《2019年单片机原理及应用键盘与显示器接口ppt课件》由会员分享,可在线阅读,更多相关《2019年单片机原理及应用键盘与显示器接口ppt课件(57页珍藏版)》请在金锄头文库上搜索。

1、键盘与显示器接口,键盘可分为编码式键盘和非编码式键盘。编码 键盘能够由硬件自动提供与被按键对应的ASCII 码或其它编码。但是它要求采用较多的硬件,价 格昂贵。非编码键盘则仅提供行和列的矩阵,其 硬件逻辑与按键编码不存在严格的对应关系,而 要由所用的程序来确定。非编码键盘的硬件接口 简单,但是要占用较多的CPU时间。 任何键盘接口均要解决三个主要问题: 1、反弹跳 2、串键保护 3、按键识别,1、反弹跳 当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。,采用R

2、S触发器实现硬件反弹跳,当键数较多时经常用软件延时的方法来反弹跳,如流程图所示。当检出有键按下后,先执行一个反颤延时20ms的子程序,待前沿弹跳消失后再转入键闭合CLOSE子程序。然后再判断此次按键是否松开,如果没有,则进行等待。若已松开,则又执行一次延时20ms的子程序以消除后沿弹跳的影响,再去检测下次按键的闭合。,2、串键保护 由于操作不慎,可能会造成同时有几个键被按下,这种情况 称为串键。有三种处理串键的技术:两键同时按下、n键同时 按下和n键锁定。 “两键同时按下”技术是在两个键同时按下时产生保护作用。 最简单的办法是当只有一个键按下时才读取键盘的输出,最后 仍被按下的键是有效的正确按

3、键。当用软件扫描键盘时常采用 这种方法。另一种方法是当第一个按键未松开时,按第二个键 不产生选通信号。这种方法常藉助硬件来实现。 “n键同时按下”技术或者不理会所有被按下的键,直至只剩 下一键按下时为止,或者将所有按键的信息都存入内部缓冲器 中,然后逐个处理,这种方法成本较高。 “n键锁定”技术只处理一个键,任何其它按下又松开的键不 产生任何码。通常第一个被按下或最后一个松开的键产生码。 这种方法最简单也最常用。,3、按键识别 决定是否有键被按下,如有则应识别键盘矩 阵中被按键对应的编码。编码键盘通过硬件直 接提供按键与被按键对应的ASCII码或其它编 码。非编码键盘则需要通过编程方式提供按键

4、 编码。其优点是结构简单、成本低廉,非编码键盘接口技术,非编码键盘接口技术主要是如何确定被 按键的行、列位置,即键码(值)。按键 识别是接口技术的关键问题。 常用按键识别方法有行扫描法(Row- Scanning)和线反转法(Line-Reverse) 。,典型非编码键盘结构 非编码键盘大都采用按行、列排列的矩阵开关结构,这种结构可以减少硬件和连线。,矩阵键盘接口,行扫描法识别按键 行扫描法是采用步进扫描方式,CPU通过输出口把一个“步进的0”逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位置。,键位与行列线关系表,上表

5、列出了识别按键位置与各行之间的关系。其中,R1、R2、R3、R4表示行,C1、C2、C3、C4表示列。当扫描第一行时,R1=0, 若读入的列值C1=0,则表明按键K13被压下,如果C3=0,则表明按键K15被压下。第一行扫描完毕后再扫描第二行,逐行扫描至最后一行为止,即可识别出所有的按键。,线反转法识别按键,线反转法是藉助程控并行接口实现的,比行扫描法的速度快。如图所示为一个44键盘与并行接口的连接。并行接口有一个方向寄存器和一个数据寄存器,方向寄存器规定了接口总线的方向,寄存器的某位置“1”,规定该位口线为输出。寄存器的某位置“0”,规定该位口线为输入。,线反转法的具体操作分两步,第一步:先

6、把控制字0FH置入并行接口的方向寄存器,使4条行线(PB0PB3)作输出,4条列线(PB4-PB7)作输入。然后把控制字F0H写入数据寄存器,PB0PB3将输出“0”到键盘行线。这时若无键按下,则4条列线均为“”;若有某键按下,则该键所在行线的“0”电平通过闭合键使相应的列线变为“0”,并经与非门发出键盘中断请求信号给单片机。图4.6(a)是第2行第1列有键按下的情况。这时PB7PB4线的输入为1011,其中0对应于被按键所在的列。,第二步:使接口总线的方向反转,把控制字F0H写入方向寄存器,使PB0PB3作输入,PB4PB7作输出。这时PB7PB4线的输出为1011,PB3PB0的输入为10

7、11,其中“0”对应于被按键的行。单片机现在读取数据寄存器的完整内容为10111011,其中两个0分别对应于被按键所在的行列位置。根据此位置码到ROM中去查表,就可识别是何键被按下。,单片机通过8155实现的键盘、显示器接口,如图所示为单片机8051与矩阵键盘及LED显示器的一种接口电路,通过编程设定8155的PA口、PB口作为输出口,PC口作为输入口。PA口完成键盘的行扫描输出,同时又对LED显示器作字位扫描,PC口输入键盘列线状态。7407为同相驱动器,75452为反相驱动器。接口电路中采用8031的P2.7作为8155的片选线,P2.0作为8155的IO端口和片内RAM选择线,因此815

8、5的命令寄存器地址为7F00H,PAPC口地址为7F01H7F03H。,按键识别子程序,KEY: MOV DPTR, #7F00H ;8155命令口地址 MOV A, #03H ;置PA、PB口为输出, MOVX DPTR,A ;PC口为输入 MOV R4,00H ;0键号寄存器R4 MOV R2,01H ;扫描模式01HR2 KEY1:MOV DPTR,7F01H MOV A,R2 MOVX DPTR,A ;扫描模式8155PA口 INC DPTR INC DPTR MOVX A,DPTR ;读8155PC口 JB ACC.0,KEY2 ;0列无键闭合,转判1列 MOV A,00H ;0列有

9、键闭合,0A AJMP KEY5 KEY2:JB ACC.1,KEY3 ;1列无键闭合,转判2列 MOV A,01H ;1列有键闭合,列线号01HA AJMP KEY5,KEY3:JB ACC.2,KEY4 ;2列无键闭合,转判3列 MOV A,02H ;2列有键闭合,02HA AJMP KEY5 KEY4:JB ACC.3,NEXT ;3列无键闭合,转判下一行 MOV A,03H ;3列有键闭合,03HA KEY5:ADD A,R4 ;列线号+(R4)作为键值A MOV R4,A ;键值R4 RET ;返回 NEXT:MOV A,R4; ADD A,04 ;键号寄存器加4 MOV R4,A

10、MOV A,R2 JB ACC.3,NEXT1 ;判别是否已扫描到最后一行 RL A ;扫描模式左移一位 MOV R2,A AJMP KEY1 ;重新开始扫描下一行 NEXT1: MOV R4,88H ;扫描到最后一行仍无按键 RET ;置无键闭合标志后返回,键值分析,单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘解释程序。,常用的方法:,1、查表法 根据得到的键值代码,到固化在ROM里的表格中查找对应该代码的动作例行程序的首地址。这种方法适用于一个键就产生一个动作的单个命令键。,2.状态分析法 根据键码和当前所处的状态找出下一个应进入的状态及动作例行程序。这种方法适用于多个键互相

11、配合产生一个动作的多义键。,查表法,查表法的核心是一个固化在ROM中的功能子程序入口地址转移表。如下表所示。在转移表内存有各个功能子程序的入口地址,根据键值代码查阅此表获得相应功能的子程序入口地址,从而可以转移到相应的命令处理子程序。,功能子程转移地址,例:键盘接口调用按键识别子程序所获得的键值如下表所示 ,当键值小于10H时代表数字键,键值大于等于10H时代表功能键。,键值表,处理功能键的程序:,INPUT: LCALL KEY ;调按键识别子程序,获得键值在A中 MOV R0,A ;键值暂存于R0 ANL A,10H JZ DATIN ;小于10H为数字键,转入数字操作 MOV A,R0

12、;大于等于10H为命令键 ANL A,0FH ;保留键值低4位 MOV R0,A ;(A)3 RL A ADD A,R0 MOV DPTR,TABEL ;取转移表首地址 JMP A+DPTR ;按不同键值散转至子程序 TABEL:LJMP RUN ;转RUN命令子程序 LJMP RET ;转RET命令子程序 LJMP ADRS ;转ADRS命令子程序 LJMP STORE ;转STORE命令子程序 LJMP READ ;转READ命令子程序 LJMP WRITE ;转WRITE命令子程序 DATIN: ; 数字键操作程序,略;,LED显示器接口技术,LED数码显示器结构与原理 LED数码显示器

13、是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段LED数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。,使用LED显示器时,要注意区分共阴极和共阳极两种不同的接法。 为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的段码正好是一个字节。 实际使用中,通过单片机向LED显示接口输出不同段码,即可显示相应的数字。,LED数码显示器共阴极和共阳极段码,硬件译码LED显示接口 如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴极的。9368是硬件段译码器,它能自动将输入的16进制数转换成段码输出,在+5V时

14、能输出约30mA的电流点亮显示器的段。7475是4位锁存器,4个数据输入端接到系统数据总线的D3D0。锁存器的选通端E接到地址译码器,若该接口的地址为0088H,执行以下指令即可在显示器上显示数字“0”。 MOV DPTR,0088H MOV A,00H MOVX DPTR,A,软件译码LED显示接口,设计思想: 先在内存中存储一张段码表,根据要显示的数字或字符去查表取得相应的段码,并输出到LED显示器。具体显示时,采用逐位扫描的方法控制哪一位LED被点亮。,程序清单:,DISPB: MOV DPTR,7F00H ;8155命令口地址 MOV A,03H MOVX DPTR,A ;置PA口、P

15、B口为输出 MOV R0,7AH ;置显示缓冲器指针初值 MOV R3,01H ;置扫描模式初值 MOV A,R3 DISPB1:MOV DPTR,7F01H ;8155 PA口地址 MOVX DPTR,A ;扫描模式8155 PA口 INC DPTR MOV A, R0 ;取显示数据 ADD A,0DH ;加偏移量 MOVC A, A+PC ;查表取段码 MOVX DPTR,A ;段码8155 PB口,ACALL DELAY ;延时 INC R0 MOV A,R3 JB ACC.5,DISPB2 ;判6位LED显示完否 RL A ;扫描模式左移1位 MOV R3,A AJMP DISPB1 DISPB2: RET SEGPT2: DB 3FH,06H,5BH,4FH,66H,6DH ;段码表 DELAY: MOV R5,02H ;延时子程序 DELAY1: MOV R4,0FFH DELAY2: DJNZ R4,DELAY2 DJNZ R5,DELAY1 RET,串行接口LED驱动器MAX7219,MAX7219是MAXIM公司生产的一种串行接口方式7段共阴极LED显示驱动器,其片内包含有一个BCD码到B码的译码器、多路复用扫描电路、字段和字位驱动器以及存储每个数字的88 RAM,每位数字都可

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号