基于51单片机的独立按键单击、双击,长按,多次按的项目工程
一、前言
1、基于51单片机的独立按键单击、双击,长按,多次按的项目工程包括用Keil软件编写单片机C语言程序和用Proteus软件仿真单片机外围电路
2、基于51单片机的独立按键单击、双击,长按,多次按的项目工程的项目构思
(1)、声明程序变量思维导图
(2)、程序子函数思维导图
(3)、程序主函数思维导图
二、基于51单片机的独立按键单击、双击,长按,多次按的项目工程的Keil软件编写的单片机C语言程序
1、一般按键按下计数式按键单击、长按的单片机C语言程序
#include<reg52.h>
#define ShortPressTime 1000
#define LongPressTime 32750
unsigned int count=0;
sbit AnJian = P1^0;
sbit LED0 = P2^0;
void main ()
{
while(1)
{
if(!AnJian)
{
count++;
if(count>=LongPressTime)
{
LED0=1;
count=LongPressTime;
}
}
else
{
if(count>ShortPressTime && count<LongPressTime)
{
LED0=0;
}
count=0;
}
}
}
2、第一种定时器式按键单击、长按的单片机C语言程序
#include<reg52.h>
unsigned int count=0;
unsigned char KeyPressFlag;
sbit AnJian = P1^0;
sbit LED0 = P2^0;
void KeyScan()
{
if(!AnJian)
{
if(count>=200)
{
LED0=1;
}
}
else