键盘、显示、打印机及其它接口.ppt

上传人:小飞机 文档编号:6212043 上传时间:2023-10-05 格式:PPT 页数:49 大小:1.18MB
返回 下载 相关 举报
键盘、显示、打印机及其它接口.ppt_第1页
第1页 / 共49页
键盘、显示、打印机及其它接口.ppt_第2页
第2页 / 共49页
键盘、显示、打印机及其它接口.ppt_第3页
第3页 / 共49页
键盘、显示、打印机及其它接口.ppt_第4页
第4页 / 共49页
键盘、显示、打印机及其它接口.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《键盘、显示、打印机及其它接口.ppt》由会员分享,可在线阅读,更多相关《键盘、显示、打印机及其它接口.ppt(49页珍藏版)》请在三一办公上搜索。

1、第四章 键盘、显示等接口,4.1 按键、键盘及其接口4.2 LED显示及显示器接口4.3 LCD显示及显示器接口4.4 微型打印机接口4.5 语音接口技术4.6 其它接口,4.1.1 键输入过程与软件结构,MCS51单片机键输入过程,4.1 按键、键盘及其接口,4.1.2 键盘接口和键输入软件中应解决的几个问题,1消除键抖动,2键编码及键值,3键盘的监测方法,4.1.3 独立式按键,1独立式按键接口结构,2独立式按键的软件结构,4.1.4 行列式键盘,1行列式键盘的接口,2键盘工作原理,1)查询工作方式,2)定时扫描工作方式,3)中断工作方式,1、键盘的分类 键盘分编码键盘和非编码键盘。键盘上

2、闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。,非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。,4.1.1 键输入过程与软件结构,MCS51单片机键输入过程,4.1 按键、键盘及其接口,有否键按下?,是哪个键按下?,根据键值散转,对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。,3键盘的监测方法,1独立式按键接口结构,独立式按键的接口电路示意图(a)

3、中断方式;(b)查询方式,4.1.2 独立式按键,一般用排阻进行上拉。,下面是查询方式的键盘程序。K0K7为功能程序入口地址标号,PROM0PROM7分别为每个按键的功能程序。设按键从P1口输入。,START:MOV A,#0FFH;MOV P1,A;置P1口为输入状态 MOV A,P1;键状态输入 JNB ACC.0,K0;检测0号键是否按下,按下转 JNB ACC.1,K1;检测1号键是否按下,按下转,2独立式按键的软件结构,JNB ACC.2,K2;检测2号键是否按下,按下转 JNB ACC.3,K3;检测3号键是否按下,按下转 JNB ACC.4,K4;检测4号键是否按下,按下转 JN

4、B ACC.5,K5;检测5号键是否按下,按下转 JNB ACC.6,K6;检测6号键是否按下,按下转 JNB ACC.7,K7;检测7号键是否按下,按下转 AJMP START;无键按下返回,再顺次检测K0:AJMP PROM0K1:AJMP PROM1 K7:AJIMP PROM7,;入口地址表,START:MOV A,#0FFH;MOV P1,A;置P1口为输入状态 MOV A,P1;键状态输入 JNB ACC.0,K0;检测0号键是否按下,按下转 JNB ACC.1,K1;检测1号键是否按下,按下转 JNB ACC.6,K6;检测6号键是否按下,按下转 JNB ACC.7,K7;检测7

5、号键是否按下,按下转 AJMP START;无键按下返回,再顺次检测K0:AJMP PROM0K1:AJMP PROM1 K7:AJMP PROM7PROM0:;0号键功能程序 LJMP START;0号键功能程序执行完返回PROM1:;1号键功能程序 LJMP START PROM7:;7号键功能程序 LJMP START,;入口地址表,独立式按键的软件结构,行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如44的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。,4.1.4 行列式键盘,行列式键盘的接口方法有许多,例如直接接口于单片机

6、的I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。,1行列式键盘的接口,(1)用键盘连接的I/O线的二进制组合表示键码 例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口线的二进制数的组合表示16个键的编码。,2键编码及键值,如图所示,各键相应的键值为:88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不

7、便安排散转程序的入口地址。,(2)顺序排列键编码 如图所示,这种方法键值的形成要根据I/O线的状态作相应的程序处理。键码可按下式形成:键码=行首键码+列号,D4:0行0000D5:1行0100D6:2行1000D7:3行1100,D0:0列0000D1:1列0001D2:2列0010D3:3列0011,行,列,键码,0000,0001,0010,00110100,0101,0110,01111000,1001,1010,10111100,1101,1110,1111,0行,3行,0列,3列,行首键码,列号,0行:000001行:010002行:100003行:11000,行首键码,列号,000

8、111,键码=行首键码+列号,键码:,0行:00000001111行:01000011112行:10000101113行:1100011111,8155扩展I/O口组成的行列式键盘共32个键,PA口每位依次送出0,如有某键按下,则在PC口能读到相应的值,结合PA口的信息,则能确定键值。,按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5 V,被箝位在高电平状态。对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。,2行列式键盘工作原理,判断有无

9、键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。判断哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出0,置对应的列线为低电平,然后从PC口读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。,1)查询工作方式,0行:

10、000001行:010002行:100003行:11000,行首键码,如12号键按下,列扫描号为0100,PC口读入时PC1=0,可确定行首键码为01000,故键值为:01000+0100=01100,1消除键抖动,键合、键断时的电压抖动,4.1.3 键盘接口和键输入软件中应解决的几个问题,硬件:采用消除键抖动电路,原理:基本RS触发器,/S0,Q1/R0,Q0 抖动时,/R=/S=1,Q不变。,软件:采用延时判别程序,(具体程序后叙),键盘扫描子程序流程框图,键盘扫描子程序如下:KEY1:ACALL TM6;调6 ms延时子程序 ACALL KS1;调用判断有无键按下子程序 JNZ LK1;

11、有键按下时,(A)0转消抖延时 AJMP KEY1;无键按下返回 LK1:ACALL TM12;调12 ms延时子程序 ACALL KS1;查有无键按下,若有则真有键按下 JNZ LK2;键(A)0逐列扫描 AJMP KEY1;不是真有键按下,返回,转逐列扫描,LK2:MOV R2,#0FEH;初始列扫描字(0列)送入R2 MOV R4,#00H;初始列(0列)号送入R4LK4:MOV DPTR,#7F01H;DPTR指向8155PA口 MOV A,R2;列扫描字送至8155PA口 MOVX DPTR,A INC DPTR INC DPTR;DPTR指向8155PC口 MOVX A,DPTR;

12、从8155 PC口读入行状态 JB ACC.0,L_ONE;查第0行无键按下,转查第1行 MOV A,#00H;第0行有键按下,行首键码#00HA AJMP LKP;转求键码L_ONE:JB ACC.1,L_TWO;查第1行无键按下,转查第2行 MOV A,#08H;第1行有键按下,行首键码#08HA AJMP LKP;转求键码,;逐列扫描,R2,L_TWO:JB ACC.2,L_THR;查第2行无键按下,转查第3行 MOV A,#10H;第2行有键按下,行首键码#10HA AJMP LKP;转求键码L_THR:JB ACC.3,NEXT;查第3行无键按下,转向查下一列 MOV A,#18H;

13、第3行有键按下,行首键码#18HA,LKP:ADD A,R4;求键码,键码=行首键码+列号 PUSH ACC;键码进栈保护LK3:ACALL KS1;等待键释放 JNZ LK3;键未释放,等待 POP ACC;键释放,键码A RET;键扫描结束,出口状态(A)=键码,;开始求键码,;逐列扫描(续),NEXT:INC R4;准备扫描下一列,列号加1 MOV A,R2;取列号送累加器A JNB ACC.7,KEND;判断8列扫描否?扫描完返回 RL A;扫描字左移一位,变为下一列扫描字 MOV R2,A;扫描字送入R2 AJMP LK4;转下一列扫描KEND:AJMP KEY1;从新开始键扫描。,

14、;准备扫描下一列,;逐列扫描(续),R2,扫描第0列,第1列,第7列,KS1:MOV DPTR,#7F01H;DPTR指向8155PA口 MOV A,#00H;全扫描字A MOVX DPTR,A;全扫描字送往8155PA口INC DPTR;DPTR指向8155PC口INC DPTR MOVX A,DPTR;读入PC口行状态CPL A;以高电平表示有键按下ANL A,#0FH;屏蔽高4位,只保留低4位行线值RET;出口状态:(A)0时有键按下,TM12:MOV R7,#18H;延时12 ms子程序TM6:MOV R6,#0FFHTM61:DJNZ R6,TM61 DJNZ R7,TM6 RET,

15、;判有无键按下,2)定时扫描工作方式,定时扫描方式程序框图,思路:CPU每隔一定时间对键盘进行一次扫描,并将结果置成不同标志。,KM,KP:标志位无按键:0KM,0KP第一次读到键:1KM第二次读到键:查询键码,1KP。如KMKP1,表示已查询过的按键没释放,不再继续查询。,计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断服务程序中应完成键识别、消除抖动、排除多次执行

16、键功能操作等功能,可参考查询工作方式键盘程序。,3)中断工作方式,1 MCS-51与显示器的接口为方便人们观察和监视单片机的运行,通常需要用一种显示器作为单片机的输出设备,用来显示单片机的键输入值、中间信息及运算结果。单片机系统中常用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。两种显示器具有耗电省、配置灵活、线路简单、安装方便、耐振动、寿命长等优点。两者相比,LED价格更低廉,结构更简单;LCD功耗更低,显示清晰度更高。,一.MCS-51对LED的接口1.LED的种类 LED(Light-Emitting Diode)是发光二极管的简称。LED有七段和八段之分,也有共阴和共阳两种

17、。,(a)共阴LED结构(b)共阴LED(c)共阳LED,a,b,c,d,e,f,g,sp,a,b,c,d,e,f,g,sp,G,G,a,c,d,e,f,b,g,a,b,sp,2.LED数码显示管原理 数码管发光原理分两种情况:共阳极型a,b,c,d,e,f,g 各引脚哪个输入低电平,哪个二极管发亮;共阴极型a-g哪个为高电平,哪个二极管亮。每个二极管为段,不同的发光段亮,可组成不同字形。对于共阴LED,显示“3”,需要在8个管脚上施加控制电平04FH-(字型码),04FH是按照 h,g,f,e,d,c,b,a D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 0 1 1 1 1 对

18、于共阳LED,显示“3”字型码是 h,g,f,e,d,c,b,a D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 0 0 0 0,七段LED的段选码,3.MCS-51对LED的显示 MCS-51对LED的显示分为静态和动态两种。静态显示的特点是:每个数码管能稳定地同时显示各自字形;即工作过程中加在每一个LED上的信号始终同时存在。各位的显示字符一旦确定,加在每一块显示器上的信号维持不变,直到显示另一个字符为止。优点:各显示模块相互独立,显示亮度高,编程简单。缺点:需占用较多的硬件资源。单片机系统中,常采用74LS47、MC14495等芯片作为LED的静态显示接口。,4.2.2

19、LED显示器与显示方式,1LED静态显示方式,N位静态显示器要求有N8根I/O口线,1硬件译码显示器接口,MC14495内部逻辑与引脚图,4.2.3 LED显示器接口,锁存/译码/驱动器,74LS48,4511,4543,14495等,4位静态LED显示器接口,译码器,1#MC14495,a b c d e f g,G,2#MC14495,a b c d e f g,G,3#MC14495,a b c d e f g,G,4#MC14495,a b c d e f g,G,LE,LE,LE,LE,8031,GAB,Y1,Y0,Y2,Y3,P1.7,P1.6,P1.5,P1.4,P1.2,P1.

20、1,P1.0,MC14495芯片的作用是输入被显示字符的二进制码(或BCD码),并把它自动转换成相应字形码,送给LED显示。,用于输出欲显示字符的二进制码(BCD码);P1.2控制二四译码器工作;P1.1和P1.0经译码输出后控制MC14495中哪一个接收欲显示的代码。,使用MC14495的8位LED静态显示接口,显示方式:静态。口线占用:8根。,使用芯片:3/8译码器 1片。MC14495显示译码器 8片。,动态显示 动态显示是指各LED轮流地一遍一遍显示各自字符;人们因为视觉器官惰性而看到的是各LED似乎在同时显示不同字形。特点是所有LED的段选线并联在一起,而每个LED对应一根位选线位选

21、线控制哪一位接收字段码。采用动态扫描显示。所谓动态扫描显示:各位共用一个字形口,利用相应的字位选择轮流向各位送出字形码。优点:硬件开销小。缺点:显示的亮度比静态显示差些,位数越多,在动态显示时亮度越低,同时需要CPU用于显示刷新的频率越高。软件编程较复杂;其实质是:以牺牲CPU的时间换取系统的低功耗,节省了系统资源但使显示亮度降低。为了保证显示效果,动态显示位数不能太多,一般不超过8位。,8位LED动态显示器电路,2LED动态显示方式,N位动态显示器要求有N8根I/O口线。,P272 例7.7,8031,G,ALE,EA,P0.0,P0.7,WR,RD,P2.7,RESET,ALE,RD,WR

22、,RESET,AD7,AD0,CE,IO/M,PB7PB6,PB5PB4,PB3PB2,PB1PB0,PC5PC4,PC3PC2,PC1PC0,8155,LED5,LED4,LED3,LED2,LED1,LED0,8003H,8002H,G,G,G,G,G,共阳,请根据上图编出能在LED5LED0上显示1995.6的动态显示子程序。,例,解:设显示缓冲区放在CPU内部RAM中,始址为70H,显示 缓冲区中被显示字符的字形码表的地址偏移量应预先 放入。如下图所示:,06H13H05H09H09H01H,DS0DS1DS2DS3DS4DS5,70H71H72H73H74H75H76H,ORG 06

23、00HDISPLY:MOV A,#06H;方式控制字06H送A MOV DPTR,#8000H MOVX DPTR,A;方式控制字送8155命令口DISPLY1:MOV R0,#70H;显示缓冲区始址送R0 MOV R3,#0FEH;字位码始值送R3 MOV A,R3 LD0:MOV DPTR,#8003H;C口地址送DPTR MOVX DPTR,A;字位码送C口 MOV DPTR,#8002H;B口地址送DPTR,MOV A,R0;待显字符地址偏移量送A ADD A,#13;对A进行地址修正 MOVC A,A+PC;查字形码表 MOVX DPTR,A;字形码送B口 ACALL DELAY;延

24、时1ms INC R0;修正显示缓冲区指针 MOV A,R3;字位码送A JNB ACC.5,LD1;若显示完一遍,则LED1 RL A;字位码左移一位 MOV R3,A;送回R3 AJMP LD0;显示下一个数码 LD1:RET,DTAB:DB 0C0H,F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H DB 8EH,0FFH,0CH,89H,7FH DB 0BFH DELAY:MOV R7,#02H;延时1ms程序 DELAY1:MOV R6,#0FFH DELAY2:DJNZ R6,DELAY2 DJNZ

25、 R7,DELAY1 RET END,1键盘、显示器组合接口电路,如图是一个采用8155并行扩展口构成的键盘、显示器组合接口电路。图中设置了32个键。如果全部用完PC口线(6根),可以增加按键,最多可达86=48个键。LED显示器采用共阴极。段选码由8155 PB口提供,位选码由PA口提供。键盘的列输入由PA口提供,与显示器的位选输入公用,行输入由PC0PC3提供。显然,因为键盘与显示器公用了PA口,比单独接口节省了一个I/O口。,4.2.4 键盘、显示器组合接口,8155扩展I/O口的键盘、显示器组合接口,PB口:段选码输出,PA口:位选码输出兼键盘列扫描输出。,PC0PC3:键盘行输入,设地址为7FH,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号