51单片机连线把系统资源区的p3.4孔连脉冲元的down孔执行程序,按动an锁按钮在数码管上显示脉冲个数的代码
时间: 2024-03-20 21:40:51 浏览: 15
以下是一个简单的51单片机连接脉冲元并显示脉冲个数的代码示例:
```c
#include <reg51.h>
#define PULSE_PIN3_4 // 连接脉冲元的IO口
#define DISPLAY_PORT P2 // 数码管连接的IO口
sbit LOCK_BTN = P3^5; // 按键连接的IO口
unsigned int pulse_count; // 记录脉冲个数
// 等待一个下降沿
void wait_falling_edge() {
while (PULSE_PIN); // 等待脉冲为0
while (!PULSE_PIN); // 等待脉冲为1
}
// 计算脉冲个数并显示
void count_and_display_pulse() {
unsigned char cnt1, cnt2, cnt3, cnt4;
pulse_count++; // 计数器加1
cnt1 = pulse_count % 10; // 个位数字
cnt2 = pulse_count / 10 % 10; // 十位数字
cnt3 = pulse_count / 100 % 10; // 百位数字
cnt4 = pulse_count / 1000 % 10; // 千位数字
// 显示数字
DISPLAY_PORT = (cnt4 << 4) | cnt3;
delay_ms(5);
DISPLAY_PORT = (cnt2 << 4) | cnt1;
delay_ms(5);
}
void main() {
pulse_count = 0; // 初始化计数器
LOCK_BTN = 1; // 上拉按键
while (1) {
if (!LOCK_BTN) { // 按键按下
pulse_count = 0; // 计数器清零
} else {
wait_falling_edge(); // 等待下降沿
count_and_display_pulse(); // 计算脉冲个数并显示
}
}
}
```
这段代码会等待连接在P3.4孔的脉冲元输出下降沿,并记录脉冲个数,然后在数码管上动态显示。同时,如果按下P3.5孔上拉的按键,计数器会被清零。你可以根据需要修改其中的细节部分,比如脉冲元连接的IO口、数码管的驱动方式、按键的位置和类型等等。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)