工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->光电电路图->其他光电实用电路图->按键及数码管显示实验

按键及数码管显示实验

作者:dolphin时间:2012-11-13

按键及数码管显示
一、实验目的
按键是单片机常用的输入设备,操作人员可以通过按键输入指令和数据。在使用按键
是单片机要正确识别按键是否被按下和按下的次数等状态,才能正确执行相关操作。本实
验要实现对按键状态的正确检测并显示相关内容。本实验的知识要点:
1.复习显示、延时等程序,延时程序在按键程序中的使用。
2.掌握查表、I/O 口状态的判断及按键去抖动的处理方法。
二、实验预备知识
1.单片机输入端口的处理
按键用于向单片机输入信号,因此按键所接的I/O 口工作于输入状态。单片机的I/O
要作为输入端使用,必须先把该端口置“1”,否则会导致输入实效,甚至损坏单片机I/O
口。
2.按键去抖动
按键是操作人员向单片机系统输入指令的基本元件,在单片机、计算机系统中广泛使
用。机械式按键靠机械触点的接触与断开产生信号,在单片机系统中广泛应用,本实验中
采用的就是机械式按键。如下图所示,由于机械式按键在接通和断开时会产生抖动现象,
因此在按一次按键时会产生多个脉冲信号。如果不进行任何处理,则按一次按键,会使单
片机认为按了多次按键,从而产生错误的结果。

a 理想波形 b 实际的按键波形
图3-3 按键闭和、断开时的波形
要使单片机正确识别按键的信息就必须进行去抖动处理。去抖动要进行软件和硬件的
处理,图3-1 中的电容C1~C4 并联在按键两端,是一种简单的硬件去抖动措施,用单稳态
电路可以得到更好的去抖动效果。在实际运用中,光靠硬件去抖动很难满足要求,还需通
过软件进行处理。
软件去抖动处理一般采用延时和边沿检测两种方法,延时去抖动程序实例如下:

LOOP: JB P1.0 ,$ ;P1.0 接按键,如果按键没有按下。
LCALL DELAY ;检测到低电平延时一段时间再检测,调延时程序。
JB P1.0 ,LOOP ;如果还是低电平,确认按键按下,否则返回重新检测。
;执行按键按下后应执行的程序。
……
在该程序中,通过延时避开按键在闭合瞬间的抖动现象。在该方式中,延时时间的长
短是去抖动效果的关键因素,延时时间太短则会出现按一次执行多次操作的现象,延时时
间长则会导致有时快速按按键无效的情况。
2.查表程序
查表是单片机常用的一种数据处理方式,查表指令有固定的格式,具体如下:
① 建立数表
把被查的数据按特定顺序和一定的格式写在一起,并在数表前写一个标号。数表一般
放置在程序的结束处,如果不放置在程序结束处,则在程序中必须用跳转指令跳过数表。
数表的具体例子见实验程序中的数表TAB。
② 把数表的首地址赋给数据指针DPTR。
③ 把需查表的数据赋给累加器A
④ 执行查表指令MOVC A ,@A+DPTR,查表结果在累加器A 中。
另外,还可以用MOVC A ,@A+PC 查表。
三、实验内容
1.硬件连接
本实验仍然使用按键显示模块,连接方法与前面实验相同。
2.程序补充并调试
以下程序是用按键控制显示,每按一下,显示的内容加1,从0 开始,加到9 后又回
到0,循环显示。程序空缺部分根据注释文字和程序功能由实验者添加,后运行该程序,
直到达到要求为止。程序如下:
ORG 0000H
SJMP MAIN
;程序从0030H 单元存放
MAIN: MOV R0 , #00H
CLR P3.5
LOOP: ;把数表的首地址赋给DPTR
MOV A , R0
MOVC A , @A+DPTR ;查段码表
MOV P0 , A
TEST: JB P1.1 , $ ;判断按键是否按下
LCALL DELAY
JB P1.1 , TEST
;R0 的内容加1

CJNER0 , #10 , NEXT ;判断R0 的内容是否到10
MOV R0 , #00H ;R0 清零
NEXT: ;无条件跳转到LOOP 处
DELAY:MOV R4 , #01H
DEL1: MOV R3,#200
DEL2:MOV R2,#123
DEL3:DJNZ R2,DEL3
DJNZ R3,DEL2
DJNZ R4,DEL1
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
DB 90H,88H,83H,0C6H,0A1H,86H,8EH
END
3.修改程序
在调试好程序后,修改程序,要求每按下一次按键,显示内容加1,实现显示0~F。
四、思考题
1.R0 在程序中起何作用?
2.如何提高按键检测程序的可靠性?
3.单片机I/O 口作为输入口使用时,为什么先必须置“1”?
五、扩展内容
1.编写程序,实现每按一次案件显示内容加2,显示范围0~F。
2.根据按键电路,按键在按下时会产生下降沿,而按键弹起时会产生上升沿,用检
测按键按下和弹起时的下降沿河上升沿的方法检测按键会更可靠。编写程序,用这种方法
检测按键是否按下。

……
SETB P1.0 ;把P1.0 置1 作为输入端。


关键词: 按键及数码管显示实验 电路图

最新电路

评论

技术专区