
/*南北:P1-0红,P1-1黄,P1-2绿,
东西:P1-4红,P1-5黄,P1-6绿, */
#include"REG51.H"
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;
char point=10,time=39,out=0x01;
delay( )
{ unsigned tt ;
for(tt=0;tt<1000;tt++)
;
}
display(int zt)
{
char chr[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ;
char i,lie,a[4];
a[3]=zt%10;
zt=zt/10;
a[2]=zt%10;
zt=zt/10;
a[1]=zt%10;
zt=zt/10;
a[0]=zt%10;
lie=0x01;
for ( i=0;i<4;i++)
{
P3=~lie;
P2=chr[a[i]];
delay( );
lie= lie<<1 ;
}
}
void main (void)
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;ET0=1;
while (1)
{
if(time>24)
P1=0xeb; //P1--2=0,P1_4=0,南北绿东西红
else if(time>19)
{ //南北绿熄灭,南北黄闪烁
P1_2=1;
P1_1=~P1_1; }
//P1=0xed;
else if(time>4 )
P1=0xbe; //P1--0=0,P1_6=0,南北红东西绿
else
{
P1_6=1; //东西绿熄灭,东西黄闪烁
P1_5=~P1_5;
}
if(time>=25)
display((time-20)+(time-25)*100);
else if(time>=20)
display((time-20)*101);
else if(time>=5)
display(time*100+(time-5));
else
display(time*101);
}
}
void t0int ( ) interrupt 1
{
TH0=0x3c;
TL0=0xb0;
point--;
if(point==0)
{
point=10;
if(time==0)
time=39;
else
time--;
}
}
为了您的安全,请只打开来源可靠的网址
打开网站 取消
来自: http://hi.baidu.com/%D2%BB%B8%F6%C9%CF%BD%F8%D5%DF/blog/item/f606a5097ef1cc990b7b8269.html
