单片机键盘显示

上传人:ni****g 文档编号:494083959 上传时间:2022-08-11 格式:DOCX 页数:44 大小:581.65KB
返回 下载 相关 举报
单片机键盘显示_第1页
第1页 / 共44页
单片机键盘显示_第2页
第2页 / 共44页
单片机键盘显示_第3页
第3页 / 共44页
单片机键盘显示_第4页
第4页 / 共44页
单片机键盘显示_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《单片机键盘显示》由会员分享,可在线阅读,更多相关《单片机键盘显示(44页珍藏版)》请在金锄头文库上搜索。

1、第六章 单片机接口技术应用在设计各种单片机应用系统中,还需扩展很多外部接口器件才能充分发挥单片机的智能 控制功能。如扩展键盘与显示器件接口,可实现人机对话功能;扩展 A/D 转换接口,可实 现对外部各种模拟信号的检测与转换;扩展 D/A 转换接口可将数字信号转换为模拟信号, 从而完成对控制对象的驱动。本章将主要介绍常见的键盘、显示(LED、LCD)、A/D和D/A 转换接口电路。第一节 键盘接口电路 键盘是计算机最常用的输入设备,是实现人机对话的纽带。按其结构形式可分为非编码 键盘和编码键盘。编码键盘采用硬件方法产生键码。每按下一个键,键盘能自动生成键盘代码,键数较多, 且具有去抖动功能。这种

2、键盘使用方便,但硬件较复杂,PC机所用键盘即为编码键盘。非 编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广 泛应用于各种单片机应用系统,本书主要介绍非编码键盘的设计与应用。一、独立式键盘按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。独立式键盘相互独立, 每个按键占用一根I/O 口线,每根I/O 口线上的按键工作状态不会影响其他按键的工作状态。 这种按键软件程序简单,但占用I/O 口线较多(一根口线只能接一个键),适用于键盘应用 数量较少的系统中。图 6-1 为 4 个独立式按键的应用电路。其键盘程序如下:8031P1.0P1.1P1.2P1.3y4*

3、 5ViokioKLioKjok1o0 S2O0S3.C0GND_图6-1独立式键盘应用电路1键闭合测试,检查是否有键闭合KCS:MOV P1, #0FFHMOVA,P1CPLAANLA,#0FHRET若有键闭合,则(AHO),若无键闭合,则( A=0)。2去抖动当测试到有键闭合后,需进行去抖动处理。由于按键闭合时的机械弹性作用,按键 闭合时不会马上稳定接通,按键断开时也不 会马上断开,由此在按键闭合与断开的瞬间 会出现电压抖动,如图6-2所示。键盘抖动的时间一般为510ms,抖动现象会引起CPU 对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。通过 去抖动处理,可

4、以得到按键闭合与断开的稳定状态。去抖动的方法有硬件与软件两种:硬件前沿抖动键盘稳定后沿抖动图6-2键抖动示意图方法是加去抖动电路,如可通过 RS 触发器实现 硬件去抖动;软件方法是在第一次检测到键盘按 下后,执行一段10ms的延迟子程序后再确认该 键是否确实按下,躲过抖动,待信号稳定之后, 再进行键扫描。通常多采用软件方法。3.采用査询方式确定键位如图可见,若某键闭合则相应单片机引脚输入低电平。4键释放测试键盘闭合一次只能进行一次键功能操作,因此必须等待按键释放后再进行键功能操作, 否则按键闭合一次系统会连续多次重复相同的键操作。(对于开关式按键,可不必等待键释 放)。程序如下:KEY:ACA

5、LL KCSJZ RETURN ACALL DELAYKEY0:JNBACC.0,KEY1KSF0: ACALL DELAYACALL KCSJNZ KSF0ACALL FUN0JMP RETURNKEY1: JNB ACC.1,KEY2KSF1: ACALL DELAY ACALL KCS JNZ KSF1 ACALL FUN1;检查有键闭合否;无键闭合则返回;有键闭合,延时12ms消抖动;不是 0 号键,查下一键;是0 号键,调延时等待键释放 ;检查键释放否;没释放等待;若键已释放,执行 0 号键功能 ;返回;检测 1 号键KEY3:JNBACC.3, RETURN ;检测3 号键KSF3

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

7、方式键盘工作原理8155PA7PA68031PA5P2.7CEPA4P2.0IO/MPA3WRWRPA2RDRDPA1ALEALEPA0P0AD7-0PC0PC1PC2PC310K *4+5V图 6-4 32 键矩阵式键盘应用电路1键闭合测试图6-4中,键盘的行线一端经电阻接+5V电源,另一端通过8155 PC 口送单片机。各列 线的一端通过8155PA 口连至单片机,另一端悬空。首先由PA 口向所有列线输出低电平, 然后再由 PC 口输入各行线状态。若行线状态皆为高电平,则表示无键闭合;若行线状态中 有低电平则表明有键闭合。设8155A 口地址为0101H,C 口地址为0103H,键闭合测试

8、子程序KCS如下:;送 A 口地址;A 口送 00H;建立C 口地址;读C 口; A 取反,无键闭合则全为 0;屏蔽 A 高半字节若有键闭合则(A)工0,否则(A)=0。KCS:MOV DPTR,#0101H MOV A,#00H MOVX DPTR,A INC DPTR INC DPTR MOV A,DPTRCPL AANL A,#0FHRET该程序功能是检查是否有键闭合2去抖动 仍采用软件延时的方法。3键位识别为了准确判断闭合键的位置,要对每个按键进行编码。根据矩阵式键盘的结构,采用行扫描的键位识别方法。使某条列线为低电平,如果这条列线上没有闭合键,则各行线的状态都为高电平;如果列线上有键

9、闭合,则相应的那条行线即变为低电平。于是就可以根据行线号与列线号计算出闭合键的键码。扫描时由第一列开始,即由PA 口先输出0FEH,然后由PC 口输入行线状态,判断哪一行有键闭合,若无键闭合,再输出0FDH检测下一列各行键闭合状态,由此一直扫描下去。根据图 6-4 中各键的编号情况,各键的键码可按如下公式计算 键码 = 行首键号+列号4键释放测试(二)键盘扫描程序EKY:ACALLKCS;检查有键闭合否JNZLK1;有键按下则转移至消抖动AJMPKEY;无键按下则返回LK1:ACALL DELAY;12ms 延时消抖动ACALL KCS;再查有键闭合否JZKEY;有键闭合则进行键扫描计算键码M

10、OVR2,#0FEH;置第一列扫描值MOVR4,#00H;置初始列号XYL:MOVDPTR,#0101H;建立A 口地址MOVA,R2MOVXDPTR,A;输出扫描初值INCDPTRINCDPTR;建立C 口地址MOVXA,DPTR;读C 口JBACC.0,LINE1;第一行无键闭合,转查第二行MOVA,#00H;第一行有键闭全,置第一行首键值AJMPKJS;转到计算键码LINE1: JBACC.1,LINE2;第二行无键闭合,转查第三行MOVA,#08H;第二行有键闭全,置第二行首键值AJMPKJS;转到计算键码LINE2: JBACC.2,LINE3;第三行无键闭合,转查第四行MOVA,#

11、10H;第三行有键闭全,置第三行首键值AJMPKJS;转到计算键码LINE3: JBACC.3,NEXT;第四行无键闭全,转查下一列MOVA,#18H;第四行有键闭全,置第四行首键值KJS:ADDA,R4;计算键码PUSHACC;保存键码KSF:ACALL DELAYACALL KCS;键释放否,若仍闭合则延时等待JNZKSFPOPACC;若键已释放,则键码送 ARETNEXT: INCR4;列扫描号加 1MOVA,R2JNBACC.7,KEY;第8 列已扫描完则进行下一循环扫描RLA;置下一列列扫描值MOVR2,AAJMPXYL;扫描下一列此程序执行后,键码保存在累加器A中。主程序可根据累加

12、器A中的键码执行相应的 功能程序。(三)键盘扫描的中断控制方式在单片机系统中, CPU 除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键 盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU处理自已 的工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。图 6-5 即为采用中断方式的键 盘扫描电路。与图 6-3 相比,本电路 采用 4输入与门用于产生键盘中断 其输入端与各行线相连,输出端接 至8031的外部中断输入端into。当 无键盘闭合时,与门各输入端均

13、为 高电平,输出端为高电平;当有键 闭合时,INTO为低电平,于是向cpu 申请中断。若 CPU 开放中断,则会 响应该键盘中断,转去执行键盘扫 描子程序。第二节 LED 显示接口电路一、LED显示器L ED ( Light Emitting Diode )显示器是由发光二极管作为显示字段的数码型显示器件, 具有显示清晰、成本低廉、配置灵活、与单片机接口简单易行的特点,在单片机应用系统中 得到了广泛的应用。1. LED显示器结构与分类dd(a)共阴极结构(b) 共阳极结构图 6-6 LED 显示器的符号与引脚图图 6-7 LED 显示器内部结构图LED显示器内部由7段发光二极管组成,因此亦称之

14、为七段LED显示器,由于主要用于 显示各种数字符号,故又称之为LED数码管。每个显示器还有一个圆点型发光二极管(用符 号DP表示),用于显示小数点,图6-6为LED显示器的符号与引脚图。根据其内部结构, LED显示器可分为共阴极与共阳极两种LED显示器,见图6-7所示。(1)共阴极LED显示器。图6-7(a)为共阴极LED显示器的内部结构。图中各二极管 的阴极连在一起,公共端接低电平时,若某段阳极加上高电平则该段发光二极管就导通发光,而输入低电平的段则不发光。(2)共阳极LED显示器。图6-7(b)为共阳极LED显示器的内部结构。图中各二极管 的阳极连在一起,公共端接高电平时,若某段阴极加上低电平则该段发光二极管就导通发光, 而输入高电平的段则不发光。LED 数码管通常有红色、绿色、黄色三种,以红色应用最多。由于二极管的发光材料 不同,数码管有高亮与普亮之分,应用时根据数码管的规格与显示方式等决定是否加驱动电 路。2. LED显示器的段码7 段 LED 显示器可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号