《12键盘显示器接口.ppt》由会员分享,可在线阅读,更多相关《12键盘显示器接口.ppt(42页珍藏版)》请在三一办公上搜索。
1、第12章键盘显示器接口设计12.1 键盘接口12.2 LED显示器接口12.3 液晶显示器(LCD)接口,12.1.1 键盘接口简介1.键盘输入的特点键盘:一组按键开关的集合行线电压信号通过键盘开关机械触点的断开、闭合,输出波形如图。,2.按键的确认检测行线电平 高电平:断开;低电平:闭合,3.如何消除按键的抖动常用软件来消除按键抖动。基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期t1和t3的影响。,12.1.2 独立式键盘接口各键相互独立,每
2、个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。此种接口适于键数较少或操作速度较高的场合。,8255A扩展I/O口的独立式按键接口电路。,三态缓冲器扩展的I/O口的按键接口电路。,三态缓冲器扩展的I/O口独立式键盘编程:软件消抖,查询方式检测键的状态。仅有一键按下时才有效才处理。,KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFHMOVX A,DPTR;读键盘状态ANL A,#1FH;屏蔽高三位MOV R3,A;保存键盘状态值LCALL DELAY10;延时10ms去键盘抖动MOVX A,DPTR;再读键盘状态ANL A,#1FH;屏蔽高三位CJNE
3、A,R3,RETURN;两次不同,抖动引起转RETURNCJNE A,#1EH,KEY2;相等,但S1键未按,下转KEY2LJMP PKEY1;是S1键按下,转K1键处理;子程序PKEY1,KEY2:CJNE A,#1DH,KEY3;S2键未按下,转KEY3LJMP PKEY2;S2键按下,转PKEY2处理KEY3:CJNE A,#1BH,KEY4;S3未按下,转KEY4LJMP PKEY3;S3按下,转PKEY3处理KEY4:CJNE A,#17H,KEY5;S4键未按下,转KEY5LJMP PKEY4;S4按下,转PKEY4处理KEY5:CJNE A,#0FH,PASS;S5未按下,转RE
4、TURNLJMP PKEY5;S5按下,转PKEY5处理RETURN:RET;重键或无键按下,从子程序返回,识别和编程简单,用在按键数较少的场合。,12.1.3 BCD码拨码盘接口 拨码盘有不同的种类,单片10位10线输出式拨码盘和BCD码4线输出式拨码盘是其中的两种。10线拨码盘:实际上是单刀单掷转换开关,把A端接地,09端分别接单片机IO口线,读人口线电平状态就能判别10线拨码盘处于哪个挡位,识别处理简单,但占用单片机IO口线较多。BCD码拨盘:拨码盘内有5个接点,A为输入控制线,另外4条为BCD码输出线。拨码盘拨动时A线与4条输出线按BCD码的关系接通,代表拨码盘指示的十进制数。,BCD
5、码拨码盘的外形见图。图中3片拨码盘组合成为3位十进制拨码盘组。每个拨码盘有09共10个挡位,与输入的十进制数字相对应,5个接点位于拨码盘后方。每一片拨码盘代表一位十进制数,拨码盘可按位数需要拼接。,4片拨盘的BCD码输出相同端接入同一个4个与非门。四个与非门输出8,4,2,1端分别接入P1.3,P1.2,P1.1,P1.0。P1.7、P1.6、P1.5、P1.4分别与千、百、十、个位BCD码拨盘的控制端相连。当选中某位时,该位的控制端置0,其它三个控制端置1。,程序的执行过程是:把P1.7P1.4口逐条置低(每次只有一条口线置低),从P1.3P1.0口读人“千位”至“个位”的BCD码,再由软件
6、转换成十进制数值。例如选中千位时,P1.7置0,P1.6P1.4置1,此时四个与非门所有其它位连接的输入端均为1状态,因此四与非门输出的状态取决于千位数BCD拨盘输出状态。由于该位的控制端置0,因此,拨盘所置之数输出为BCD反码,通过与非门输出为该千位数的BCD码,例如输入为9345,这时,每位BCD码输出端上有相应的数字与A接通。,将读入的4位BCD码按千、百、十、个依次存放在片内RAM的30H33H单元,每个单元的高4位为0,低4位为BCD码。,RDS:MOV R0,30H;初始化,存放单元首址MOV R2,7FH;P1口高4位置控制字及低4位置输入方式MOV R3,04H;读入4个BCD
7、码LOOP:MOV A,R2MOV P1,A;P1口送控制字及低4位置输入方式MOV A,P1;读入BCD码ANL A,0FH;屏蔽高4位MOV R0,A;送入存储单元INC R0;指向下个存储单元MOV A,R2;准备下一片拨盘的控制端置0RR A;MOV R2,A;DJNZ R3,LOOP;未读完返回RET;读完结束,12.1.4 行列式(矩阵式)键盘接口用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图所示。,按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。,扫描法(1)查询有否按键被按下 按键没有按下时,上拉电阻使全部列线为1。首先使全部行
8、线送出0,把列线的电平状态读入累加器A。若有键按下,读人A中的列线电平状态必不全为1。(2)判断哪个键被按下 P1.0P1.2口逐行送出0,然后读取列线的电平状态,若不全为1,则按下的键必定位于行线电平为0和列线电平为0的交点处。,(3)给按键赋值按照“行线首键号+列线编号”的规则赋值:行线首键号分别为:8(P1.0),4(P1.1),0(P1.2)列线的编号依次为:0(P1.3),1(P1.4)2(P1.5)3(P1.6)则赋予“8”键号的键值为:8+0=8;赋予“9”键号的键值为:8+1=9。其余按键的赋值与此类似。键值的排列有规律,依次为0,1,2,9,A,B,(4)查询是否按键己释放
9、提取键值后,行线送出全0,读人列线电平状态。若列线全为1,表示按键已释放。,2.线反转法只需两步便能获得此按键所在的行列值,线反转法的原理如图。识别键盘有无键被按下的方法,分两步进行:第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。结合上述两步,可确定按键所在行和列。,(3)键盘的编码根据实际需要灵活编码。,12.1.5 键盘的工作方式原则:即要保证能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。,编程扫描方式只有当单片机空闲时,才调用键盘扫描
10、子程序,扫描键盘:(1)在键盘扫描子程序中,先判断有无键按下。(2)用软件来消除按键抖动的影响。如有键按下,则进行下一步。(3)求按下键的键号。(4)等待按键释放后,再进行按键功能的处理操作。2.定时扫描工作方式利用单片机内的定时器,产生10ms的定时中断,对键盘进行扫描。,3.中断工作方式只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。键盘初始化时,行线全0,列线全1。有按键线,与门输出低电平,从而触发中断。单片机在中断服务程序中调用键盘扫描子程序,实现按键的识别和对应的功能操作,中断返回之前把行线和列线恢复为初始状态。,12.2 LED显示器接口LED(Light
11、 Emitting Diode):发光二极管的缩写。显示器前面冠以“LED”。12.2.1 LED显示器的结构常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。有共阳极和共阴极两种。如图所示。,LED显示器的段码(字型码)是一个字节(8段)。各段与字节中各位对应关系如下:,12.2.2 BCD码七段锁存/译码/驱动芯片CD4511 是常用的BCD码七段锁存译码驱动器芯片,采用16引脚DIP封装,内含4位锁存器,用于锁存输入的4位BCD码,然后进行七段字形译码,驱动LED数码管发光。灯测试端LT*和熄灭端BI*接高电平时,利用锁存端LE很容易就能实现显示功能。LE=0时,译
12、码输出段码ag;LE=1时,输入的BCD码被锁存。CD4511的合法BCD码为0-9,非法码为AF。若要使显示熄灭,可输入非法BCD码而不必改动BI*的硬件接线。,12.2.3 LED显示器工作原理4位 LED显示器的结构原理图:,段码线控制显示的字型位选线控制该显示位的亮或灭N个LED显示块有:N位位选线8N根段码线,静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(adp)分别与一个8位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。,2.动态显示方式所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多
13、路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。,图为8位LED动态显示2003.10.10的过程。,图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的;,图(b)是实际显示结果,人眼看到的是8位稳定的 同时显示的字符。,硬件译码的LED动态显示电路电路采用一片CIM511进行硬件译码,LE端直接接地,不锁存信号。BCD码输入端(AD)连接单片机的P1.0P1.3口,七段译码输出经限流电阻分别连接数码管的字段。,各个数码管的共阴极分别连接位驱动器的输出端,设计时要考虑位驱动器的电流负载能力,确保7个字段同时点亮时(即显示数字“8”)驱动器能提促供足够大
14、的电流,选用了DS75451(含两路缓冲驱动器,输出电流可达300mA)。单片机P1.4P1.7口轮流控制字位的通断,低电平时数码管接通。此外,显示的小数点位通过限流电阻接+5V。,软件译码的LED动态显示电路软件译码是单片机查找预设的字段译码表实现的。单片机的P1.0P1.7口送出字段信号,经字段驱动器驱动字段(ag)和小数点。字段驱动器可采用SN7407或74HC244,其中SN7407属于集电极开路型芯片,因此输出端要分别加入上拉电阻。各个字位由DS75451驱动,单片机的P3.0P3.3口轮流控制字位的通断,低电平时数码管接通。,12.3 液晶显示器(LCD)接口,LCD(Liquid
15、 Crystal Display)被动式显示器,液晶本身并不发光,液晶经过处理后能改变光线通过方向,而达到白底黑字或黑底白字显示。液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。,12.3.1 LCD显示器的分类按排列形状分:字段型、点阵字符型和点阵图形。,(1)字段型广泛用于电子表、数字仪表、计算器中。(2)点阵字符型显示字母、数字、符号。它是由57或510点阵组成,广泛用在单片机系统中。(3)点阵图形型用在笔记本电脑和彩色电视等设备中。,12.3.2 点阵字符型液晶显示模块介绍1.基本结构,(1)液晶板在上面排列着若干57或510点阵的字符显示位,从规格上分为每行8
16、、16、20、24、32、40位,有1行、2行及4行三类,用户可根据需要,来选择。,(2)模块电路框图由控制器HD44780、驱动器HD44100及几个电阻电容组成。HD44100是扩展显示字符位用的(例如:16字符1行模块就可不用HD44100,16字符2行模块就要用一片HD44100)。,液晶显示模块的引脚,模块14个引脚,其中有8条数据线,3条控制线,3条电源线,见表10-2。通过单片机写入模块的数据和指令,就可对显示方式和显示内容作出选择。,寄存器的选择,命令格式及命令功能说明,(1)命令格式,控制器HD44780内有多个寄存器:,CGRAM:字符生成RAMDDRAM:显示数据RAM,
17、(2)标 准字符,3.LCD接口与软件编程用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示。利用模块内部的复位电路进行初始化:LCM有内部复位电路,能进行上电复位。,软件初始化,例 编写程序在LCD第1行显示出“CS&S”,第2行显示“92”。假定对LCM已完成初始化。程序如下:START:MOV DPRT,#8000H;命令口地址8000H送DPTR MOV A,#01H;清屏并置AC为0 MOVX DPTR,A;输出命令 ACALL F_BUSY;等待直至LCM不忙 MOV A,#30H;功能设置,8位接口,2行显示,5X7点阵 MOVX DPTR,A ACALL F_BUSY
18、 MOV A,#0EH;开显示及光标,不闪烁 MOVX DPTR,A ACALL F_BUSY MOV A,#06H;显示?,AC为增量 MOVX DPTR,A ACALL F_BUSY MOV DPTR,#C000H;数据口地址C000H送DPTR MOV A,#43H;C的ASCII码为43H MOVX DPTR,A;第一行第一位显示C ACALL F_BUSY MOV A,#53H;S的ASC码为53H MOVX DPTR,A;显示CS ACALL F_BUSY,MOV A,#26H;&的ASCII码为26H MOVX DPTR,A;显示CS&ACALL F_BUSY MOV A,#53
19、H MOVX DPTR,A;显示CS&S ACALL F_BUSY MOV DPTR,#8000H;指向命令口 MOV A,#0COH;置DDRAM地址为40H MOVX DPTR,A;光标于第二行首显示 ACALL F_BUSY MOV DPTR,#C000H;指向数据口 MOV A,#39H;9的ASCII码为39H MOVX DPTR,A;显示9 ACALL F_BUSY MOV A,#32H;2的ASCII码为32H MOVX DPTR,A;显示92 由于LCD是一慢速显示器件,所以在执行每条指令之前一定要确认LCM的忙标志为0。否则此指今将失效。,判定忙标志的子程:F_BUSY:PUSH DPH;保护现场 PUSH DPL PUSH PSW PUSH A LOOP:MOV DPTR,#8000H MOVX A,DPTR JB ACC.7,LOOP;忙,继续等待 POP A;不忙,恢复现场返回 POP PSW POP DPL POP DPH RET,
链接地址:https://www.31ppt.com/p-6159862.html