键盘与显示器接口键盘可分为编码式键盘和非编码式键盘。编码键盘能够由硬件自动提供与被按键对应的ASCII码或其它编码。非编码键盘则仅提供行和列的矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来确定。任何键盘接口均要解决三个主要问题:1、反弹跳2、串键保护3、按键识别键盘接口技术1、反弹跳当机械按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖动和弹跳,致使电位信号不稳,若此时采集信号会引起一次按键操作被误读多次,因此必须去除。消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用软件延迟的方法。采用RS触发器实现硬件反弹跳AB为防止一次按键被多次捕获误读,也可以采用软件延时的方法来反弹跳,如流程图所示。当检出有键按下后,先执行一个反颤延时20ms的子程序,待前沿弹跳消失后再转入键闭合CLOSE子程序。然后再判断此次按键是否松开,如果没有,则进行等待。若已松开,则又执行一次延时20ms的子程序以消除后沿弹跳的影响,再去检测下次按键的闭合。注:20ms按键弹跳的时间2、串键保护有三种处理串键的技术:两键同时按下、n键同时按下和n键锁定。两键同时按下技术:在两个键同时按下时产生保护作用。最简单的办法是当只有一个键按下时才读取键盘的输出,最后仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用这种方法。另一种方法是当第一个按键未松开时,按第二个键不产生选通信号。这种方法常藉助硬件来实现。n键同时按下技术:或者不理会所有被按下的键,直至只剩下一键按下时为止;或者将所有按键的信息都存入内部缓冲器中,然后逐个处理,这种方法成本较高。n键锁定技术:只处理一个键,任何其它按下又松开的键不产生任何码。通常第一个被按下或最后一个松开的键产生码。这种方法最简单也最常用。3、按键识别决定是否有键被按下,如有则应识别键盘矩阵中被按键对应的编码。按键识别可通过硬件和软件技术来完成,根据技术不同可将键盘分为编码键盘和非编码键盘。编码键盘:通过硬件直接提供按键与被按键对应的ASCII码或其它编码。非编码键盘:不含硬件编码电路,需要通过软件编程方式提供按键编码,设定按键和编码的对应关系。其优点是结构简单、成本低廉。非编码键盘接口技术非编码键盘接口技术主要是如何确定被按键的行、列位置,即键码(值)。按键识别是接口技术的关键问题。常用按键识别方法有行扫描法(Row-Scanning)和线反转法(Line-Reverse)。典型非编码键盘结构非编码键盘大都采用按行、列排列的矩阵开关结构,这种结构可以减少硬件和连线。独立键盘结构矩阵键盘结构行扫描法识别按键行扫描法是采用步进扫描方式,CPU通过输出口把一个“步进的0”逐行加至键盘的行线上,然后通过输入口检查列线的状态。由行线列线电平状态的组合来确定是否有键按下,并确定被按键所处的行、列位置。1111按下1111111111111110111111111111R1K13K14K15K16R2K9K10K11K12R3K5K6K7K8R4K1K2K3K4C1C2C3C4键位与行列线关系表上表列出了识别按键位置与各行之间的关系。其中,R1、R2、R3、R4表示行,C1、C2、C3、C4表示列。当扫描第一行时,R1=0,若读入的列值C1=0,则表明按键K13被压下,如果C3=0,则表明按键K15被压下。第一行扫描完毕后再扫描第二行,逐行扫描至最后一行为止,即可识别出所有的按键。例题分析例题:如下电路图采用矩阵键盘和6位七段数码管搭建的按键显示电路,程序运行后数码管显示“012345”,有建按下后,数码管最高位显示键盘按下位,其余5位数码管不显示。按下可编程并行I/O口8155芯片介绍8155是Intel公司研制的可编程并行I/O接口芯片,其内部包括两个8位I/O端口(A口和B口),一个6位I/O端口(C口),另外还有一个256B的RAM和一个14位定时/计数器。AD7~AD0:传送地址、数据,直接和单片机P0口相连。I/O口线:和外设相连,传输I/O数据CE:片选线,低电平选中本片IO/M:为0选中RAM,为1选中I/O端口。引脚功能(5)8155的端口地址分配(2)8155的控制字格式电路分析如图所示为单片机8051与矩阵键盘及LED显示器的一种接口电路,通过编程设定8155的PA口、PB口作为输出口,PC口作为输入口。PA口作段码输出,PB口完成键盘的行扫描输出,同时又对LED显示器作位码扫描,PC口读入键盘列线状态。7404为反相驱动器。接口电路中采用8031的P2.7作为8155的片选线,P2.0作为8155的IO端口和片内RAM选择线,因此端口地址如下:命令寄存器地址:7F00HPA:7F01HPB:7F02HPC:7F03HLCD液晶显示器接口技术LCD工作原理LCD(LiquidCrystalDiodes)是一种被动式显示器,本身不发光,它由上下玻璃基板、偏振片和上下导电电极组成,在电极之间布有螺旋结构的液晶分子涂层,其对光线具有旋光性,能够将入射光线旋转90度照射到另一偏振片上,上下偏振片垂直排布,入射光线能够射出,若施加交流电压,液晶分子成同向排列结构,入射光线就会被反射板挡住无法射出。点阵字符型液晶显示模块接口技术字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD目前常用16*1、16*2、20*2和40*2行等模块,它由液晶显示器、点阵驱动器、LCD控制器,其模块内还有字符发生器(ROM、RAM)和数据存储器。LCD1602液晶显示示意图LCD1602介绍市场上的点阵字符型液晶显示模块比较多,原理基本相似,下面以EPSON公司点阵字符型液晶显示模块LCD1602为例进行介绍,其控制器为SED1278,可以显示16*2个字符。1.引脚LCD1602控制器引脚有14条:VSS:地线VDD:+5V电源输入线VO:液晶显示板亮度调节RS:寄存器选择信号输入线R/W:读写信号输入线。低电平为写入,高电平输出。E:片选信号输入线,高电平有效D0~D7:数据总线,可选择4位或8位总线操作SED1287控制电路介绍SED1287它由IR(指令寄存器)、DR(数据寄存器)、忙标志(BF)、地址计数器(AC)、显示数据寄存器(DDRAM)、字符发生器(CGROM)、字符发生器(CGRAM)以及时序发生电路组成。指令寄存器IR:寄存各种指令码,只能写不能读。数据寄存器DR:用于寄存要显示的数据忙标志BF:若BF=1,则表示系统进行内部操作,不接受任何外部指令和数据。地址计数器AC:作为DDRAM和CGRAM的地址指针。DDRAM:用来寄存待显示的字符代码,共80个字节。显示数据存储器(DDRAM)与显示屏幕的物理位置是一一对应的,当给显示数据存储器的某一单元写入一个字符的编码时,该字符就在对应的位置上显示出来。DDRAM与显示屏的物理位置对应关系表例如在液晶屏第一行第一列显示字符“A”,则需要在DDRAM的00H位置写入“A”的字符编码。SED1287控制电路介绍(续1)字符发生器(CGROM):由8位字符码160个5*7点阵字符和32个5*10点阵字符,字符固化在液晶显示器内部,用户使用时向DDRAM写入相应字符的字符编码即可,不允许用户改变。字符发生器(CGRAM):用于创建CGROM里没有的字符,例如汉字、特殊字符等。方法就是将字模写入CGRAM中,地址范围为00~3FH,然后调用自定义字符编码00H~07HLCD1602的控制命令LCD1602显示功能由各种命令实现,总共11条:该命令把地址计数器中DDRAM地址清0,执行指令后光标移到起始位置(第一行,第一个字符)•设定每次写入/读出1位DDRAM数据后光标的移位方向:•I/D=0,写入新数据后光标左移;•I/D=1,写入新数据后光标右移;•S=0,整个显示屏不移动;•S=1,整个显示屏向左(I/D=0)或向右(I/D=1)移动。•D=0,显示器关闭;D=1,显示器显示数据•C=0,不显示光标;C=1,显示光标•B=1,显示光标闪烁点阵字符型液晶模块与单片机的间接接口通过单片机I/O端口引脚来操作液晶显示模块,因此在编写驱动程序时要注意时序的配合。写操作时E信号的下降沿有效,工作时序上应先设置RS、R/W状态,再写入数据,然后产生E信号脉冲,最后复位RS、R/W状态。读操作时E信号的高电平有效,工作时序上应先设置RS、R/W状态,再设置E信号为高电平,再读取数据,然后将E信号设置为低电平,最后复位RS、R/W状态,编写程序时要特别注意工作时序的配合。点阵图型液晶显示模块接口技术点阵字符型液晶显示模块只能显示英文字符和简单的汉字,要想显示较为复杂的汉字或图形,就必须采用点阵图型液晶显示模块,12864LCM是一种常见的点阵图型液晶显示模块,模块内部控制器采用KS0108或HD61202,引脚排列如下。CS1=1(左半屏)CS2=1(右半屏)Y=01……626301……6263行号X=0DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB70↓7X=1DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0DB7DB0↓DB7DB0↓DB78↓15………………………………………………………………X=7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0↓DB7DB0DB7DB0↓DB7DB0↓DB756↓6312864内部存储器DDRAM与显示屏上的显示内容具有一一对应关系,用户只要将显示内容写入到12864内部显示存储器DDRAM中,就能实现正确显示。12864液晶屏横向有128个点,纵向有64个点,分为左半屏和右半屏,DDRAM与显示屏的对应关系如下表所列。单片机与12864液晶模块之间可以采用直接方式接口,也可以采用间接方式接口。点阵图型液晶模块与单片机的间接接口间接方式接口电路通过单片机的并行I/O端口引脚实现对液晶显示模块的间接控制。液晶模块的CS1、CS2、RS、R/W和E信号分别由8051单片机的P2.0、P2.1、P2.2、P2.3和P2.4来控制,由于间接控制方式需要通过单片机的端口引脚来操作液晶模块,因此在编写驱动程序时要特别注意时序的配合。