系統概要:由於該交通系統設計乙個十字路口,a道為主幹道,b道為支幹道。由於主幹道的交通壓力較大車流量大,所以a道的通行時間(即a道的綠燈與黃燈的時間應該比b道的綠燈與黃燈時間長),只有a道的通行時間比b道的通行時間長才能合理的分配十字交通路口的交通壓力。並且該系統應該有緊急的交通情況,也就是遇到交通的緊急情況,a道與b道的交通燈應該為紅色,禁止a道與b道的車輛通過,使緊急車輛通過後。重新恢復到a道與b道紅綠燈狀態。
首先a道方向綠燈亮,b到方向紅燈亮,同時開始計時60s,在段數碼管上顯示時間60秒倒數。當時間少於10s倒計時a道方向切換黃燈,b道依然為紅燈。當60s倒計時結束後,a道方向黃燈開始轉變為紅燈,b道方向紅燈開始轉變為綠燈。並開始倒計時30秒,當時間少於5s時b道方向由綠燈轉變為黃燈,a道方向還是紅燈亮。當5s倒計時結束後b道黃燈轉變為紅燈,a道開始由紅燈轉變為綠燈。接著又開始迴圈以上步驟。應該還包含乙個緊急車輛的情況,當有緊急車輛通過時,ab道都應該為紅燈。(綠燈用亮3個燈,黃燈亮乙個燈,紅燈則不亮,緊急情況用按下按鍵k3)
廢話不多說直接上**:
#include#define uchar unsigned char
#define uint unsigned int
sbit du=p2^0;//段碼鎖存器開關
//sbit du1=p2^0;
//sbit du2=p2^0;
sbit we=p2^1;//位碼鎖存器開關
sbit beep=p2^3;
sbit gd=p2^2;
//sbit b_red=p1^5
sbit anniu=p3^2;
unsigned int pp;
unsigned char code table=;//7到f顯示
uchar j,k,l=255;
uchar a1,a0;
uchar shijian,deng=1;
void delay(unsigned int i) //位碼的轉換 3*5*125=1875ms=1.875s
void display(unsigned char sh_c,unsigned char g_c)
void int0(void) interrupt 0 //interrupt是宣告函式為中斷服務函式,0是編譯器對中斷的編號
void main()
} if(pp==20)
a0=shijian%10; //時間個位
a1=shijian/10; //時間十位
display(a1,a0);
switch(deng)
break;
case 1: /*if(shijian%2==0) //黃燈
p1=0x00;
if(shijian%2==1)
p1=0xff;
break;*/
p1=0xe3;
if(shijian<=5)
break;
} }}void time0() interrupt 1 //定時器t0溢位中斷
基於51微控制器交通燈(組合語言)
設計要求 設計交通燈控制系統。模擬交通訊號燈控制 一般情況下正常顯示,東西 南北交替放行,各方向通行時間為30秒。有救護車或警車到達時,兩個方向交通訊號燈全為紅色,以便讓急救車或警車通過,設通行時間為10秒,之後交通恢復正常。用單次脈衝模擬急救車或警車申請外部中斷。proteus 圖 微控制器晶振為...
51微控制器 交通燈實驗及報告
1.實驗目的 學習模擬交通燈控制的實現方法 掌握proteus硬體 與除錯。2.任務 根據要求編寫程式,並寫出原理性注釋 將檢查程式執行的結果,分析一下是否正確 完成所建工程的 及除錯。3.實驗內容及要求 按照電路要求在protues中設計電路圖。程式設計實現如下功能 用微控制器埠作輸出口,控制四個...
10 3 微控制器交通燈例項
同學們在學習技術的時候,一定要多動腦筋,遇到問題後,三思而後問。有些時候你考慮的和真理就差一點點了,沒有堅持下去,別人告訴你後才恍然大悟。這樣得到的結論,可以讓你學到知識,但是卻培養不了你的邏輯思維能力。不是不能問,而是要在認真思考的基礎上再發問。有同學有疑問,板子上只有 8 個流水燈,那如果我要做...