|
里面包含程序和原理圖及仿真
單片機(jī)交通燈實(shí)物圖:
0.png (504.22 KB, 下載次數(shù): 220)
下載附件
2016-5-7 05:12 上傳
十字路口交通燈的仿真圖原理圖:
0.png (42.53 KB, 下載次數(shù): 217)
下載附件
2016-5-7 05:12 上傳
所有文件打包下載:
0.png (35.78 KB, 下載次數(shù): 189)
下載附件
2016-5-7 05:12 上傳
下載地址:
基于AT89C51的十字路口交通燈仿真.zip
(1.31 MB, 下載次數(shù): 48)
2016-5-6 17:05 上傳
點(diǎn)擊文件名下載附件
仿真+程序 下載積分: 黑幣 -5
交通燈程序:
- /*****************************************************
- * 王瑾畢設(shè)-交通燈
- *
- *
- *
- *****************************************************/
- #include<include.h>
- sbit NS_GRE = P2^5;
- sbit NS_YEL = P2^4;
- sbit NS_RED = P2^3;
- sbit EW_GRE = P2^2;
- sbit EW_YEL = P2^1;
- sbit EW_RED = P2^0;
- uint8 EW_Timer = unused8; //東西方向紅燈定時(shí)器
- uint8 NS_Timer = unused8; //南北方向紅燈定時(shí)器
- uint8 YEL_Timer = unused8; //黃燈 5s定時(shí)器
- int main(void)
- {
- Timer_Init(); //定時(shí)器初始化
- INT0_Init(); //外部中斷初始化
- EA=1; //打開全局中斷
-
- NS_GRE = OFF; //所有的燈都滅
- NS_YEL = OFF;
- NS_RED = OFF;
- EW_GRE = OFF;
- EW_YEL = OFF;
- EW_RED = OFF;
- P3 = 0xFF; //所有顯示滅
- //先讓東西方向紅燈亮 南北方向通行
- EW_Timer = EWTime_Count;//東西方向開始計(jì)時(shí)
- while(1)
- {
-
- if((EW_Timer != unused8) && (EW_Timer != 0)){ //東西方向做紅燈倒計(jì)時(shí)
- display1(EW_Timer/10, EW_Timer%10); //東西方向顯示時(shí)間 南北方向不顯示
- EW_RED_ON(); //東西方向保持紅燈
- NS_GRE_ON(); //南北方向保持綠燈
- }
- else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//東西方向紅燈計(jì)時(shí)到 東西方向保持紅燈 南北方向變黃燈 開始黃燈5s計(jì)時(shí)
- EW_RED_ON(); //東西方向紅燈
- NS_YEL_ON(); //南北方向黃燈
- YEL_Timer = YELTime_Count; //5s計(jì)時(shí)
- }
- if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
- display1(YEL_Timer/10, YEL_Timer%10); //東西方向顯示時(shí)間 南北方向不顯示
- }
- if((EW_Timer != unused8) && (YEL_Timer == 0)){ //東西方向紅-南北方向黃燈5s計(jì)時(shí)到 東西紅燈定時(shí)器關(guān) 黃燈定時(shí)器關(guān) 南北紅燈 東西綠燈 南北計(jì)時(shí)器開
- EW_Timer = unused8; //東西紅燈定時(shí)器關(guān)
- YEL_Timer = unused8; //黃燈定時(shí)器關(guān)
- NS_RED_ON(); //南北變紅燈
- EW_GRE_ON(); //東西變綠燈
- NS_Timer = NSTime_Count; //南北紅燈定時(shí)器開
- }
- if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北紅燈定時(shí)器正在計(jì)時(shí)
- display2(NS_Timer/10, NS_Timer%10); //南北方向顯示時(shí)間 東西方向不顯示
- EW_GRE_ON(); //東西保持綠燈
- NS_RED_ON(); //南北保持紅燈
- }
- else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向紅燈計(jì)時(shí)到 南北方向保持紅燈 東西方向變黃燈 開始黃燈5s計(jì)時(shí)
- NS_RED_ON(); //南北方向保持紅燈
- EW_YEL_ON(); //東西方向變黃燈
- YEL_Timer = YELTime_Count; //5s計(jì)時(shí)
- }
- if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
- display2(YEL_Timer/10, YEL_Timer%10); //南北方向顯示時(shí)間 東西方向不顯示
- }
- if((NS_Timer != unused8) && (YEL_Timer == 0)){ //南北方向紅-東西方向黃燈5s計(jì)時(shí)到 南北方向定時(shí)器關(guān) 黃燈定時(shí)器關(guān) 東西方向變紅燈 南北方向變綠燈 東西方向紅燈計(jì)時(shí)器開始計(jì)時(shí)
- NS_Timer = unused8;
- YEL_Timer = unused8;
- EW_RED_ON(); //東西方向變紅燈
- NS_GRE_ON(); //南北方向變綠燈
- EW_Timer = EWTime_Count; //東西方向開始計(jì)時(shí)
- }
- if(Flag_Key == 1){ //如果急停按鍵按下 則全紅燈 顯示滅
- P3 = 0xFF; //所有顯示滅
- EW_RED_ON(); //東西方向紅燈
- NS_RED_ON(); //南北方向紅燈
-
- EW_Timer = unused8; //關(guān)閉所有定時(shí)器
- NS_Timer = unused8;
- YEL_Timer = unused8;
- }
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|