單片機(jī)C語言交通燈設(shè)計(jì).doc_第1頁
單片機(jī)C語言交通燈設(shè)計(jì).doc_第2頁
單片機(jī)C語言交通燈設(shè)計(jì).doc_第3頁
單片機(jī)C語言交通燈設(shè)計(jì).doc_第4頁
單片機(jī)C語言交通燈設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、附錄一:系統(tǒng)總程序#include/*初始變量設(shè)定*/sbit p1_0=P10;/ 定義 P0 口的 8 位sbit p1_1=P11;sbit p1_2=P12;sbit p1_3=P13;sbit p1_4=P14;sbit p1_5=P15;sbit p0_0=P16;bit flag=0;/ 定義顯示狀態(tài)控制位int ns_time;/ 定義東西,南北紅黃綠各自的時間初值分別為20,15,5 秒int ew_time;int ns_time_red=20;int ns_time_green=15;int ns_time_yellow=5;int ew_time_red=20;int

2、ew_time_green=15;int ew_time_yellow=5;char point=20;/ 定時的控制次數(shù)初值設(shè)定int a=0;/ 南北,東西兩方向切換狀態(tài)標(biāo)志初值設(shè)定/*延時子函數(shù) */delay(int t)/ 延時子函數(shù)while(t-);/*顯示子函數(shù) */display(int ew_time,int ns_time)/ 顯示子函數(shù)char table10=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09; /共陽極數(shù)碼顯示0-9 對應(yīng)的字型碼char i,a4;a2=ns_time%10;/ 南北時間個位數(shù)賦值給a

3、2a3=ns_time/10;/ 南北時間十位數(shù)賦值給a3a0=ew_time%10;/ 東西時間個位數(shù)賦值給a0a1=ew_time/10;/ 東西時間個位數(shù)賦值給a1SM1=0;SM0=0;/ 串行口工作方式0 設(shè)定for(i=3;i=0;i-)/ 分別將 4 位數(shù)送到SBUF區(qū)域SBUF=tableai;while(!TI) ;/ 判斷是否發(fā)送完一個數(shù)據(jù)TI=0;/ 若發(fā)送完, 0 賦給 TI1/*主函數(shù) */void main(void)TMOD=0x01;/ 設(shè)置定時方式1TH0=0x3c;/ 定時初值50MSTL0=0xb0;TR0=1;/T0 溢出中斷請求開啟EA=1;/ 總中斷

4、開啟ET0=1;/T0 中斷開啟EX0=1;/ 外部中斷INT0 開啟IT0=1;/ 設(shè)置開關(guān)下降沿有效EX1=1;/ 外部中斷INT0 開啟IT1=1;/ 設(shè)置開關(guān)下降沿有效ns_time=ns_time_green;/ 東西南北紅黃綠燈時間賦值ew_time=ew_time_red;ew_time_red=ns_time_green+ns_time_yellow;if(!a)/a=0, 東西顯示19 開始倒計(jì)時,南北14 開始倒計(jì)時ns_time=ew_time_red;ew_time=ns_time_green+ns_time_yellow;while(!a)/a=0, 進(jìn)入循環(huán)if(e

5、w_time-50)while(!flag);display(ew_time,ew_time-5); /flag=1,顯示東西19,南北 14P1=0xdd;/ 南北綠燈,東西紅燈flag=0;if(ew_time=5)/ 東西時間 0)/ 南北紅燈,東西綠燈while(!flag);display(ns_time-5,ns_time);/flag=0 ,顯示南北19,東西 14delay(5000);/ 延時子函數(shù)調(diào)用P1=0xeb;/ 南北紅扥個,東西綠燈顯示if(ns_time-5=0)/ 南北時間 =5 時南北紅燈,東西黃燈閃爍while(!flag);/flag=0 南北顯示19 開

6、始倒計(jì)時,東西14 開始倒計(jì)時flag=0;display(ns_time,ns_time);/ 東西,南北均從5 開始倒計(jì)時顯示P1=0xfb;/ 南北紅燈,東西黃燈一亮一滅顯示p1_3=p1_3;/ 東西黃燈P1.3 位取反,以實(shí)現(xiàn)黃燈亮滅變化顯示delay(5000);/ 延時函數(shù)調(diào)用if(ns_time=0)/ 如果南北時間為0 賦值 a 為 0a=0;/*t0中斷定時子函數(shù)*/int t0int()interrupt 1/t0 中斷(定時器0 中斷)子函數(shù)TH0=0x3c;/ 定時 50ms 初值設(shè)定TL0=0xb0;3point-;/20 次 T0 定時次數(shù)控制if(point=0

7、)/ 如果 20 次到了,改變顯示的東西南北方向的時間flag=1;point=20;if(ns_time!=0)ns_time-;if(ew_time!=0)ew_time-;/*int0中斷緊急情況處理子函數(shù)*/void int0(void) interrupt 0/int0中斷子函數(shù),當(dāng)緊急情況(救護(hù)車等)發(fā)生時,對應(yīng)INT0 按鍵調(diào)用此函數(shù)int i,j;display(00,00);/ 顯示器顯示0000,不再進(jìn)行倒計(jì)時delay(5000);for(i=0;i10;i+)/ 利用 flag 實(shí)現(xiàn)東西南北方向紅燈均顯示亮,對應(yīng)東西南北方向車流均停止,處理緊急情況for(j=0;j10

8、;j+)delay(50000);while(!flag) P1=0xdb;flag=0;/*int1中斷流量處理子函數(shù)*/void int1(void) interrupt 2/int1中斷子函數(shù),當(dāng)緊急情況(救護(hù)車等)發(fā)生時,對應(yīng)INT1 按鍵調(diào)用此函數(shù)int i,j;display(00,00);/ 顯示器顯示0000,不再進(jìn)行倒計(jì)時for(i=0;i10;i+)for(j=0;j10;j+)/ 利用 flag 實(shí)現(xiàn)主干道東西方向綠燈南北方向紅燈4while(!flag) P1=0xeb;flag=0;5系統(tǒng)總硬件電路仿真圖系統(tǒng)硬件電路總圖包括復(fù)位電路,時鐘電路,按鍵緊急處理電路,LED

9、顯示電路,數(shù)碼管顯示電路模塊,對應(yīng)各自電路功能如前面硬件電路設(shè)計(jì)部分進(jìn)行說明。6圖:東西方向數(shù)碼管顯示19,東西方向紅燈亮;南北方向顯示14, 南北方向綠燈亮東西方向數(shù)碼管從 19,南北方向從 14 開始倒計(jì)時,東西方向紅燈亮,禁止車輛通行,南北方向綠燈亮,車輛通行圖:東西方向數(shù)碼管顯示4,東西方向紅燈亮;南北方向顯示4, 南北方向黃燈亮滅當(dāng)南北方向計(jì)數(shù)到 5 時,東西方向數(shù)碼管從 4,南北方向從 4 開始倒計(jì)時,東西方向紅燈亮,禁止車輛通行,南北方向黃燈亮滅變化,處于狀態(tài)變化等待狀態(tài)7圖:東西方向數(shù)碼管顯示14,東西方向綠燈亮;南北方向顯示19, 南北方向紅燈亮東西方向數(shù)碼管從 14,南北方向從 19 開始倒計(jì)時,東西方向綠燈亮,允許車輛通行,南北方向紅燈亮,禁止車輛通行圖:東西方向數(shù)碼管顯示4,東西方向黃燈亮滅變化;南北方向顯示4, 南北方向紅燈亮當(dāng)南北方向計(jì)數(shù)到 5 時,東西方向數(shù)碼管從 4,南北方向從 4 開始倒計(jì)時,東西方向黃燈亮滅變化,處于等待轉(zhuǎn)換的狀態(tài),南北方向紅燈亮,禁止車輛通信8圖:東西方向數(shù)碼管顯示0,東西方向紅燈亮;南北方向顯示0, 南北方向紅燈亮當(dāng)發(fā)生救護(hù)車到來等緊急情況發(fā)生時,對應(yīng)仿真時

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論