|
十字路口中东西南北方向的红绿灯循环点亮, 之间间隔黄灯。而黄灯颜色变化闪烁 5 次, 在每个路口都加上数码管,数码管显示从数字9变为数字0时,一边由红灯变为绿灯,
另一面的灯由绿灯经过黄灯变为红灯。
代码:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0;
sbit YEIIOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3;
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;
uchar Flash_Count =5;
Operation_Type=1;
#define out P2
#define put P1
uchar code seg[]={0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0,0x01};
void delay(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main(void)
{
uchar i,a,b;
for(a=0;a<10;a++){
P0=0xf3;
delay(100);
put=seg;
out=seg;
delay(900);
i++;
}
for(a=0;a<5;a++){
P0=0xfd;
delay(200);
P0=0xff;
delay(200);
}
P0=0xde;
delay(250);
if (seg ==0x01)i=0;
for(b=0;b<10;b++){
P0=0xde;
delay(100);
put=seg;
out=seg;
delay(900);
i++;
}for(a=0;a<5;a++){
P0=0xef;
delay(200);
P0=0xff;
delay(200);
}
P0=0xf3;
delay(250);
if (seg ==0x01)i=0;
}
|
评分
-
查看全部评分
|