《单片机技术及 仿真与应用》-8_第1页
《单片机技术及 仿真与应用》-8_第2页
《单片机技术及 仿真与应用》-8_第3页
《单片机技术及 仿真与应用》-8_第4页
《单片机技术及 仿真与应用》-8_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

8.1键盘的工作原理及去抖通常,按键都是一个机械弹性开关,当触点断开或闭合时,都会产生一段电压不稳定信号,如图8.1所示。由于机械的弹性作用,一个按键闭合时,不会马上接通;断开时,也不会马上断开。开关与闭合时均会产生抖动,抖动的时间由机械特性决定,一般为5~10ms。为了确保CPU对按键的开启与闭合仅做一次处理,必须去抖。去抖有硬件和软件两种去抖方法。目前硬件去抖中,常使用一种简单的RC电路来抑制抖动电压。如果按键较多,常用软件方法去抖。软件去抖,是在程序中使用延时语句,避开抖动的那5~10ms,即可达到去抖效果。例如当按下按键的瞬间,执行下面delay20ms函数,delay20ms就是一个延时函数,从软件延迟角度达到了去抖效果。返回8.2独立键盘接口及程序实例独立键盘是指各按键相互独立地连接一条数据线,当任何一个键被按下时,与之相连的数据线即为0或1。这种键盘电路非常简单,但缺点是占用较多I/O线,易使I/O资源紧张。在键盘扫描程序“voidkey_scan()”中,“delay20ms()”是去抖延时,在确认按键被按下后,程序中还有“while(!K1);”语句,它的含义是等待按键释放,若按键没释放则程序停在本句,直到按键释放。若不加本句,进行按键释放检测,则由于单片机循环检测按键且速度非常快,当按下一个键时,单片机会在循环中多次检测到按键被按下,造成错误结果,因此要检测按键释放情况。返回8.3矩阵键盘扫描原理及实例分析为了节省I/O资源,引入矩阵键盘。以4×4键盘为例讲解矩阵键盘的工作原理和检测方法。如图8.3所示,4根行线Y0~Y3和4根列线X0~X3分别将16个按键的两端连接在一起,构成一个4×4矩阵键盘。4根行线和4根列线,正好8根线,连接到单片机的8个I/O口,通过一定的程序扫描就可以检测到这16个键,且设计出其键值。用这种方法,同样也可以实现3×3、3×4、5×5的矩阵键盘等。8.3.1低电平扫描原理采用列扫描方式,先将各行信号Y3~Y0送高电平,使其变成输入口。然后送各列X3~X0信号,只有一个为低电平信号,其余3个为高电平信号。整个过程按照列X3~X0的低电平信号扫描顺序进行,分为4个阶段。下一页返回8.3矩阵键盘扫描原理及实例分析第一阶段,判断X0列中是否有键被按下。做法是:先将Y3~Y0设置输入状态,同时将1110B送至X3~X0,然后读取Y3~Y0的值。(4)若Y3Y2Y1Y0为0111,代表按键K7被按下。第三、四阶段同第一、二阶段类似,具体见表8.1。若Y3Y2Y1Y0为1111,代表没有键被按下。8.3.2高电平扫描原理采用列扫描方式,同低电平扫描类似,只是高低电平信号取反(即0、1信号取反)。送各列X3~X0信号时,只有一个为高电平信号,其余3个为低电平信号。整个过程按照列X3~X0的高电平信号扫描顺序进行,分为4个阶段。上一页下一页返回8.3矩阵键盘扫描原理及实例分析第一阶段,判断X0列中是否有键被按下。做法是:先将Y3~Y0设置输入状态,同时将0001B送至X3~X0,然后读取Y3~Y0的值。第二阶段,判断X1列中是否有键被按下。做法是:先将Y3~Y0设置输入状态,同时将0010B送至X3~X0,然后读取Y3~Y0的值。(1)若Y3Y2Y1Y0为0001,代表按键K4被按下。158(2)若Y3Y2Y1Y0为0010,代表按键K5被按下。(3)若Y3Y2Y1Y0为0100,代表按键K6被按下。(4)若Y3Y2Y1Y0为1000,代表按键K7被按下。上一页下一页返回8.3矩阵键盘扫描原理及实例分析第三、四阶段同第一、二阶段类似,具体见表8.2。若Y3Y2Y1Y0为0000,表示没有键被按下。8.3.3基础实验———矩阵键盘的识别与显示以4×4键盘为例,介绍矩阵键盘的扫描原理和实际编程情况。一、实验目的(1)熟悉矩阵键盘的低电平行列扫描过程。(2)学习单片机I/O口扩展矩阵键盘的程序设计方法。(3)学习矩阵键盘的电路设计方法。二、实验要求上一页下一页返回8.3矩阵键盘扫描原理及实例分析用P3口扩展4×4矩阵键盘,键值分别为0~15(F),每当有键被按下时,读出键值并在数码管上显示。三、硬件电路硬件电路如图8.4所示。五、程序分析从图8.4可以看出,P3口的低4位P3.3~P3.0接矩阵键盘的行线,相当于Y3~Y0行;P3口的高4位P3.7~P3.4接矩阵键盘的列线,相当于X3~X0列。程序分析如下:上一页下一页返回8.3矩阵键盘扫描原理及实例分析(1)“ucharscan[4]={0xEF,0xDF,0xBF,0x7F};”表示数组存储了低电平扫描,依次给P3口的高4位X3~X0列分别送低电平信号时,将P3口的低4位设置成输入口的数值情况,其每个数值功能如表8.3所示。上一页返回8.4综合实验———秒表定时器的设计与实现一、实验目的(1)熟悉按键去抖的软件处理方法。(2)学习单片机定时资源和按键的综合应用。二、实验要求初始,秒表定时器不显示任何数字,K0是秒表定时器的启动/暂停键。当按键K0按下时,启动秒表,数码管每隔1秒加1;再按下K0时,秒表停止计数,数码管保持显示原有数据;再次按下K0时,秒表又继续刚才的数据进行计数,并显示到数码管。K1是秒表定时器的清零键,每次K1按下,秒表都清零重新计数。下一页返回8.4综合实验———秒表定时器的设计与实现三、硬件电路硬件电路如图8.5所示。四、程序流程图程序流程图如图8.6所示。上一页返回图8.1按键抖动信号示意图返回图8.2例8.1电路图返回图8.34×4矩阵键盘

温馨提示

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

评论

0/150

提交评论