#include
#include
#define uchar unsigned char
#define uint unsigned int
#define LONG_time 4 //定义长按设置键的时间
uchar Keycount; //设置按键时长计数器
uchar skpttime; //设置按键时长
uchar longflag; //设置长按标志
bit skpflag; //设置按键按下标志
sbit SETKEY =P2^0; //多功能按键(短按,长按)
sbit LED1 =P2^1;
sbit LED2 =P2^2;
void delay1ms(uchar ms)
{
while(ms--) //每循环一次,约延迟1ms
{
uchar i;
for(i=0;i<250;i++) //循环250次,在12M晶振时约延时1ms
{
_nop_(); //执行一条_nop_()指令为一个机器周期
_nop_();
_nop_();
_nop_();
}
}
}
本文介绍了如何在单片机中处理按键的短按和长按功能。通过设置按键时长计数器、长按标志和短按标志,实现对多功能设置按键的检测和处理。当检测到按键按下并超过预设时长时,会触发相应的长按或短按功能,如LED状态的改变。
最低0.47元/天 解锁文章
2302

被折叠的 条评论
为什么被折叠?



