51单片机实现按键控制

目录

原理

实现

按键检测

按键检测函数

关于消抖

检测松开

延时

主函数

尾声


原理

在开发板上,按键如果一端连接的是电源,那么按键会持续给单片机对应的接口输入一个高电平,就是输入1,这时候如果按下按键,那么该接口的电平会被拉低,就是输入的是一个0。

如果按键的一端连接的是地线的话,就和接电源的相反,就是一直输入0,按键按下输入1。

关于按键的一端接的什么,可以看自己的开发板的电路分布图。vcc就是电源,gnd就是地线。

通过按键可以让接口的输入产生变化,这样我们就可以利用这个变化去进行按键对单片机的其他部分(led灯之类的)的控制。

实现

按键检测

在主函数里面利用死循环让单片机一直对按键进行检测,如果按下按键就进行特定的功能实现,我这里使用的名为aj的函数就是检测按键函数(我英语不好,所有命名基本上都是拼音QAQ)

while(1)//利用死循环进行检测是否有按键按下
		aj();

按键检测函数

通过编写按键检测函数从而在按键按下的时候达到特定功能

void aj(){
	if(key_1!=1) //如果按键按下,那么按键连接的接口电压会被拉低
	{
		delay(5);//消抖
		if(key_1!=1)//防止误触,如果是不小心按到了那么就不会触发
		{
			P1_1=~P1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值