键盘、显示器及功率接口.ppt
《键盘、显示器及功率接口.ppt》由会员分享,可在线阅读,更多相关《键盘、显示器及功率接口.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 熟悉编码和非编码键盘的概念,掌握独立式和矩阵式键盘接口设计及编程方法。掌握LED、LCD显示器的工作原理,与单片机的接口电路及程序设计方法。学习功率器件在工业控制中的应用、功率接口电路及编程方法。重点掌握键检测、键扫描程序及显示程序的设计和功率接口电路设计的方法。难点:键扫描程序、显示程序和功率接口电路的设计与编程。第第6章章 键盘、显示器及功率接口键盘、显示器及功率接口本章学习要点本章学习要点键盘的接口键盘的接口 键盘是计算机不可缺少的输入设备,是实现人机对话的纽带。按其结构形式键盘可分为非编码键盘和编码键盘按其结构形式键盘可分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件
2、方法产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单成本低廉。按键型式有独立式和矩阵式两种按键型式有独立式和矩阵式两种:1、独立式按键就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测输入线的电平状态可以容易判断那个按键按下。2、矩阵式按键就是键盘上的键按行列构成矩阵,在行列的交叉点上都对应有一个键。所谓键实际上是一个机械弹性开关,被按下则其交点的行线和列线接通。非编码键盘接口技术的主要内容就是如何确定被按键的行列位置,并据此产生键码。这就是所谓键的识别问题。键盘输入的抖动问题键盘输入的抖动问题 键盘实质上是一组
3、按键开关的集合,均利用机械触点的合、断作用。一个电压信号通过机械触点的断开、闭合过程如图所示。图6.1 按键抖动信号波形 按键在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510ms。按键稳定闭合期的长短则由操作人员的按键动作所决定的,一般为十分之几秒到几秒的时间。键的闭合与否,反应在电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那低电平则表示闭合,通过电平的高低状态的检测,可确认按键按下与否。为了确保CPU对一次按键动作只确认一次,必须消除抖动的影响。6.1.2 消除按键抖动的措施消除按键抖动的措施 通常有硬件、软件两种消除抖动的方法通常有硬件、
4、软件两种消除抖动的方法硬件消除抖动方法有一种双稳态消抖电路如图6-2所示,其两个与非门构成一个RS触发器。当按键未按下时,输出为1;键按下时,输出为0。键的机械性能,使按键因弹性抖动而产生瞬时不闭合,抖动跳开b,只要按键不返回原始状态a,双稳态电路的状态就不改变,输出保持为0,不会产生抖动的波形。即使b点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波形。图6-2 双稳态消抖电路软件消除抖动方法 硬件消除抖动法需要增加电子元件,电路复杂,特别是按键较多时,实现起来有困难。而用软件消除抖动法,不需要而用软件消除抖动法,不需要增加电子元件,只要编写一段延时程序,就可以达到消除抖动增加电
5、子元件,只要编写一段延时程序,就可以达到消除抖动的目的,在软件消除抖动方法中,若的目的,在软件消除抖动方法中,若CPU检测到有键按下时,检测到有键按下时,先执行一段延时程序后再检测此按键,若仍为按下状态,则先执行一段延时程序后再检测此按键,若仍为按下状态,则CPU认为该键确实按下。同样,当键从按下到再次松开时,认为该键确实按下。同样,当键从按下到再次松开时,CPU检测到有键松开,并在延时一段时间后仍检测到键在松检测到有键松开,并在延时一段时间后仍检测到键在松开状态,则认为键确实松开,这样就消除了抖动的影响开状态,则认为键确实松开,这样就消除了抖动的影响,实现了软件消除抖动的目的图6-3 所示为
6、软件去抖动判别程序的流程图图 6-3 软件消除抖动流程图6.1.3 非编码键盘的接口方法 非编码键盘分为独立式非编码键盘和矩阵式非编码键盘非编码键盘分为独立式非编码键盘和矩阵式非编码键盘。下面分别进行介绍。1.独立式非编码键盘结构 独立式非编码键盘(又称小键盘),是指直接用一条I/O线对应连接一个按键(一键一线)的键盘电路。由于每个按键单独占有一条I/O口线,所以该口线的状态只反映该按键是否按下,不会影响其它I/O线的状态。因而独立式按键电路配置灵活,软件结构简单,但在按键数量较多时,需要的I/O口线也较多。独立式按键电路如图6-4所示。当某一按键闭合时,相应的I/O线变为低电平。判断是否有键
7、下的方法是,查询哪一根接按键的I/O线为低电平时,便知此键按下。独立式非编码键盘的优点是电路结构简单。缺点是当键数较多时,占用的I/O口线多。例如编写图6-4所示的键处理程序如下:图 6-4 独立式非编码键盘程序清单 START:MOV A,#0FFH ;输入时先置P1口为全1 MOV P1,A MOV A,P1 ;键状态输入 ,P0F ;0号键按下转POF标号地址 ,P1F ;1号键按下转P1F标号地址 ,P2F ;2号键按下转P2F标号地址 ,P3F ;3号键按下转P3F标号地址 ,P4F ;4号键按下转P4F标号地址 ,P5F ;5号键按下转P5F标号地址 ,P6F ;6号键按下转P6F
8、标号地址 ,P7F ;7号键按下转P7F标号地址 SJMP START ;无键按下返回P0F:LJMP PROM0 ;转至0号键功能程序P1F:LJMP PROM1 ;转至1号键功能程序P2F:LJMP PROM2 ;转至2号键功能程序P3F:LJMP PROM3 ;转至3号键功能程序P4F:LJMP PROM4 ;转至4号键功能程序P5F:LJMP PROM5 ;转至5号键功能程序P6F:LJMP PROM6 ;转至6号键功能程序P7F:LJMP PROM7 ;转至7号键功能程序PROM0:.;0号键功能程序 LJMP START ;0键执行完返回PROM1:.;1号键功能程序 LJMP S
9、TART ;1键执行完返回PROM2:.;2号键功能程序 LJMP START ;2号键执行完返回PROM3:.;3号键功能程序 LJMP START ;3号键执行完返回PROM4:.;4号键功能程序 LJMP START ;4号键执行完返回PROM5:.;5号键功能程序 LJMP START ;5号键执行完返回PROM6:.;6号键功能程序 LJMP START ;6号键执行完返回PROM7:.;7号键功能程序 LJMP START ;7号键执行完返回小测:设计小测:设计51单片机通过单片机通过8255H实现扩展实现扩展8 个独立按键的电个独立按键的电路,要求画出原理图,并编写能够识别是否有
10、键按下的程序路,要求画出原理图,并编写能够识别是否有键按下的程序,要求有防抖程序。要求有防抖程序。2.矩阵式非编码键盘结构 矩阵式非编码键盘适用于按键数量较多的场合。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,一个由3行*8列构成24个按键的键盘如图6-5所示。图6-5矩阵式键盘结构 矩阵键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。无按键动作时,行线处于高电平状态,当有键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关
11、键。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。按键的识别方法:有扫描法和线反转法。按键的识别方法:有扫描法和线反转法。描法是常用的方法,现重点介绍扫描法,此方法分两步进行:第一步,识别键盘有无键被按下。第二步,如果有键被按下,识别出具体的按键。识别键盘有无键被按下的方法是:让所有列线均置为0电平,检查各行线电平是否变化。如果有变化,说明有键被按下,如果没有变化,则说明无键被按下。识别具体按键的方法(亦称为扫描法);逐列置零电平,其它各列置位高电平,检查各行线电平的变化,如果其
12、行电平由高电平变为低电平,则可确定此行此列交叉点的按键被按下。单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘工作方式。通常键盘工作方式有三种,即编程扫描、定时扫描和中即编程扫描、定时扫描和中断扫描。断扫描。下面以下面以8031键盘键盘实际矩阵电路分实际矩阵电路分析说明键盘的编析说明键盘的编程扫描程序。程扫描程序。一是一是KEY-SCAN 键检查子键检查子程序程序 二是二是KEY-GET 键扫描取值子程键扫描取值子程序序8031键盘接口电键盘接口电路如图路如图6-6所示。所示。在6000H接口地址的锁存器74LS373锁存低电平,此
13、时读入P1口状态,在三条行线上,只要有一个不是高电平,求反后A中就不为零。此时说明有键按下了。否则无键按下。键检查子程序:KEY-SCAN:MOV DPTR,#6000H;列口地址送数据指针;列口地址送数据指针MOV A,#00H MOVX DPTR,A ;列线送低电平;列线送低电平 MOV P1,#0FFHMOV A,P1 ;读行线电平;读行线电平CPL A ;求反;求反ANL A,#07H ;A=0无键按下,无键按下,A0有键按下有键按下RET 以上检测程序只能判断有无键按下,但在有键按下后再分析具体是哪个键按下,则需要用扫描键取值程序。KEY-GET:ACALL KEY-SCAN ;调键
14、检测 JNZ K-G1 ;有键按下 AJMP KEY-GET K-G1:LCALL DELAY ;消除抖动延时,约18ms LCALL KEY-SCAN ;再调键检测 JNZ K-G2 ;有键按下 LCALL DELAY AJMP KEY-GET K-G2:MOV R2,#0FEH ;R2存扫描信号 MOV R4,#00H ;键值起始值 K-G3:MOV DPTR,#6000H ;输出列扫描信号 MOV A,R2 MOVX DPTR,A MOV A,P1 ;读P1口 JB Acc.0,LINE1 ;判断0行高?MOV A,#00H ;0行起始值 AJMP K-G-END LINE1:JB Ac
15、c.1,LINE2 ;判断1行高?MOV A,#08H ;1行起始值 AJMP K-G-END LINE2:JB Acc.2,NEXT-COL ;判断2行高?高下一列 MOV A,#10H ;2行起始值 K-G-END:ADD A,R4 ;计算键值 ENDNEXT-COL:INC R4 ;换列时加1 MOV A,R2 JNB Acc.7,KEY-NEXT ;7列是低 RL A ;移到下一行 MOV R2,A AJMP K-G3 ;返回输出列信号 KEY-NEXT:AJMP KEY-GET 在调用KEY-SCAN程序判明有键按下时,再进入此程序,否则将在此程序中等待按键。这里R2用来提供信号的低
16、电平的位置,R4是用来记录位线到哪一位,运行程序出口A中得到按键的键值。其键值表如表6-1,键值标注在键位下面园括弧内。表6-1键位和键值图 WRI(12)0(00)1(01)2(02)3(03)F(16)4(04)5(05)6(06)7(07)MOV(10)8(08)9(09)A(0A)B(0B)USE(17)C(0C)D(0D)E(0E)F(0F)RESMON(11)EXE(14)RDS(13)EXA(15)除了以上编程扫描工作方式外,定时扫描工作方式是利用单片机内部定时器产生定时中断(例如10ms),CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键并执行相应键功能程序,定时扫描工
17、作方式的键盘硬件电路与编程扫描工作方式相同。键盘工作于编程扫描状态时,CPU要不间断地对键盘进行扫描工作,以监视键盘输入情况,直到有键按下为止。其间CPU不能干任何其他工作,如果CPU工作量较大,这种方式将不能适应。定时扫描进了一大步,除了定时监视一下键盘输入情况外,其余时间可进行其他任务的处理,CPU效率提高了,为了进一步提高CPU工作效率,可采用中断扫描工作方式即只有在键盘有键按下时,才执行键盘扫描并执行该键功能程序,如果无键按下,CPU将不理睬键盘,可以说前两种扫描方式,CPU对键盘的监视是主动进行的,而后一种扫描方式,CPU对键盘的监视是被动进行的。6.1.4 BCD码拨盘接口 BCD
18、码十进制拨盘是向单片机应用系统输入数据的设备,是一种硬件设置数据的设备。使用拨盘输入的数据具有不可变性,却又易于修改。十进制输入,BCD输出的拨盘是最常使用的一种。图6-7所示是一个4位BCD码拨盘组结构和连接示意图。每位拨盘有09十个拨动位置,每个位置有相应的数字表示,分别代表拨盘输入的十进制数。所以,一位拨盘可以代表一位十进制数,可以根据设计的需要,用多位BCD码拨盘组成多位十进制数。图 6-7 4位BCD码拨盘结构和连接 BCD码盘有一个输入控制线A,4个BCD码输出信号线。拨盘的各个不同的位置,使输入控制线A分别与4根BCD码输出线中的某几根接通,使BCD码输出线的状态与拨盘所显示的值
19、一致,并使该编码信号输入单片机的CPU。BCD码拨盘的输入输出状态如表6-2所示。拨盘输入控制端 A输出状态8421010000110001210010310011410100510101610110710111811000911001 BCD码拨盘与单片机相连的应用如图6-8 所示。拨盘的输入控制线A接+5 V,4根输出线通过电阻接地并接单片机CPU的P1口。由表可知,当拨盘在09的某个位置时,4根输出线的8、4、2、1端有一组相应的电平状态生成,CPU可以通过读取P1口的端口状态知道拨盘设置的数据。在这种情况下,拨盘输出的BCD码为正逻辑电平。如果BCD码拨盘的输入控制线A接地,4根输入线
20、通过电阻接+5 V,那么拨盘输出的BCD码为负逻辑电平,如图6-9所示 图 6-8 单片机与BCD码盘的接口6-9 BCD码盘负逻辑接口串行键盘应用 除了利用并行输入口设计键盘控制电路外,还可以用串行方式设计键盘控制电路。图6-10为用单片机串行口设计的串行键盘控制电路。CD4014是8位表态移位寄存器(同步并入),实现并行输入串行输出。如图610所示,CD4014的P1P8作为8个开关S1S8的输入端,输入的开关量通过AT89C51的TXD端控制CD4014的CLK端,把输入值逐次串行输入AT89C51的RXD端口,并存入寄存器A中。图 6-10 单片机串行口键盘控制电路 键盘电路程序如下:
21、S1:STB P1.0 ;置位CD4014的PS端 CLR P1.0 ;清CD4014的PS端,开始串行移位 MOV SCON,#10H ;设置串行方式0,开始接收 W1:JNB RI,W1 ;判RI状态 CLR RI ;一次串行输入完成 MOV A,SBUF ;存放输入的数据 RET 除了使用CD4014集成电路外,还可以使用74LS165等集成电路芯片设计串行键盘控制电路。6.2 LED七段发光显示器接口 发光二极管显示器,简称LED(Light Emitting Diode),LED有七段和八段之分,也有共阴极和共阳极共阴极和共阳极两种。共阴极LED显示块的发光二极管的阴极连在一起,通常
22、此公共阴极接地,当某个发光二极管的阳极为高电平时。发光二极管点亮,相应段被显示。同样共阳板LED显示块的发光二极管的阳极连在一起,通常此公共阳极接正电压。当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。两个显示块都有SP显示段,用于显示小数点。显示器连接如图所示:图6.11 LED原理及外形引脚图 7段字型码如表所列,由于只有8个段发光二极管,所以字型码为一个字节。“米”字段LED字型码由于有15个段发光二极管,所以字型码为两个字节。一般由N片LED显示块可拼接成N位LED显示器。N位LED显示器有N根位选线和8*N根段选线。根据显示方式不同,位选线和段选线的连接方法也各不
23、相同。段选线控制显示字符的字型,而位选线则控制显示位的亮、暗。LED显示器有静态显示显示器有静态显示和动态显示两种显示方式。和动态显示两种显示方式。6.2.1 静态显示接口及编程 LED显示器上工作于静态显示方式时,各位的共阴极(或阳极)连接在一起接地(或+5V);每位的段选线(asp),分别与一8位的锁存器输出相连。静态显示是由于显示器中的各位相应独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一字符为止。静态显示器的亮度较高。由于各位分别由一个8位输出口控制段选码,在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,编程容易,管理简单,付出的代价是占用口线
24、资源较多。在单片机应用系统中,常采用MCl4495芯片作为LED的静态显示接口,它可以和LED显示器直接相连。MCl4495芯片的引脚和逻辑框图如图所示。它是由4位锁存器、地址译码和笔段ROM阵列以及带有限流电阻的驱动电路(输出电流为10mA)等三部分电路组成。图中A、B、C、D为二进制码(或BCD码)输入端;为锁存控制端,为低电平时可以输入数据。为高电平时锁存输入数据,h+i为输入数据大于等于10指示位,若输入数据大于或等于10,则h+i输出高电平,否则输出为低电平;为输入等于15指示位,若输入数据等于15,则输出高电平,否则为高阻状态。图 6.12 MC14495 引脚和逻辑框图 MCl4
25、495芯片的作用是输入被显字符的二进制码(或BCD码),并把它自动转换成相应字形码,送给LED显示。图为采用MCl4495芯片的4位静态LED显示器接口电路。图中,P17P14用于输出欲显示字符的二进制码(或BCD码),P120用于控制二四译码器工作,和P10经译码器输出后控制MCl4495中哪一位接收上代码。例:例:下面以静态下面以静态LED显示器接口为例编程,编出能在图显示器接口为例编程,编出能在图6-13电路中自左到右显示出来的程序。设电路中自左到右显示出来的程序。设8031单片机内部单片机内部RAM的的20H和和21H单元中有四位十六进制数(单元中有四位十六进制数(20H中为高两位)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 显示器 功率 接口
限制150内