《单片机技术及 仿真与应用》_8.pptVIP

  • 0
  • 0
  • 约2.79千字
  • 约 20页
  • 2026-01-29 发布于广东
  • 举报

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),每当有键被按下时,读出键值并在数码管上显示。三、硬件电路硬件电路如图

文档评论(0)

1亿VIP精品文档

相关文档