|
城市道路錯(cuò)綜復(fù)雜,相互交錯(cuò),交通燈是城市交通的重要指揮系統(tǒng)。交通信號(hào)燈作為管制交通流量、提高道路通行能力的有效手段,對(duì)減少交通事故有明顯效果。但是車流量是隨時(shí)變化的,而傳統(tǒng)的交通燈模式采用的是定時(shí)控制,反而容易造成交通堵塞。因此設(shè)計(jì)一種基于Proteus與單片機(jī)的交通燈控制系統(tǒng)的設(shè)計(jì)與仿真,對(duì)減少交通事故,緩解交通阻塞,提高暢通率具有很重要的現(xiàn)實(shí)意義
東西、南北兩干道交于一個(gè)十字路口,各干道有一組交通指示燈,每一個(gè)狀態(tài)方向上均有一組紅、綠燈,即一組交通指示燈都有左轉(zhuǎn)、直行、右轉(zhuǎn)3組紅、綠燈和一個(gè)黃燈,指示車輛和行人安全通行.紅燈點(diǎn)亮禁止通行,綠燈點(diǎn)亮允許通行.黃燈閃爍提示人們注意交通燈狀態(tài)即將切換
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code smg_dw[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陽(yáng)0-9
- sbit beiR=P0^0;
- sbit beiY=P0^1;
- sbit beiG=P0^2;
- sbit nanR=P0^3;
- sbit nanY=P0^4;
- sbit nanG=P0^5;
- uint a,b,c,type,j,i;
- void Delay(uint x) //延時(shí)
- {
- uchar i;
- while(x--)for(i=0;i<120;i++);
- }
- void delay_ms(uint q) //延時(shí)
- {
- uint i,j;
- for(i=q;i>0;i--)
- for(j=141;j>0;j--);
- }
- void shumaguan(uint k) //數(shù)碼管顯示
- {
- b=k/10;
- c=k%10;
- P3=11111101;
- P2=smg_dw[b];//選段碼
- delay_ms(20);//延時(shí)5ms
- P3=11111110;
- P2=smg_dw[c];//選段碼
- delay_ms(20);//延時(shí)5ms
- }
- main()
- {
- TMOD=0x01; //設(shè)置定時(shí)器T0為工作方式1定時(shí)
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- TR0=1; //啟動(dòng)T0計(jì)數(shù)
- ET0=1; //允許T0中斷
- EX0=1; //允許外部中斷0中斷
- EA=1; //開中斷
- IT0=1; //允許外部中斷0為邊沿觸發(fā)方式
- a=10; //倒計(jì)時(shí)10s
- type=1;
- while(1){
- switch(type)
- {
- case 1: //東西向綠燈與南北向紅燈亮
- beiR=0;beiY=1;beiG=1;
- nanR=1;nanY=1;nanG=0;
- shumaguan(a);
- break;
- case 2: //東西向黃燈閃爍,綠燈關(guān)閉
- if(a%2!=0)
- {
- beiR=1;beiY=0;beiG=1;
- }
- if(a%2==0)
- {
- beiR=1;beiY=1;beiG=1;
- }
- shumaguan(a);
- break;
- case 3: //東西向紅燈,南北向綠燈亮
- beiR=1;beiY=1;beiG=0;
- nanR=0;nanY=1;nanG=1;
- shumaguan(a);
- break;
- case 4: //南北向黃燈閃爍3次
- if(a%2!=0)
- {
- nanR=1;nanY=0;nanG=1;
- }
- if(a%2==0)
- {
- nanR=1;nanY=1;nanG=1;
- }
- shumaguan(a);
- break;
- }
- }
- }
- void T0_int0(void) interrupt 1 //中斷
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- i++;
- if(i==20)
- {
- i=0;
- a--;
- if(a==0)
- {
- if(type==1||type==3)
- {
- a=5;
- }
- if(type==2||type==4)
- {
- a=10;
- }
- type++;
- if(type==6)
- {
- type=1;
- }
- }
- }
- }
復(fù)制代碼 |
-
交通燈.png
(29.01 KB, 下載次數(shù): 138)
下載附件
2018-4-28 20:13 上傳
交通燈
-
-
交通燈.rar
2018-4-28 20:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
51.68 KB, 下載次數(shù): 47, 下載積分: 黑幣 -5
|