51单片机按键计数器程序
时间: 2023-08-13 20:02:28 浏览: 160
以下是一个简单的51单片机按键计数器程序:
```c
#include <reg51.h>
sbit key = P1^0; // 定义按键输入引脚
sbit led = P2^0; // 定义LED输出引脚
void delay(unsigned int i) // 延时函数
{
while(i--);
}
void main()
{
unsigned char count = 0; // 计数器
unsigned char key_state = 0; // 按键状态
while(1)
{
if(key == 0 && key_state == 0) // 如果检测到按键按下
{
delay(1000); // 延时一段时间,防止抖动
if(key == 0) // 再次检测按键状态
{
key_state = 1; // 按键已经按下
count++; // 计数器加1
led = ~led; // 翻转LED
}
}
else if(key == 1 && key_state == 1) // 如果检测到按键释放
{
key_state = 0; // 按键已经释放
}
if(count >= 10) // 如果计数器达到10次
{
count = 0; // 重置计数器
led = 0; // 关闭LED
}
}
}
```
该程序使用P1口的第0个引脚作为按键输入口,P2口的第0个引脚作为LED输出口。当按下按键时,计数器加1,LED会翻转。当计数器达到10时,LED会关闭,计数器重置为0。程序使用了一个简单的延时函数来防止按键抖动。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)