單片機交通燈課程設(shè)計程序及仿真_第1頁
單片機交通燈課程設(shè)計程序及仿真_第2頁
單片機交通燈課程設(shè)計程序及仿真_第3頁
單片機交通燈課程設(shè)計程序及仿真_第4頁
單片機交通燈課程設(shè)計程序及仿真_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

#include<at89x51.h>#defineucharunsignedchar#defineuintunsignedint/*****定義各個控制位*****/sbitsn_left=P1^4; //南北左行sbitsn_go=P1^5; //南北直行sbitsn_yellow=P1^6; //南北黃燈sbitsn_man_green=P1^3; //南北人行道綠燈sbit sn_man_red=P3^0;//南北人行道紅燈sbitew_left=P1^0; //東西左行sbitew_go=P1^1; //東西直行sbitew_yellow=P1^2; //東西黃燈sbitew_man_green=P3^1; //東西人行道綠燈sbitew_man_red=P1^7; //東西人行道紅燈sbitsn_led1=P2^0; //南北LED顯示器十位控制器sbitsn_led2=P2^1; //南北LED顯示器各位控制器sbitew_led1=P2^2; //東西LED顯示器十位控制器sbitew_led2=P2^3; //東西LED顯示器各位控制器//sbittime_led1=P2^4; //附加LED顯示器十位控制器//sbittime_led2=P2^5; //附加LED顯示器各位控制器//sbitkey1=P2^6; //功能按鍵1//sbitkey2=P2^7; //功能按鍵2/*****定義共陰極LED顯示器的字段碼0~9******/ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uintcount;//秒計數(shù)器ucharflag,second;//同行標志,顯示數(shù)據(jù)變量//ucharT0h,T0l;//定時器T0計數(shù)初值變量/****函數(shù)聲明****///延時子程序(晶振12MHz)voidDelayms(ucharms){uchari; while(ms--) { for(i=1;i<60;i++); //原為120調(diào)改2 i=1時需13個機器周期 } } voidstate1() { sn_left=0;//南北左行綠燈 sn_man_green=0;//南北人行道綠燈關(guān) sn_man_red=1;//南北人行道紅燈亮 sn_go=1;//南北直行紅燈 sn_yellow=0; ew_man_green=0;//東西人行道綠燈關(guān) ew_man_red=1;//東西人行道紅燈亮 ew_left=1;//東西左行紅燈 ew_go=1;//東西直行紅燈 ew_yellow=0; } voidstate2() { sn_left=1;//南北左行紅燈 sn_man_green=0;//南北人行道綠燈關(guān) sn_man_red=1;//南北人行道紅燈開 sn_go=0;//南北直行綠燈 sn_yellow=0; ew_man_green=1;//東西人行道綠燈開 ew_man_red=0;//東西人行道紅燈關(guān) ew_left=1;//東西左行紅燈 ew_go=1;//東西直行紅燈 ew_yellow=0; } voidstate3() { sn_left=1;//南北左行紅燈 sn_man_green=0;//南北人行道綠燈關(guān) sn_man_red=1;//南北人行道紅燈亮 sn_go=1;//南北直行紅燈 sn_yellow=1; //南北黃燈亮 ew_man_green=0;//東西人行道綠燈關(guān) ew_man_red=1;//東西人行道紅燈亮 ew_left=1;//東西左行紅燈 ew_go=1;//東西直行紅燈 ew_yellow=1; } voidstate4() { sn_left=1;//南北左行紅燈 sn_man_green=0;//南北人行道綠燈關(guān) sn_man_red=1;//南北人行道紅燈亮 sn_go=1;//南北直行紅燈 sn_yellow=0; //南北黃燈關(guān) ew_man_green=0;//東西人行道綠燈關(guān) ew_man_red=1;//東西人行道紅燈亮 ew_left=0;//東西左行綠燈 ew_go=1;//東西直行紅燈 ew_yellow=0; } voidstate5() { sn_left=1;//南北左行紅燈 sn_man_green=1;//南北人行道綠燈開 sn_man_red=0;//南北人行道紅燈關(guān) sn_go=1;//南北直行紅燈 sn_yellow=0; ew_man_green=0;//東西人行道綠燈關(guān) ew_man_red=1;//東西人行道紅燈開 ew_left=1;//東西左行紅燈 ew_go=0;//東西直行綠燈 ew_yellow=0;} voidstate6() { sn_left=1;//南北左行紅燈 sn_man_green=0;//南北人行道綠燈亮 sn_man_red=1;//南北人行道紅燈關(guān) sn_go=1;//南北直行紅燈 sn_yellow=0; //南北黃燈關(guān) ew_man_green=0;//東西人行道綠燈關(guān) ew_man_red=1;//東西人行道紅燈亮 ew_left=1;//東西左行紅燈 ew_go=1;//東西直行紅燈 ew_yellow=1; //東西黃燈亮 } voidmain() { flag=1; //狀態(tài)標識初始化為1 second=15; //初始化南北左轉(zhuǎn)時間15s (為調(diào)程序設(shè)為2本為‘15‘ count=0; //設(shè)定技術(shù)初值 sn_led1=1;//初始化各個指示燈狀態(tài) sn_led2=1; ew_led1=1; ew_led2=1; TMOD=0x11; TH0=0xF8;//0xFC;//0x1C; //FC18為延時1ms TL0=0x30;//0x18;//0x66; //F830為延時兩毫秒 EA=1; ET1=1; ET0=1; TR0=1; while(1); //無法跳到T1 } voidisr_t0()interrupt1 { TH0=0xF8;//0xFC;//0x1C; //FC18為延時1ms TL0=0x30;//0x18;//0x66; //F830為延時兩毫秒 TH1=0xF8;//0xFC;//PreloadH; TL1=0x30;//0x18;//PreloadL; TR1=1; if(flag==1|flag==2|flag==3) //顯示南北方向剩余時間 { P0=table[second/10]; sn_led1=0; Delayms(1); sn_led1=1; P0=table[second%10]; sn_led2=0; Delayms(1); sn_led2=1; } if(flag==4|flag==5|flag==6)//顯示東西方向剩余時間 { P0=table[second/10]; ew_led1=0; Delayms(1); ew_led1=1; P0=table[second%10]; ew_led2=0; Delayms(1); ew_led2=1; } //TH0=0xF8;//0xff;//0x1C; //TL0=0x30;//0xfa;//0x66; TR0=0;} /***定時器TI定時50ms中斷服務(wù)程序,順序完成各個狀態(tài)下的指示燈的控制***/ voidisr_t1()interrupt3 { count++; TH1=0xF8;//0xFC;//PreloadH; TL1=0x30;//0x18;//PreloadL; TH0=0xF8;//0xFC;//0x1C; //FC18為延時1ms TL0=0x30;//0x18;//0x66; //F830為延時兩毫秒 TR0=1; switch(flag) { case1: { state1(); if(count==240) / { count=0; if(second>0) { second--; } else { second=20; flag=2; } } }break; case2: { state2(); if(count==240) { count=0; if(second>0) { second--; } else { second=3; flag=3; } } }break; case3: { state3(); if(count==240) { count=0; if(second>0) { second--; } else { second=15; flag=4; } } }break; case4: { state4(); if(count==240) { count=0; if(second>0) { second--; } else { second=20; flag=5; } } }break; case5: { state5(); if(count==240) { count=0; if(second>0) { second--; } else {

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論