![單片機交通燈課程設(shè)計報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f2/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f21.gif)
![單片機交通燈課程設(shè)計報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f2/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f22.gif)
![單片機交通燈課程設(shè)計報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f2/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f23.gif)
![單片機交通燈課程設(shè)計報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f2/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f24.gif)
![單片機交通燈課程設(shè)計報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f2/0fc9ccd0-97c5-4083-8db4-96d7cfc4c3f25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 課程設(shè)計報告紙單片機原理與應(yīng)用課程設(shè)計報告 題 目: 學(xué) 院: 姓 名: 學(xué) 號: 日 期: 指導(dǎo)老師: 交通燈的設(shè)計一、課程設(shè)計的目的1、進一步熟悉和掌握單片機的結(jié)構(gòu)及工作原理。2、掌握單片機的接口技術(shù)及相關(guān)外圍芯片的特性,控制方法。3、通過課程設(shè)計,掌握以單片機核心的電路設(shè)計的基本方法和技術(shù),了解有關(guān)電路參數(shù)的計算方法。4、通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù)。5、通過完成一個包括電路設(shè)計和程序開發(fā)的完整過程,使學(xué)生了解開發(fā)一單片機應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)工作打下基礎(chǔ)。6、通過課程設(shè)計,培養(yǎng)學(xué)生綜合運用所學(xué)專業(yè)知識分析問題和解決問題的能力。二、儀器設(shè)備偉福
2、Lab8000系列單片機仿真實驗系統(tǒng)。三、課程設(shè)計主要內(nèi)容及技術(shù)指標 基本要求:設(shè)計由紅黃綠三色燈組成的交通信號燈,各燈逐次點亮,按照紅燈亮63秒綠燈亮60秒黃燈亮3秒紅燈亮63秒的順序反復(fù)循環(huán)。利用單片機片內(nèi)的定時計數(shù)器定時,紅黃綠燈用發(fā)光二極管表示,計時值用數(shù)碼管以十進制數(shù)字顯示。要求定時準確,數(shù)碼管和二極管顯示正確。拓展要求:要有較好的人機對話界面;由單向路口的紅綠燈循環(huán)點亮拓展為十字路口紅綠燈的循環(huán)點亮;在十字路口的某一方向設(shè)定緊急通行開關(guān),閉合開關(guān)時要求此方向綠燈點亮,另一方向紅燈點亮,且倒計時的顯示數(shù)碼管停止計時。4、 系統(tǒng)工作原理該系統(tǒng)以89C51單片機為控制核心,由外接三色(紅
3、綠黃)LED燈同步八段數(shù)碼管的倒計時顯示,外接兩開關(guān)電路控制兩方向的應(yīng)急中斷。單片機上電后,系統(tǒng)進入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時將時間數(shù)據(jù)倒計時輸入到八段數(shù)碼管上實時顯示。在此過程中隨時通過開關(guān)調(diào)用LED燈常亮顯示和清除數(shù)碼管顯示的中斷。五、系統(tǒng)的硬件設(shè)計注:單片機的晶振電路的復(fù)位電路略去連線時,偉福Lab8000系列單片機仿真實驗系統(tǒng)的數(shù)碼管顯示打到外驅(qū),P2口連接數(shù)碼管的段碼口,P3連接位選通口;用P1.0P1.5分別選連兩組紅綠黃燈,P1.6P1.7連接兩控制開關(guān)key和key1.六、系統(tǒng)的軟件設(shè)計1、 系統(tǒng)工作過程(1) 在一個十字路口的兩條主干道上,分別裝上一套紅、黃、
4、綠3種信號燈。 (2) 在通常情況下,一條主干道為紅燈,另一條主干道為綠燈或黃燈。采用定時器查詢方式控制南北向、東西向交通燈。數(shù)碼管倒計時顯示。亮燈規(guī)律:東西紅燈亮63秒,南北綠燈亮60秒、黃燈亮3秒;南北紅燈亮63秒,東西綠燈亮60秒、黃燈亮3秒。(3) 在緊急情況時,數(shù)碼管倒計時顯示暫停,應(yīng)急方向綠燈常亮,另一方向紅燈亮。設(shè)置某一方向中斷的優(yōu)先級更高。解除應(yīng)急以后,系統(tǒng)接著之前中斷時的狀態(tài)繼續(xù)正常工作。2、 軟件設(shè)計思想通過定時器的查詢方式,實現(xiàn)對數(shù)碼管倒計時顯示以及紅綠黃三色的LED燈的亮滅時間的控制:通過中斷方式,實現(xiàn)在緊急情況下兩方向紅綠燈亮滅的控制。3、 程序流程圖 (一)、主函數(shù)
5、部分: (二) 、更新LED燈的狀態(tài)和數(shù)碼管的顯示值模塊:4、 軟件源程序#include < reg51.h >/ 此表為 LED 的字模 / 0 1 2 3 4 5 6 7 8 9 clearunsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/count_1s為定時到1s的循環(huán)次數(shù)20,count1和count為倒計時數(shù)/flag_1s是1s到的標志unsigned char count_1s,count,count1,flag_1s; unsigned ch
6、ar flag,flag1=1;/0->red; 1->green; 2->yellowsbit red=P10;sbit green=P11;sbit yellow=P12;sbit red1=P13;sbit green1=P14;sbit yellow1=P15;sbit key=P16;sbit key1=P17;unsigned char a4;/顯示數(shù)據(jù)緩存void zd_ini() /中斷初始化程序TMOD=0x01;/選擇方式1,定時器00000 0001bTH0=0X3C; /定時50ms初值TL0=0XB0;ET0=1;/開定時器中斷EA=1;TR0=1;
7、void system_ini()flag=0;count_1s=20; / 20*50ms=1s;count=63; count1=60;zd_ini();/調(diào)用中斷初始化程序red=1;green=0;yellow=0; green1=1; red1=0; yellow1=0; key=1; key1=1;void timer_0() interrupt 1/定時器中斷0TH0=0X3C; /繼續(xù)賦初值TL0=0XB0;if(-count_1s) /如果沒到1s,則返回 return;/到1sflag_1s=1;/置位標志位count_1s=20;void show()/用于計算和查表轉(zhuǎn)換
8、相應(yīng)的待顯示數(shù)/東西向 a0=count/10; /高位 a1=count%10; /低位a0=Disp_Taba0;a1=Disp_Taba1;/南北向a2=count1/10; /高位a3=count1%10; /低位a2=Disp_Taba2;a3=Disp_Taba3;void update() /更新count和count1的值,切換LED燈 if(key=1)/如果開關(guān)按下,則東西通,南北止 red=green1=0; yellow=yellow1=0; green=red1=1; else if(key1=1) /如果開關(guān)1按下,則南北通,東西止 red=green1=1; ye
9、llow=yellow1=0; green=red1=0; else/如果無開關(guān)按下if(flag=0)if(count=0)flag=1;/綠燈亮flag1=0;/紅燈1亮count=60;count1=63; else if(count1=0) flag1=2; /黃燈1亮 count1=3; elsecount-; count1-;else if(flag=1)if(count=0)flag=2; /黃燈亮count=3;elsecount-; count1-;elseif(count=0)flag=0;/紅燈亮 flag1=1;/綠燈1亮 count1=60;count=63;else
10、count-; count1-;/分別根據(jù)flag和flag1的值對LED燈的點亮情況設(shè)置if(flag=0)red=1;green=0;yellow=0;if(flag1=1)red1=0;green1=1;yellow1=0;if(flag1=2)red1=0;green1=0;yellow1=1; if(flag=1)red=0;green=1;yellow=0; if(flag1=0) red1=1;green1=0;yellow1=0;if(flag=2)red=0;green=0;yellow=1; void disp() /總的顯示函數(shù)int i=0;show();/調(diào)用用于計算
11、和查表轉(zhuǎn)換相應(yīng)的待顯示數(shù)的函數(shù)P3=0x01; /輸出低位選通信號P2=a1;for(i;i<30;i+);/延時P3=0x02;P2=a0;i=0;for(i;i<30;i+);/延時P3=0x04; /輸出低位選通信號P2=a2; i=0;for(i;i<30;i+);/延時P3=0x08;P2=a3;i=0;for(i;i<30;i+);/延時void main()system_ini();/系統(tǒng)初始化while(1)if(flag_1s)update(); /更新flag_1s=0; /清除1秒時間到的標志disp();/一直循環(huán)顯示七、系統(tǒng)的實現(xiàn)與調(diào)試過程(一
12、)、基本功能的實現(xiàn)與測試:(1)、一秒定時的實現(xiàn);用定時器0定時50ms,循環(huán)次數(shù)設(shè)為20,每次溢出產(chǎn)生中斷,進入中斷服務(wù)程序里把次數(shù)減一,20次之后即可實現(xiàn)1s的定時。在中斷程序中,添加語句,如果循環(huán)到20次,則把P1.0取反,從而直接可以觀察到1s定時的LED燈的亮滅。如果沒有,則檢查中斷服務(wù)程序。(2)、單個數(shù)碼管顯示的實現(xiàn);數(shù)碼管的ABCDEFGH與單片機的P2相連,位選通與P3口相連。使要顯示的位的位選通為低電平,從而實現(xiàn)顯示。檢測時,可以先寫P2=0xff;P30=1;看數(shù)碼管是否能顯示8.,如果可以,則說明數(shù)碼管和電路沒問題,如果不可以,則檢查電路。然后用要顯示的值為索引下標,查
13、找預(yù)先定義的數(shù)組unsigned char code Disp_Tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;轉(zhuǎn)換成相應(yīng)的數(shù)碼管值送到P2口,看數(shù)碼管能否正常顯示。(3)、兩個數(shù)碼管動態(tài)掃描顯示的實現(xiàn);循環(huán)切換切換各數(shù)碼管的位選通位,與此同時,送出段碼,延時一段時間。如此即可實現(xiàn)動態(tài)顯示。調(diào)試時,觀察數(shù)碼管是否能夠正常掃描顯示。如果亮度過低,則增加延時時間;如果有閃爍現(xiàn)象,則減小延時即可。(4)、LED燈配合數(shù)碼管顯示數(shù)值的改變而亮滅的實現(xiàn);每1s定時時間到,都要調(diào)用更新程序update();在這個函數(shù)里,我們通過判斷當(dāng)前
14、計數(shù)值是否遞減到0來確定是否要切換狀態(tài)。如果切換狀態(tài),則當(dāng)前計數(shù)值重新賦初值,比如,下一個狀態(tài)是紅燈,則初值為63;調(diào)試時觀察LED燈是否與顯示的倒計時同步。如果不同步,檢查自己的update()函數(shù)里的判斷邏輯關(guān)系是否有誤。(二)、附加南北方向的控制后:(1)、南北和東西交通燈組合情況的邏輯梳理;總共四種情況:東西紅燈,南北綠燈;東西紅燈,南北黃燈;東西綠燈,南北紅燈;東西黃燈,南北紅燈。我們在東西紅的控制程序段里加入南北綠燈和黃燈的判斷處理;東西綠燈和黃燈時,讓南北紅燈點亮;東西黃燈結(jié)束,東西南北的交通燈同時切換。如此即可理清整個邏輯的框架。(2)、四個數(shù)碼管動態(tài)掃描顯示的實現(xiàn);通上所述兩
15、個數(shù)碼管實現(xiàn)和調(diào)試方法一樣,只是循環(huán)切換的位選通位為四位。(3)、LED燈的配合顯示;調(diào)試時觀察,東西向和南北向的LED是否顯示合理,若出現(xiàn)不該有的狀態(tài),則檢查判斷邏輯是否有誤。觀察前,可將各個燈的點亮?xí)r間縮短,以節(jié)約觀察時間,測試完畢修改回來即可。(三)、增加人為應(yīng)急控制后:(1)、人為控制功能分析;若人為地按下東西向恒通的按鍵key,則數(shù)碼管停止倒計時,顯示值鎖定;若人為地按下南北向恒通的按鍵key1,則數(shù)碼管停止倒計時,顯示值鎖定;key的優(yōu)先級較key1高。(2)、按鍵檢測的中斷或查詢方式的實現(xiàn)與分析;我們可以通過ifelse if-else;語句實現(xiàn)優(yōu)先級,也可以通過中斷的優(yōu)先級來控
16、制實現(xiàn)。于此題看來中斷程序似乎顯得略微復(fù)雜,涉及到兩個中斷服務(wù)程序的編寫,現(xiàn)舉一例:void int0() interrupt 0TR0=0; /關(guān)閉計數(shù)器green=1; /東西綠燈亮red=0;yellow=0;red1=1; /南北紅燈亮green1=0;yellow1=0;key=1;/設(shè)置key為讀入方式while(key=0);TR0=1;/打開計數(shù)器這只是其中一個中斷程序的書寫,除此之外還要設(shè)置優(yōu)先級,考慮中斷嵌套的問題,不甚麻煩,采用ifelse if-else;語句可以直接確定優(yōu)先級,代碼和思路簡單。本次課設(shè)采用if語句實現(xiàn)。(3)、最終的實現(xiàn)最終實現(xiàn)程序和連線圖見報告的源程序和電路原理圖部分。八、心得感悟這次的單片機課設(shè)實際上是我們的理論課單片機與嵌入式系統(tǒng)設(shè)計的實際應(yīng)用延伸。通過這次課設(shè),我們進一步地熟悉和掌握了AT89C51單片機的結(jié)構(gòu)和工作原理,能夠熟悉地根據(jù)單片機的接口特征編寫相應(yīng)的程序,從而達到測試控制的目的。這次課程設(shè)計是一個完整的應(yīng)用系統(tǒng)的開發(fā)過程,在課程設(shè)計的整個過程中,我們一步一個腳印,從提出設(shè)想到功能分析、再到過程設(shè)計、再到編碼實現(xiàn),再到最后整個解決方案的形成,大大增強了自己的系統(tǒng)設(shè)計能力。我們這次的課程設(shè)計題目是交通燈的設(shè)計,基本功能就是讓紅綠黃三個燈
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營銷策劃合同
- 能源行業(yè)新能源技術(shù)研發(fā)與應(yīng)用推廣方案
- 企業(yè)管理咨詢協(xié)議書
- 網(wǎng)絡(luò)視頻會議系統(tǒng)安全防護與性能優(yōu)化策略
- 軟件實施工程師聘用合同
- 工廠買賣合同書
- 農(nóng)業(yè)生產(chǎn)技術(shù)培訓(xùn)與教育方案
- 游戲角色設(shè)計作業(yè)指導(dǎo)書
- 房屋土地買賣合同書
- 計算機與辦公設(shè)備行業(yè)作業(yè)指導(dǎo)書
- 人教版四年級上冊豎式計算200題及答案
- 建設(shè)工程工作總結(jié)報告
- 四年級下冊脫式計算100題及答案
- 脾破裂術(shù)后健康宣教課件
- 財務(wù)管控的間接成本
- 藏族唐卡藝術(shù)特色分析
- 操作系統(tǒng)課程設(shè)計報告
- 護士團隊的協(xié)作和領(lǐng)導(dǎo)力培養(yǎng)培訓(xùn)課件
- QFD模板含計算公式計分標準說明模板
- 慢阻肺試題練習(xí)
- 人工智能在生物醫(yī)學(xué)倫理與法律中的基因編輯與生命倫理問題研究
評論
0/150
提交評論