第4章键盘和显示器的应用
在单片机应用系统中,键盘和显示器是非常重要的人机接口。人机接口是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。常用输入设备主要是键盘,常用输出设备包括发光二极管、数码管和液晶显示器等。
键盘输入
键盘用于实现单片机应用系统中的数据信息和控制命令的输入,按结构可分为编码键盘和非编码键盘。编码键盘上闭合键的识别由专用的硬件编码器实现,并产生相应的键码值,如计算机键盘。非编码键盘是通过软件的方法产生键码,不需要专用的硬件电路。为了减少电路的复杂程度,节省单片机的I/O口,在单片机应用系统中广泛使用非编码键盘,主要对象是各种按键或开关。这些按键或开关可以独立使用(称之为独立键盘),也可以组合使用(称之为矩阵式键盘)。
按键电路与按键抖动处理
按键电路连接方法非常简单,。此电路用于通过外力使按键瞬时接通开关的场合,如单片机的RESET电路中,通过按键产生一个瞬时的低电压,CPU感知这个低电压后重启。
按键复位电路
由于按键的闭合与断开都是利用其机械弹性实现的,当机械触点断开、闭合时,会产生抖动,这种抖动操作用户感觉不到,但对CPU来说,其输出波形则明显发生变化,。
按键开、闭时的电压抖动波形
按键按下和释放时的抖动时间一般为 10~20ms ,按键的稳定闭合期由操作用户的按键动作决定,一般为几百毫秒到几秒,而单片机CPU的处理速度在微
秒极,因此,按键的一次闭合,有可能导致CPU的多次响应。为了避免这种错误操作,必须对按键电路进行去抖动处理。常用的去抖动方法有硬件方式和软件方式两种。
使用硬件去抖动的方式,需要在按键连接的硬件设计上增加硬件去抖电路,比如将按键输出信号经过R-S 触发器或 RC 积分电路后再送入单片机,就可以保证按一次键只发出一个脉冲。
软件方式去抖动的基本原理是在软件中采用时间延迟,对按键进行两次测试确认,即在第一次检测到按键按下后,间隔 10ms左右,再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,这样就可以避开抖动时间段,消除抖动影响。同样,在按键释放时也采用相同方法。由于人的按键速度比单片机的运行速度要慢很多,所以,软件延时方法从技术上完全可行,而且经济上更加实惠,因此被广泛采用。
独立键盘检测
独立键盘是一种最简单的键盘,前面章节已经介绍过使用独立键盘的实例。独立按键的每个键单独占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O线的工作状态。
实例4-1 独立按键编号显示
任务要求:单片机端口连接3个按键,从1~3进行编号,如果其中一个按键按下时,则在LED数码管上显示相应的按键编号。
1)硬件电路设计
选取MSP430F249单片机的P1口连接数码管显示按键编号,、 、。。
独立键盘检测电路图
3个 I/O 口 、 、(输入方式),分别与 K1、K2、K3 三个按键连接。当按键断开时,I/O口的输入为高电平,按键闭合时,I/O口的输入为低电平。此3个引脚上接了上拉电阻,是为了保证按键断开时逻辑电平为高。
2)程序设计
按键闭合时,与该键相连的I/O 引脚为低电平;按键断开时,与该键相连的I/O 引脚为高电平。、 、,便可检测按键是否按下。另外,在有按键按下时,要有一定的延时,以防止由于键盘抖动而引起误操作。当确认某按键按下后,就让数码管显示其按键编号。
#include ""
unsigned char const table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管段选码表,无小数点
void delayus(unsigned int t)
{
unsigned int i;
while(t--)
for(i=1330;i>0;i--);
}
unsigned char ReadKey(void)
{
unsigned char temp;
temp= P3IN&0x07;
if(temp!= 0x07)
{
delayus(10); //等待按键抖动时间
if(temp == (P3IN&0x07 ))
{
return temp;
}
else
re
MSP430按键输入和led点阵显示 来自淘豆网m.daumloan.com转载请标明出处.