51单片机数码管0-60计时然后从0重新开始计时,并且每60s流水灯亮一个,直到8个流水灯全部亮完

2025-03-21 16:53:35
推荐回答(3个)
回答1:

#include
#define uint unsigned int
#define uchar unsigned char
sbit a=P3^4;
sbit b=P3^5;
int code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
int code led[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
uchar m=0,mg=0,ms=0,num=0,n=0;
void ds_50ms() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
if(num==20)
{
num=0;
m++;
}
if(m==60)
{
m=0;
n++;
}
if(n>8)
{
n=0;
}
}
delay(uchar k)
{
uchar j=110;
while(k--)
while(j--);
}
void display()
{
uchar i;
for(i=0;i<5;i++)
{
a=0;P1=num[m/10];delay(5);a=1;
b=0;P1=num[m%10];delay(5);b=1;
}
}
void main()
{
TMOD=0X01;
EA=1;
ET0=1;
TR0=1;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
while(1)
{
display();
P0=led[n];
}
}

回答2:

可帮代做

回答3:

需要把您代做设计吗