按键输入实验

按键输入实验

ID:37653290

大小:315.72 KB

页数:8页

时间:2019-05-27

按键输入实验_第1页
按键输入实验_第2页
按键输入实验_第3页
按键输入实验_第4页
按键输入实验_第5页
资源描述:

《按键输入实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、7.1按键检测实验7.1.1单片机检测小弹性按键的原理单片机检测按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该O口是否变为低电平,当按键闭合肘,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。去抖概念:(分为软件去抖和硬件去抖)按键是机械器件,按下或者松开时有固定的机械抖动。什么是机械抖动?通常的按键开关为机械弹性开关,由于机械触点

2、的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到;实际上只进行一次按键操作,但有可能执行了多次按键结果,这就是抖动造成的,所以大多数产品实际使用中都使用了按键去抖功能。按键的连接方法和按键在被按下时其触点电压变化过程下图:这个抖动时间虽然很短,不同按键抖动不同,但对应单片机来说,很轻松就能检测到,单片机的运行的速度是微秒us级别。用示波器跟踪一个小的按钮开关在闭合时的抖动现象,得到

3、如下图的波形。观察波形可以帮助我们对抖动现象有一个直观的了解。水平轴2ms/DIII,抖动间隙大约为10ms,在达到稳定状态前一共有6次变化,频率随时间升高。硬件去抖最简单的就是按键两端并联电容,容量根据实验而定。当然也有专用的去抖动芯片。软件去抖使用方便不增加硬件成本,容易调试,所以现在大都使用软件去抖。关于软件去抖,我们在这里也详细讲解一下原理:1、检测到按键按下后进行5~10ms延时,用于跳过这个抖动区域2、延时后再检测按键状态,如果没有按下表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下。并进行对应的操作。3、同样按键释放后也要进行去抖延

4、时,延时后检测按键是否真正松开。7.1.2GPIO的8种工作模式在初始化GPIO的时候,根据我们的使用要求,必须把GPIO设置为相应的模式。如LED例程中的GPIO引脚如果配置为模拟输入模式是必然会导致错误的。我们配合GPIO结构图,来看看GPIO的8种模式及其应用场合:图的最右端为I/O引脚,左端的器件位于芯片内部。I/O引脚并联了两个用于保护的二极管。本图从ST提供的参考手册截取。●四种输入模式结构图的上半部分为输入模式结构。接下来就遇到了两个开关和电阻,与VDD相连的为上拉电阻,与VSS相连的为下拉电阻。再连接到施密特触发器就把电压信号转化为0、1的

5、数字信号存储在输入数据寄存器(IDR)。我们可以通过设置配置寄存器(CRL、CRH),控制这两个开关,于是就可以得到GPIO的上拉输入(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD)了。从它的结构我们就可以理解,若GPIO引脚配置为上拉输入模式,在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。而下拉模式则相反,在默认状态下其引脚数据为0,低电平。而STM32的浮空输入模式(GPIO_Mode_IN_FLOATING)在芯片内部既没有接上拉,也没有接下拉电阻,经由触发器输入。配置成这个模式直接用电压表测量其

6、引脚电压为1点几伏,这是个不确定值。由于其输入阻抗较大,一般把这种模式用于标准的通讯协议如I2C、USART的接收端。模拟输入模式(GPIO_Mode_AIN)则关闭了施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。如传送至给ADC模块,由ADC采集电压信号。所以使用ADC外设的时候,必须设置为模拟输入模式。●四种输出模式结构图的下半部分为输出模式结构。线路经过一个由P-MOS和N-MOS管组成的单元电路。而所谓推挽输出模式,则是根据其工作方式来命名的。在输出高电平时,P-MOS导通,低电平时,N-MOS管导通。两个管子轮流导通,

7、一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的供电平为0伏,高电平为3.3伏。在开漏输出模式时,如果我们控制输出为0,低电平,则使N-MOS管导通,使输出接地,若控制输出为1(无法直接输出高电平),则既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须在外部接上一个上拉电阻。它具“线与”特性,即很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平,0伏。STM

8、32的GPIO输出模式就分为普通推挽输出(GPIO_Mode_Ou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。