c51单片机显示00-59秒表
时间: 2023-12-22 21:06:46 浏览: 151
以下是基于C语言的c51单片机代码,用于显示00-59秒表:
```c
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time[2] = {0,0};
uchar flag = 0;
void delay(uint x){
uint i,j;
for(i=x;i>0;i--){
for(j=110;j>0;j--);
}
}
void display(){
uchar i;
for(i=0;i<100;i++){
P2 = 0x01;
P0 = table[time[0]];
delay(1);
P2 = 0x02;
P0 = table[time[1]];
delay(1);
}
}
void main(){
TMOD = 0x01;
TH0 = 0x3c;
TL0 = 0xb0;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1){
if(flag == 1){
flag = 0;
time[1]++;
if(time[1] == 60){
time[1] = 0;
time[0]++;
if(time[0] == 6){
time[0] = 0;
}
}
}
display();
}
}
void timer() interrupt 1{
TH0 = 0x3c;
TL0 = 0xb0;
flag = 1;
}
```
在这个代码中,我们使用了一个定时器来控制时间的增量。具体地,我们使用了51单片机的定时器(timer)中断,每秒钟定时器会发出一个中断信号,中断函数会将flag置为1,表示时间需要增加1秒。同时,我们使用了两个7段数码管来显示秒表时间,其中time数组存储了秒表的十位和个位数值。在主循环中,我们不断地进行数码管的显示,并判断flag变量是否为1,如果为1,则增加秒表时间。
阅读全文
相关推荐















