• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的交通燈【1位數(shù)碼管,固定時間】(仿真)

2024/12/29
2159
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

利用單片機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);
	}

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦