仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
33.jpg (125.8 KB, 下載次數(shù): 71)
下載附件
仿真圖
2019-6-12 15:35 上傳
說明: (1)當東西方向為綠燈時,此時南北方向為紅燈; (2)當東西方向綠燈閃爍時,南北方向依舊保持紅燈; (3)當東西方向綠燈閃爍完畢時,變?yōu)辄S燈,南北方向依舊是紅燈; (4)當東西方向黃燈結束后,變?yōu)榧t燈,南北方向變?yōu)榫G燈; (5)南北方向綠燈閃爍時,東西方向依舊保持紅燈; (6)當南北方向綠燈閃爍完畢時,變?yōu)辄S燈,東西方向依舊是紅燈; (7)當南北方向黃燈結束后,變?yōu)榧t燈,東西方向變?yōu)榫G燈; (8)重復(1)。 交通燈控制系統(tǒng)的總體設計方案共有五個部分組成,分別是:單片機AT89C52、紅、綠、黃燈顯示電路、LED數(shù)顯時間電路、晶振及復位控制電路。在進行仿真調試過程中,程序運行正確,五個部分就同時工作,從而實現(xiàn)了交通燈的基本功能及調時功能。 一個完整的交通燈相當于一個簡單的單片機系統(tǒng),該系統(tǒng)有交通燈設置電路、單片機、顯示電路等構成。單片機是集成的IC芯片,只需根據(jù)實際設計要求選型。其他部分都需要根據(jù)應用要求和性能指標自行設計。首先了解實際交通燈的變化規(guī)律。假設一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉狀態(tài)1南北綠燈通車,東西紅燈。過一段時間轉狀態(tài)2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態(tài)3,東西綠燈通車,南北紅燈。過一段時間轉狀態(tài)4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最后循環(huán)至狀態(tài)1。 單片機代碼如下: - #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//七段數(shù)碼管0~9的對應電平
- uchar time[4]; //time[]={南北燈十位,南北燈個位,東西燈十位,東西燈個位}
- uchar t3,t2,t1,t0;
- //單獨設置兩個綠燈對應端口便于設置閃爍
- sbit NSG=P2^3;//南北綠燈
- sbit EWG=P2^0;//東西綠燈
- sbit BEEM=P2^7; //語音
- void delay(uint ms)//延遲函數(shù),功能為以毫秒為單位延遲,待微調,不要在意細節(jié)。
- {
- uint i;
- while(ms--)
- {
- for(i=0;i<81;i++);
- }
- }
- void timer(uchar i) //時間設置函數(shù)
- {
- switch (i)
- {
- case 0:{time[3]=num[t3];time[2]=num[--t2];time[1]=num[t1];time[0]=num[--t0];break;}
- //代表把time數(shù)組里的四個表示時間的電平設為對應t3、t2、t1、t0的時間的電平
- case 1:{t3=2;t2=8;t1=3;t0=1;break;} //南北紅燈東西綠燈
- case 2:{t3=0;t2=4;t1=0;t0=4;break;} //黃燈
- case 3:{t3=3;t2=1;t1=2;t0=8;break;} //南北綠燈東西紅燈
- }
- if(t2==0){t2=10;t3--;}
- if(t0==0){t0=10;t1--;}
- }
- void TR(uchar Gr) //數(shù)碼管時間控制函數(shù),通過片選將兩個方向四個數(shù)碼管作為一組進行刷新
- {
- uint i,j;
- for(i=1;i<=25;i++)
- {
- for(j=0;j<=3;j++)
- {
- P0=~(1<<j);P1=time[j];delay(10);
- }
- if(Gr==1 && i==12)EWG=0;
- if(Gr==1 && i==24)EWG=1;
- if(Gr==2 && i==12)NSG=0;
- if(Gr==2 && i==24)NSG=1;
- }
- }
- void main()
- {
- delay(500);
- while(1)
- {
- uint i;
- timer(1);P2=0x1e;
- for(i=1;i<=22;i++){timer(0);TR(0);}
- for(i=1;i<=5;i++){timer(0);TR(1);}
- timer(2);P2=0x1d;
- for(i=1;i<=3;i++){timer(0);TR(0);}
- timer(3);P2=0x33;
- for(i=1;i<=22;i++){timer(0);TR(0);}
- for(i=1;i<=5;i++){timer(0);TR(2);}
- timer(2);P2=0x2b;
- for(i=1;i<=3;i++){timer(0);TR(0);}
- }
- }
復制代碼
0.png (3.59 KB, 下載次數(shù): 70)
下載附件
2019-6-12 21:22 上傳
全部資料51hei下載地址:
交通燈.zip
(24.95 KB, 下載次數(shù): 65)
2019-6-12 15:35 上傳
點擊文件名下載附件
帶仿真電路 下載積分: 黑幣 -5
|