片机原理及应用键盘与显示器接口课件_第1页
片机原理及应用键盘与显示器接口课件_第2页
片机原理及应用键盘与显示器接口课件_第3页
片机原理及应用键盘与显示器接口课件_第4页
片机原理及应用键盘与显示器接口课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、片机原理及应用键盘与显示器接口1键盘与显示器接口片机原理及应用键盘与显示器接口2键盘可分为编码式键盘和非编码式键盘。编码键盘可分为编码式键盘和非编码式键盘。编码键盘能够由硬件自动提供与被按键对应的键盘能够由硬件自动提供与被按键对应的ASCIIASCII码或其它编码。但是它要求采用较多的硬件,价码或其它编码。但是它要求采用较多的硬件,价格昂贵。非编码键盘则仅提供行和列的矩阵,其格昂贵。非编码键盘则仅提供行和列的矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来确定。非编码键盘的硬件接口要由所用的程序来确定。非编码键盘的硬件接口简单,但是要

2、占用较多的简单,但是要占用较多的CPUCPU时间。时间。任何键盘接口均要解决三个主要问题:任何键盘接口均要解决三个主要问题:1、反弹跳、反弹跳2、串键保护、串键保护3、按键识别、按键识别片机原理及应用键盘与显示器接口31、反弹跳、反弹跳当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖动和弹跳,如下图所示,这是机械式开关的一个共同性问题。动和弹跳,如下图所示,这是机械式开关的一个共同性问题。消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用软件延迟的方法。软件延迟的方法。 采用采

3、用RS触发器实现硬件反弹跳触发器实现硬件反弹跳片机原理及应用键盘与显示器接口4当键数较多时经常用软件当键数较多时经常用软件延时的方法来反弹跳,如延时的方法来反弹跳,如流程图所示。当检出有键流程图所示。当检出有键按下后,先执行一个反颤按下后,先执行一个反颤延时延时20ms20ms的子程序,待前的子程序,待前沿弹跳消失后再转入键闭沿弹跳消失后再转入键闭合合CLOSECLOSE子程序。然后再子程序。然后再判断此次按键是否松开,判断此次按键是否松开,如果没有,则进行等待。如果没有,则进行等待。若已松开,则又执行一次若已松开,则又执行一次延时延时20ms20ms的子程序以消除的子程序以消除后沿弹跳的影响

4、,再去检后沿弹跳的影响,再去检测下次按键的闭合。测下次按键的闭合。 片机原理及应用键盘与显示器接口52、串键保护、串键保护 由于操作不慎,可能会造成同时有几个键被按下,这种情况由于操作不慎,可能会造成同时有几个键被按下,这种情况称为串键。有三种处理串键的技术:两键同时按下、称为串键。有三种处理串键的技术:两键同时按下、n键同时键同时按下和按下和n键锁定。键锁定。 “两键同时按下两键同时按下”技术是在两个键同时按下时产生保护作用。技术是在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正

5、确按键。当用软件扫描键盘时常采用仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常藉助硬件来实现。不产生选通信号。这种方法常藉助硬件来实现。 “n键同时按下键同时按下”技术或者不理会所有被按下的键,直至只技术或者不理会所有被按下的键,直至只剩剩下一键按下时为止下一键按下时为止,或者将所有按键的信息都存入内部缓冲器或者将所有按键的信息都存入内部缓冲器中,然后逐个处理,这种方法成本较高。中,然后逐个处理,这种方法成本较高。 “n键锁定键锁定”技术只处理一个键,任

6、何其它按下又松开的键技术只处理一个键,任何其它按下又松开的键不不产生任何码。通常第一个被按下或最后一个松开的键产生码。产生任何码。通常第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。这种方法最简单也最常用。 片机原理及应用键盘与显示器接口63、按键识别、按键识别 决定是否有键被按下,如有则应识别键盘矩决定是否有键被按下,如有则应识别键盘矩阵中被按键对应的编码。编码键盘通过硬件直阵中被按键对应的编码。编码键盘通过硬件直接提供按键与被按键对应的接提供按键与被按键对应的ASCII码或其它编码或其它编码。非编码键盘则需要通过编程方式提供按键码。非编码键盘则需要通过编程方式提供按键编码。其

7、优点是结构简单、成本低廉编码。其优点是结构简单、成本低廉片机原理及应用键盘与显示器接口7非编码键盘接口技术非编码键盘接口技术 非编码键盘接口技术主要是如何确定被非编码键盘接口技术主要是如何确定被按键的行、列位置,即键码(值)。按键按键的行、列位置,即键码(值)。按键识别是接口技术的关键问题。识别是接口技术的关键问题。 常用按键识别方法有行扫描法(常用按键识别方法有行扫描法(Row-Scanning)和线反转法)和线反转法(Line-Reverse) 。片机原理及应用键盘与显示器接口8典型非编码键盘结构典型非编码键盘结构 非编码键盘大都采用按行、列排列的矩阵开关非编码键盘大都采用按行、列排列的矩

8、阵开关结构结构,这种结构可以减少硬件和连线。这种结构可以减少硬件和连线。 矩阵键盘接口片机原理及应用键盘与显示器接口9行扫描法识别按键行扫描法识别按键 行扫描法是采用步进扫描方式,行扫描法是采用步进扫描方式,CPU通过输出口通过输出口把一个把一个“步进的步进的0”逐行加至键盘的行线上,然后通过逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合输入口检查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位来确定是否有键按下,并确定被按键所处的行、列位置。置。 片机原理及应用键盘与显示器接口10R1R1K13K14K15K16R2R2K9K1

9、0K11K12R3R3K5K6K7K8R4R4K1K2K3K4C1C1C2C2C3C3C4C4键位与行列线关系表键位与行列线关系表 上表列出了识别按键位置与各行之间的关系。其上表列出了识别按键位置与各行之间的关系。其中,中,R1、R2、R3、R4表示行,表示行,C1、C2、C3、C4表表示列。当扫描第一行时,示列。当扫描第一行时,R1=0, 若读入的列值若读入的列值C1=0,则表明按键则表明按键K13被压下,如果被压下,如果C3=0,则表明按键,则表明按键K15被压下。第一行扫描完毕后再扫描第二行,逐行扫描被压下。第一行扫描完毕后再扫描第二行,逐行扫描至最后一行为止,即可识别出所有的按键。至最

10、后一行为止,即可识别出所有的按键。片机原理及应用键盘与显示器接口11线反转法识别按键线反转法识别按键线反转法是藉助程控线反转法是藉助程控并行接口实现的,比并行接口实现的,比行扫描法的速度快。行扫描法的速度快。如图所示为一个如图所示为一个44键盘与并行接口的连键盘与并行接口的连接。并行接口有一个接。并行接口有一个方向寄存器和一个数方向寄存器和一个数据寄存器,方向寄存据寄存器,方向寄存器规定了接口总线的器规定了接口总线的方向,寄存器的某位方向,寄存器的某位置置“1”,规定该位口,规定该位口线为输出。寄存器的线为输出。寄存器的某位置某位置“0”,规定该,规定该位口线为输入。位口线为输入。 片机原理及

11、应用键盘与显示器接口12线反转法的具体操作分两步线反转法的具体操作分两步 第一步:先把控制字第一步:先把控制字0FH0FH置入并行接口的方向寄存器,使置入并行接口的方向寄存器,使4 4条条行线行线(PB0(PB0PB3)PB3)作输出,作输出,4 4条列线条列线(PB4-PB7)(PB4-PB7)作输入。然后把作输入。然后把控制字控制字F0HF0H写入数据寄存器,写入数据寄存器,PB0PB0PB3PB3将输出将输出“0”0”到键盘行到键盘行线。这时若无键按下,则线。这时若无键按下,则4 4条列线均为条列线均为“”;若有某键按;若有某键按下,则该键所在行线的下,则该键所在行线的“0”0”电平通过

12、闭合键使相应的列线电平通过闭合键使相应的列线变为变为“0”0”,并经与非门发出键盘中断请求信号给单片机。,并经与非门发出键盘中断请求信号给单片机。图图4.6(a)4.6(a)是第是第2 2行第行第1 1列有键按下的情况。这时列有键按下的情况。这时PB7PB7PB4PB4线的线的输入为输入为10111011,其中,其中0 0对应于被按键所在的列。对应于被按键所在的列。第二步:使接口总线的方向反转,把控制字第二步:使接口总线的方向反转,把控制字F0H写入方向寄写入方向寄存器,使存器,使PB0PB3作输入,作输入,PB4PB7作输出。这时作输出。这时PB7PB4线的输出为线的输出为1011,PB3P

13、B0的输入为的输入为1011,其中,其中“0”对应于被按键的行。单片机现在读取数据寄存器的完整内对应于被按键的行。单片机现在读取数据寄存器的完整内容为容为10111011,其中两个,其中两个0分别对应于被按键所在的行列位分别对应于被按键所在的行列位置。根据此位置码到置。根据此位置码到ROM中去查表,就可识别是何键被按中去查表,就可识别是何键被按下。下。片机原理及应用键盘与显示器接口13单片机通过单片机通过8155实现的键盘、显示器接口实现的键盘、显示器接口 如图所示为单片机如图所示为单片机8051与矩阵键盘及与矩阵键盘及LED显示器的一种接口电显示器的一种接口电路,通过编程设定路,通过编程设定

14、8155的的PA口、口、PB口作为输出口,口作为输出口,PC口作为输口作为输入口。入口。PA口完成键盘的行扫描输出,同时又对口完成键盘的行扫描输出,同时又对LED显示器作字位显示器作字位扫描,扫描,PC口输入键盘列线状态。口输入键盘列线状态。7407为同相驱动器,为同相驱动器,75452为反为反相驱动器。接口电路中采用相驱动器。接口电路中采用8031的的P2.7作为作为8155的片选线,的片选线,P2.0作为作为8155的的IO端口和片内端口和片内RAM选择线,因此选择线,因此8155的命令寄存器的命令寄存器地址为地址为7F00H,PAPC口地址为口地址为7F01H7F03H。 片机原理及应用

15、键盘与显示器接口14按键识别子程序按键识别子程序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 ;读;读8155PC口口JB ACC.0,KEY2 ;0列无键闭合,转判列无键闭合,转判1列列

16、MOV A,00H ;0列有键闭合,列有键闭合,0AAJMP KEY5KEY2:JB ACC.1,KEY3 ;1列无键闭合,转判列无键闭合,转判2列列MOV A,01H ;1列有键闭合,列线号列有键闭合,列线号01HAAJMP KEY5片机原理及应用键盘与显示器接口15KEY3:JB ACC.2,KEY4 ;2列无键闭合,转判列无键闭合,转判3列列 MOV A,02H ;2列有键闭合,列有键闭合,02HA AJMP KEY5KEY4:JB ACC.3,NEXT ;3列无键闭合,转判下一行列无键闭合,转判下一行 MOV A,03H ;3列有键闭合,列有键闭合,03HAKEY5:ADD A,R4

17、;列线号;列线号+(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 ;扫描到最后一行仍无按键;扫描到最后一行仍无按键 RET ;置无键闭合标志后返回;置无键闭合标志后返回 片机原理及应用键盘与显示器接口1

18、6键值分析键值分析 单片机从键盘接口获得键值后究竟执行什么操作,完全单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘解释程序。取决于键盘解释程序。 常用的方法:常用的方法: 1、查表法、查表法 根据得到的键值代码,到固化在根据得到的键值代码,到固化在ROM里的表格中查找里的表格中查找对应该代码的动作例行程序的首地址。这种方法适用于一对应该代码的动作例行程序的首地址。这种方法适用于一个键就产生一个动作的单个命令键。个键就产生一个动作的单个命令键。 2.状态分析法状态分析法 根据键码和当前所处的状态找出下一个应进入的状态及动根据键码和当前所处的状态找出下一个应进入的状态及动作例行程序。这

19、种方法适用于多个键互相配合产生一个动作例行程序。这种方法适用于多个键互相配合产生一个动作的多义键。作的多义键。 片机原理及应用键盘与显示器接口17查表法查表法查表法的核心是一个固化在查表法的核心是一个固化在ROM中的功能子程序入口中的功能子程序入口地址转移表。如下表所示。在转移表内存有各个功能地址转移表。如下表所示。在转移表内存有各个功能子程序的入口地址,根据键值代码查阅此表获得相应子程序的入口地址,根据键值代码查阅此表获得相应功能的子程序入口地址,从而可以转移到相应的命令功能的子程序入口地址,从而可以转移到相应的命令处理子程序。处理子程序。功能子程序功能子程序入口地址入口地址子程序子程序1

20、1子程序子程序2 2子程序子程序3 3入口地址入口地址1入口地址入口地址2入口地址入口地址3功能子程转移地址功能子程转移地址片机原理及应用键盘与显示器接口18例:键盘接口调用按键识别子程序所获得的键值如例:键盘接口调用按键识别子程序所获得的键值如下表所示下表所示 ,当键值小于当键值小于10H时代表数字键,键值大时代表数字键,键值大于等于于等于10H时代表功能键时代表功能键。 键值表键值表按键按键键值键值0 0F F00H00H0FH0FHRUNRUN10H10HRETRET11H11HADRSADRS12H12HSTORESTORE13H13HREADREAD14H14HWRITEWRITE1

21、5H15H片机原理及应用键盘与显示器接口19处理功能键的程序:处理功能键的程序: 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,R0MOV DPTR,TABEL ;取转移表首地址;取转移表首地址JMP A+DPTR ;按不同键值散转至子程序;

22、按不同键值散转至子程序TABEL:LJMP RUN ;转;转RUN命令子程序命令子程序LJMP RET ;转;转RET命令子程序命令子程序LJMP ADRS ;转;转ADRS命令子程序命令子程序LJMP STORE ;转;转STORE命令子程序命令子程序LJMP READ ;转;转READ命令子程序命令子程序LJMP WRITE ;转;转WRITE命令子程序命令子程序DATIN: ; 数字键操作程序,略;数字键操作程序,略;片机原理及应用键盘与显示器接口20LED显示器接口技术显示器接口技术LED数码显示器结构与原理数码显示器结构与原理 LED数码显示器是由发光二极管显示字段的显示器件。在应用

23、数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段系统中通常使用的是七段LED数码显示器。这种显示块有共阴极数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。与共阳极两种,如下图所示。abcdegGNDfdpGNDabcefgddpabcdefgdpdpgfedcba5V(a)(b)片机原理及应用键盘与显示器接口21 使用使用LEDLED显示器时,要注意区分共阴极和共阳显示器时,要注意区分共阴极和共阳极两种不同的接法。极两种不同的接法。 为了显示数字或字符,必须对数字或字符进为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,行编码,简

24、称段码。七段数码管加上一个小数点,共计共计8 8段。因此为段。因此为LEDLED显示器提供的段码正好是一显示器提供的段码正好是一个字节。个字节。 实际使用中,通过单片机向实际使用中,通过单片机向LEDLED显示接口输显示接口输出不同段码,即可显示相应的数字。出不同段码,即可显示相应的数字。片机原理及应用键盘与显示器接口22LEDLED数码显示器共阴极和共阳极段码数码显示器共阴极和共阳极段码 存储器存储器地址地址显示显示数字数字共阴极接法的七段状态共阴极接法的七段状态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 16D6D1212S

26、EG+6SEG+66 61 1 1 1 1 0 11 1 1 1 1 0 17D7D0202SEG+7SEG+77 70 0 0 0 1 1 1 0 0 0 0 1 1 1 07077878SEG+8SEG+88 81 1 1 1 1 1 11 1 1 1 1 1 17F7F0000SEG+9SEG+99 91 1 0 0 1 1 11 1 0 0 1 1 167671818SEG+10SEG+10A A1 1 1 0 1 1 11 1 1 0 1 1 177770808SEG+11SEG+11B B1 1 1 1 1 0 01 1 1 1 1 0 07C7C0303SEG+12SEG+12C

27、 C0 1 1 1 0 0 10 1 1 1 0 0 139394646SEG+13SEG+13D D1 0 1 1 1 1 01 0 1 1 1 1 05E5E2121SEG+14SEG+14E E1 1 1 1 0 0 11 1 1 1 0 0 179790606SEG+15SEG+15F F1 1 1 0 0 0 11 1 1 0 0 0 171710E0E片机原理及应用键盘与显示器接口23 硬件译码硬件译码LED显示接口显示接口 如图所示为采用硬件译码器的七段如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴接口电路,显示器是共阴极的。极的。9368是硬件段译码器,它能自动将输

28、入的是硬件段译码器,它能自动将输入的16进制数转换进制数转换成段码输出,在成段码输出,在+5V时能输出约时能输出约30mA的电流点亮显示器的段。的电流点亮显示器的段。7475是是4位锁存器,位锁存器,4个数据输入端接到系统数据总线的个数据输入端接到系统数据总线的D3D0。锁存器的选通端。锁存器的选通端E接到地址译码器,若该接口的地址为接到地址译码器,若该接口的地址为0088H,执行以下指令即可在显示器上显示数字,执行以下指令即可在显示器上显示数字“0”。 MOV DPTR,0088H MOV A,00H MOVX DPTR,A片机原理及应用键盘与显示器接口24软件译码软件译码LEDLED显示接

29、口显示接口 设计思想:设计思想: 先在内存中存储一张段码表,根据要显示的数字或先在内存中存储一张段码表,根据要显示的数字或字符去查表取得相应的段码,并输出到字符去查表取得相应的段码,并输出到LED显示器。显示器。具体显示时,采用逐位扫描的方法控制哪一位具体显示时,采用逐位扫描的方法控制哪一位LED被被点亮。点亮。 片机原理及应用键盘与显示器接口25程序清单:程序清单:DISPB: MOV DPTR,7F00H ;8155命令口地址命令口地址 MOV A,03H MOVX DPTR,A ;置;置PA口、口、PB口为输出口为输出 MOV R0,7AH ;置显示缓冲器指针初值;置显示缓冲器指针初值

30、MOV R3,01H ;置扫描模式初值;置扫描模式初值 MOV A,R3DISPB1: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口口片机原理及应用键盘与显示器接口26 ACALL DELAY ;延时;延时 INC R0 MOV A,R3 JB ACC.5,DISPB2 ;判;判6位位LED显示完否显示完否 R

31、L A ;扫描模式左移;扫描模式左移1位位 MOV R3,A AJMP DISPB1DISPB2: RETSEGPT2: DB 3FH,06H,5BH,4FH,66H,6DH ;段码表;段码表DELAY: MOV R5,02H ;延时子程序;延时子程序 DELAY1: MOV R4,0FFHDELAY2: DJNZ R4,DELAY2 DJNZ R5,DELAY1 RET片机原理及应用键盘与显示器接口27串行接口串行接口LED驱动器驱动器MAX7219 MAX7219 MAX7219是是MAXIMMAXIM公司生产的一种串行接口公司生产的一种串行接口方式方式7 7段共阴极段共阴极LEDLED显

32、示驱动器,其片内包含显示驱动器,其片内包含有一个有一个BCDBCD码到码到B B码的译码器、多路复用扫描码的译码器、多路复用扫描电路、字段和字位驱动器以及存储每个数字电路、字段和字位驱动器以及存储每个数字的的8 88 RAM8 RAM,每位数字都可以被寻址和更新,每位数字都可以被寻址和更新,允许对每一位数字选择允许对每一位数字选择B B码译码或不译码。采码译码或不译码。采用三线串行方式与单片机接口,电路十分简用三线串行方式与单片机接口,电路十分简单,只需要一个单,只需要一个10k10k左右的外接电阻来设置所左右的外接电阻来设置所有有LEDLED的段电流。的段电流。 片机原理及应用键盘与显示器接

33、口28MAX7219采用串行数据传输方式,由采用串行数据传输方式,由16位数据包发送到位数据包发送到DIN引脚引脚的串行数据在每个的串行数据在每个CLK的上升沿被移入到内部的上升沿被移入到内部16位移位寄存器位移位寄存器中,然后在中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。的上升沿将数据锁存到数字或控制寄存器中。LOAD信号必须在第信号必须在第16个时钟上升沿同时或之后,但在下一个时个时钟上升沿同时或之后,但在下一个时钟上升沿之前变高,否则将会丢失数据。钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位端的数据通过移位寄存器传送,并在寄存器传送,并在16.5个时钟周期后出

34、现在个时钟周期后出现在DOUT端。端。DOUT端的端的数据在数据在CLK的下降沿输出。串行数据以的下降沿输出。串行数据以16位为一帧,其中位为一帧,其中D15D12可以任意,可以任意,D11D8为内部寄存器地为内部寄存器地 址,址,D7D0为寄存器为寄存器数据,工作时序如下:数据,工作时序如下:片机原理及应用键盘与显示器接口29寄存器寄存器地地 址址D15D15D12D12D11 D10 D9 D8D11 D10 D9 D8十六进制代码十六进制代码NO-OPNO-OP 0 0 0 0 0 0 0 00H0H数字数字0 0 0 0 0 1 0 0 0 11H1H数字数字1 1 0 0 1 0 0

35、 0 1 02H2H数字数字2 2 0 0 1 1 0 0 1 13H3H数字数字3 3 0 1 0 0 0 1 0 04H4H数字数字4 4 0 1 0 1 0 1 0 15H5H数字数字5 5 0 1 1 0 0 1 1 06H6H数字数字6 6 0 1 1 1 0 1 1 17H7H数字数字7 7 1 0 0 0 1 0 0 08H8H译码方式译码方式 1 0 0 1 1 0 0 19H9H亮度亮度 1 0 1 0 1 0 1 0AHAH扫描界限扫描界限 1 0 1 1 1 0 1 1BHBH停机停机 1 1 0 0 1 1 0 0CHCH显示测试显示测试 1 1 1 1 1 1 1 1

36、FHFHMAX7219的内部寄存器及其地址的内部寄存器及其地址 片机原理及应用键盘与显示器接口30如图所示为如图所示为8051单片机与单片机与MAX7219的一种接口,的一种接口,8051的的P1.0连到连到MAX7219的的DIN端,端,P1.1连到连到LOAD端,端,P1.2连到连到CLK端,采用软件模拟方式产生所需的端,采用软件模拟方式产生所需的工作时序。下面给出根据该图设计的工作时序。下面给出根据该图设计的MAX7219显示显示驱动程序例子,程序执行后在驱动程序例子,程序执行后在LED上显示上显示8031字样。字样。 片机原理及应用键盘与显示器接口31主程序主程序MAIN: MOV S

37、P,#60H ;设置堆栈指针;设置堆栈指针 MOV R7,#0AH ;亮度寄存器;亮度寄存器 MOV R5,#07H ;亮度值;亮度值 LCALL DINPUT ;调用;调用7219命令写入子程序命令写入子程序 MOV R7,#0BH ;扫描界限寄存器;扫描界限寄存器 MOV R5,#07H ;显示;显示7位数字位数字 LCALL DINPUT MOV R7,#09H ;译码方式寄存器;译码方式寄存器 MOV R5,#0FFH ;#FFH=7-0位均译为位均译为B码,码,#00=不译码不译码 LCALL DINPUT MOV R7,#0CH ;停机寄存器;停机寄存器 MOV R5,#01H ;

38、正常工作;正常工作 LCALL DINPUT MOV 30H,#08H ;显示;显示 8031 MOV 31H,#00H MOV 32H,#03H MOV 33H,#01H MOV R7,#30H LCALL DISPLY ;调用;调用7219显示子程序显示子程序 SJMP $ 片机原理及应用键盘与显示器接口327219命令写入子程序命令写入子程序 DINPUT: MOV A,R7 ;传递来的第;传递来的第1个参数保存在个参数保存在R7中中 MOV R2,#08 ;作为;作为MAX7219控制寄存器的控制寄存器的8位地址值位地址值LOOP1: RLC A ;A的的D7位移至位移至P1.0,依次

39、为,依次为D6D0 MOV P1.0, C ;8位地址输入位地址输入DIN CLR P1.2 ;P1.2输出时钟信号输出时钟信号 SETB P1.2 DJNZ R2,LOOP1 MOV A,R5 ;传递来的第;传递来的第2个参数保存在个参数保存在R5中中 MOV R2,#08 ;作为写入控制寄存器的;作为写入控制寄存器的8位命令数据值位命令数据值LOOP2: RLC A ;A的的D7位移至位移至P1.0,依次为,依次为D6D0 MOV P1.0, C ;8位数据输入位数据输入DIN CLR P1.2 ;P1.2输出时钟信号输出时钟信号 SETB P1.2 DJNZ R2,LOOP2 CLR P

40、1.1 ;P1.1输出输出LOAD信号,信号, SETB P1.1 RET片机原理及应用键盘与显示器接口337219显示子程序显示子程序DISPLY: MOV A,R7 ;R7的内容为的内容为7219显示缓冲区入口地址显示缓冲区入口地址 MOV R0,A ;R0指向显示缓冲区首地址指向显示缓冲区首地址 MOV R1,#01 ;R1指向指向8字节显示字节显示RAM首地址首地址 MOV R3,#08LOOP3: MOV A,R0 ;取出显示数据;取出显示数据R5 MOV R5,A MOV A,R1 ;取出显示;取出显示RAM地址地址R7 MOV R7,A LCALL DINPUT ;调用;调用72

41、19命令写入子程序命令写入子程序 INC R0 INC R1 DJNZ R3,LOOP3 RET片机原理及应用键盘与显示器接口3482798279可编程键盘可编程键盘/ /显示器接口技术显示器接口技术82798279的工作原理的工作原理l键盘部分键盘部分 提供提供6464按键阵列按键阵列( (可扩展为可扩展为128)128)的扫描接口,也可的扫描接口,也可以接传感器阵列。键的按下可以是双键锁定或以接传感器阵列。键的按下可以是双键锁定或N N键互锁。键互锁。键盘输入经过反弹跳电路自动消除前后沿按键抖动影响键盘输入经过反弹跳电路自动消除前后沿按键抖动影响之后,被选通送入一个之后,被选通送入一个8

42、8字符的字符的FIFO(FIFO(先进先出栈先进先出栈) )存储器。存储器。如果送入的字符多于如果送入的字符多于8 8个,则溢出状态置位。按键输入后个,则溢出状态置位。按键输入后将中断输出线升到高电平向将中断输出线升到高电平向CPUCPU发中断申请。发中断申请。 l显示部分显示部分 对对7 7段段LEDLED、白炽灯或其他器件提供显示接口。、白炽灯或其他器件提供显示接口。82798279有一个内部的有一个内部的16168 8显示显示RAMRAM,组成一对,组成一对16164 4存储器。存储器。显示显示RAMRAM可由可由CPUCPU写入或读出。显示方式有从右进入的计写入或读出。显示方式有从右进

43、入的计算器方式和从左进入的电传打字方式。显示算器方式和从左进入的电传打字方式。显示RAMRAM每次读写每次读写之后,其地址自动加之后,其地址自动加1 1。片机原理及应用键盘与显示器接口358279内部逻辑结构框图内部逻辑结构框图片机原理及应用键盘与显示器接口36I/O控制和数据缓冲控制和数据缓冲 控制与定时寄器及定时控制控制与定时寄器及定时控制扫描计数器扫描计数器 返回缓冲器和键盘消颤及控制返回缓冲器和键盘消颤及控制 FIFO/传感器传感器RAM和状态和状态 显示地址寄存器和显示显示地址寄存器和显示RAM 8279内部内部主要组成模块主要组成模块 片机原理及应用键盘与显示器接口378279功能

44、命令一览表功能命令一览表片机原理及应用键盘与显示器接口388279功能命令一览表功能命令一览表(续表(续表)片机原理及应用键盘与显示器接口398279与单片机的一般接口方法与单片机的一般接口方法 片机原理及应用键盘与显示器接口40 单片机在初始化单片机在初始化8279后,把显示字符送到后,把显示字符送到8279内内部的一个部的一个16字节寄存器内,并将字符转换成段码,字节寄存器内,并将字符转换成段码,经经A0A3、B0B3线把段码送到显示器,同时经线把段码送到显示器,同时经SL0SL3线发出线发出4位数位选通码。位数位选通码。4-16译码器对选译码器对选通码进行译码后轮流选通各位显示器。通码进

45、行译码后轮流选通各位显示器。SL0SL2线同时连到线同时连到3-8译码器。该译码器的输出用于扫描译码器。该译码器的输出用于扫描键盘键盘8行。行。8279经经8根返回线根返回线(RL0RL7)读取键盘读取键盘的状态。如果发现按键闭合则等待的状态。如果发现按键闭合则等待10ms,颤动过,颤动过去后再检验按键是否闭合。若按键仍然闭合,则把去后再检验按键是否闭合。若按键仍然闭合,则把被按键的键值选通输入被按键的键值选通输入8279内部的先进先出内部的先进先出(FIFO)存储器,同时经存储器,同时经INT线发出一个高电平,指出线发出一个高电平,指出FIFO内已经有一个字符。内已经有一个字符。INT线连接

46、到线连接到CPU的中断请求的中断请求输入线。当单片机接收到中断请求后,若开中断,输入线。当单片机接收到中断请求后,若开中断,则转到键盘服务程序,从则转到键盘服务程序,从FIFO中读取按键的键值。中读取按键的键值。在这种接口中,单片机要做的事仅是初始化在这种接口中,单片机要做的事仅是初始化8279、送出要显示的字符、接到中断请求后读取按键的键送出要显示的字符、接到中断请求后读取按键的键值,其它工作均由值,其它工作均由8279自动完成。自动完成。片机原理及应用键盘与显示器接口41单片机与单片机与8279的具体接口电路的具体接口电路片机原理及应用键盘与显示器接口428031的P2.7接到8279的片

47、选端,最低位地址A0接到8279的C/D端,因此该接口对用户来说只有二个口地址:命令口地址7FFFH和数据口地址7FFEH。 图中8279外接48键盘和8位共阴极LED显示器,采用编码扫描方式,译码器74LS138对扫描线译码后一方面接键盘的列线,同时通过驱动器接到显示器上。 片机原理及应用键盘与显示器接口438279初始化程序:初始化程序:INI79: MOV DPTR,7FFFH ;清除命令;清除命令8279 MOV A,0D1H MOVX DPTR,AWNDU: MOVX A,DPTR ;等;等8279清除结束清除结束 JB ACC.7,WNDU MOV A,0 ;方式命令;方式命令82

48、79 MOVX DPTR,A MOV A,34H ;扫描频率设置命令;扫描频率设置命令8279 MOVX DPTR,A MOV IE,84H ;允许;允许8279中断中断 RET片机原理及应用键盘与显示器接口44显示器更新程序:显示器更新程序:RDIR: MOV DPTR,7FFFH ;写显示;写显示RAM命令命令8279 MOV A,90H MOVX DPTR,A MOV R0,78H ;显示缓冲器首地址;显示缓冲器首地址R0 MOV R7,8 MOV DPTR,7FFEHRDLO: MOV A,R0 ;取显示数据;取显示数据 ADD A,5 ;加偏移量;加偏移量 MOVC A,A+PC ;

49、查表转换为段码数据;查表转换为段码数据 MOVX DPTR,A INC R0 DJNZ R7,RDLO RETSEG: DB 3FH,06H,5BH,4FH ;根据硬件线路设计的段码;根据硬件线路设计的段码 DB 66H,6DH, 7DH,07H DB 7FH,6FH 77H,7CH片机原理及应用键盘与显示器接口45键输入中断服务程序:键输入中断服务程序:PKEYI:PUSH PSWPUSH DPLPUSH DPHPUSH ACCPUSH BSETB PSW.3 ;选工作寄存器;选工作寄存器1区区MOV DPTR,7FFFH ;读;读FIFO状态字状态字MOVX A,DPTRANL A,0FH

50、JZ PKYR ;判;判FIFO中是否有数据中是否有数据?MOV A,40H ;读;读FIFO命令命令8279MOVX DPTR,AMOV DPTR,7FFEHMOVX A,DPTR ;读数据;读数据MOV R2,AANL A,38H ;计算键值;计算键值RR A片机原理及应用键盘与显示器接口46RR ARR AMOV B,04HMUL ABXCH A,R2ANL A,7ADD A,R2MOV R0,40 ;键值;键值(40H)指出的环形缓冲器单元指出的环形缓冲器单元MOV R0,AINC R0MOV A,R0ANL A,3FH ;环形缓冲器指针处理;环形缓冲器指针处理ORL A,30HMOV

51、 40H,ASETB 0 ;置标志供主程序查询处理;置标志供主程序查询处理PKYR:POP BPOP ACCPOP DPHPOP DPLPOP PSWRETI片机原理及应用键盘与显示器接口47LCD显示器接口显示器接口LCD的基本结构及工作原理LCD的特点是体积小、重量轻、功耗极低、抗干扰的特点是体积小、重量轻、功耗极低、抗干扰能力强。能力强。片机原理及应用键盘与显示器接口48LCDLCD的驱动方式的驱动方式 LCD常采用交流驱动常采用交流驱动, 通常采用异或门把显示控制信号通常采用异或门把显示控制信号和显示频率信号合并为交变的驱动信号和显示频率信号合并为交变的驱动信号, 如图所示。如图所示。

52、当显示控制电极上的波形与公共电极上的方波相位相反时当显示控制电极上的波形与公共电极上的方波相位相反时, 则为则为显示状态。显示控制信号由显示状态。显示控制信号由C端输入端输入, 高电平为显示状态。显示高电平为显示状态。显示频率信号是一个方波。当异或门的频率信号是一个方波。当异或门的C端为低电平时端为低电平时, 输出端输出端B的的电位与电位与A端相同端相同, LCD两端的电压为两端的电压为0, LCD不显示,当异或门的不显示,当异或门的C端为高电平时端为高电平时, B端的电位与端的电位与A端相反端相反, LCD两端呈现交替变化两端呈现交替变化的电压的电压, LCD显示。显示。 片机原理及应用键盘

53、与显示器接口49段式段式LCD显示器的驱动接口显示器的驱动接口显示器显示器4N07,译码驱动器采用带锁存器的,译码驱动器采用带锁存器的MC14543,可以将输,可以将输入的入的BCD码转换为码转换为7段显示码输出。驱动方式由段显示码输出。驱动方式由PH端控制端控制, PH端端输入显示方波信号。输入显示方波信号。LD是内部锁存器选通端是内部锁存器选通端, LD为高电平时为高电平时, 允允许许AD端输入端输入BCD码数据码数据, LD为低电平时为低电平时, 锁存输入数据。锁存输入数据。BI为为高电平时为消隐。每块高电平时为消隐。每块MC14543各驱动一位各驱动一位LCD, BCD码输入端码输入端

54、AD接到接到8051的的P1.0P1.3, 锁存器选通端锁存器选通端LD分别接到分别接到P1.4P1.7, 分别控制分别控制4块块MC14543输入输入BCD码。码。MC14543的相位端的相位端PH接到接到8051的的P3.7, 由由P3.7端提供一个显示用的低频方波信号,方端提供一个显示用的低频方波信号,方波信号的产生由波信号的产生由8031片内定时器片内定时器T1的定时中断产生的定时中断产生 片机原理及应用键盘与显示器接口50主程序主程序DISB EQU 60H ;DISB EQU 60H ;定义显示缓冲区定义显示缓冲区 ORG 0000 ORG 0000 HINIT: LJMP STA

55、RT ;HINIT: LJMP START ;主程序入口主程序入口 ORG 001BHORG 001BH LJMP INTT1 ; LJMP INTT1 ;定时器定时器1 1中断入口中断入口 ORG 0030HORG 0030HSTART: MOV TMOD, #10H ;START: MOV TMOD, #10H ;置定时器置定时器T1T1为方式为方式1 1 MOV TH1, #0ECH ;10ms MOV TH1, #0ECH ;10ms定时,定时,fosc=6MHzfosc=6MHz MOV TL1 MOV TL1,#78H#78H SETB TR1 SETB TR1 ; 启动启动T1T

56、1 SETB EA ; SETB EA ;开中断开中断 SETB ET1 SETB ET1 ; ;其它工作其它工作 LCALL DISP ;LCALL DISP ;调用显示子程序调用显示子程序 ; ;其它工作其它工作片机原理及应用键盘与显示器接口51显示子程序显示子程序:DISP: MOV R0, #DISB ;R0DISP: MOV R0, #DISB ;R0指向显示缓冲区首地址指向显示缓冲区首地址 MOV R2, #10H ;MOV R2, #10H ;设定最高位锁存控制标志设定最高位锁存控制标志DISP1: MOV A, R0 ;DISP1: MOV A, R0 ;取显示数据取显示数据

57、ANL A, #0FH ;ANL A, #0FH ;保留保留BCDBCD码码 ORL A, R2 ;ORL A, R2 ;加上锁存控制位加上锁存控制位 MOV P1, A ;MOV P1, A ;送入送入MC14543MC14543 ANL P1, #0FH ; ANL P1, #0FH ;置所有置所有MC14543MC14543为锁存状态为锁存状态 INC R0 ;R0INC R0 ;R0指向显示缓冲区下一位指向显示缓冲区下一位 MOV A, R2 ;MOV A, R2 ;锁存端控制标志送锁存端控制标志送A A RL A RL A MOV R2, A MOV R2, A JNB ACC.0, DISP1 ; JNB ACC.0, DISP1 ;未完成未完成4 4位则继续位则继续 RET ;RET ;已更新显示已更新显示, , 返回返回片机原理及应用键盘与显示器接口52定时器定时器1 1中断服务程序:中断服务程序:INTT: CPL P3.7 ;P3.7INTT: CPL P3.7 ;P3.7输出电平取反输出电平取反 MO

温馨提示

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

评论

0/150

提交评论