本人菜鸟,
程序如下:
#include<reg51.h>
unsigned char t0,t1,msec,sec,r;
void delay(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<25;j++);
}
void delay0_5s1()
{
for(t0=0;t0<0x0a;t0++)
{
TH1=0x3c;
TL1=0xb0;
TR1=1;
while(!TF1);
TF1=0;
}
}
void delay_t1(unsigned char t)
{
for(t1=0;t1<t;t1++)
delay0_5s1();
}
void T0_INT(void) interrupt 1
{
TH0=0x3c;
TL0=0xb0;
msec++;
if(msec==20)
{
msec=0;
sec++;
if(sec==30)
{
sec=0;
}
}
}
void main()
{ unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
TMOD=0x10;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
while(1)
{
P3=0x80;
P1=led[sec%10];
delay(1);
P3=0x40;
P1=led[sec/10];
delay(1);
P0=0xf3;
delay_t1(5);
for(r=0;r<4;r++)
{
P0=0xeb;
delay0_5s1();
P0=0xfb;
delay0_5s1();
}
P0=0xde;
delay_t1(5);
for(r=0;r<4;r++)
{
P0=0xdd;
delay0_5s1();
P0=0xdf;
delay0_5s1();
}
}
}
请问数码管怎么会只亮一个呢,问题出在哪里?
-
一周热门 更多>