单片机按键检测电路原理详解

在本次课程中,我将向大家介绍单片机的输入口的使用。
在这里,我以最简单的检测一个按键是否被按下为例来向大家介绍。
一、stc15w408as按键检测电路
下面是本例中按键检测的电路原理图,k1是一个按键,它接在单片机的p3.3口上,r2是一个与按键连接的上拉电阻。
二、按键检测原理
在本例中,按键与单片机的第14脚(p3.3引脚)相连。当按键没有按下时,p3.3的电平是高电平;当按键被按下时,按键将p3.3与地短接,此时p3.3的电平为低电平。
从分析可知,根据p3.3电平的变化状态,我们可以知道按键是否被按下。因此,我们只要检测p3.3电平的状态,就可以判断出按键的状态。
三、stc15w408as输入模式配置方法
为了让单片机能检测按键,我们必须将单片机的p3.3口设置为输入口,也就信号是从单片机外输入到单片机内。因此,必须将单片机的io口模式设置为输入模式。
如果要将stc15w408as的引脚配置成输入模式,只需修改pxm0和pxm1两个寄存器的值。下面是stc15的stc15w408as引脚的配置说明:
四、按键检测有关代码
下面是本例中,按键检测相关的代码:
#define pin_key p33#define pin_key_m1 p3m1#define pin_key_m0 p3m0#define pin_key_bit bit3#define getkey_high() pin_key==1void pinkey_dirin(void){ pin_key_m1 &=~pin_key_bit; pin_key_m0 &=~pin_key_bit;}五、本例中按键检测指示
为了显示按键的是否被按下,我们用上节课程中介绍的单片机点led的亮灭状态来表示按键的状态。当按键没被按下时,led不亮;当按键被按下时,led灯点亮。
请看下面代码:
pinkey_dirin(); //将按键所在的口设置为输入模式while(true){ if(getkey_high()) //如果检测到按键口是高电平 { pinled_high(); //则将led所在口置高,led不亮。 }else{ pinled_low(); //否则,将led所在口置低,led点亮 } }六、按键检测完整源程序
#define bit0 0x01#define bit1 0x02#define bit2 0x04#define bit3 0x08#define bit4 0x10#define bit5 0x20#define bit6 0x40#define bit7 0x80#define true 1#define false 0#define beep_on 1#define beep_off 0#define pin_led p32#define pin_led_m1 p3m1#define pin_led_m0 p3m0#define pin_led_bit bit2#define pinled_high() pin_led=1#define pinled_low() pin_led=0#define pin_key p33#define pin_key_m1 p3m1#define pin_key_m0 p3m0#define pin_key_bit bit3#define getkey_high() pin_key==1void pinkey_dirin(void);void pinled_dirout(void);void main(void){ pinled_dirout(); pinkey_dirin(); pinled_low(); while(true) { if(getkey_high()) { pinled_high(); }else{ pinled_low(); } }}void pinkey_dirin(void){ pin_key_m1 &=~pin_key_bit; pin_key_m0 &=~pin_key_bit; }void pinled_dirout(void){ pin_led_m1 &=~pin_led_bit; pin_led_m0 |=pin_led_bit; }

赭曲霉毒素检测仪的特点及参数介绍
2020年年底小米市值将正式突破6000亿港元
币安交易所未来的发展方向是怎样的
赛力斯华为智选SF5在新能源汽车市场中的优势是什么
世界上最先进的激光驱动器ATLS15A218
单片机按键检测电路原理详解
可定制PMIC如何简化电源管理系统设计
数控机床的常见故障排除方法
余压监控系统是什么,它应用于消防领域中的作用
Littelfuse公司推出SP3051-04HTG瞬态电压抑制二极管阵列
关于聚合物锂电池浆料干法混料工艺的分析
串口通讯(Serial Communication) 简介2
当设计物理层调制解调器时,如何满足AISG v3.0标准要求
2021年全球笔记本电脑出货量有望超2.17亿台
三星发布植物照明高光子效率全光谱LED器件
Synaptics展示不一样的触控技术
如何不使用AMBA的构建典型的 SRAM 存储器系统
波音将在今年决定是否研发797的计划为何又被拖了一年
您的数据得到保障了吗?备份与高可用性、灾难恢复对比
高通与荣耀即将接近达成供应合作