GCS微机原理Ch10键盘显示器接口1.ppt_第1页
GCS微机原理Ch10键盘显示器接口1.ppt_第2页
GCS微机原理Ch10键盘显示器接口1.ppt_第3页
GCS微机原理Ch10键盘显示器接口1.ppt_第4页
GCS微机原理Ch10键盘显示器接口1.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第10章 MCS-51与键盘、显示器的接口设计,2,键盘和显示器,键盘和显示器是计算机常用的输入输出设备,用于输入数据和命令,显示计算机的运行状态、命令和计算结果。考虑到简化结构,降低成本,单片机系统中经常采用简单键盘和数码管显示器,本节介绍它们与单片机的接口电路。,3,10.1 LED显示器接口原理,LED(Light Emitting Diode)数码管 共阳极数码管 共阴极数码管 每个显示字形对应一个二进制数码,称为段码、字形码或显示代码 公共端称为位码,4,电路图,5,字型表,h g f e d c b a 0 0 1 1 1 1 1 1 3FH 1 1 0 0 0 0 0 0 C0H,6,工作方式,数码与显示码之间要有转换方法: 硬件法:使用译码集成电路 软件法:使用查表法得到显示码 静态方式:恒定点亮 动态方式:每个一段时间点亮一次即轮流点亮 注意:导通电流和点亮时间比例。,7,静态显示工作方法,8,下面是将显示缓冲区78H一7FH中的8个BCD码送数码管显示器的程序。 DIR:MOV R0,#78H ;置首地址 MOV R2,#00H ;初始化位计数器 MOV R7,#08H ;置循环次数 SETB P1.7 LOOP: MOV A,R2 SWAP A ADD A,R0 ;显示数据送低4位 MOV P1,A ;输出显示数据和位地址 INC R0 ;指向下一个数 INC R2 ;指向下一位 DJNZ R7,LOOP CLR P1.7 RET,9,动态显示工作方法,硬件: 段码控制线来控制显示字形(段码) 公共极COM端(位码) 软件: 查段码表 实现各位轮流点亮 注意 要根据数码管的大小,确定驱动电路,包括位码驱动和段码驱动,10,6位动态显示器的接口电路图,11,6位动态显示器的显示程序框图,12,6位动态显示器的显示程序,程序如下(其中DLT为延时2ms子程序): DIR: MOV R0,#79H ;置显示缓冲区首地址 MOV R3,#0lH ;置位选码初值 MOV A,R3 LOOP: MOV DPTR,#7F01H ;DPTRPA口地址 MOVX DPTR,A ;输出位选码 INC DPTR ;指向PB口 MOV A,Ro ;取被显示的数据 ADD A,#12H ;形成查表的偏移地址 MOVC A,A十PC ;求出显示代码 JNB PSW.5,DIR1 ;判断是否显示小数点 SETB ACC.7 ;显示小数点,13,DIR1: MOVX DPTR,A ;输出显示代码 ACALL DLT ;延时 INC R0 ;指向下一个显示数据 MOV A,R3 JB ACC5,LOOPl ;判断6位是否显示完毕 RL A ;形成下一个位代码 MOV R3,A AJMP LOOP LOOP1: RET DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DLF: MOV R7,#04H DLT1: MOV R6,#0FFH DLT2: DJNZ R6,DIT2 DJNZ R7,DLT1 RET,14,15,键盘由一组常开的按键开关组成,每个按键都被赋予一个代码,称为键码。 键盘可以分为二种,即编码键盘和非编码键盘。 编码键盘是通过一个编码电路来识别闭合键的键码, 非编码键盘是通过软件来识别键码。 由于非编码键盘的硬件电路简单,用户可以方便地增减键的数量,因此在单片机系统中应用广泛。这里着重介绍非编码键盘的接口电路。,10.2 键盘接口电路,16,1.按键电路和消除抖动,组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图左中,当开关S未被按下时,P1.7输入为高电平,S闭合后,P1.7输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1.7输入端的波形如图右所示。,17,按键电路和消除抖动,抖动持续时间的长短与开关的机械特性有关,一般在5一l0ms之间。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。我们在做单片机应用系统时会遇到这样个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。 为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动.,18,消除抖动的方法,硬件方法,软件方法,如用滤波电路、双稳态电路等。 优点: 速度快,实时。 缺点: 增加了硬件成本,当发现有键按下时,延时1020ms再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下,则说明闭合键已稳定,即可判断其键码。,19,2.非编码键盘的结构,独立式按键,行列式键盘,独立式按键是指直接用IO口线构成单个按键电路,每个按键占用一条IO口线,每个按键的工作状态不会产生相互影响。,将IO口线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,这就构成了行列式键盘。行列式键盘中校键的数量可达行线数n乘以列线数m,如4行、4列行列式键盘的按键数可以达到4416个。由此可以看到行列式键盘在按键较多时,可以节省IO口线。,20,独立式按键电路图,独立式按键电路的结构和处理程序简单,扩展方便,但其占用的IO口线相对较多,不适合在按键数量较多的场合下采用。,21,行列式键盘的电路原理图,按键设置在行线和列线交点上,即按键开关的两端分别接在行线和列线上。行线通过一个电阻接到十5V电源上,在没有键按下时,行线处于高电平状态。 判断是否有键按下的方法是:向所有的列线IO口输出低电平,然后将行线的电平状态读人累加器A中,若无键按下,行线仍保持高电平状态,若有键按下,行线至少应有一条为低电平。,行,列,22,3.非编码键盘的工作方式,程序扫描方式,中断扫描方式,一般情况下,在单片机应用系统中,键盘处理只是CUP工作的一部分。为了能及时发现有键按下,CPU必须不断调用键盘处理程序,对键盘进行扫描,因此称为程序扫描方式。,在程序扫描工作方式中,为了能及时响应键盘输入,需要不停地对键盘进行扫描,即使没有键操作时,也不能中断。这就浪费了大量CPU宝贵的时间。为了提高CPU的效率,在电路中增加适当的电路,当有键闭合时,产生中断请求信号。在中断服务子程序中进行去抖动、求键码和处理重键等工作。,在单片机应用系统中,非编码键盘由CPU通过键盘处理程序完成整个工作过程。相对CPU来言,按键闭合是随机发生的,键盘处理程序必须能够及时捕捉到闭合的键、并求出其键码。按照这一过程的不同非编码键盘的工作方式可分为程序扫描方式和中断扫描方式。,23,例-8031与非编码键盘的接口,列PA07,行PC 03,24,键盘处理程序编程要点,判断有无键闭合 消除键抖动 求闭合键的键号 判断闭合键有无释放 若释放结束处理,25,(1)判断有无键闭合,判断键盘中有无键按下。由PA口输出00H,再将PC口的状态读入,若PC0一PC3全为1,说明无键按下,若不全为l则有键按下。,26,(1)判断有无键闭合的程序部分,KS1: MOV DPTR,#7F01H MOV A,#00H MOVX DPTR,A ;输出扫描信号00H INC DPTR INC DPTR MOVX A,DPTR ;读入C口状态 CPL A ;求反 ANL A,#0FH ;屏敝高4位 RET,27,(2)消除抖动,消除抖动。当发现有键按下时,延时一段时间后再判断键盘的状态,若仍有键保持按下状态,则可断定有键按下,否则认为是抖动。,28,(2)消除抖动的程序部分,LK1:ACALL TIM ACALL TIM ;延时6ms ACALL KS1 ;判断有无键闭合 JNZ LK2 ;(A)=0,有键闭合,转求键码 ACALL TIM ;延时6ms AJMP KEY1 ;非键闭合,返回,29,(3)求闭合键的键号,从PA口依次输出下列扫描信号。每次输入扫描信号后,检查PC口的状态,若某一位为0,说明闭合的键在该行,即可确定闭合键的行和列。,30,列PA07,行PC 03,例如PA口输出11111011, 从PC口读入的状态为1101.,1 1 0 1 1 1 1 1,PA2,1 0 1 1,PC1,31,(3)求闭合键的键号的程序部分,LK2: MOV R2,#0FEH ;R2一第一次扫描输出信号 MOV R4,#00H ;R4一列号 LK3: MOV DPTR,#7F0lH ;DPTRA口地址 MOV A,R2 MOVX DPTR,A ;输出扫描信号 INC DPTR INC DPTR ; 指向C口地址 MOVX A, DPTR ;读C口状态 JB ACC.0, L1 ;PC0=1, 转移 MOV A, #00H ; A0行0列键号,准备求键号 AJMP LK,32,R4,33,34,8279键盘显示器接口芯片(P246),实现对键盘和显示器的自动扫描 识别闭合键的键号 完成显示器的动态扫描,35,8279引脚及逻辑符号,36,8279的内部结构,37,工作原理,由SL0SL3输出键盘和显示器的扫描线 回复线RL0RL7作为键盘的列线以搜索闭合键将键盘数据送入FIFO存储器, 有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。 显示缓冲区(RAM)存放显示数据的段码,数据轮流从显示寄存器输出,在SL0SL3的配合下,实现动态显示。(OUTA和OUTB),38,接口方法,控制线连接: 、 、 、A0、IRQ、CLK及RESET 信息交换:命令字、状态字(A0=1)和数据(A0=0); 口地址的确定:由 A0确定出两个端口地址

温馨提示

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

评论

0/150

提交评论