微机原理Ch10键盘显示器接口.pptx
1键盘和显示器键盘和显示器是计算机常用的输入输出设备,键盘和显示器是计算机常用的输入输出设备,用于输入数据和命令,显示计算机的运行状态、用于输入数据和命令,显示计算机的运行状态、命令和计算结果。考虑到简化结构,降低成本,命令和计算结果。考虑到简化结构,降低成本,单片机系统中经常采用简单键盘和数码管显示单片机系统中经常采用简单键盘和数码管显示器,本节介绍它们与单片机的接口电路。器,本节介绍它们与单片机的接口电路。第1页/共42页210.1 LED显示器接口原理LED(Light Emitting Diode)数码管共阳极数码管共阴极数码管每个显示字形对应一个二进制数码,称为段码、字形码或显示代码 公共端称为位码第2页/共42页3电路图第3页/共42页4字型表 h g f e d c b a0 0 1 1 1 1 1 1 3FH1 1 0 0 0 0 0 0 C0H显示显示字符字符共阴共阴极段极段码码共阳共阳极段极段码码显示显示字符字符共阴共阴极段极段码码共阳共阳极段极段码码0 03 3FHFHC0HC0Hc c3939H HC6HC6H1 10606H HF9HF9Hd 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 A7777H H8888H H“灭灭”0000H HFFHFFHb b7 7CHCH8383H H第4页/共42页5工作方式数码与显示码之间要有转换方法:硬件法:使用译码集成电路软件法:使用查表法得到显示码静态方式:恒定点亮动态方式:每个一段时间点亮一次即轮流点亮注意:导通电流和点亮时间比例。第5页/共42页6静态显示工作方法第6页/共42页7下面是将显示缓冲区下面是将显示缓冲区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第7页/共42页8动态显示工作方法硬件:段码控制线来控制显示字形(段码)公共极COM端(位码)软件:查段码表 实现各位轮流点亮 注意 要根据数码管的大小,确定驱动电路,包括位码驱动和段码驱动第8页/共42页96位动态显示器的接口电路图第9页/共42页106位动态显示器的显示程序框图第10页/共42页116位动态显示器的显示程序程序如下程序如下(其中其中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 ;显示小数点显示小数点第11页/共42页12DIR1: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,71HDLF:MOV R7,#04HDLT1:MOV R6,#0FFHDLT2:DJNZ R6,DIT2 DJNZ R7,DLT1 RET第12页/共42页13第13页/共42页14键盘由一组常开的按键开关组成,每个按键都被赋予一个代码,称为键码。键盘可以分为二种,即编码键盘和非编码键盘。编码键盘是通过一个编码电路来识别闭合键的键码,非编码键盘是通过软件来识别键码。由于非编码键盘的硬件电路简单,用户可以方便地增减键的数量,因此在单片机系统中应用广泛。这里着重介绍非编码键盘的接口电路。10.2 键盘接口电路键盘接口电路第14页/共42页151.按键电路和消除抖动组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图左中,当开关S未被按下时,P1.7输入为高电平,S闭合后,P1.7输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1.7输入端的波形如图右所示。第15页/共42页16按键电路和消除抖动抖动持续时间的长短与开关的机械特性有关,一般在5一l0ms之间。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。我们在做单片机应用系统时会遇到这样个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出P1口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动.第16页/共42页17消除抖动的方法消除抖动的方法硬件方法硬件方法软件方法软件方法如用滤波电路、双稳态电路等。如用滤波电路、双稳态电路等。优点优点:速度快,实时。速度快,实时。缺点缺点:增加了硬件成本增加了硬件成本当发现有键按下时,延时当发现有键按下时,延时1020ms再查询是否有键按下,若没再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下,则有键按下,说明上次查询结果为干扰或抖动;若仍有键按下,则说明闭合键已稳定,即可判断其键码。说明闭合键已稳定,即可判断其键码。第17页/共42页182.非编码键盘的结构非编码键盘的结构独立式按键独立式按键行列式键盘行列式键盘独立式按键是指直接用独立式按键是指直接用IO口线构成单个按键电路,每个按键占口线构成单个按键电路,每个按键占用一条用一条IO口线,每个按键的工作状态不会产生相互影响。口线,每个按键的工作状态不会产生相互影响。将将IO口线的一部分作为行线,另一部分作为列线,按键设置在口线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,这就构成了行列式键盘。行列式键盘中行线和列线的交叉点上,这就构成了行列式键盘。行列式键盘中校键的数量可达行线数校键的数量可达行线数n乘以列线数乘以列线数m,如如4行、行、4列行列式键盘列行列式键盘的按键数可以达到的按键数可以达到4416个。由此可以看到行列式键盘在按键个。由此可以看到行列式键盘在按键较多时,可以节省较多时,可以节省IO口线。口线。第18页/共42页19独立式按键电路图独立式按键电路的结构和处理程序简单,扩展方便,但其占用的IO口线相对较多,不适合在按键数量较多的场合下采用。第19页/共42页20行列式键盘的电路原理图按键设置在行线和列线交点上,即按键开关的两端分别接在行线和列线上。行线通按键设置在行线和列线交点上,即按键开关的两端分别接在行线和列线上。行线通过一个电阻接到十过一个电阻接到十5 5V V电源上,在没有键按下时,行线处于高电平状态。电源上,在没有键按下时,行线处于高电平状态。判断是否有键按下的方法是:向所有的列线判断是否有键按下的方法是:向所有的列线I IO O口输出低电平,然后将行线的电平口输出低电平,然后将行线的电平状态读人累加器状态读人累加器A A中,若无键按下,行线仍保持高电平状态,若有键按下,行线至中,若无键按下,行线仍保持高电平状态,若有键按下,行线至少应有一条为低电平。少应有一条为低电平。行行列列第20页/共42页213.非编码键盘的工作方式非编码键盘的工作方式程序扫描方式程序扫描方式中断扫描方式中断扫描方式一般情况下,在单片机应用系统中,键盘处理只是一般情况下,在单片机应用系统中,键盘处理只是CUP工作的一部分。为了能及时发现有键按下,工作的一部分。为了能及时发现有键按下,CPU必须不断调用键盘处理程序,对键盘进行扫描,必须不断调用键盘处理程序,对键盘进行扫描,因此称为程序扫描方式。因此称为程序扫描方式。在程序扫描工作方式中,为了能及时响应键盘输入,在程序扫描工作方式中,为了能及时响应键盘输入,需要不停地对键盘进行扫描,即使没有键操作时,也需要不停地对键盘进行扫描,即使没有键操作时,也不能中断。这就浪费了大量不能中断。这就浪费了大量CPU宝贵的时间。为了提宝贵的时间。为了提高高CPU的效率,在电路中增加适当的电路,当有键闭的效率,在电路中增加适当的电路,当有键闭合时,产生中断请求信号。在中断服务子程序中进行合时,产生中断请求信号。在中断服务子程序中进行去抖动、求键码和处理重键等工作。去抖动、求键码和处理重键等工作。在单片机应用系统中,非编码键盘由在单片机应用系统中,非编码键盘由CPUCPU通过键盘处理程序完成整个工作过程。相对通过键盘处理程序完成整个工作过程。相对CPUCPU来言,按键闭合是随机发生的,键盘处理程序必须能够及时捕捉到闭合的键、并求来言,按键闭合是随机发生的,键盘处理程序必须能够及时捕捉到闭合的键、并求出其键码。按照这一过程的不同非编码键盘的工作方式可分为程序扫描方式和中断出其键码。按照这一过程的不同非编码键盘的工作方式可分为程序扫描方式和中断扫描方式。扫描方式。第21页/共42页22例-8031与非编码键盘的接口列PA07行PC03第22页/共42页23键盘处理程序编程要点判断有无键闭合消除键抖动求闭合键的键号判断闭合键有无释放若释放结束处理第23页/共42页24(1)判断有无键闭合判断键盘中有无键按下。由PA口输出00H,再将PC口的状态读入,若PC0一PC3全为1,说明无键按下,若不全为l则有键按下。第24页/共42页25(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第25页/共42页26(2)消除抖动消除抖动。当发现有键按下时,延时一段时间后再判断键盘的状态,若仍有键保持按下状态,则可断定有键按下,否则认为是抖动。第26页/共42页27(2)消除抖动的程序部分 LK1:ACALL TIM ACALL TIM ;延时;延时6ms ACALL KS1 ;判断有无键闭合;判断有无键闭合 JNZ LK2 ;(A)=0,有键闭合,转求键码,有键闭合,转求键码 ACALL TIM ;延时;延时6ms AJMP KEY1 ;非键闭合,返回;非键闭合,返回第27页/共42页28(3)求闭合键的键号从PA口依次输出下列扫描信号。每次输入扫描信号后,检查PC口的状态,若某一位为0,说明闭合的键在该行,即可确定闭合键的行和列。第28页/共42页29列PA07行PC03 例如例如PA口输出口输出11111011,从从PC口读入的状态为口读入的状态为1101.1 1 0 1 1 1 1 1PA21011PC1第29页/共42页30(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第30页/共42页31R4第31页/共42页32第32页/共42页338279键盘显示器接口芯片(P246)实现对键盘和显示器的自动扫描识别闭合键的键号完成显示器的动态扫描第33页/共42页348279引脚及逻辑符号第34页/共42页358279的内部结构第35页/共42页36工作原理由SL0SL3输出键盘和显示器的扫描线回复线RL0RL7作为键盘的列线以搜索闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。显示缓冲区(RAM)存放显示数据的段码,数据轮流从显示寄存器输出,在SL0SL3的配合下,实现动态显示。(OUTA和OUTB)第36页/共42页37接口方法控制线连接:、A0、IRQ、CLK及RESET信息交换:命令字、状态字(A0=1)和数据(A0=0);口地址的确定:由 A0确定出两个端口地址IRQ经反相器接INT0;CLK接时钟线(ALE)第37页/共42页38程序初始化写入清除命令字(清除FIFO和显示RAM)等待清除结束(100uS)(读状态字)置键盘/显示方式字设置外部时钟分频系数中断初始化(触发方式、开中断)第38页/共42页39显示子程序置写显示命令字指向显示缓冲区查表求出显示代码显示完毕返回第39页/共42页40键盘中断服务程序保护现场置读FIFORAM命令字(仅读一个单元)通过数据口读出键码恢复现场中断返回第40页/共42页41第41页/共42页42感谢您的观看。第42页/共42页