1 / 51

键盘与显示器接口

键盘与显示器接口. LED 显示器接口技术. LED 数码显示器结构与原理 LED 数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段 LED 数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。. 使用 LED 显示器时,要注意区分共阴极和共阳极两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,共计 8 段。因此为 LED 显示器提供的段码正好是一个字节。 实际使用中,通过单片机向 LED 显示接口输出不同段码,即可显示相应的数字。. LED 数码显示器共阴极和共阳极段码.

yaholo
Download Presentation

键盘与显示器接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 键盘与显示器接口

  2. LED显示器接口技术 LED数码显示器结构与原理 LED数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段LED数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。

  3. 使用LED显示器时,要注意区分共阴极和共阳极两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的段码正好是一个字节。使用LED显示器时,要注意区分共阴极和共阳极两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的段码正好是一个字节。 实际使用中,通过单片机向LED显示接口输出不同段码,即可显示相应的数字。

  4. LED数码显示器共阴极和共阳极段码

  5. 硬件译码LED显示接口 如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴极的。9368是硬件段译码器,它能自动将输入的16进制数转换成段码输出,在+5V时能输出约30mA的电流点亮显示器的段。7475是4位锁存器,4个数据输入端接到系统数据总线的D3~D0。锁存器的选通端E接到地址译码器,若该接口的地址为0088H,执行以下指令即可在显示器上显示数字“0”。 MOV DPTR,#0088H MOV A,#00H MOVX @DPTR,A

  6. 软件译码LED显示接口 软件译码动态扫描显示接口如下图,根据要显示的字符查段码表取得相应的段码并输出到LED显示器,采用逐位扫描的方法控制哪一位LED被点亮。

  7. 动态扫描汇编语言驱动程序 START: MOV DPTR,#TABLE ;DPTR指向段码表首地址 MOV R7,#07FH ;设置动态显示扫描初值 S1: MOV A,#00H MOVC A,@A+DPTR ;查表取得段码 CJNE A,#01H,S2 ;判断段码是否为结束符 SJMP START S2: MOV B,A ;段码送B保存 MOV A,R7 RL A ;显示位扫描值左移1位 MOV P3,A ;显示位扫描值送P3口 MOV R7,A MOV P0,B ;显示段码送P0显示 LCALL DELAY ;延时 INC DPTR SJMP S1 DELAY: MOV R5,#80 ;延时子程序 D2: DJNZ R5,D2 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表 DB 01H ;结束符

  8. 串行接口LED驱动器MAX7219 MAX7219是MAXIM公司生产的一种串行接口方式7段共阴极LED显示驱动器,其片内包含有一个BCD码到B码的译码器、多路复用扫描电路、字段和字位驱动器以及存储每个数字的8×8 RAM,每位数字都可以被寻址和更新,允许对每一位数字选择B码译码或不译码。采用三线串行方式与单片机接口,电路十分简单,只需要一个10k左右的外接电阻来设置所有LED的段电流。

  9. MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚 的串行数据在每个CLK的上升沿被移入到内部16位移位寄存器 中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。 LOAD信号必须在第16个时钟上升沿同时或之后,但在下一个时 钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位 寄存器传送,并在16.5个时钟周期后出现在DOUT端。DOUT端的 数据在CLK的下降沿输出。串行数据以16位为一帧,其中D15~ D12可以任意,D11~D8为内部寄存器地 址,D7~D0为寄存器 数据,工作时序如下:

  10. MAX7219的内部寄存器及其地址

  11. 8051单片机与MAX7219的接口 8051的P3.5连到MAX7219的DIN端,P3.6连到LOAD端,P3.7连到CLK端,采用软件模拟方式产生所需的工作时序。执行驱动程序后在LED上显示8051字样。

  12. 键盘接口技术 键盘可分为编码式键盘和非编码式键盘。编码 键盘能够由硬件自动提供与被按键对应的ASCII 码或其它编码。非编码键盘则仅提供行和列的矩 阵,其硬件逻辑与按键编码不存在严格的对应关 系,而要由所用的程序来确定。 任何键盘接口均要解决三个主要问题: 1、反弹跳 2、串键保护 3、按键识别

  13. 1、反弹跳 当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。 采用RS触发器实现硬件反弹跳

  14. 当键数较多时经常用软件延时的方法来反弹跳,如流程图所示。当检出有键按下后,先执行一个反颤延时20ms的子程序,待前沿弹跳消失后再转入键闭合CLOSE子程序。然后再判断此次按键是否松开,如果没有,则进行等待。若已松开,则又执行一次延时20ms的子程序以消除后沿弹跳的影响,再去检测下次按键的闭合。当键数较多时经常用软件延时的方法来反弹跳,如流程图所示。当检出有键按下后,先执行一个反颤延时20ms的子程序,待前沿弹跳消失后再转入键闭合CLOSE子程序。然后再判断此次按键是否松开,如果没有,则进行等待。若已松开,则又执行一次延时20ms的子程序以消除后沿弹跳的影响,再去检测下次按键的闭合。

  15. 2、串键保护 有三种处理串键的技术:两键同时按下、n键同时按下和n键锁定。 “两键同时按下”技术是在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常藉助硬件来实现。 “n键同时按下”技术或者不理会所有被按下的键,直至只剩下一键按下时为止,或者将所有按键的信息都存入内部缓冲器中,然后逐个处理,这种方法成本较高。 “n键锁定”技术只处理一个键,任何其它按下又松开的键不产生任何码。通常第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。

  16. 3、按键识别 决定是否有键被按下,如有则应识别键盘矩 阵中被按键对应的编码。编码键盘通过硬件直 接提供按键与被按键对应的ASCII码或其它编 码。非编码键盘则需要通过编程方式提供按键 编码。其优点是结构简单、成本低廉。

  17. 非编码键盘接口技术 非编码键盘接口技术主要是如何确定被 按键的行、列位置,即键码(值)。按键 识别是接口技术的关键问题。 常用按键识别方法有行扫描法(Row- Scanning)和线反转法(Line-Reverse) 。

  18. 典型非编码键盘结构 非编码键盘大都采用按行、列排列的矩阵开关结构,这种结构可以减少硬件和连线。 矩阵键盘接口

  19. 行扫描法识别按键 行扫描法是采用步进扫描方式,CPU通过输出口把一个“步进的0”逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位置。

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

  21. 线反转法识别按键 线反转法是藉助程控并行接口实现的,比行扫描法的速度快。如图所示为一个4×4键盘与并行接口的连接。并行接口有一个方向寄存器和一个数据寄存器,方向寄存器规定了接口总线的方向,寄存器的某位置“1”,规定该位口线为输出。寄存器的某位置“0”,规定该位口线为输入。

  22. 线反转法的具体操作分两步 第一步:先把控制字0FH置入并行接口的方向寄存器,使4条行线(PB0~PB3)作输出,4条列线(PB4-PB7)作输入。然后把控制字F0H写入数据寄存器,PB0~PB3将输出“0”到键盘行线。这时若无键按下,则4条列线均为“1”;若有某键按下,则该键所在行线的“0”电平通过闭合键使相应的列线变为“0”,并经与非门发出键盘中断请求信号给单片机。图4.6(a)是第2行第1列有键按下的情况。这时PB7~PB4线的输入为1011,其中0对应于被按键所在的列。 第二步:使接口总线的方向反转,把控制字F0H写入方向寄存器,使PB0~PB3作输入,PB4~PB7作输出。这时PB7~PB4线的输出为1011,PB3~PB0的输入为1011,其中“0”对应于被按键的行。单片机现在读取数据寄存器的完整内容为10111011,其中两个0分别对应于被按键所在的行列位置。根据此位置码到ROM中去查表,就可识别是何键被按下。

  23. 单片机通过8155实现的键盘、显示器接口 如图所示为单片机8051与矩阵键盘及LED显示器的一种接口电路,通过编程设定8155的PA口、PB口作为输出口,PC口作为输入口。PA口完成键盘的行扫描输出,同时又对LED显示器作字位扫描,PC口输入键盘列线状态。7407为同相驱动器,75452为反相驱动器。接口电路中采用8031的P2.7作为8155的片选线,P2.0作为8155的IO端口和片内RAM选择线,因此8155的命令寄存器地址为7F00H,PA~PC口地址为7F01H~7F03H。

  24. 按键识别子程序 KEY: MOV DPTR, #7F00H ;8155命令口地址 MOV A, #03H ;置PA、PB口为输出, MOVX @DPTR,A ;PC口为输入 MOV R4,#00H ;0→键号寄存器R4 MOV R2,#01H ;扫描模式01H→R2 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列有键闭合,0→A AJMP KEY5 KEY2:JB ACC.1,KEY3 ;1列无键闭合,转判2列 MOV A,#01H ;1列有键闭合 AJMP KEY5

  25. KEY3:JB ACC.2,KEY4 ;2列无键闭合,转判3列 MOV A,#02H ;2列有键闭合,02H→A AJMP KEY5 KEY4:JB ACC.3,NEXT ;3列无键闭合,转判下一行 MOV A,#03H ;3列有键闭合,03H→A KEY5: 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 ;扫描到最后一行仍无按键 RET ;置无键闭合标志后返回

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

  27. 查表法 查表法的核心是一个固化在ROM中的功能子程序入口地址转移表。如下表所示。在转移表内存有各个功能子程序的入口地址,根据键值代码查阅此表获得相应功能的子程序入口地址,从而可以转移到相应的命令处理子程序。 功能子程转移地址

  28. 例:键盘接口调用按键识别子程序所获得的键值如下表所示 ,当键值小于10H时代表数字键,键值大于等于10H时代表功能键。 键值表

  29. 处理功能键的程序: INPUT: LCALL KEY ;调按键识别子程序,获得键值在A中 MOV R0,A ;键值暂存于R0 ANL A,#10H JZ DATIN ;小于10H为数字键,转入数字操作 MOV A,R0 ;大于等于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: ; 数字键操作程序,略;

  30. 8279可编程键盘/显示器接口技术 8279的工作原理 • 键盘部分 提供64按键阵列(可扩展为128)的扫描接口,也可以接传感器阵列。键的按下可以是双键锁定或N键互锁。键盘输入经过反弹跳电路自动消除前后沿按键抖动影响之后,被选通送入一个8字符的FIFO(先进先出栈)存储器。如果送入的字符多于8个,则溢出状态置位。按键输入后将中断输出线升到高电平向CPU发中断申请。 • 显示部分 对7段LED、白炽灯或其他器件提供显示接口。8279有一个内部的16×8显示RAM,组成一对16×4存储器。显示RAM可由CPU写入或读出。显示方式有从右进入的计算器方式和从左进入的电传打字方式。显示RAM每次读写之后,其地址自动加1。

  31. 8279内部逻辑结构框图

  32. 8279内部主要组成模块 • I/O控制和数据缓冲 • 控制与定时寄器及定时控制 • 扫描计数器 • 返回缓冲器和键盘消颤及控制 • FIFO/传感器RAM和状态 • 显示地址寄存器和显示RAM

  33. 8279功能命令一览表

  34. 8279功能命令一览表 (续表)

  35. 8279与单片机的一般接口方法

  36. 单片机在初始化8279后,把显示字符送到8279内部的一个16字节寄存器内,并将字符转换成段码,经A0~A3、B0~B3线把段码送到显示器,同时经SL0~SL3线发出4位数位选通码。4-16译码器对选通码进行译码后轮流选通各位显示器。SL0~SL2线同时连到3-8译码器。该译码器的输出用于扫描键盘8行。8279经8根返回线(RL0~RL7)读取键盘的状态。如果发现按键闭合则等待10ms,颤动过去后再检验按键是否闭合。若按键仍然闭合,则把被按键的键值选通输入8279内部的先进先出(FIFO)存储器,同时经INT线发出一个高电平,指出FIFO内已经有一个字符。INT线连接到CPU的中断请求输入线。当单片机接收到中断请求后,若开中断,则转到键盘服务程序,从FIFO中读取按键的键值。在这种接口中,单片机要做的事仅是初始化8279、送出要显示的字符、接到中断请求后读取按键的键值,其它工作均由8279自动完成。单片机在初始化8279后,把显示字符送到8279内部的一个16字节寄存器内,并将字符转换成段码,经A0~A3、B0~B3线把段码送到显示器,同时经SL0~SL3线发出4位数位选通码。4-16译码器对选通码进行译码后轮流选通各位显示器。SL0~SL2线同时连到3-8译码器。该译码器的输出用于扫描键盘8行。8279经8根返回线(RL0~RL7)读取键盘的状态。如果发现按键闭合则等待10ms,颤动过去后再检验按键是否闭合。若按键仍然闭合,则把被按键的键值选通输入8279内部的先进先出(FIFO)存储器,同时经INT线发出一个高电平,指出FIFO内已经有一个字符。INT线连接到CPU的中断请求输入线。当单片机接收到中断请求后,若开中断,则转到键盘服务程序,从FIFO中读取按键的键值。在这种接口中,单片机要做的事仅是初始化8279、送出要显示的字符、接到中断请求后读取按键的键值,其它工作均由8279自动完成。

  37. 单片机与8279的接口电路

  38. 8031的P2.7接到8279的片选端,最低位地址A0接到8279的C/D端,因此该接口对用户来说只有二个口地址:命令口地址7FFFH和数据口地址7FFEH。 图中8279外接4×8键盘和8位共阴极LED显示器,采用编码扫描方式,译码器74LS138对扫描线译码后一方面接键盘的列线,同时通过驱动器接到显示器上。

  39. 8279工作流程

  40. LCD显示器接口技术 LCD的基本结构及工作原理 LCD的特点是体积小、重量轻、功耗极低、抗干扰能力强。

  41. LCD的驱动方式 LCD常采用交流驱动, 通常采用异或门把显示控制信号和显示频率信号合并为交变的驱动信号, 如图所示。 当显示控制电极上的波形与公共电极上的方波相位相反时, 则为显示状态。显示控制信号由C端输入, 高电平为显示状态。显示频率信号是一个方波。当异或门的C端为低电平时, 输出端B的电位与A端相同, LCD两端的电压为0, LCD不显示,当异或门的C端为高电平时, B端的电位与A端相反, LCD两端呈现交替变化的电压, LCD显示。

  42. 点阵字符型液晶显示模块接口 EPSON公司生产的EA-D系列点阵式液晶显示模块内部结构如图所示。它由点阵式液晶显示面板、SED1287专用集成电路和4个列驱动器组成。SED1278完成显示模块的时序控制, 同时也可以驱动16行40列的点阵库。

  43. 显示 列 地址 号 行号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 显示数据存储器(DDRAM)与显示屏幕的物理位置是一一对应的, 当给显示数据存储器的某一单元写入一个字符的编码时, 该字符就在对应的位置上显示出来。DDRAM与显示屏的物理位置对应关系如下表所示。

  44. 点阵字符型液晶模块与单片机的直接接口

  45. 液晶显示模块的R/W和RS信号由8051单片机的低8位地址线来控制,显示模块的E信号则由单片机的最高地址线P2.7和读RD、写WR信号线组成的联合逻辑电路来控制,从而可得该接口电路的命令写入地址为7FF0H,命令读取地址为7FF1H,数据操作地址为7FF2H。液晶显示模块的R/W和RS信号由8051单片机的低8位地址线来控制,显示模块的E信号则由单片机的最高地址线P2.7和读RD、写WR信号线组成的联合逻辑电路来控制,从而可得该接口电路的命令写入地址为7FF0H,命令读取地址为7FF1H,数据操作地址为7FF2H。 主程序中首先调用液晶模块初始化子程序,初始化内容包括将功能设置(8位字长、2行、5×7点阵)、清屏、设置输入方式和设置显示方式及光标等,需要注意的是每写入一条命令,都应先检查忙标志BF,只有当BF=0时才能执行下一条指令。 自定义汉字字符子程序中先设定CGRAM首地址,然后依次向CGRAM中写入各个自定义汉字的字模数据;接着设定显示字符在液晶屏上的位置,即DDRAM的地址,最后将要显示的字符代码分别写入DDRAM。 对于CGROM中的字符代码可以通过查CGROM字符编码表得到,而自定义汉字字符的代码则为00H~07H。

  46. 点阵字符型液晶模块与单片机的间接接口

  47. 间接方式接口电路通过单片机的并行I/O端口引脚实现对液晶显示模块的间接控制。液晶显示模块的RS、R/W和E信号分别由8051单片机的P2.1、p2.2和P2.3来控制,与直接方式不同,间接控制方式不是通过固定的接口地址,而是通过单片机I/O端口引脚来操作液晶显示模块,因此在编写驱动程序时要注意时序的配合。写操作时E信号的下降沿有效,工作时序上应先设置RS、R/W状态,再写入数据,然后产生E信号脉冲,最后复位RS、R/W状态。读操作时E信号的高电平有效,工作时序上应先设置RS、R/W状态,再设置E信号为高电平,再读取数据,然后将E信号设置为低电平,最后复位RS、R/W状态,编写程序时要特别注意工作时序的配合。间接方式接口电路通过单片机的并行I/O端口引脚实现对液晶显示模块的间接控制。液晶显示模块的RS、R/W和E信号分别由8051单片机的P2.1、p2.2和P2.3来控制,与直接方式不同,间接控制方式不是通过固定的接口地址,而是通过单片机I/O端口引脚来操作液晶显示模块,因此在编写驱动程序时要注意时序的配合。写操作时E信号的下降沿有效,工作时序上应先设置RS、R/W状态,再写入数据,然后产生E信号脉冲,最后复位RS、R/W状态。读操作时E信号的高电平有效,工作时序上应先设置RS、R/W状态,再设置E信号为高电平,再读取数据,然后将E信号设置为低电平,最后复位RS、R/W状态,编写程序时要特别注意工作时序的配合。

  48. 点阵图型液晶显示模块接口技术 点阵字符型液晶显示模块只能显示英文字符和简单的汉字,要想显示较为复杂的汉字或图形,就必须采用点阵图型液晶显示模块,12864LCM是一种常见的点阵图型液晶显示模块,模块内部控制器采用KS0108或HD61202,引脚排列如下。

  49. 12864内部存储器DDRAM与显示屏上的显示内容具有一一对应关系,用户只要将显示内容写入到12864内部显示存储器DDRAM中,就能实现正确显示。12864液晶屏横向有128个点,纵向有64个点,分为左半屏和右半屏,DDRAM与显示屏的对应关系如下表所列。 单片机与12864液晶模块之间可以采用直接方式接口,也可以采用间接方式接口。

  50. 点阵图型液晶模块与单片机的间接接口

More Related