第十一章显示器和键盘接口第十一章显示器和键盘接口•11.1显示器接口•11.2键盘接口11.1.1显示器的分类•CRT(Cathode-rayTube):荧光管显示器,阴极射线管显示器11.1.1显示器的分类•LCD(LiquidcrystalDisplay):液晶显示器11.1.1显示器的分类•LED(LightEmittingdiode):发光二极管显示器;•LED显示器又分有字符型和点阵型;11.1.1显示器的分类11.1.1LED显示器接口原理LED(LightEmittingDiode):发光二极管的缩写。显示器前面冠以“LED”。11.1.1.1LED显示器的结构常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。有共阳极和共阴极两种。如图所示。为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如下:显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC0Hc39HC6H106HF9Hd5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8Hy6EH91H87FH80HH76H89H96FH90HL38HC7HA77FH88H“灭”00HFFHb7CH83H………表11-1LED段码(8段)11.1.2LED显示器•LED的种类–公共端(接法):共阴、共阳–亮度:普亮、高亮、超高亮–尺寸(高度):–颜色:红、绿、黄、紫、白11.1.2LED显示器•主要电气参数–VF——正向压降–IF——正向工作电流–限流电阻的计算:11.1显示器接口•11.1.1显示器的分类•11.1.2LED显示器•11.1.3LED显示器接口设计方法N个LED显示块有N位位选线和8×N根段码线。11.1.1.2LED显示器工作原理图是4位LED显示器的结构原理图。段码线控制显示的字型,位选线控制该显示位的亮或暗。静态显示和动态显示两种显示方式。1.静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(a~dp)分别与一个8位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。特点:软件简单,但占用I/O口线多,功耗大4位静态LED显示器电路。该电路各位可独立显示。MOVP1,#0C0H;‘0’的字模MOVP2,#0F9H;‘1’的字模11.1.1.3动态显示方式所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。单片机定时扫描显示器件。显示器件分时工作,每次只有一个LED显示。特点:硬件连线少,功耗低;软件复杂,需要不停地扫描。显示亮度既与导通电流有关,也与点亮时间和间隔有关。11.1.3LED显示器接口设计方法•特征:COM端轮流驱动,在同一时刻只有单个数码管亮下图8位LED动态显示2003.10.10的过程。图(a)是显示过程,某一时刻,只有一位LED被选通显示,其余位则是熄灭的;图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的字符。软件设计2.应用程序设计例:在6位显示器上依次显示“123456”1)设置显示缓冲区:7EH-79H(6个单元)2)通过查表法,依据缓冲区内容求取字模3)逐位输出位选信号和段码流程图:参见P.253图11.1.411.1.3LED显示器接口设计方法DIR:MOVR0,#79HMOVR3,#01HMOVA,R3LD0:MOVP2,A;送位选码MOVA,@R0ADDA,#??;#14MOVCA,@A+PCDIR1:MOVP1,A;送段选码ACALLD1MSINCR0;指向下一缓存单元MOVA,R3JBACC.5,LD1;显示完毕否?RLAMOVR3,ASJMPLD0LD1:RETDSEG:DB3FH,06,5BH,4FH,66H,6DH,7DH;’0’-‘6’的段码11.1.3LED显示器接口设计方法•思考:–扫描频率应如何选取?–动态扫描是怎样实现的?它有什么优缺点?–若显示“89C51”应如何修改程序?•扫描频率:100Hz-1KHz•扫描周期:10ms-1ms11.2键盘接口•11.2.1基本知识•11.2.2独立式按键接口方法和应用程序设计•11.2.3行列式按键接口方法和应用程序设计11.2.1基本知识•键盘:由多个按键组成的信息输入装置。•键名:从使用功能的角度出发,对按键给予的文字描述。•键值:对每一个按键的编码值,以便于对按键进行识别和处理。–它与硬件连线方式密不可分。11.2.1基本知识•键盘的分类:–编码键盘:由硬件电路识别是否有键按下,并获取键值。–非编码键盘:由软件识别是否有键按下,并获取键值。•单片机系统中多采用非编码键盘。•发展趋势为少量按键配以菜单的方式。一、键输入的基本处理过程二、按键过程的基本特点抖动时间:10ms左右,与按键的机械特性有关。1.按键抖动11.2.1基本知识•2、消抖方法:1)采用硬件消抖电路(利用RS触发器)2).软件消抖基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期t1和t3的影响。判断是否有键按下判断键是否释放三、键盘应用程序应具备的主要功能1.监测有无键按下2.保证可靠性:采取软件消抖(或硬件消抖)3.不管按键过程持续多长时间,仅执行一次按键功能程序。4.输出确定的键号(键值)。1、程序扫描方式:当CPU空闲时,扫描键盘,判断有无键按下。2、定时扫描方式:利用CPU的定时器,每隔一定时间扫描一次键盘。3、中断方式:在硬件上采用中断,有键按下时,产生中断,由中断服务程序来处理。前两种方法占用CPU时间较多,中断方式的效率高。四、键盘监测方法五、按键的基本接口方法独立式:连线简单,适用于按键较少的情况。行列式(矩阵式):连线较复杂,适用于按键较多的情况11.2键盘接口•11.2.1基本知识•11.2.2独立式按键接口方法和应用程序设计•11.2.3行列式按键接口方法和应用程序设计11.2.2独立式按键接口方法和应用程序设计•接口方法–中断式11.2.2独立式按键接口方法和应用程序设计•查询式键值编码将按键的输入状态信息转换为对应键值的过程,称为对按键的编码。若采用硬件的方式实现,则称其为编码键盘,否则称为非编码键盘。单片机系统中多采用非编码键盘。11.2.2独立式按键接口方法和应用程序设计•独立式按键的键编码方法:KCODE:MOVR3,#8;循环8次MOVR4,#0;初始键值=0MOVA,P1NEXT:RRCA;C=ACC.0JNCFINDINCR4;键值加1DJNZR3,NEXTFIND:RET11.2.2独立式按键接口方法和应用程序设计•典型应用程序设计;扫描键盘SACNKEY:MOVP1,#0FFH;输入预备操作MOVA,P1CJNEA,#0FFH,KEYPSJMPSCANKEY;无键按下KEYP:ACALLDEL10MS;再次确认是否有键按下?MOVA,P1CJNEA,#0FFH,ISKEYSJMPSCANKEY;无键按下ISKEY:ACALLKCODE;读取键值;等待按键释放,并消除后沿抖动……(略);执行键响应流程MOVDPTR,#JMPTBLMOVA,R4RLAJMP@A+DPTRJMPTBL:AJMPSB0AJMPSB1……(略)11.2键盘接口•11.2.1基本知识•11.2.2独立式按键接口方法和应用程序设计•11.2.3行列式按键接口方法和应用程序设计行列式(矩阵式)键盘接口用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图所示。按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。行线:接P1.0—P1.3(输出状态)列线:接P1.4—P1.7(输入状态)(1)行列式键盘工作原理无键按下,该列线为高电平,当有键按下时,列线电平由行线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)按键的识别方法①P1.0—P1.3同时输出低电平,读P1.4—P1.7状态,若全为1,则无键按下;若不全为1,有键按下。按下的按键可能是谁?S1、S5、S9、S13②在有键按下的情况下,进一步判断是哪个键按下。使P1.0—P1.3依次输出低电平,读出P1.4—P1.7的状态。按键位置:1行,0列,即“S5”键③依据行号和列号,求取该键的键值NN=行首键号+列号×列增量行首键号:0,1,2,3(S5)N=1+0×4思考:扩展16个按键至少需要多少根I/O线?第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。结合上述两步,可确定按键所在行和列。(3)键盘的编码根据实际需要灵活编码。b.线反转法只需两步便能获得此按键所在的行列值,线反转法的原理如图。本章小结1.LED显示器接口基本概念:共阴极、共阳极、字模LED的基本结构、分类LED主要电参数的含义和限流电阻的计算方法静态LED显示和动态LED显示的基本特点静态LED显示器的接口和程序设计方法动态LED显示器的接口和软件设计方法2.键盘接口基本概念:键值、键值编码按键的基本输入过程,按键响应程序的基本功能消除按键抖动的必要性和方法独立式按键和行列式键盘的基本接口方法独立式按键的应用程序设计方法行列式键盘扫描和键值读取的基本原理