单片机999秒倒计时程序
时间: 2024-01-07 15:04:47 浏览: 17
以下是基于8051单片机的999秒倒计时程序:
```
#include <reg51.h>
void delay(int); // 延时函数
void display(int); // 显示函数
void main() {
int i;
for (i = 999; i >= 0; i--) { // 倒计时开始
display(i); // 每秒显示剩余时间
delay(1000); // 延时1秒
}
}
void display(int time) {
int a, b, c;
a = time / 100; // 分离百位数字
b = time / 10 % 10; // 分离十位数字
c = time % 10; // 分离个位数字
P0 = 0x7f; // 打开数码管
P1 = 0xFE; // 第1位数码管选通
P0 = a; // 显示百位数字
delay(5); // 延时一段时间
P0 = 0x7f; // 关闭数码管
P1 = 0xFD; // 第2位数码管选通
P0 = b; // 显示十位数字
delay(5); // 延时一段时间
P0 = 0x7f; // 关闭数码管
P1 = 0xFB; // 第3位数码管选通
P0 = c; // 显示个位数字
delay(5); // 延时一段时间
P0 = 0x7f; // 关闭数码管
}
void delay(int time) {
int i, j;
for (i = time; i > 0; i--) {
for (j = 110; j > 0; j--); // 延时一段时间
}
}
```
在这个程序中,我们通过将999秒逐秒减少,来实现倒计时。每秒钟我们会通过`display`函数将剩余时间显示在数码管上,然后通过`delay`函数延时1秒。`display`函数将剩余时间分离成百位、十位和个位数字,并将它们依次显示在三个数码管上。在每个数码管上显示数字前,我们需要先打开对应数码管,然后将数字传输给P0口,最后延时一段时间,再关闭数码管。`delay`函数是一个简单的延时函数,它会延时一段时间来保证数码管上的数字可以被稳定地显示出来。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)