单片机原理及应用键盘与显示器接口PPT讲稿.ppt
《单片机原理及应用键盘与显示器接口PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用键盘与显示器接口PPT讲稿.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及应用键盘与显示器接口第1页,共57页,编辑于2022年,星期五键盘可分为编码式键盘和非编码式键盘。编码键盘可分为编码式键盘和非编码式键盘。编码键盘能够由硬件自动提供与被按键对应的键盘能够由硬件自动提供与被按键对应的ASCIIASCII码或其它编码。但是它要求采用较多的硬件,价码或其它编码。但是它要求采用较多的硬件,价格昂贵。非编码键盘则仅提供行和列的矩阵,其格昂贵。非编码键盘则仅提供行和列的矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来确定。非编码键盘的硬件接口要由所用的程序来确定。非编码键盘的硬件接口简单,但是要占用较
2、多的简单,但是要占用较多的CPUCPU时间。时间。任何键盘接口均要解决三个主要问题:任何键盘接口均要解决三个主要问题:1、反弹跳、反弹跳2、串键保护、串键保护3、按键识别、按键识别第2页,共57页,编辑于2022年,星期五1、反弹跳、反弹跳当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖动和弹跳,如下图所示,这是机械式开关的一个共同性问题。动和弹跳,如下图所示,这是机械式开关的一个共同性问题。消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用软件延迟的方法。软件延迟的方法。采用
3、采用RS触发器实现硬件反弹跳触发器实现硬件反弹跳第3页,共57页,编辑于2022年,星期五当键数较多时经常用软件当键数较多时经常用软件延时的方法来反弹跳,如延时的方法来反弹跳,如流程图所示。当检出有键流程图所示。当检出有键按下后,先执行一个反颤按下后,先执行一个反颤延时延时20ms20ms的子程序,待前的子程序,待前沿弹跳消失后再转入键闭沿弹跳消失后再转入键闭合合CLOSECLOSE子程序。然后再子程序。然后再判断此次按键是否松开,判断此次按键是否松开,如果没有,则进行等待。如果没有,则进行等待。若已松开,则又执行一次若已松开,则又执行一次延时延时20ms20ms的子程序以消除的子程序以消除后
4、沿弹跳的影响,再去检后沿弹跳的影响,再去检测下次按键的闭合。测下次按键的闭合。第4页,共57页,编辑于2022年,星期五2、串键保护、串键保护 由于操作不慎,可能会造成同时有几个键被按下,这种情况由于操作不慎,可能会造成同时有几个键被按下,这种情况称为串键。有三种处理串键的技术:两键同时按下、称为串键。有三种处理串键的技术:两键同时按下、n键同时键同时按下和按下和n键锁定。键锁定。“两键同时按下两键同时按下”技术是在两个键同时按下时产生保护作用。技术是在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被
5、按下的键是有效的正确按键。当用软件扫描键盘时常采用仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常藉助硬件来实现。不产生选通信号。这种方法常藉助硬件来实现。“n键同时按下键同时按下”技术或者不理会所有被按下的键,直至只剩技术或者不理会所有被按下的键,直至只剩下一键按下时为止下一键按下时为止,或者将所有按键的信息都存入内部缓冲器或者将所有按键的信息都存入内部缓冲器中,然后逐个处理,这种方法成本较高。中,然后逐个处理,这种方法成本较高。“n键锁定键锁定”技术只
6、处理一个键,任何其它按下又松开的键不技术只处理一个键,任何其它按下又松开的键不产生任何码。通常第一个被按下或最后一个松开的键产生码。产生任何码。通常第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。这种方法最简单也最常用。第5页,共57页,编辑于2022年,星期五3、按键识别、按键识别 决定是否有键被按下,如有则应识别键盘矩决定是否有键被按下,如有则应识别键盘矩阵中被按键对应的编码。编码键盘通过硬件直阵中被按键对应的编码。编码键盘通过硬件直接提供按键与被按键对应的接提供按键与被按键对应的ASCII码或其它编码或其它编码。非编码键盘则需要通过编程方式提供按键码。非编码键盘则需要通过编
7、程方式提供按键编码。其优点是结构简单、成本低廉编码。其优点是结构简单、成本低廉第6页,共57页,编辑于2022年,星期五非编码键盘接口技术非编码键盘接口技术 非编码键盘接口技术主要是如何确定被非编码键盘接口技术主要是如何确定被按键的行、列位置,即键码(值)。按键按键的行、列位置,即键码(值)。按键识别是接口技术的关键问题。识别是接口技术的关键问题。常用按键识别方法有行扫描法(常用按键识别方法有行扫描法(Row-Scanning)和线反转法)和线反转法(Line-Reverse)。第7页,共57页,编辑于2022年,星期五典型非编码键盘结构典型非编码键盘结构 非编码键盘大都采用按行、列排列的矩阵
8、开关结构非编码键盘大都采用按行、列排列的矩阵开关结构,这种结构可以减少硬件和连线。这种结构可以减少硬件和连线。矩阵键盘接口第8页,共57页,编辑于2022年,星期五行扫描法识别按键行扫描法识别按键 行扫描法是采用步进扫描方式,行扫描法是采用步进扫描方式,CPU通过输出口把一通过输出口把一个个“步进的步进的0”逐行加至键盘的行线上,然后通过输入口检逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合来确定是否有查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位置。键按下,并确定被按键所处的行、列位置。第9页,共57页,编辑于2022年,星
9、期五R1R1K13K14K15K16R2R2K9K10K11K12R3R3K5K6K7K8R4R4K1K2K3K4C1C1C2C2C3C3C4C4键位与行列线关系表键位与行列线关系表 上表列出了识别按键位置与各行之间的关系。其中,上表列出了识别按键位置与各行之间的关系。其中,R1、R2、R3、R4表示行,表示行,C1、C2、C3、C4表示列。当扫描第表示列。当扫描第一行时,一行时,R1=0,若读入的列值若读入的列值C1=0,则表明按键,则表明按键K13被压被压下,如果下,如果C3=0,则表明按键,则表明按键K15被压下。第一行扫描完毕被压下。第一行扫描完毕后再扫描第二行,逐行扫描至最后一行为止
10、,即可识别出后再扫描第二行,逐行扫描至最后一行为止,即可识别出所有的按键。所有的按键。第10页,共57页,编辑于2022年,星期五线反转法识别按键线反转法识别按键线反转法是藉助程控并线反转法是藉助程控并行接口实现的,比行扫行接口实现的,比行扫描法的速度快。如图所描法的速度快。如图所示为一个示为一个44键盘与并行键盘与并行接口的连接。并行接口接口的连接。并行接口有一个方向寄存器和一有一个方向寄存器和一个数据寄存器,方向寄个数据寄存器,方向寄存器规定了接口总线的存器规定了接口总线的方向,寄存器的某位置方向,寄存器的某位置“1”,规定该位口线为,规定该位口线为输出。寄存器的某位置输出。寄存器的某位置
11、“0”,规定该位口线为,规定该位口线为输入。输入。第11页,共57页,编辑于2022年,星期五线反转法的具体操作分两步线反转法的具体操作分两步 第一步:先把控制字第一步:先把控制字0FH0FH置入并行接口的方向寄存器,使置入并行接口的方向寄存器,使4 4条行线条行线(PB0(PB0PB3)PB3)作输出,作输出,4 4条列线条列线(PB4-PB7)(PB4-PB7)作输入。然后把控制字作输入。然后把控制字F0HF0H写入数据寄写入数据寄存器,存器,PB0PB0PB3PB3将输出将输出“0”“0”到键盘行线。这时若无键按下,则到键盘行线。这时若无键按下,则4 4条列线条列线均为均为“”;若有某键
12、按下,则该键所在行线的;若有某键按下,则该键所在行线的“0”“0”电平通过闭合键电平通过闭合键使相应的列线变为使相应的列线变为“0”“0”,并经与非门发出键盘中断请求信号给单片机。,并经与非门发出键盘中断请求信号给单片机。图图4.6(a)4.6(a)是第是第2 2行第行第1 1列有键按下的情况。这时列有键按下的情况。这时PB7PB7PB4PB4线的输入为线的输入为10111011,其中,其中0 0对应于被按键所在的列。对应于被按键所在的列。第二步:使接口总线的方向反转,把控制字第二步:使接口总线的方向反转,把控制字F0H写入方向寄存器,写入方向寄存器,使使PB0PB3作输入,作输入,PB4PB
13、7作输出。这时作输出。这时PB7PB4线的输线的输出为出为1011,PB3PB0的输入为的输入为1011,其中,其中“0”对应于被按键的对应于被按键的行。单片机现在读取数据寄存器的完整内容为行。单片机现在读取数据寄存器的完整内容为10111011,其中两,其中两个个0分别对应于被按键所在的行列位置。根据此位置码到分别对应于被按键所在的行列位置。根据此位置码到ROM中中去查表,就可识别是何键被按下。去查表,就可识别是何键被按下。第12页,共57页,编辑于2022年,星期五单片机通过单片机通过8155实现的键盘、显示器接口实现的键盘、显示器接口 如图所示为单片机如图所示为单片机8051与矩阵键盘及
14、与矩阵键盘及LED显示器的一种接口电路,显示器的一种接口电路,通过编程设定通过编程设定8155的的PA口、口、PB口作为输出口,口作为输出口,PC口作为输入口。口作为输入口。PA口完成键盘的行扫描输出,同时又对口完成键盘的行扫描输出,同时又对LED显示器作字位扫描,显示器作字位扫描,PC口输口输入键盘列线状态。入键盘列线状态。7407为同相驱动器,为同相驱动器,75452为反相驱动器。接口电路为反相驱动器。接口电路中采用中采用8031的的P2.7作为作为8155的片选线,的片选线,P2.0作为作为8155的的IO端口和片内端口和片内RAM选择线,因此选择线,因此8155的命令寄存器地址为的命令
15、寄存器地址为7F00H,PAPC口地址口地址为为7F01H7F03H。第13页,共57页,编辑于2022年,星期五按键识别子程序按键识别子程序KEY:MOV DPTR,#7F00H ;8155命令口地址命令口地址 MOV A,#03H ;置;置PA、PB口为输出,口为输出,MOVX DPTR,A ;PC口为输入口为输入MOV R4,00H ;0键号寄存器键号寄存器R4MOV R2,01H ;扫描模式;扫描模式01HR2KEY1:MOV DPTR,7F01HMOV A,R2MOVX DPTR,A ;扫描模式;扫描模式8155PA口口INC DPTRINC DPTRMOVX A,DPTR ;读;读
16、8155PC口口JB ACC.0,KEY2 ;0列无键闭合,转判列无键闭合,转判1列列MOV A,00H ;0列有键闭合,列有键闭合,0AAJMP KEY5KEY2:JB ACC.1,KEY3 ;1列无键闭合,转判列无键闭合,转判2列列MOV A,01H ;1列有键闭合,列线号列有键闭合,列线号01HAAJMP KEY5第14页,共57页,编辑于2022年,星期五KEY3:JB ACC.2,KEY4 ;2列无键闭合,转判列无键闭合,转判3列列 MOV A,02H ;2列有键闭合,列有键闭合,02HA AJMP KEY5KEY4:JB ACC.3,NEXT ;3列无键闭合,转判下一行列无键闭合,
17、转判下一行 MOV A,03H ;3列有键闭合,列有键闭合,03HAKEY5:ADD A,R4 ;列线号;列线号+(R4)作为键值作为键值A MOV R4,A ;键值;键值R4 RET ;返回;返回NEXT:MOV A,R4;ADD A,04 ;键号寄存器加;键号寄存器加4 MOV R4,A MOV A,R2 JB ACC.3,NEXT1 ;判别是否已扫描到最后一行;判别是否已扫描到最后一行 RL A ;扫描模式左移一位;扫描模式左移一位 MOV R2,A AJMP KEY1 ;重新开始扫描下一行;重新开始扫描下一行NEXT1:MOV R4,88H ;扫描到最后一行仍无按键;扫描到最后一行仍无
18、按键 RET ;置无键闭合标志后返回;置无键闭合标志后返回 第15页,共57页,编辑于2022年,星期五键值分析键值分析 单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘解释程序。解释程序。常用的方法:常用的方法:1、查表法、查表法 根据得到的键值代码,到固化在根据得到的键值代码,到固化在ROM里的表格中查找对应该代码里的表格中查找对应该代码的动作例行程序的首地址。这种方法适用于一个键就产生一个动作的的动作例行程序的首地址。这种方法适用于一个键就产生一个动作的单个命令键。单个命令键。2.状态分析法状态分析法 根据键码和当前所处
19、的状态找出下一个应进入的状态及动作根据键码和当前所处的状态找出下一个应进入的状态及动作例行程序。这种方法适用于多个键互相配合产生一个动作的例行程序。这种方法适用于多个键互相配合产生一个动作的多义键。多义键。第16页,共57页,编辑于2022年,星期五查表法查表法查查表法的核心是一个固化在表法的核心是一个固化在ROM中的功能子程序入口地址中的功能子程序入口地址转转移表。如下表所示。在移表。如下表所示。在转转移表内存有各个功能子程序的入口地移表内存有各个功能子程序的入口地址,根据址,根据键值键值代代码查阅码查阅此表此表获获得相得相应应功能的子程序入口地址,功能的子程序入口地址,从而可以从而可以转转
20、移到相移到相应应的命令的命令处处理子程序。理子程序。功能子程序功能子程序入口地址入口地址子程序子程序1 1子程序子程序2 2子程序子程序3 3入口地址入口地址1入口地址入口地址2入口地址入口地址3功能子程转移地址功能子程转移地址第17页,共57页,编辑于2022年,星期五例:键盘接口调用按键识别子程序所获得的键值如下表例:键盘接口调用按键识别子程序所获得的键值如下表所示所示,当键值小于当键值小于10H时代表数字键,键值大于等于时代表数字键,键值大于等于10H时代表功能键时代表功能键。键值键值表表按按键键键值键值0 0F F00H00H0FH0FHRUNRUN10H10HRETRET11H11H
21、ADRSADRS12H12HSTORESTORE13H13HREADREAD14H14HWRITEWRITE15H15H第18页,共57页,编辑于2022年,星期五处理功能键的程序:处理功能键的程序:INPUT:LCALL KEY ;调按键识别子程序,获得键值在;调按键识别子程序,获得键值在A中中MOV R0,A ;键值暂存于;键值暂存于R0 ANL A,10HJZ DATIN ;小于;小于10H为数字键,转入数字操作为数字键,转入数字操作MOV A,R0 ;大于等于;大于等于10H为命令键为命令键ANL A,0FH ;保留键值低;保留键值低4位位MOV R0,A ;(A)3RL AADD A
22、,R0MOV 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:;数字键操作程序,略;数字键操作程序,略;第19页,共57页,编辑于2022年,星期五LED显示器接口
23、技术显示器接口技术LED数码显示器结构与原理数码显示器结构与原理 LED数码显示器是由发光二极管显示字段的显示器件。在应用系统中通数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段常使用的是七段LED数码显示器。这种显示块有共阴极与共阳极两种,如数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。下图所示。第20页,共57页,编辑于2022年,星期五 使用使用LEDLED显示器时,要注意区分共阴极和共阳极显示器时,要注意区分共阴极和共阳极两种不同的接法。两种不同的接法。为了显示数字或字符,必须对数字或字符进行为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段
24、数码管加上一个小数点,共编码,简称段码。七段数码管加上一个小数点,共计计8 8段。因此为段。因此为LEDLED显示器提供的段码正好是一个字显示器提供的段码正好是一个字节。节。实际使用中,通过单片机向实际使用中,通过单片机向LEDLED显示接口输出不同显示接口输出不同段码,即可显示相应的数字。段码,即可显示相应的数字。第21页,共57页,编辑于2022年,星期五LEDLED数码显示器共阴极和共阳极段码数码显示器共阴极和共阳极段码 存存储储器器地址地址显显示示数字数字共阴极接法的七段状共阴极接法的七段状态态g f e d c b ag f e d c b a共阴极接法共阴极接法段段码码(十六十六进
25、进制数制数)共阳极接法共阳极接法段段码码(十六十六进进制数制数)SEGSEG0 00 1 1 1 1 1 10 1 1 1 1 1 13F3F4040SEG+1SEG+11 10 0 0 0 1 1 00 0 0 0 1 1 006067979SEG+2SEG+22 21 0 1 1 0 1 11 0 1 1 0 1 15B5B2424SEG+3SEG+33 31 0 0 1 1 1 11 0 0 1 1 1 14F4F3030SEG+4SEG+44 41 1 0 0 1 1 01 1 0 0 1 1 066661919SEG+5SEG+55 51 1 0 1 1 0 11 1 0 1 1 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 键盘 显示器 接口 PPT 讲稿
限制150内