#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar delay(int i)
{uchar a,b,c;
for(i;i>0;i--)
{for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
_nop_;
}}
void delay1(uchar j)
{while(j--);
}
void huangdeng(uchar i)
{while(i--)
{
P1=0X12; //0001 0010
delay(1);
P1=0X00; //0000 0000
delay(1);
}
}
void dongxi(uchar a)
{uchar j=1000;
for(a;a>0;a--)
{
while(j--)
{P1=0X24;
P0=0XFE;
P2=led[a/10];
delay1(1000);
P0=0XFd;
P2=led[a%10];
delay1(1000);
}}
P0=0XFF;
}
void nanbei(uchar a)
{uchar j=1000;
for(a;a>0;a--)
{
while(j--)
{
P1=0X09; //南北方向紅燈亮東西方向綠燈亮
P0=0XFE; //P00為低電平P01為高電平 低電平通
P2=led[a/10];
delay1(1000);
P0=0XFd; //第二個數碼管點亮
P2=led[a%10];
delay1(1000); }
P0=0XFF;
} }
main()
{
while(1)
{dongxi(30);
huangdeng(3);
nanbei(30);
huangdeng(3);
}
}
|