《片机原理及应用键盘与显示器接口》由会员分享,可在线阅读,更多相关《片机原理及应用键盘与显示器接口(58页珍藏版)》请在金锄头文库上搜索。
1、键盘与显示器接口片机原理及应用键盘与显示器接口键盘可分为编码式键盘和非编码式键盘。编码键盘可分为编码式键盘和非编码式键盘。编码键盘能够由硬件自动提供与被按键对应的键盘能够由硬件自动提供与被按键对应的ASCIIASCII码或其它编码。但是它要求采用较多的硬件,价码或其它编码。但是它要求采用较多的硬件,价格昂贵。非编码键盘则仅提供行和列的矩阵,其格昂贵。非编码键盘则仅提供行和列的矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来确定。非编码键盘的硬件接口要由所用的程序来确定。非编码键盘的硬件接口简单,但是要占用较多的简单,但是要占用较多的C
2、PUCPU时间。时间。任何键盘接口均要解决三个主要问题:任何键盘接口均要解决三个主要问题:1、反弹跳、反弹跳2、串键保护、串键保护3、按键识别、按键识别片机原理及应用键盘与显示器接口1、反弹跳、反弹跳当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖动和弹跳,如下图所示,这是机械式开关的一个共同性问题。动和弹跳,如下图所示,这是机械式开关的一个共同性问题。消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用软件延迟的方法。软件延迟的方法。 采用采用RS触发器实现硬件反弹跳触发器实现
3、硬件反弹跳片机原理及应用键盘与显示器接口当键数较多时经常用软件当键数较多时经常用软件延时的方法来反弹跳,如延时的方法来反弹跳,如流程图所示。当检出有键流程图所示。当检出有键按下后,先执行一个反颤按下后,先执行一个反颤延时延时20ms20ms的子程序,待前的子程序,待前沿弹跳消失后再转入键闭沿弹跳消失后再转入键闭合合CLOSECLOSE子程序。然后再子程序。然后再判断此次按键是否松开,判断此次按键是否松开,如果没有,则进行等待。如果没有,则进行等待。若已松开,则又执行一次若已松开,则又执行一次延时延时20ms20ms的子程序以消除的子程序以消除后沿弹跳的影响,再去检后沿弹跳的影响,再去检测下次按
4、键的闭合。测下次按键的闭合。 片机原理及应用键盘与显示器接口2、串键保护、串键保护 由于操作不慎,可能会造成同时有几个键被按下,这种情况由于操作不慎,可能会造成同时有几个键被按下,这种情况称为串键。有三种处理串键的技术:两键同时按下、称为串键。有三种处理串键的技术:两键同时按下、n键同时键同时按下和按下和n键锁定。键锁定。 “两键同时按下两键同时按下”技术是在两个键同时按下时产生保护作用。技术是在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用仍被按下
5、的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常藉助硬件来实现。不产生选通信号。这种方法常藉助硬件来实现。 “n键同时按下键同时按下”技术或者不理会所有被按下的键,直至只剩技术或者不理会所有被按下的键,直至只剩下一键按下时为止下一键按下时为止,或者将所有按键的信息都存入内部缓冲器或者将所有按键的信息都存入内部缓冲器中,然后逐个处理,这种方法成本较高。中,然后逐个处理,这种方法成本较高。 “n键锁定键锁定”技术只处理一个键,任何其它按下又松开的键不技术只处理一个键,
6、任何其它按下又松开的键不产生任何码。通常第一个被按下或最后一个松开的键产生码。产生任何码。通常第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。这种方法最简单也最常用。 片机原理及应用键盘与显示器接口3、按键识别、按键识别 决定是否有键被按下,如有则应识别键盘矩决定是否有键被按下,如有则应识别键盘矩阵中被按键对应的编码。编码键盘通过硬件直阵中被按键对应的编码。编码键盘通过硬件直接提供按键与被按键对应的接提供按键与被按键对应的ASCII码或其它编码或其它编码。非编码键盘则需要通过编程方式提供按键码。非编码键盘则需要通过编程方式提供按键编码。其优点是结构简单、成本低廉编码。其优点是结构
7、简单、成本低廉片机原理及应用键盘与显示器接口非编码键盘接口技术非编码键盘接口技术 非编码键盘接口技术主要是如何确定被非编码键盘接口技术主要是如何确定被按键的行、列位置,即键码(值)。按键按键的行、列位置,即键码(值)。按键识别是接口技术的关键问题。识别是接口技术的关键问题。 常用按键识别方法有行扫描法(常用按键识别方法有行扫描法(Row-Scanning)和线反转法)和线反转法(Line-Reverse) 。片机原理及应用键盘与显示器接口典型非编码键盘结构典型非编码键盘结构 非编码键盘大都采用按行、列排列的矩阵开关结非编码键盘大都采用按行、列排列的矩阵开关结构构,这种结构可以减少硬件和连线。这
8、种结构可以减少硬件和连线。 矩阵键盘接口片机原理及应用键盘与显示器接口行扫描法识别按键行扫描法识别按键 行扫描法是采用步进扫描方式,行扫描法是采用步进扫描方式,CPU通过输出口通过输出口把一个把一个“步进的步进的0”逐行加至键盘的行线上,然后通过逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合输入口检查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位来确定是否有键按下,并确定被按键所处的行、列位置。置。 片机原理及应用键盘与显示器接口R1R1K13K14K15K16R2R2K9K10K11K12R3R3K5K6K7K8R4R4K1K
9、2K3K4C1C1C2C2C3C3C4C4键位与行列线关系表键位与行列线关系表 上表列出了识别按键位置与各行之间的关系。其上表列出了识别按键位置与各行之间的关系。其中,中,R1、R2、R3、R4表示行,表示行,C1、C2、C3、C4表表示列。当扫描第一行时,示列。当扫描第一行时,R1=0, 若读入的列值若读入的列值C1=0,则表明按键,则表明按键K13被压下,如果被压下,如果C3=0,则表明按键,则表明按键K15被压下。第一行扫描完毕后再扫描第二行,逐行被压下。第一行扫描完毕后再扫描第二行,逐行扫描至最后一行为止,即可识别出所有的按键。扫描至最后一行为止,即可识别出所有的按键。片机原理及应用键
10、盘与显示器接口线反转法识别按键线反转法识别按键线反转法是藉助程控线反转法是藉助程控并行接口实现的,比并行接口实现的,比行扫描法的速度快。行扫描法的速度快。如图所示为一个如图所示为一个44键盘与并行接口的连键盘与并行接口的连接。并行接口有一个接。并行接口有一个方向寄存器和一个数方向寄存器和一个数据寄存器,方向寄存据寄存器,方向寄存器规定了接口总线的器规定了接口总线的方向,寄存器的某位方向,寄存器的某位置置“1”,规定该位,规定该位口线为输出。寄存器口线为输出。寄存器的某位置的某位置“0”,规,规定该位口线为输入。定该位口线为输入。 片机原理及应用键盘与显示器接口线反转法的具体操作分两步线反转法的
11、具体操作分两步 第一步:先把控制字第一步:先把控制字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,PB3PB0的输入为的输入为1011,其中,其中“0”对应于
13、被按键的行。单片机现在读取数据寄存器的完整内容对应于被按键的行。单片机现在读取数据寄存器的完整内容为为10111011,其中两个,其中两个0分别对应于被按键所在的行列位置。分别对应于被按键所在的行列位置。根据此位置码到根据此位置码到ROM中去查表,就可识别是何键被按下。中去查表,就可识别是何键被按下。片机原理及应用键盘与显示器接口单片机通过单片机通过8155实现的键盘、显示器接口实现的键盘、显示器接口 如图所示为单片机如图所示为单片机8051与矩阵键盘及与矩阵键盘及LED显示器的一种接口电显示器的一种接口电路,通过编程设定路,通过编程设定8155的的PA口、口、PB口作为输出口,口作为输出口,
14、PC口作为输口作为输入口。入口。PA口完成键盘的行扫描输出,同时又对口完成键盘的行扫描输出,同时又对LED显示器作字位显示器作字位扫描,扫描,PC口输入键盘列线状态。口输入键盘列线状态。7407为同相驱动器,为同相驱动器,75452为反为反相驱动器。接口电路中采用相驱动器。接口电路中采用8031的的P2.7作为作为8155的片选线,的片选线,P2.0作为作为8155的的IO端口和片内端口和片内RAM选择线,因此选择线,因此8155的命令寄存器的命令寄存器地址为地址为7F00H,PAPC口地址为口地址为7F01H7F03H。 片机原理及应用键盘与显示器接口按键识别子程序按键识别子程序KEY: M
15、OV 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列列MOV A,00H ;0列有键闭合,列有键闭合,0AAJMP
16、 KEY5KEY2:JB ACC.1,KEY3 ;1列无键闭合,转判列无键闭合,转判2列列MOV A,01H ;1列有键闭合,列线号列有键闭合,列线号01HAAJMP KEY5片机原理及应用键盘与显示器接口KEY3: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 ;列线号;列线号+(R4)作为键值作为键值A MOV R4,A
17、;键值;键值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 ;置无键闭合标志后返回;置无键闭合标志后返回 片机原理及应用键盘与显示器接口键值分析键值分析 单片机从键盘接口获得键值后究竟执行什么操作,完全
18、单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘解释程序。取决于键盘解释程序。 常用的方法:常用的方法: 1、查表法、查表法 根据得到的键值代码,到固化在根据得到的键值代码,到固化在ROM里的表格中查找里的表格中查找对应该代码的动作例行程序的首地址。这种方法适用于一对应该代码的动作例行程序的首地址。这种方法适用于一个键就产生一个动作的单个命令键。个键就产生一个动作的单个命令键。 2.状态分析法状态分析法 根据键码和当前所处的状态找出下一个应进入的状态及动根据键码和当前所处的状态找出下一个应进入的状态及动作例行程序。这种方法适用于多个键互相配合产生一个动作例行程序。这种方法适用于多个键
19、互相配合产生一个动作的多义键。作的多义键。 片机原理及应用键盘与显示器接口查表法查表法查查表法的核心是一个固化在表法的核心是一个固化在ROM中的功能子程序入口中的功能子程序入口地址地址转转移表。如下表所示。在移表。如下表所示。在转转移表内存有各个功能移表内存有各个功能子程序的入口地址,根据子程序的入口地址,根据键值键值代代码查阅码查阅此表此表获获得相得相应应功能的子程序入口地址,从而可以功能的子程序入口地址,从而可以转转移到相移到相应应的命令的命令处处理子程序。理子程序。功能子程序功能子程序入口地址入口地址子程序子程序1 1子程序子程序2 2子程序子程序3 3入口地址入口地址1入口地址入口地址
20、2入口地址入口地址3功能子程转移地址功能子程转移地址片机原理及应用键盘与显示器接口例:键盘接口调用按键识别子程序所获得的键值如例:键盘接口调用按键识别子程序所获得的键值如下表所示下表所示 ,当键值小于当键值小于10H时代表数字键,键值大时代表数字键,键值大于等于于等于10H时代表功能键时代表功能键。 键值键值表表按按键键键值键值0 0F F00H00H0FH0FHRUNRUN10H10HRETRET11H11HADRSADRS12H12HSTORESTORE13H13HREADREAD14H14HWRITEWRITE15H15H片机原理及应用键盘与显示器接口处理功能键的程序:处理功能键的程序:
21、 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 ;按不同键值散转至子程序;按不同键值散转至子程序TABEL:LJMP RUN ;转;转RUN命令子程序命令
22、子程序LJMP RET ;转;转RET命令子程序命令子程序LJMP ADRS ;转;转ADRS命令子程序命令子程序LJMP STORE ;转;转STORE命令子程序命令子程序LJMP READ ;转;转READ命令子程序命令子程序LJMP WRITE ;转;转WRITE命令子程序命令子程序DATIN: ; 数字键操作程序,略;数字键操作程序,略;片机原理及应用键盘与显示器接口LED显示器接口技术显示器接口技术LED数码显示器结构与原理数码显示器结构与原理 LED数码显示器是由发光二极管显示字段的显示器件。在应用数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段系统中通常使
23、用的是七段LED数码显示器。这种显示块有共阴极数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。与共阳极两种,如下图所示。片机原理及应用键盘与显示器接口 使用使用LEDLED显示器时,要注意区分共阴极和共阳显示器时,要注意区分共阴极和共阳极两种不同的接法。极两种不同的接法。 为了显示数字或字符,必须对数字或字符进为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,行编码,简称段码。七段数码管加上一个小数点,共计共计8 8段。因此为段。因此为LEDLED显示器提供的段码正好是一显示器提供的段码正好是一个字节。个字节。 实际使用中,通过单片机向实际使用中,通过单
24、片机向LEDLED显示接口输显示接口输出不同段码,即可显示相应的数字。出不同段码,即可显示相应的数字。片机原理及应用键盘与显示器接口LEDLED数码显示器共阴极和共阳极段码数码显示器共阴极和共阳极段码 存存储储器器地址地址显显示示数字数字共阴极接法的七段状共阴极接法的七段状态态g f e d c b ag f e d c b a共阴极接法共阴极接法段段码码( (十六十六进进制数制数) )共阳极接法共阳极接法段段码码( (十六十六进进制数制数) )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
25、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 16D6D1212SEG+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 07077878S
26、EG+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 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+1
27、4E 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片机原理及应用键盘与显示器接口 硬件译码硬件译码LED显示接口显示接口 如图所示为采用硬件译码器的七段如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴接口电路,显示器是共阴极的。极的。9368是硬件段译码器,它能自动将输入的是硬件段译码器,它能自动将输入的16进制数转换进制数转换成段码输出,在成段码输出,在+5V时能输出约时能输出约30mA的电流点亮显示器的段。的电流点亮显示器的段。7475是是4位锁存器,位锁存
28、器,4个数据输入端接到系统数据总线的个数据输入端接到系统数据总线的D3D0。锁存器的选通端锁存器的选通端E接到地址译码器,若该接口的地址为接到地址译码器,若该接口的地址为0088H,执行以下指令即可在显示器上显示数字执行以下指令即可在显示器上显示数字“0”。 MOV DPTR,0088H MOV A,00H MOVX DPTR,A片机原理及应用键盘与显示器接口软件译码软件译码LEDLED显示接口显示接口 设计思想:设计思想: 先在内存中存储一张段码表,根据要显示的数字或先在内存中存储一张段码表,根据要显示的数字或字符去查表取得相应的段码,并输出到字符去查表取得相应的段码,并输出到LED显示器。
29、显示器。具体显示时,采用逐位扫描的方法控制哪一位具体显示时,采用逐位扫描的方法控制哪一位LED被被点亮。点亮。 片机原理及应用键盘与显示器接口程序清单:程序清单:DISPB: MOV DPTR,7F00H ;8155命令口地址命令口地址 MOV A,03H MOVX DPTR,A ;置;置PA口、口、PB口为输出口为输出 MOV R0,7AH ;置显示缓冲器指针初值;置显示缓冲器指针初值 MOV R3,01H ;置扫描模式初值;置扫描模式初值 MOV A,R3DISPB1:MOV DPTR,7F01H ;8155 PA口地址口地址 MOVX DPTR,A ;扫描模式;扫描模式8155 PA口口
30、 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 DISPB1DISPB2: RETSEGPT2: DB 3FH,06H,5BH,4FH,66H,6DH ;段码表;段码表DELAY: MOV
31、 R5,02H ;延时子程序;延时子程序 DELAY1: MOV R4,0FFHDELAY2: DJNZ R4,DELAY2 DJNZ R5,DELAY1 RET片机原理及应用键盘与显示器接口串行接口串行接口LED驱动器驱动器MAX7219 MAX7219 MAX7219是是MAXIMMAXIM公司生产的一种串行接口公司生产的一种串行接口方式方式7 7段共阴极段共阴极LEDLED显示驱动器,其片内包含显示驱动器,其片内包含有一个有一个BCDBCD码到码到B B码的译码器、多路复用扫描码的译码器、多路复用扫描电路、字段和字位驱动器以及存储每个数字电路、字段和字位驱动器以及存储每个数字的的88 R
32、AM88 RAM,每位数字都可以被寻址和更新,每位数字都可以被寻址和更新,允许对每一位数字选择允许对每一位数字选择B B码译码或不译码。采码译码或不译码。采用三线串行方式与单片机接口,电路十分简用三线串行方式与单片机接口,电路十分简单,只需要一个单,只需要一个10k10k左右的外接电阻来设置所左右的外接电阻来设置所有有LEDLED的段电流。的段电流。 片机原理及应用键盘与显示器接口MAX7219采用串行数据传输方式,由采用串行数据传输方式,由16位数据包发送到位数据包发送到DIN引脚引脚的串行数据在每个的串行数据在每个CLK的上升沿被移入到内部的上升沿被移入到内部16位移位寄存器位移位寄存器中
33、,然后在中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。的上升沿将数据锁存到数字或控制寄存器中。LOAD信号必须在第信号必须在第16个时钟上升沿同时或之后,但在下一个时个时钟上升沿同时或之后,但在下一个时钟上升沿之前变高,否则将会丢失数据。钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位端的数据通过移位寄存器传送,并在寄存器传送,并在16.5个时钟周期后出现在个时钟周期后出现在DOUT端。端。DOUT端的端的数据在数据在CLK的下降沿输出。串行数据以的下降沿输出。串行数据以16位为一帧,其中位为一帧,其中D15D12可以任意,可以任意,D11D8为内部寄存器地为内部寄存器地
34、 址,址,D7D0为寄存器为寄存器数据,工作时序如下:数据,工作时序如下:片机原理及应用键盘与显示器接口寄存器寄存器地地 址址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 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 06
35、H6H数字数字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 1FHFHMAX7219的内部寄存器及其地址的内部寄存器及其地址 片机原理及应用键盘与显示器接口如图所示为如图所示为8051单片机与单片机与MAX7219的一种接口,的一种接口,8051的的P1.0连到连到MAX7219的的DIN端,端,P1.
36、1连到连到LOAD端,端,P1.2连到连到CLK端,采用软件模拟方式产生所需的端,采用软件模拟方式产生所需的工作时序。下面给出根据该图设计的工作时序。下面给出根据该图设计的MAX7219显示驱显示驱动程序例子,程序执行后在动程序例子,程序执行后在LED上显示上显示8031字样。字样。 片机原理及应用键盘与显示器接口主程序主程序MAIN: MOV SP,#60H ;设置堆栈指针;设置堆栈指针 MOV R7,#0AH ;亮度寄存器;亮度寄存器 MOV R5,#07H ;亮度值;亮度值 LCALL DINPUT ;调用;调用7219命令写入子程序命令写入子程序 MOV R7,#0BH ;扫描界限寄存
37、器;扫描界限寄存器 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 ;正常工作;正常工作 LCALL DINPUT MOV 30H,#08H ;显示;显示 8031 MOV 31H,#00H MOV 32H,#03H MOV 33H,#01H MOV R7,#30H LCALL DISPLY ;调用;调用7219显示子
38、程序显示子程序 SJMP $ 片机原理及应用键盘与显示器接口7219命令写入子程序命令写入子程序 DINPUT: MOV A,R7 ;传递来的第;传递来的第1个参数保存在个参数保存在R7中中 MOV R2,#08 ;作为;作为MAX7219控制寄存器的控制寄存器的8位地址值位地址值LOOP1: RLC A ;A的的D7位移至位移至P1.0,依次为,依次为D6D0 MOV P1.0, C ;8位地址输入位地址输入DIN CLR P1.2 ;P1.2输出时钟信号输出时钟信号 SETB P1.2 DJNZ R2,LOOP1 MOV A,R5 ;传递来的第;传递来的第2个参数保存在个参数保存在R5中中
39、 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 P1.1 ;P1.1输出输出LOAD信号,信号, SETB P1.1 RET片机原理及应用键盘与显示器接口7219显示子程序显示子程序DISPLY: MOV A,R7 ;R7的内容为的内容为7219显示缓冲区入口地址显示缓冲区入口地址 MOV R0,A ;
40、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 ;调用;调用7219命令写入子程序命令写入子程序 INC R0 INC R1 DJNZ R3,LOOP3 RET片机原理及应用键盘与显示器接口82798279可编程键盘可编程键盘/ /显示器接口技术显示器接口技术82798279的工作原理的工作原理键盘部分键盘部分 提提供供
41、6464按按键键阵阵列列( (可可扩扩展展为为128)128)的的扫扫描描接接口口,也也可可以以接接传传感感器器阵阵列列。键键的的按按下下可可以以是是双双键键锁锁定定或或N N键键互互锁锁。键键盘盘输输入入经经过过反反弹弹跳跳电电路路自自动动消消除除前前后后沿沿按按键键抖抖动动影影响响之之后后,被被选选通通送送入入一一个个8 8字字符符的的FIFO(FIFO(先先进进先先出出栈栈) )存存储储器器。如如果果送送入入的的字字符符多多于于8 8个个,则则溢溢出出状状态态置置位位。按按键键输输入入后后将将中中断输出线升到高电平向断输出线升到高电平向CPUCPU发中断申请。发中断申请。 显示部分显示部
42、分 对对7 7段段LEDLED、白白炽炽灯灯或或其其他他器器件件提提供供显显示示接接口口。82798279有有一一个个内内部部的的168168显显示示RAMRAM,组组成成一一对对164164存存储储器器。显显示示RAMRAM可可由由CPUCPU写写入入或或读读出出。显显示示方方式式有有从从右右进进入入的的计计算算器器方方式式和和从从左左进进入入的的电电传传打打字字方方式式。显显示示RAMRAM每每次次读读写写之之后后,其地址自动加其地址自动加1 1。片机原理及应用键盘与显示器接口8279内部逻辑结构框图内部逻辑结构框图片机原理及应用键盘与显示器接口1.I/O控制和数据缓冲控制和数据缓冲 2.
43、控制与定时寄器及定时控制控制与定时寄器及定时控制3.扫描计数器扫描计数器 4.返回缓冲器和键盘消颤及控制返回缓冲器和键盘消颤及控制 5.FIFO/传感器传感器RAM和状态和状态 6.显示地址寄存器和显示显示地址寄存器和显示RAM 8279内部内部主要组成模块主要组成模块 片机原理及应用键盘与显示器接口8279功能命令一览表功能命令一览表片机原理及应用键盘与显示器接口8279功能命令一览表功能命令一览表(续表(续表)片机原理及应用键盘与显示器接口8279与单片机的一般接口方法与单片机的一般接口方法 片机原理及应用键盘与显示器接口 单片机在初始化单片机在初始化8279后,把显示字符送到后,把显示字
44、符送到8279内内部的一个部的一个16字节寄存器内,并将字符转换成段码,字节寄存器内,并将字符转换成段码,经经A0A3、B0B3线把段码送到显示器,同时经线把段码送到显示器,同时经SL0SL3线发出线发出4位数位选通码。位数位选通码。4-16译码器对选译码器对选通码进行译码后轮流选通各位显示器。通码进行译码后轮流选通各位显示器。SL0SL2线同时连到线同时连到3-8译码器。该译码器的输出用于扫描键译码器。该译码器的输出用于扫描键盘盘8行。行。8279经经8根返回线根返回线(RL0RL7)读取键盘的读取键盘的状态。如果发现按键闭合则等待状态。如果发现按键闭合则等待10ms,颤动过去,颤动过去后再
45、检验按键是否闭合。若按键仍然闭合,则把被后再检验按键是否闭合。若按键仍然闭合,则把被按键的键值选通输入按键的键值选通输入8279内部的先进先出内部的先进先出(FIFO)存存储器,同时经储器,同时经INT线发出一个高电平,指出线发出一个高电平,指出FIFO内内已经有一个字符。已经有一个字符。INT线连接到线连接到CPU的中断请求输的中断请求输入线。当单片机接收到中断请求后,若开中断,则入线。当单片机接收到中断请求后,若开中断,则转到键盘服务程序,从转到键盘服务程序,从FIFO中读取按键的键值。在中读取按键的键值。在这种接口中,单片机要做的事仅是初始化这种接口中,单片机要做的事仅是初始化8279、
46、送、送出要显示的字符、接到中断请求后读取按键的键值,出要显示的字符、接到中断请求后读取按键的键值,其它工作均由其它工作均由8279自动完成。自动完成。片机原理及应用键盘与显示器接口单片机与单片机与8279的具体接口电路的具体接口电路片机原理及应用键盘与显示器接口8031的P2.7接到8279的片选端,最低位地址A0接到8279的C/D端,因此该接口对用户来说只有二个口地址:命令口地址7FFFH和数据口地址7FFEH。 图中8279外接48键盘和8位共阴极LED显示器,采用编码扫描方式,译码器74LS138对扫描线译码后一方面接键盘的列线,同时通过驱动器接到显示器上。 片机原理及应用键盘与显示器
47、接口8279初始化程序:初始化程序:INI79: MOV DPTR,7FFFH ;清除命令;清除命令8279 MOV A,0D1H MOVX DPTR,AWNDU: MOVX A,DPTR ;等;等8279清除结束清除结束 JB ACC.7,WNDU MOV A,0 ;方式命令;方式命令8279 MOVX DPTR,A MOV A,34H ;扫描频率设置命令;扫描频率设置命令8279 MOVX DPTR,A MOV IE,84H ;允许;允许8279中断中断 RET片机原理及应用键盘与显示器接口显示器更新程序:显示器更新程序:RDIR: MOV DPTR,7FFFH ;写显示;写显示RAM命令
48、命令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 ;查表转换为段码数据;查表转换为段码数据 MOVX DPTR,A INC R0 DJNZ R7,RDLO RETSEG: DB 3FH,06H,5BH,4FH ;根据硬件线路设计的段码;根据硬件线路设计的段码 DB 66H,6DH, 7DH,07H DB 7FH,6FH 77H,7CH片机原理及应用键盘与显示器接
49、口键输入中断服务程序:键输入中断服务程序:PKEYI:PUSH PSWPUSH DPLPUSH DPHPUSH ACCPUSH BSETB PSW.3 ;选工作寄存器;选工作寄存器1区区MOV DPTR,7FFFH ;读;读FIFO状态字状态字MOVX A,DPTRANL A,0FHJZ PKYR ;判;判FIFO中是否有数据中是否有数据?MOV A,40H ;读;读FIFO命令命令8279MOVX DPTR,AMOV DPTR,7FFEHMOVX A,DPTR ;读数据;读数据MOV R2,AANL A,38H ;计算键值;计算键值RR A片机原理及应用键盘与显示器接口RR ARR AMOV
50、 B,04HMUL ABXCH A,R2ANL A,7ADD A,R2MOV R0,40 ;键值;键值(40H)指出的环形缓冲器单元指出的环形缓冲器单元MOV R0,AINC R0MOV A,R0ANL A,3FH ;环形缓冲器指针处理;环形缓冲器指针处理ORL A,30HMOV 40H,ASETB 0 ;置标志供主程序查询处理;置标志供主程序查询处理PKYR:POP BPOP ACCPOP DPHPOP DPLPOP PSWRETI片机原理及应用键盘与显示器接口LCD显示器接口显示器接口LCD的基本结构及工作原理LCD的特点是体积小、重量轻、功耗极低、抗干扰能的特点是体积小、重量轻、功耗极低
51、、抗干扰能力强。力强。片机原理及应用键盘与显示器接口LCDLCD的驱动方式的驱动方式 LCD常采用交流驱动常采用交流驱动, 通常采用异或门把显示控制信号通常采用异或门把显示控制信号和显示频率信号合并为交变的驱动信号和显示频率信号合并为交变的驱动信号, 如图所示。如图所示。当显示控制电极上的波形与公共电极上的方波相位相反时当显示控制电极上的波形与公共电极上的方波相位相反时, 则为则为显示状态。显示控制信号由显示状态。显示控制信号由C端输入端输入, 高电平为显示状态。显示高电平为显示状态。显示频率信号是一个方波。当异或门的频率信号是一个方波。当异或门的C端为低电平时端为低电平时, 输出端输出端B的
52、的电位与电位与A端相同端相同, LCD两端的电压为两端的电压为0, LCD不显示,当异或门的不显示,当异或门的C端为高电平时端为高电平时, B端的电位与端的电位与A端相反端相反, LCD两端呈现交替变化两端呈现交替变化的电压的电压, LCD显示。显示。 片机原理及应用键盘与显示器接口段式段式LCD显示器的驱动接口显示器的驱动接口显示器显示器4N07,译码驱动器采用带锁存器的,译码驱动器采用带锁存器的MC14543,可以将输,可以将输入的入的BCD码转换为码转换为7段显示码输出。驱动方式由段显示码输出。驱动方式由PH端控制端控制, PH端端输入显示方波信号。输入显示方波信号。LD是内部锁存器选通
53、端是内部锁存器选通端, LD为高电平时为高电平时, 允允许许AD端输入端输入BCD码数据码数据, LD为低电平时为低电平时, 锁存输入数据。锁存输入数据。BI为为高电平时为消隐。每块高电平时为消隐。每块MC14543各驱动一位各驱动一位LCD, BCD码输入端码输入端AD接到接到8051的的P1.0P1.3, 锁存器选通端锁存器选通端LD分别接到分别接到P1.4P1.7, 分别控制分别控制4块块MC14543输入输入BCD码。码。MC14543的相位端的相位端PH接到接到8051的的P3.7, 由由P3.7端提供一个显示用的低频方波信号,方端提供一个显示用的低频方波信号,方波信号的产生由波信号
54、的产生由8031片内定时器片内定时器T1的定时中断产生的定时中断产生 片机原理及应用键盘与显示器接口主程序主程序DISB EQU 60H ;DISB EQU 60H ;定义显示缓冲区定义显示缓冲区 ORG 0000 ORG 0000 HINIT: LJMP START ;HINIT: LJMP START ;主程序入口主程序入口 ORG 001BH ORG 001BH LJMP INTT1 ; LJMP INTT1 ;定时器定时器1 1中断入口中断入口 ORG 0030H ORG 0030HSTART: MOV TMOD, #10H ;START: MOV TMOD, #10H ;置定时器置定
55、时器T1T1为方式为方式1 1 MOV TH1, #0ECH ;10ms MOV TH1, #0ECH ;10ms定时,定时,fosc=6MHzfosc=6MHz MOV TL1 MOV TL1,#78H#78H SETB TR1 SETB TR1 ; 启动启动T1T1 SETB EA ; SETB EA ;开中断开中断 SETB ET1 SETB ET1 ; ;其它工作其它工作 LCALL DISP ; LCALL DISP ;调用显示子程序调用显示子程序 ; ;其它工作其它工作片机原理及应用键盘与显示器接口显示子程序显示子程序:DISP: MOV R0, #DISB ;R0DISP: MO
56、V R0, #DISB ;R0指向显示缓冲区首地址指向显示缓冲区首地址 MOV R2, #10H ; MOV R2, #10H ;设定最高位锁存控制标志设定最高位锁存控制标志DISP1: MOV A, R0 ;DISP1: MOV A, R0 ;取显示数据取显示数据 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 ;置所有置所有MC14543MC14
57、543为锁存状态为锁存状态 INC R0 ;R0 INC 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 ;已更新显示已更新显示, , 返回返回片机原理及应用键盘与显示器接口定时器定时器1 1中断服务程序:中断服务程序:INTT: CPL P3.7 ;P3.7INTT: CPL P3.7 ;P3.7输出电平取反输出电
58、平取反 MOV TH1, #0ECH ; MOV TH1, #0ECH ;置定时器计数初值置定时器计数初值 MOV TL1, #78H MOV TL1, #78H RETI ; RETI ;中断返回中断返回片机原理及应用键盘与显示器接口点阵式液晶显示模块点阵式液晶显示模块EPSONEPSON公司生产的公司生产的EA-DEA-D系列点阵式液晶显示模块内部结构如图所系列点阵式液晶显示模块内部结构如图所示。它由点阵式液晶显示面板、示。它由点阵式液晶显示面板、SED1287SED1287专用集成电路和专用集成电路和4 4个列驱个列驱动器组成。动器组成。SED1278SED1278完成显示模块的时序控制
59、完成显示模块的时序控制, , 同时也可以驱动同时也可以驱动1616行行40 40 列的点阵库。列的点阵库。 片机原理及应用键盘与显示器接口显示数据存储器显示数据存储器(DDRAM)(DDRAM)与显示屏幕的物理位置是一一对应的与显示屏幕的物理位置是一一对应的, , 当给显示数据存储器的某一单元写入一个字符的编码时当给显示数据存储器的某一单元写入一个字符的编码时, , 该字该字符就在对应的位置上显示出来。符就在对应的位置上显示出来。DDRAMDDRAM与显示屏的物理位置对与显示屏的物理位置对应关系如下表所示。应关系如下表所示。00 01 02 03 04 05 06 07 08 09 0A 0B
60、 0C 0D 0E 0F 10 11 12 1340 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 5314 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 2754 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 6712341 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20显示 列地址 号行号片机原理及应用键盘与显示器接口液晶显示模块与单片机的接口液晶显示模块与
61、单片机的接口片机原理及应用键盘与显示器接口初始化程序初始化程序:START: MOV DPTR, #2820H ;2820HSTART: MOV DPTR, #2820H ;2820H为命令寄存器地址为命令寄存器地址 MOV A, #38H ; MOV A, #38H ;置功能,置功能,2 2行,行,8 8位数据位数据 MOVX DPTR, A MOVX DPTR, A LCALL WAIT LCALL WAIT MOV A, #06H ; MOV A, #06H ;置输入模式,光标左移置输入模式,光标左移 MOVX DPTR, A MOVX DPTR, A LCALL WAIT LCALL
62、WAIT MOV A, #0FH ; MOV A, #0FH ;置显示开置显示开/ /关控制关控制 MOVX DPTR, A MOVX DPTR, A LCALL WAIT LCALL WAIT MOV A, #01 ; MOV A, #01 ;总清总清 MOVX DPTR, A MOVX DPTR, A LCALL WAIT LCALL WAIT RET RETWAIT: MOV DPTR,#2820H ; WAIT: MOV DPTR,#2820H ; 置命令寄存器地址置命令寄存器地址 MOV A, DPTR MOV A, DPTR JB ACC.7, WAIT ; JB ACC.7, W
63、AIT ;读忙标志读忙标志 RET RET片机原理及应用键盘与显示器接口显示字符串显示字符串“SINGLE”的程序的程序, 程序执行后程序执行后, 从第一个字符位置上开始显示。从第一个字符位置上开始显示。SINGLE:MOV DPTR, #2820H ;置命令寄存器地址置命令寄存器地址MOV A, #84H ;置置DDRAM地址初值地址初值04HMOV DPTR, ALCALL WAITMOV A, #53H ;SLCALL CHAR1MOV A, #49H ;ILCALL CHAR1MOV A, #4EH ;NLCALL CHAR1MOV A,#47H ;GLCALL CHAR1MOV A, #4CH ;ILCALL CHAR1MOV A, #45H ;LLCALL CHAR1LJMP SINGLECHAR1: DPTR, #2821H ;2821H为数据寄存器地址为数据寄存器地址MOVX DPTR, ALCALL WAITRET片机原理及应用键盘与显示器接口片机原理及应用键盘与显示器接口