如何利用89C51单片机与8279实现键盘接口电路显示_第1页
如何利用89C51单片机与8279实现键盘接口电路显示_第2页
如何利用89C51单片机与8279实现键盘接口电路显示_第3页
如何利用89C51单片机与8279实现键盘接口电路显示_第4页
如何利用89C51单片机与8279实现键盘接口电路显示_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、如何利用89C51单片机与8279实现键盘接口电路显示匸悬赏分:30-提问时间2008-5-2416:12问题为何被关闭因为最大长度为10000mm。因此,显示器的最小位数应为五位,且用2*8的键盘,另还有7407驱动器以及译码器最好用两片等器件连接而成,如谁有这方面的请发到我邮箱内:*提问者:dzxxkxyjsh-助理二级答复共1条第六章单片机接口技术应用在设计各种单片机应用系统中,还需扩展很多外部接口器件才能充分发挥单片机的智能控制功能。如扩展键盘与显示器件接口,可实现人机对话功能;扩展A/D转换接口,可实现对外部各种模拟信号的检测与转换;扩展D/A转换接口可将数字信号转换为模拟信号,从而

2、完成对控制对象的驱动。本章将主要介绍常见的键盘、显示(LED、LCD)、A/D和D/A转换接口电路。第一节键盘接口电路键盘是计算机最常用的输入设备,是实现人机对话的纽带。按其结构形式可分为非编码键盘和编码键盘。编码键盘采用硬件方法产生键码。每按下一个键,键盘能自动生成键盘代码,键数较多,且具有去抖动功能。这种键盘使用方便,但硬件较复杂,PC机所用键盘即为编码键盘。非编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广泛应用于各种单片机应用系统,本书主要介绍非编码键盘的设计与应用。一、独立式键盘按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。独立式键盘相互独立

3、,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态。这种按键软件程序简单,但占用I/O口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。图6-1为4个独立式按键的应用电路。其键盘程序如下:1.键闭合测试,检查是否有键闭合KCS:MOVP1,#0FFHMOVA,P1CPLAANLA,#0FHRET若有键闭合,则(AMO),若无键闭合,则(A=0)。2去抖动当测试到有键闭合后,需进行去抖动处理。由于按键闭合时的机械弹性作用,按键闭合时不会马上稳定接通,按键断开时也不会马上断开,由此在按键闭合与断开的瞬间会出现电压抖动,如图6-2所示。键盘抖动的时

4、间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。通过去抖动处理,可以得到按键闭合与断开的稳定状态。去抖动的方法有硬件与软件两种:硬件方法是加去抖动电路,如可通过RS触发器实现硬件去抖动;软件方法是在第一次检测到键盘按下后,执行一段10ms的延迟子程序后再确认该键是否确实按下,躲过抖动,待信号稳定之后,再进行键扫描。通常多采用软件方法。3采用查询方式确定键位如图可见,若某键闭合则相应单片机引脚输入低电平。4键释放测试键盘闭合一次只能进行一次键功能操作,因此必须等待按键释放后再进行键功能操作,否则按键闭合一次系统会连续多次重复相同

5、的键操作。(对于开关式按键,可不必等待键释放)程序如下:KEY:ACALLKCS;检查有键闭合否JZRETURN;无键闭合则返回ACALLDELAY;有键闭合,延时12ms消抖动KEY0:JNBACC.0,KEY1;不是0号键,查下一键KSF0:ACALLDELAY;是0号键,调延时等待键释放ACALLKCS;检查键释放否JNZKSF0;没释放等待ACALLFUN0;若键已释放,执行0号键功能JMPRETURN;返回KEY1:JNBACC.1,KEY2;检测1号键KSF1:ACALLDELAYACALLKCSJNZKSF1ACALLFUN1KEY3:JNBACC.3,RETURN;检测3号键K

6、SF3:ACALLDELAYACALLKCSJNZKSF3ACALLFUN3RETURN:RET;子程序返回二、矩阵式键盘矩阵式键盘又称行列式键盘,见图6-3。图中,P1口的8根口线分别作为4根行线与4根列线,在其行、列交汇点接有16个键盘。与独立式键盘相比,单片机口线资源利用率提高了一倍。但若需要更多的键盘,需采用接口扩展的方式,见图6-4。图中利用8155芯片进行键盘扩展,利用PA口作为输出口,8根口线作为列线,利用PC口作为输入口,4根口线作为行线,由此产生32键的矩阵式键盘。这种键盘采用扫描方式检测按键闭合情况及识别确定键码,因此称扫描方式键盘。(一)扫描方式键盘工作原理图6-432键

7、矩阵式键盘应用电路1键闭合测试图6-4中,键盘的行线一端经电阻接+5V电源,另一端通过8155PC口送单片机。各列线的一端通过8155PA口连至单片机,另一端悬空。首先由PA口向所有列线输出低电平,然后再由PC口输入各行线状态。若行线状态皆为高电平,则表示无键闭合;若行线状态中有低电平则表明有键闭合。设8155A口地址为0101H,C口地址为0103H,键闭合测试子程序KCS如下:KCS:MOVDPTR,#0101HMOVA,#00HMOVXDPTR,AINCDPTRINCDPTRMOVA,DPTRCPLAANLA,#0FHRET该程序功能是检查是否有键闭合2去抖动;送A口地址;A口送00H;

8、建立C口地址;读C口;A取反,无键闭合则全为0;屏蔽A高半字节若有键闭合则(A)MO,否则(A)=0。仍采用软件延时的方法。3键位识别为了准确判断闭合键的位置,要对每个按键进行编码。根据矩阵式键盘的结构,采用行扫描的键位识别方法。使某条列线为低电平,如果这条列线上没有闭合键,则各行线的状态都为高电平;如果列线上有键闭合,则相应的那条行线即变为低电平。于是就可以根据行线号与列线号计算出闭合键的键码。扫描时由第一列开始,即由PA口先输出0FEH,然后由PC口输入行线状态,判断哪一行有键闭合,若无键闭合,再输出0FDH检测下一列各行键闭合状态,由此一直扫描下去。根据图6-4中各键的编号情况,各键的键

9、码可按如下公式计算:键码=行首键号+列号4键释放测试(二)键盘扫描程序EKY:ACALLKCS;检查有键闭合否JNZLK1;有键按下则转移至消抖动AJMPKEY;无键按下则返回LK1:ACALLDELAY;12ms延时消抖动ACALLKCS再查有键闭合否JZKEY;有键闭合则进行键扫描计算键码MOVR2,#0FEH;置第一列扫描值MOVR4,#00H;置初始列号XYL:MOVDPTR,#0101H;建立A口地址MOVA,R2MOVXDPTR,A;输出扫描初值INCDPTRINCDPTR;建立C口地址MOVXA,DPTR;读C口JBACC.0,LINE1;第一行无键闭合,转查第二行MOVA,#0

10、0H;第一行有键闭全,置第一行首键值AJMPKJS;转到计算键码LINE1:JBACC.1,LINE2;第二行无键闭合,转查第三行MOVAJMPA,#08HKJS;第二行有键闭全,置第二行首键值;转到计算键码LINE2:JBACC.2,LINE3第三行无键闭合,转查第四行MOVA,#10H;第三行有键闭全,置第三行首键值AJMPKJS;转到计算键码LINE3:JBACC.3,NEXT;第四行无键闭全,转查下一列MOVA,#18H;第四行有键闭全,置第四行首键值KJS:ADDA,R4计算键码PUSHACC;保存键码KSF:ACALLDELAYACALLKCS;键释放否,若仍闭合则延时等待JNZK

11、SFPOPACC;若键已释放,则键码送ARETNEXT:INCR4;列扫描号加1MOVA,R2JNBACC.7,KEY;第8列已扫描完则进行下一循环扫描RLA;置下一列列扫描值MOVR2,AAJMPXYL;扫描下一列此程序执行后,键码保存在累加器A中。主程序可根据累加器A中的键码执行相应的功能程序。(三)键盘扫描的中断控制方式在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU处理自已的工作,当有键闭合时,产生中断请

12、求,CPU转去执行键盘扫描子程序并执行相应的功能。图6-5即为采用中断方式的键盘扫描电路。与图6-3相比,本电路采用4输入与门用于产生键盘中断,其输入端与各行线相连,输出端接至8031的外部中断输入端。当无键盘闭合时,与门各输入端均为高电平,输出端为高电平;当有键闭合时,为低电平,于是向CPU申请中断。若CPU开放中断,则会响应该键盘中断,转去执行键盘扫描子程序。第二节LED显示接口电路一、LED显示器LED(LightEmittingDiode)显示器是由发光二极管作为显示字段的数码型显示器件,具有显示清晰、成本低廉、配置灵活、与单片机接口简单易行的特点,在单片机应用系统中得到了广泛的应用。

13、1LED显示器结构与分类LED显示器内部由7段发光二极管组成,因此亦称之为七段LED显示器,由于主要用于显示各种数字符号,故又称之为LED数码管。每个显示器还有一个圆点型发光二极管(用符号DP表示),用于显示小数点,图6-6为LED显示器的符号与引脚图。根据其内部结构LED显示器可分为共阴极与共阳极两种LED显示器,见图6-7所示。(a)共阴极结构(b)共阳极结构图6-6LED显示器的符号与引脚图图6-7LED显示器内部结构图共阴极LED显示器。图6-7(a)为共阴极LED显示器的内部结构。图中各二极管的阴极连在一起,公共端接低电平时,若某段阳极加上高电平则该段发光二极管就导通发光,而输入低电

14、平的段则不发光。共阳极LED显示器。图6-7(b)为共阳极LED显示器的内部结构。图中各二极管的阳极连在一起,公共端接高电平时,若某段阴极加上低电平则该段发光二极管就导通发光,而输入高电平的段则不发光。LED数码管通常有红色、绿色、黄色三种,以红色应用最多。由于二极管的发光材料不同,数码管有高亮与普亮之分,应用时根据数码管的规格与显示方式等决定是否加驱动电路。2LED显示器的段码7段LED显示器可采用硬件译码与软件译码两种方式。在数字电路中曾介绍硬件译码显示方法,如利用74LS47等实现译码显示,这里主要介绍软件方式实现译码显示。加在显示器上对应各种显示字符的二进制数据称为段码。数码管中,七段

15、发光二极管加上一个小数点位共计8段,因此段码为8位二进制数,即一个字节。由于点亮方式不同,共阴与共阳两种LED数码管的段码是不同的,详见表6-1。表6-1LED数码管段码表字型共阳极段码共阴极段码字型共阳极段码共阴极段码0C0H3FH990H6FHF9H06HA88H77HA4H5BHB83H7CHB0H4FHCC6H39H99H66HDA1H5EH92H6DHE86H79H82H7DHF8EH71HF8H07H灭FFH00H80H7FH二、LED并行显示技术1利用8155做LED显示器并行接口电路在单片机应用系统中,通常具有多位LED显示器,在编程时采用动态显示方式。所谓动态显示是指利用单片

16、机控制显示器逐位点亮,而不是同时点亮。由于人眼的视觉残留效应,仍然感觉显示器是同时点亮的,但要求显示器动态点亮的速度应足够快,否则会有闪烁感。图6-8利用8155芯片扩展6位LED显示器在实现动态显示时,除了必须给各位数码管提供段码外还必须对各位显示器进行位的控制,即进行段控与位控。工作时,各位数码管的段控线对应并联在一起,由一个8位的I/O口控制;各位的位控线(公共阳极或阴极)由另一I/O控制。在某一时刻只选通一位数码管,并送出相应的段码。图6-8为利用8155扩展6位LED显示器接口电路。利用8155PC口作为位控输出口。7路达林顿反向驱动输出芯片MC1413作为位控驱动;利用8155PA

17、口作为段控输出口,输出8位段码。为增加显示亮度,采用双向驱动芯片74LS245进行段码输出驱动。2建立显示缓冲区显示缓冲区是指在内存中开辟的一块存储区域,专门用于存放待显示的数据,存储区域大小至少应与LED数码管位数相同。设显示缓存单元为30H35H,显示内容自右至左为为1、2、3、4、5、6,则缓存与LED数码管对应关系如下表所示:数码管LED5LED4LED3LED2LED1LED0缓存单元35H34H33H32H31H30H显示数据06H05H04H03H02H01H3、显示子程序设计设8155A口地址(即段控口)为0101H,C口地址为0103H。寄存器R0作为地址指针,寄存器R3存放

18、当前位控值,DELAY为延时子程序,延时时间大约为1ms。程序如下:DISPLAY:MOVR0,#30HMOVR3,#01HMOVA,R3LD0:MOVDPTR,#0103H;建立显示缓冲区首址;从右边第一位数码管开始显示;置位控码初值;置位控口地址MOVXDPTR,A;输出位控码MOVDPTR,#0101H;置段控口地址MOVA,R0;取待显示数据DIS0:ADDA,#0DH;计算查表偏移量MOVCA,R0;查表法得到对应段码DIS1:MOVXDPTR,A;输出段码ACALLDELAY;延时以使显示器作显示停留INCR0;指向下一缓冲单元MOVA,R3JBACC.5,DIS1;最后位显示完了吗,完则返回RLAMOVR3,AAJMPDIS0;修改位控码,指向高位;位控码送R3保存;继续显示下一位LD1:RETTAB:DB3FH,06H,5BH,4FH00H;段码表三、串行LED显示技术在单片机系统设计中,LED显示方式由于具有使用方便、价格低廉等优点而得到广泛应用。在采用并行显示方式时,显示电路的段码与位控码要占用单片机的较多口线,尽管可采用8155等接口芯片进行扩展,但口线利用率仍较低,不能满足大型控制系统的要求。采用串行显示方式则只需占用2至3根口线,节约单片机大量的I/O线,且使用效果很好。下面介绍一种基于74HC595A的LED串行显

温馨提示

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

评论

0/150

提交评论