C与键盘显示器拨盘打印机的接口设计.pptx
《C与键盘显示器拨盘打印机的接口设计.pptx》由会员分享,可在线阅读,更多相关《C与键盘显示器拨盘打印机的接口设计.pptx(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1图10-110-1 8 8端LEDLED结构及外形第1页/共112页2 为使LEDLED显示不同的符号或数字,要为LEDLED提供段码(或称字型码)。提供给LEDLED显示器的段码(字型码)正好是一个字节(8 8段)。各段与字节中各位对应关系如表10-110-1。按上述格式,8 8段LEDLED的段码如表10-10-2 2所示。表10-1 10-1 段码与字节中各位对应关系第2页/共112页3显示字符显示字符共阴极段码共阴极段码共阳极段码共阳极段码显示字符显示字符共阴极段码共阴极段码共阳极段码共阳极段码0 03 3FHFHC0HC0Hc c3939H HC6HC6H1 10606H HF9H
2、F9Hd d5 5EHEHA1HA1H2 25 5BHBHA4HA4HE E7979H H8686H H3 34 4FHFHB0HB0HF F7171H H8 8EHEH4 46666H H9999H HP P7373H H8 8CHCH5 56 6DHDH9292H HU U3 3EHEHC1HC1H6 67 7DHDH8282H HT T3131H HCEHCEH7 70707H HF8HF8Hy y6 6EHEH9191H H8 87 7FHFH8080H HH H7676H H8989H H9 96 6FHFH9090H HL L3838H HC7HC7HA A7777FHFH8888
3、H H“灭灭”0000H HFFHFFHb b7 7CHCH8383H H表10-10-2 LED2 LED段码(8 8段)表10-10-2 2只列出了部分段码,可根据实际情况选用,也可重新定义。第3页/共112页4 N N个LEDLED显示块有N N位位选线和88N N根段码线。段码线控制显示字符的字型,而位选线为各个LEDLED显示块中各段的公共端,它控制该LEDLED显示位的亮与暗。LEDLED显示器工作原理图10-210-2是4 4位LEDLED显示器的结构原理图。图10-210-2 4 4位LEDLED显示器的结构原理图第4页/共112页51.LED1.LED静态显示方式 各位的公共
4、端连接在一起(接地或+5+5V V)。每位的段码线(a adpdp)分别与一个8 8位的锁存器输出相连。之所以称为静态显示,是因为各个LEDLED的显示字符一经确定,相应锁存器的段码输出将维持不变,直到送入另一个字符的段码为止。静态显示器的显示的亮度高。图10-3:10-3:4 4位静态LEDLED显示器电路。该电路各位可独立显示,只要在该位的段码线上保持段码电平,该位就能保持相应的显示字符。第5页/共112页6 由于各位分别由一个8 8位的数据输出口(如82C5582C55的PAPA、PBPB、PCPC口)控制段码线,故在同一时间内,每一个显示的字符可以各不相同。这种显示方式编程容易,但是占
5、用口线较多。如图10-310-3,若用IOIO口线接口,要占用4 4个8 8位IOIO口,若用锁存器(如74LS37374LS373)接口,要用4 4片74LS37374LS373芯片。如果显示的位数增多的话,则需要增加锁存器。在显示位数较多的情况下,一般都采用动态显示方式。第6页/共112页72.2.LEDLED动态显示方式 在多位LEDLED显示时,为简化硬件电路,通常将所有位的段码线相应段并在一起,由一个8 8位I/OI/O口控制,形成段码线的多路复用;而各位的共阳极或共阴极分别由相应的I I/O O线控制,形成各位的分时选通。图10-410-4:4 4位8 8段LEDLED动态显示电路
6、。其中段码线占用一个8 8位I/OI/O口,而位选线占用一个4 4位I/OI/O口。由于各位的段码线并联,8 8位I I/O O口输出端的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选线都处于选通状态,4 4位LEDLED将显示相同的字符。第7页/共112页8 若要各位都显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上要输出相应的字符的段码。这样,在同一时刻,4 4位LEDLED中只有选通的那一位显示出字符,而其他三位则是熄灭的。下一时刻,只让下一位的位选线处于选通状态,而其他各位的
7、位选线处于关闭状态,在段码线上输出将要显示的字符的段码,此时只有选通位显示出相应的字符,其他位熄灭的。如此循环下去。第8页/共112页9 虽然这些字符是在不同的时刻出现的,而在同一时刻,只有一位显示,其他位熄灭,但由于LEDLED显示器的余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。LED LED不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,则发光太弱,人眼无法看清;但也不能太长,因为要受限于临界闪烁频率,而且此时间越长,占用单片机时间越多。另外,显示位数增多,也将占用大量的单片机时间,因此
8、动态显示的实质以牺牲单片机时间来换取IOIO端口的减少。第9页/共112页10图10-510-5为8 8位LEDLED动态显示200200的过程。图(a)a)是显示过程,某一时刻,只有一位LEDLED被选通显示,其 余位则是熄灭的;图(b)b)是实际显示结果,人眼看到的是8 8位稳定的同时显示的字符。图10-510-5 8 8位LEDLED动态显示过程和结果第10页/共112页1110.2 10.2 键盘接口原理1.1.键盘输入的特点 单片机系统中键盘有两种:机械式键盘和薄膜式键盘。键盘:一组按键开关的集合。一个电压信号通过键盘开关机械触点的断开、闭合,其行线电压的输出波形如图10-610-6
9、。图10-610-6 键盘开关及其波形抖动期(t1t1、t3t3):一般为5 510ms10ms;稳定的闭合期间(t2t2):一般为十分之几秒到几秒;断开期(t0t0、t4t4)第11页/共112页12 2.2.按键的确认检测行线电平(图10-610-6)高电平:断开;低电平:闭合。为了确保对一次按键动作只确认一次按键有效,必须消除抖动期t1t1和t3t3的影响。3.3.如何消除按键的抖动 常用软件来消除按键抖动。基本思想:检测到有键按下,键对应的行线为低,软件延时1010msms后,行线如仍为低,则确认该行有键按下。当键松开时,行线变高,软件延时1010msms后,行线仍为高,说明按键已松开
10、。采取以上措施,躲开了两个抖动期t1t1和t3t3的影响。第12页/共112页13独立式按键接口和行列式键盘接口。1.1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。此种接口适于键数较少或操作速度较高的场合。图10-710-7(a a)为中断方式的独立式键盘工作电路。只要有一个键按下,与门的输出即为低电平,并向89C5189C51发出中断请求,在中断服务程序中,对按下的键进行识别。图10-710-7(b b)为查询方式的独立式键盘工作电路。按键直接与89C5189C51的IOIO口线相连,通过读IOIO口,判断各IOIO口线的电平的状
11、态,即可以识别出按下的键。第13页/共112页14图10-710-7 独立式键盘接口电路第14页/共112页15图图10-810-8为为8282C55C55扩展扩展I/OI/O口口的的独立式独立式按键接口电路。按键接口电路。图10-810-8 通过82C5582C55扩展的独立式键盘接口 在各种独立式键盘电路中,各按键均采用了上拉电阻,以确保在按键断开时候,各I I/O O口又确定的高电平。如果输入口线内部已有上拉电阻,则外电路上拉电阻可省去。第15页/共112页162.2.行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图10-10-9 9所示
12、。按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/OI/O口线。图10-910-9 44 44行列式键盘结构第16页/共112页17(1 1)行列式键盘工作原理 按键设在行、列线交点上。行线通过上拉电阻接到+5V+5V上。无键按下,该行线为高电平;当有键按下时,行线电平由列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2 2)按键的识别方法a.a.扫描法 图10-10-9 9(b b)中3 3号键被按下为例,来说明此键时如何被识别出来的。第17页/共112页18识别键盘有无键被按下的方法,分两
13、步进行:第1 1步:识别键盘有无键按下。把所有的列线均置为0 0电平,然后检查各行线是否都为高电平,如果不全为高电平,则说明该行有键按下,否则说明无键按下。当键3 3按下时,第1 1行为低电平,但还不能确定是键3 3被按下(键2 2、1 1或0 0按下都可以使第1 1行线为低电平)第2 2步:如有键被按下,识别出具体的按键。扫描法:在某一时刻只让一条列线处于低电平,其余所有列线处于高电平。当第1 1列为低电平,其余列为高电平时,因为是键3 3被按下,所以第1 1行的行线仍处于高电平;依次类推,直到第4 4列为低电平时,第1 1行的行线变为低电平。可判断出第1 1行第4 4列被按下。上述方法称为
14、扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。第18页/共112页19 b.b.线反转法 只需两步便能获得此按键所在的行列值,线反转法的原理如图10-10-1010。假设3 3号键被按下。第1 1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。P1.0 P1.0P1.3P1.3全为“0”“0”,读P1.4P1.4P1.7P1.7的状态,则P1.4=0P1.4=0,其余为1 1。第1 1行电平有变化,说明第1 1行有键按下。第2 2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。P1.
15、4 P1.4P1.7P1.7全为“0”“0”,读P1.0P1.0P1.3P1.3的状态,则P1.0=0P1.0=0,其余为1 1。第4 4行电平有变化,说明第4 4列有键按下。结合上述两步,可确定按键所在行和列。第19页/共112页20图10-1010-10 线反转法原理图第20页/共112页21 单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。原则:即要保证能及时响应按键操作,又不要过多占用CPUCPU的工作时间。键盘工作方式有3 3种,即编程扫描、定时扫描和中断扫描。1.1.编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:(1 1)在键盘扫
16、描子程序中,先判断有无键按下。(2 2)用软件来消除按键抖动的影响。如有键按下,则进行下一步。(3 3)求按下键的键号。(4 4)等待按键释放后,再进行按键功能的处理操作。第21页/共112页222.2.定时扫描工作方式 利用单片机内的定时器,产生1010msms的定时中断,对键盘进行扫描。3.3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。键盘所做的工作分为三个层次。第1 1层:单片机如何来监视键盘的输入。三种工作方式:编程扫描;定时扫描;中断扫描。第2 2层:确定具体按键的键号。体现在按键的识别方法上就是:扫描法;线反转法。第3 3层:执行键处理
17、程序。第22页/共112页2310.3 10.3 键盘/显示器接口设计实例 一般把键盘和显示器放在一起考虑。I/OI/O芯片实现键盘/显示器接口 图10-110-11 1:80318031用扩展I/OI/O接口芯片8181C55C55实现的6 6位LEDLED显示3232键的键盘/显示器接口电路。图中8181C55C55也可用8282C55C55来替代。第23页/共112页24 8 89C519C51外扩一片81558155H H。RAMRAM地址:7 7E00HE00H7EFFH7EFFH。I/O I/O口地址:7 7F00HF00H7F05H7F05H。PAPA口为输出口,控制键盘列线的扫
18、描,同时又是6 6位共阴极显示器的位扫描口。PBPB口作为显示器段码输出口,PCPC口作为键盘的行线状态的输入口。75452 75452:反相驱动器,74077407:同相驱动器。1 1动态显示程序设计 内部RAM RAM 6 6个显示缓冲单元:7979H H7EH7EH,存放要显示的6 6位数据。81 81C55C55的PBPB口输出相应位的段码,依次改变PAPA口输出为高的位使某一位显示某一字符,其它位为暗。动态地显示出由缓冲区中显示数据所确定的字符。第24页/共112页25DIRDIR:MOV R0,MOV R0,79H79H;置缓冲器指针初值 MOV R3,MOV R3,01H01H;
19、位选码的初值送R3R3 MOV A,R3MOV A,R3LD0LD0:MOV DPTR,MOV DPTR,7F01H 7F01H;位选码PAPA口 MOVX DPTR,AMOVX DPTR,A ;(;(PA.0PA.0位)最左边LEDLED亮 INC DPTRINC DPTR ;数据指针指向PBPB口 MOV A,R0 MOV A,R0 ;显示数据A A ADD A,ADD A,0DH 0DH ;加偏移量 MOVC A,AMOVC A,APC PC ;根据显示数据来查表取段码DIR1DIR1:MOVX DPTR,AMOVX DPTR,A ;段码81558155H H PBPB口 ACALL D
20、L1ms ACALL DL1ms ;该位显示1 1msms INC R0INC R0 ;指针指向下一个数据单元 MOV A,R3MOV A,R3 ;位选码送入A A中 JB Acc.5,LD1JB Acc.5,LD1 ;判断是否扫描到最右边,到则返回 RL A RL A ;位选码左移一位,准备让下一位LEDLED亮 MOV R3,AMOV R3,A ;位选码送R3R3中保存 AJMP LD0 AJMP LD0 LD1LD1:RET RET 第25页/共112页26DSEGDSEG:DB 3FH,06H,5BH,4FH,66H,6DH DB 3FH,06H,5BH,4FH,66H,6DH;共阴极
21、段码表 DB 7DH,07H,7FH,6FH,77H,7CH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 39H,5EH,79H,71H,73H,3EH DB 31H,6EH,1CH,23H,40H,03HDB 31H,6EH,1CH,23H,40H,03H DB 18H,00HDB 18H,00HDL1msDL1ms:MOV R7,MOV R7,02H02H;延时1 1msms子程序 DLDL:MOV R6,MOV R6,0FFH0FFHDL6DL6:DJNZ R6,DL6DJNZ R6,DL6 DJNZ R7,DLDJN
22、Z R7,DL RETRET第26页/共112页272 2键盘程序设计(1 1)判别键盘上有无键闭合 方法为扫描口PA0PA0PA7PA7输出全0 0,读PCPC口的状态,若PC0PC0PC3PC3全为1 1(键盘上的行线全为高电平),则键盘上没有键闭合,若PC0PC0PC3PC3不全为1 1,则有键处于闭合状态。(2 2)去除键的机械抖动 判别出键盘上有键闭合后,延迟一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合期,否则认为是键的抖动。(3 3)判别闭合键的键号 方法:对键盘的列线进行逐列扫描,扫描口PA0PA0PA7PA7依次输出下列编码,即只有一列为低电平,其
23、余各列为高电平。第27页/共112页28 相应地,依次读相应地,依次读PCPC口的状态口的状态,若若PC0PC0PC3PC3全为全为“1”1”,则,则列线列线为为“0”0”的这一列上没有键闭合。的这一列上没有键闭合。闭合键的键号等于闭合键的键号等于为低电平为低电平的的列列号号加上行线为低电平的加上行线为低电平的行的首键号行的首键号。例如,例如,PAPA口输出口输出1111110111111101时读出时读出PCPC3 3PCPC0 0为为11011101,则,则1 1行行1 1列列相交的键处于闭合状态,第一列的首键号为相交的键处于闭合状态,第一列的首键号为8 8,列号为,列号为1 1。因此,因
24、此,闭合键的键号闭合键的键号N N为为N N=行首键号列号行首键号列号=8=81=91=9 第28页/共112页29 (4 4)使)使CPUCPU对键的一次闭合仅作一次处理键盘程序的流程对键的一次闭合仅作一次处理键盘程序的流程如如图图10-110-12 2。图10-1210-12 键盘子程序流程图第29页/共112页30KEYIKEYI:ACALL KS1ACALL KS1 ;调用判有无键闭合子程调用判有无键闭合子程序序 JNZ LK1 ;JNZ LK1 ;有键闭合,跳有键闭合,跳LK1LK1NINI:ACALL DIR ACALL DIR ;无键闭合,调显示子程无键闭合,调显示子程序序,延迟
25、延迟 ;6ms ;6ms后,跳后,跳KEYIKEYI AJMP KEYI AJMP KEYILK1LK1:ACALL DIR ACALL DIR ;可能有键闭合,软件延迟可能有键闭合,软件延迟12ms12ms去抖去抖 ACALL DIR ACALL DIR ACALL KS1 ;ACALL KS1 ;调用判有无键闭合子程序调用判有无键闭合子程序 JNZ LK2 JNZ LK2 ;经去抖,判键确实闭合,经去抖,判键确实闭合,跳跳LK2LK2 ACALL DIR ACALL DIR ;调用显示子程序延迟调用显示子程序延迟6ms6ms AJMP KEYI ;AJMP KEYI ;抖动引起,跳抖动引起
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 显示器 打印机 接口 设计
限制150内