利用單片機AT89C51、9個LED指示燈以及LED數(shù)碼管組成帶倒計時顯示的交通燈控制系統(tǒng)。
東南西北四個路口各三個LED指示燈,分別為紅色、黃色、綠色。綠燈先亮9秒,最后2秒快閃,然后黃燈亮3秒,最后紅燈亮9秒。南北向、東西向交替通行。南北向、東西向各有一位數(shù)碼管顯示紅燈倒計時。
原理電路如下圖所示:
#define uint unsigned int
//數(shù)碼管編碼
uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uint time=0;//計時
//主函數(shù)
void main()
{
TMOD|=0X01;//初始化定時器
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
while(1)
{
//東西綠燈亮
time=10000;//9s
P1=0xf3;
while(time>2000)
{
P3=smgduan[time/1000];
}
while(time>0)//快閃
{
P3=smgduan[time/1000];
if(time%100>50)
P1=0xf7;
else
P1=0xf3;
}
//黃燈亮
P3=0xff;
time=3000;
P1=0xf5;
while(time>0);
//南北綠燈亮
time=10000;//9s
P1=0xde;
while(time>2000)
{
P2=smgduan[time/1000];
}
while(time>0)//快閃
{
P2=smgduan[time/1000];
if(time%100>50)
P1=0xfe;
else
P1=0xde;
}
//黃燈亮
P2=0xff;
time=3000;
P1=0xee;
while(time>0);
}
資料借鑒于此紛傳
閱讀全文