第4章1键盘、显示、打印机及其它接口知识课件_第1页
第4章1键盘、显示、打印机及其它接口知识课件_第2页
第4章1键盘、显示、打印机及其它接口知识课件_第3页
第4章1键盘、显示、打印机及其它接口知识课件_第4页
第4章1键盘、显示、打印机及其它接口知识课件_第5页
已阅读5页,还剩44页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章键盘、显示等接口4.1

按键、键盘及其接口4.2

LED显示及显示器接口4.3LCD显示及显示器接口4.4微型打印机接口4.5语音接口技术4.6其它接口4.1.1键输入过程与软件结构MCS–51单片机键输入过程4.1按键、键盘及其接口4.1.2键盘接口和键输入软件中应解决的几个问题1.消除键抖动2.键编码及键值3.键盘的监测方法4.1.3独立式按键1.独立式按键接口结构2.独立式按键的软件结构4.1.4行列式键盘1.行列式键盘的接口2.键盘工作原理1)查询工作方式2)定时扫描工作方式3)中断工作方式1、键盘的分类键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。4.1.1键输入过程与软件结构MCS–51单片机键输入过程4.1按键、键盘及其接口有否键按下?是哪个键按下?根据键值散转

对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。3.键盘的监测方法1.独立式按键接口结构独立式按键的接口电路示意图(a)中断方式;(b)查询方式4.1.2独立式按键一般用排阻进行上拉。下面是查询方式的键盘程序。K0~K7为功能程序入口地址标号,PROM0~PROM7分别为每个按键的功能程序。设按键从P1口输入。START:MOVA,#0FFH ;MOVP1,A;置P1口为输入状态 MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转2.独立式按键的软件结构JNBACC.2,K2 ;检测2号键是否按下,按下转JNBACC.3,K3 ;检测3号键是否按下,按下转JNBACC.4,K4;检测4号键是否按下,按下转JNBACC.5,K5;检测5号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转AJMPSTART ;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1

K7:AJIMPPROM7;入口地址表…PROM0:………;0号键功能程序………LJMPSTART ;0号键功能程序执行完返回PROM1:………;1号键功能程序………LJMPSTART ;1号键功能程序执行完返回

PROM7:………;7号键功能程序 ………LJMPSTART ;7号键功能程序执行完返回…START:MOVA,#0FFH ;MOVP1,A;置P1口为输入状态MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转

●●●JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转AJMPSTART;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1

●●●K7:AJMPPROM7PROM0:………;0号键功能程序………LJMPSTART;0号键功能程序执行完返回PROM1:…………;1号键功能程序…………LJMPSTART

●●●

PROM7:………;7号键功能程序 …………LJMPSTART;入口地址表独立式按键的软件结构行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如4×4的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。4.1.4行列式键盘行列式键盘的接口方法有许多,例如直接接口于单片机的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。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。(2)顺序排列键编码如图所示,这种方法键值的形成要根据I/O线的状态作相应的程序处理。键码可按下式形成:键码=行首键码+列号D4:0行→0000D5:1行→0100D6:2行→1000D7:3行→1100D0:0列→0000D1:1列→0001D2:2列→0010D3:3列→0011行列键码0000,0001,0010,00110100,0101,0110,01111000,1001,1010,10111100,1101,1110,11110行3行0列3列行首键码列号列线行线0123456701230行:000001行:010002行:100003行:11000行首键码列号000~111键码=行首键码+列号键码:0行:00000~001111行:01000~011112行:10000~101113行:11000~111118155扩展I/O口组成的行列式键盘共32个键PA口每位依次送出0,如有某键按下,则在PC口能读到相应的值,结合PA口的信息,则能确定键值。列线行线012345670123按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。

对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。

检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。2.行列式键盘工作原理⑴判断有无键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为"1"。⑵判断哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出"0",置对应的列线为低电平,然后从PC口读入行线状态,如果全为"1",则所按下之键不在此列;如果不全为"1",则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。⑶为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为"0"的行首键码加列号的办法计算。1)查询工作方式列线行线0123456701230行:000001行:010002行:100003行:11000行首键码如12号键按下,列扫描号为0100,PC口读入时PC1=0,可确定行首键码为01000,故键值为:01000+0100=011001.消除键抖动键稳定键按下后沿抖动前沿抖动键合、键断时的电压抖动4.1.3键盘接口和键输入软件中应解决的几个问题硬件:采用消除键抖动电路原理:基本RS触发器,/S=0,Q=1/R=0,Q=0抖动时,/R=/S=1,Q不变。/S

/RQ软件:采用延时判别程序(具体程序后叙)有键按下否调用6ms延时子程序开始调用12ms延时子程序有键按下否判断闭合键,键码入栈保存闭合键释放否键码→A返回YYYNNN键盘扫描子程序流程框图键盘扫描子程序如下:KEY1:ACALLTM6;调6ms延时子程序ACALLKS1 ;调用判断有无键按下子程序JNZLK1 ;有键按下时,(A)≠0转消抖延时AJMPKEY1 ;无键按下返回LK1:ACALLTM12;调12ms延时子程序ACALLKS1 ;查有无键按下,若有则真有键按下JNZLK2 ;键(A)≠0逐列扫描AJMPKEY1 ;不是真有键按下,返回转逐列扫描LK2:MOVR2,#0FEH ;初始列扫描字(0列)送入R2

MOVR4,#00H ;初始列(0列)号送入R4LK4:MOVDPTR,#7F01H ;DPTR指向8155PA口 MOVA,R2 ;列扫描字送至8155PA口MOVX@DPTR,AINCDPTR INCDPTR;DPTR指向8155PC口MOVXA,@DPTR ;从8155PC口读入行状态

JBACC.0,L_ONE ;查第0行无键按下,转查第1行MOVA,#00H ;第0行有键按下,行首键码#00H→AAJMPLKP ;转求键码L_ONE:JBACC.1,L_TWO ;查第1行无键按下,转查第2行MOVA,#08H ;第1行有键按下,行首键码#08H→AAJMPLKP

;转求键码;逐列扫描11111110R2=L_TWO:JBACC.2,L_THR;查第2行无键按下,转查第3行MOVA,#10H;第2行有键按下,行首键码#10H→AAJMPLKP;转求键码L_THR:JBACC.3,NEXT;查第3行无键按下,转向查下一列MOVA,#18H ;第3行有键按下,行首键码#18H→ALKP:ADDA,R4 ;求键码,键码=行首键码+列号PUSHACC ;键码进栈保护LK3:ACALLKS1 ;等待键释放JNZLK3 ;键未释放,等待POPACC ;键释放,键码→ARET ;键扫描结束,出口状态(A)=键码;开始求键码;逐列扫描(续)NEXT:INCR4 ;准备扫描下一列,列号加1MOVA,R2 ;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回RLA ;扫描字左移一位,变为下一列扫描字MOVR2,A ;扫描字送入R2AJMPLK4 ;转下一列扫描KEND:AJMPKEY1 ;

从新开始键扫描。

;准备扫描下一列;逐列扫描(续)11111110R2=1111110101111111扫描第0列第1列第7列············KS1:MOVDPTR,#7F01H ;DPTR指向8155PA口MOVA,#00H ;全扫描字→AMOVX@DPTR,A ;全扫描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;读入PC口行状态CPLA ;以高电平表示有键按下ANLA,#0FH ;屏蔽高4位,只保留低4位行线值RET ;出口状态:(A)≠0时有键按下TM12:MOVR7,#18H;延时12ms子程序TM6:MOVR6,#0FFHTM61:DJNZR6,TM61DJNZR7,TM6RET;判有无键按下键盘上有键闭合否开始KM=1KP=1返回1→KM0→KM0→KP查询键码1→KPNNNYYY2)定时扫描工作方式定时扫描方式程序框图思路:CPU每隔一定时间对键盘进行一次扫描,并将结果置成不同标志。KM,KP:标志位无按键:0→KM,0→KP第一次读到键:1→KM第二次读到键:查询键码,1→KP。如KM=KP=1,表示已查询过的按键没释放,不再继续查询。计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。3)中断工作方式

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

(a)共阴LED结构(b)共阴LED(c)共阳LEDabcdefgspabcdefgspGGacdefbgabsp2.LED数码显示管原理数码管发光原理分两种情况:共阳极型a,b,c,d,e,f,g各引脚哪个输入低电平,哪个二极管发亮;共阴极型a-g哪个为高电平,哪个二极管亮。每个二极管为段,不同的发光段亮,可组成不同字形。

对于共阴LED,显示“3”,需要在8个管脚上施加控制电平04FH->(字型码),04FH是按照h,g,f,e,d,c,b,aD7D6D5D4D3D2D1D001001111

对于共阳LED,显示“3”

字型码是h,g,f,e,d,c,b,aD7D6D5D4D3D2D1D0

10110000

七段LED的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83H

dpgfedcbaD7D6D5D4D3D2D1D03.MCS-51对LED的显示MCS-51对LED的显示分为静态和动态两种。静态显示的特点是:每个数码管能稳定地同时显示各自字形;即工作过程中加在每一个LED上的信号始终同时存在。各位的显示字符一旦确定,加在每一块显示器上的信号维持不变,直到显示另一个字符为止。优点:各显示模块相互独立,显示亮度高,编程简单。缺点:需占用较多的硬件资源。单片机系统中,常采用74LS47、MC14495等芯片作为LED的静态显示接口。

4.2.2LED显示器与显示方式1.LED静态显示方式N位静态显示器要求有N×8根I/O口线1.硬件译码显示器接口MC14495内部逻辑与引脚图4.2.3LED显示器接口锁存/译码/驱动器地址译码和字段ROM阵列bcdefgh+iaVCR290Ω×98434锁存器5A6B9C10D7LE12111314151216VDDVSS1111111111111174LS48,4511,4543,14495等4位静态LED显示器接口译码器1#MC14495abcdefgG2#MC14495abcdefgG3#MC14495abcdefgG4#MC14495abcdefgGLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0MC14495芯片的作用是输入被显示字符的二进制码(或BCD码),并把它自动转换成相应字形码,送给LED显示。译码器1#MC14495abcdefgG2#MC14495abcdefgG3#MC14495abcdefgG4#MC14495abcdefgGLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0P1.7-P1.4用于输出欲显示字符的二进制码(BCD码);P1.2控制二四译码器工作;P1.1和P1.0经译码输出后控制MC14495中哪一个接收欲显示的代码。使用MC14495的8位LED静态显示接口显示方式:静态。口线占用:8根。使用芯片:3/8译码器1片。

MC14495显示译码器8片。

动态显示动态显示是指各LED轮流地一遍一遍显示各自字符;人们因为视觉器官惰性而看到的是各LED似乎在同时显示不同字形。

特点是所有LED的段选线并联在一起,而每个LED对应一根位选线位选线控制哪一位接收字段码。采用动态扫描显示。所谓动态扫描显示:各位共用一个字形口,利用相应的字位选择轮流向各位送出字形码。

优点:硬件开销小。

缺点:显示的亮度比静态显示差些,位数越多,在动态显示时亮度越低,同时需要CPU用于显示刷新的频率越高。软件编程较复杂;其实质是:以牺牲CPU的时间换取系统的低功耗,节省了系统资源但使显示亮度降低。为了保证显示效果,动态显示位数不能太多,一般不超过8位。8位LED动态显示器电路2.LED动态显示方式N位动态显示器要求有N+8根I/O口线。P272例7.78031GALEEAP0.0P0.7WRRDP2.7RESETALERDWRRESETAD7AD0CEIO/MPB7PB6PB5PB4PB3PB2PB1PB0PC5PC4PC3PC2PC1PC08155LED5LED4LED3LED2LED1LED08003H8002HGGGGG共阳请根据上图编出能在LED5—LED0上显示1995.6的动态显示子程序。例

解:设显示缓冲区放在CPU内部RAM中,始址为70H,显示缓冲区中被显示字符的字形码表的地址偏移量应预先放入。如下图所示:06H13H05H09H09H01HDS0DS1DS2DS3DS4DS570H71H72H73H74H75H76H

ORG0600HDISPLY:MOVA,#06H;方式控制字06H送AMOVDPTR,#8000HMOVX@DPTR,A;方式控制字送8155命令口DISPLY1:MOVR0,#70H;显示缓冲区始址送R0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论