【20分钟单片机】D25-单击和双击-【20分钟单片机】D25-单击和双击

AID:
CID:
视频图片:
作者头像:
弹幕地址:
视频描述:

热门回复:

  • 新加坡大雄:当然可以!以下是一个基于51单片机的按键单击和双击检测程序: scss Copy code #include <reg51.h> // 包含51单片机的头文件 sbit key = P2^0; // 定义key变量,用于读取P2^0的状态 bit key_pressed = 0; // 定义按键按下标志位,初值为0 bit double_click = 0; // 定义双击标志位,初值为0 unsigned int click_time = 0; // 定义单击时间,初值为0 void main() { while (1) { // 无限循环 if (key == 0) { // 如果检测到按键按下 delay(20); // 延时20ms,用于消除按键抖动 if (key == 0) { // 再次检测按键状态 key_pressed = 1; // 设置按键按下标志位为1 double_click = 0; // 取消双击标志位 click_time = 0; // 重置单击时间 } } if (key == 1 && key_pressed == 1) { // 如果检测到按键松开 key_pressed = 0; // 设置按键按下标志位为0 if (double_click == 0) { // 如果没有双击 click_time++; // 单击时间加1 if (click_time == 2) { // 如果单击时间为2 // 这里添加相应的单击处理代码 } if (click_time > 2) { // 如果单击时间超过2 click_time = 0; // 重置单击时间 } } else { // 如果有双击 double_click = 0; // 取消双击标志位 // 这里添加相应的双击处理代码 } }
  • 攻城狮博士:学习让人进步!!
  • 蔡徐坤丢了篮球:为什么不用取余2呢[doge]
  • 芯机匠:投币了。老师讲的很好,很仔细。建议可以出个教程,讲一下官方stc8h的库函数[打call]
  • 一只萌新筽:已三连[星星眼]