51单片机数码管3分钟倒计时
时间: 2023-10-22 14:03:38 浏览: 95
51单片机数码管倒计时.zip
以下是51单片机数码管3分钟倒计时的代码,注释已经加上了,可供参考:
```c
#include <reg51.h> // 引入头文件,使用51单片机的寄存器定义
#define uint unsigned int // 定义 unsigned int 的别名 uint
sbit D1 = P2^7; // 数码管第1位
sbit D2 = P2^6; // 数码管第2位
sbit D3 = P2^5; // 数码管第3位
sbit D4 = P2^4; // 数码管第4位
// 数码管的段码定义
unsigned char code smgduan[17] = { // 0~9,A~F
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(uint i) { // 延时函数
while(i--);
}
void main() {
uint i, j; // 定义计数变量
while(1) {
for(i = 3; i > 0; i--) { // 从3开始倒计时到1
for(j = 20000; j > 0; j--) { // 延时1秒
D1 = smgduan[i] & 0x01; // 显示倒计时秒数的个位数
D2 = smgduan[i] & 0x02;
D3 = smgduan[i] & 0x04;
D4 = smgduan[i] & 0x08;
delay(100); // 等待一段时间
}
}
}
}
```
该代码会让四个数码管显示从3开始倒计时的秒数,每秒会延时1秒钟。其中,`smgduan` 数组存储了数码管的段码,`delay` 函数用于延时一定的时间,`main` 函数中的两个循环分别用于倒计时和延时。
阅读全文