51单片机用c语言实现用两位数码管显示0~59秒的两位数秒表
时间: 2023-07-16 22:11:59 浏览: 207
下面是一个简单的51单片机用C语言实现秒表的代码,使用两个共阳数码管显示0~59秒的时间:
```c
#include <reg51.h>
#define SEG P0 // 数码管段选控制端口
#define DIG P1 // 数码管位选控制端口
unsigned char code segCode[] = { // 数码管段码
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,
0x7d, 0x07, 0x7f, 0x6f
};
void delay(unsigned int t) { // 延迟函数
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}
void main() {
unsigned char sec = 0, min = 0; // 秒和分
while (1) {
SEG = segCode[sec % 10]; // 显示秒的个位
DIG = 0xfe; // 第1位数码管选通
delay(5); // 稍作延迟
SEG = segCode[sec / 10]; // 显示秒的十位
DIG = 0xfd; // 第2位数码管选通
delay(5);
sec++; // 秒数加1
if (sec == 60) { // 秒数到60时,分钟加1,秒数清0
sec = 0;
min++;
if (min == 60) // 分钟到60时,分钟清0
min = 0;
}
}
}
```
此代码中使用了定时器和延迟函数来控制秒表的计时和显示,可以根据具体的硬件和需求进行修改和优化。
阅读全文