單片機課程設計---十字路口的交通燈控制電路_第1頁
單片機課程設計---十字路口的交通燈控制電路_第2頁
單片機課程設計---十字路口的交通燈控制電路_第3頁
單片機課程設計---十字路口的交通燈控制電路_第4頁
單片機課程設計---十字路口的交通燈控制電路_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應用課程設計報告 交通燈設計專 業(yè): 班 級: 姓 名: 學 號: 2013年5月1.課程設計目的1.1鞏固和加深對單片機原理和接口技術知識的理解;1.2培養(yǎng)根據(jù)課題需要選學參考書籍、查閱手冊和文獻資料的能力;1.3學會方案論證的比較方法,拓寬知識,初步掌握工程設計的基本方法;1.4掌握常用儀器、儀表的正確使用方法,學會軟、硬件的設計和調(diào)試方法;1.5能按課程設計的要求編寫課程設計報告,能正確反映設計和實驗成果,能用計算機繪制電路圖和流程圖。2.課程設計要求1)設計一個十字路口交通燈控制器。用單片機控制LED燈模擬指示。模擬東西方向的十字路口交通信號控制情況。東西向通行時間為80s

2、,南北向通行時間為60s,緩沖時間為3s。2)黃燈亮時,要求每秒閃亮一次。3)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進行顯示(采用計時的方法)。4) 當有突發(fā)事情發(fā)生時(如有救護車通過時),可通過按鍵將各個路口設置成紅燈,只讓救護車通過。3.硬件設計3.1設計思想單片機中斷按鍵復位電路晶振電路數(shù)碼顯示LED顯示單片機選型:AT89C52 AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼

3、容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應用。AT89C52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口, 片內(nèi)晶振及時鐘電路,8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash ROM。P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,P0口被分時轉(zhuǎn)換地址(低

4、8 位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。 在Flash 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1

5、口接收低8位地址字節(jié)。 P1端口引腳號第二功能: P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪

6、問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX RI 指令)時,P2 口輸出P2 鎖存器的內(nèi)容。 Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。 P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能。P3口亦作為AT89S52特殊功能(第二功能)使用,

7、如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。 P3端口引腳第二功能:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INTO(外中斷0)P3.3 INT1(外中斷1)P3.4 TO(定時/計數(shù)器0)P3.5 T1(定時/計數(shù)器1)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器讀選通)RST復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信

8、號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN

9、信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。3.2系統(tǒng)原理圖 3.3復位電路:上電+按鈕 。圖中,上電時,接通電源,電容器C相當于瞬間短路,+5V加到了RST/VPD端,該高電平使8051全機復位。若運行過程中,需要程序從頭執(zhí)行,只需按動按鈕開關,則直接把+5V加到了RST/V

10、PD端,從而復位。顯然,該電路即可以上電復位,也可以手動復位,是常用復位電路之一。3.4數(shù)碼管顯示:7SEG-MPX2-CC 此處采用的數(shù)碼管時共陰極數(shù)碼管,G、F、E、D、C、B、A七個端口是輸入端口,對其各位進行賦值,置位則亮,復位則滅,用此來顯示出相應的數(shù)字;1、2兩端口用來控制高位和低位的選通顯示,只要對端口置位,便可以選擇該端口,并對其所代表的位進行賦值,顯示。3.5發(fā)光二極管顯示 每個路口都采用了三個LED燈來顯示,分別代表了紅黃綠三種燈,來模擬路口交通燈的變換。3.6鍵盤:獨立鍵盤+中斷 采用開關來控制進入中斷,可以在路口出現(xiàn)緊急情況時,拉動開關,來使得紅綠燈發(fā)生相應的改變,已處

11、理緊急情況下的車輛通行。4.軟件設計4.1總體流程圖調(diào)東西方向通行子程序開 始中斷初始化調(diào)南北方向黃燈閃爍子程調(diào)南北方向通行子程序調(diào)東西方向黃燈閃爍子程判斷是否有開關中斷?中斷處理中斷返回(到子程序處)NOYES 4.2 緊急中斷子程序流程圖斷點入棧保護狀態(tài)參數(shù)設置送狀態(tài)字至端口狀態(tài)響應斷點返回開 始開 始4.3循環(huán)流程控制思路:中斷東西綠燈南北紅燈東西黃燈閃南北紅燈亮東西紅燈南北綠燈東西紅燈亮南北黃燈閃4.4源程序#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar uns

12、igned charuchar temp,aa,nn;sbit rn=P20; sbit nb=P21;sbit gn=P22;sbit rw=P23;sbit dx=P24;sbit gw=P25;sbit shi=P36;sbit ge=P37; /*對要使用的單片機各個口進行定義*/bit flag=0;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /*將數(shù)字0123456789的16進制數(shù)定義成數(shù)組用以顯示*/void delay(uin

13、t z);void disp(uint n);void nb_flash(void);void dx_flash(void);void xint0();void timer0();void LED_ON();void xint1();void LED_OFF();void nanbei();void dongxi(); /*將所使用的子函數(shù)定義*/void main()uint num;num=0;aa=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;EX0=1;IT0=0;EX1=1;IT1=1

14、; /*中斷初始化*/while(1)nanbei();nb_flash();dongxi();dx_flash(); /*主函數(shù)中顯示部分*/ void delay(uint z) /*延時子函數(shù)*/uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void timer0() interrupt 1 /*定時器初始化*/TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;if(aa=18)aa=0;flag=1;void disp(uint n) /*顯示子函數(shù)*/ while(!flag) ge=0;

15、 P0=tablen%10; delay(50); shi=1;ge=1; shi=0; P0=tablen/10; delay(50); shi=1;ge=1; if(flag=1) flag=0;void nanbei() /*南北方向的紅綠燈和數(shù)碼管顯示子函數(shù)*/uint num;num=60;disp(num);while(num<=60&&num>0) num-; P2=0xde; disp(num);void dongxi() /*東西方向的紅綠燈和數(shù)碼管顯示子函數(shù)*/uint num; num=80;while(num<=80&&

16、num>0)P2=0xf3; disp(num);num-;void nb_flash(void) /*南北方向的黃燈和數(shù)碼管顯示子函數(shù)*/uint a;for(a=3;a>0;a-)P2=0xdd; nb=1; delay(100);nb=0;disp(a);void dx_flash(void) /*東西方向的黃燈和數(shù)碼管顯示子函數(shù)*/uint a;for(a=3;a>0;a-) P2=0xeb; dx=1; delay(100); dx=0; disp(a);void xint0() interrupt 2 /*中斷定義*/TH0=(65536-50000)/256;T

17、L0=(65536-50000)%256; LED_ON(); void LED_ON() /*開關控制燈的子函數(shù)*/ uint b;rn=0;rw=0;gn=1;gw=1; nb=1;dx=1; for(b=5;b>0;b-)ge=0;shi=1;P0=tableb;delay(1000);ge=1; shi=1;return;5. 調(diào)試運行5.1正常運行狀態(tài) 5.2 中斷運行狀態(tài) 5.3 黃燈閃爍狀態(tài)6. 設計心得體會課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,單片機

18、已經(jīng)成為當今計算機應用中空前活躍的領域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。這次的單片機課程設計大概用了一周的時間,在這一周的時間當中,雖然開始遇到了很多的困難,但是由于合理地進行設計安排,分工合作,并各自查閱了相關的資料,最后在大家共同努力下我們順利地完成了本次單片機課程設計,同時也學到了很多東西?;仡櫰鸫舜螁纹瑱C課程設計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。例如我們在設計

19、數(shù)碼管顯示的時候,剛開始的時候,由于對數(shù)碼管引腳的不熟悉,我們都無法讓數(shù)字顯示,后來發(fā)現(xiàn)時十位和個位的置位、復位發(fā)生了問題,我們對此進行了修改,可以正確的顯示出十位及個位的數(shù)值,但是數(shù)字的顯示不穩(wěn)定,不停的跳動,我們?yōu)榇瞬殚喠撕芏嗟馁Y料,但還是未能解決,最后我們不停地對程序進行修改,終于發(fā)現(xiàn)了問題所在,在顯示子程序上存在缺陷未能快速的切換對十位、個位的置位和復位,經(jīng)過這樣的修改,終于可以完美的顯示時間了。我們也更好地掌握了對數(shù)碼管的使用,這都是課堂上學不到的知識。 這次的單片機課程設計是通過實踐操作和理論相結合,提高動手實踐能力,提高科學的思維能力。與此同時,我們也對分工合作有了進一步的認識,

20、只有通過合理的分工合作,我們們才能夠在短短一周的時間內(nèi)完成設計任務,相信這對以后在社會上工作和學習會有很多幫助,讓我們能更好的進入工作狀態(tài)。最重要的是,這次課程設計也增加了我們對問題的研究和探討,們以后的學習中會有更多的幫助。單片機為我們的主要專業(yè)課之一,對我們還是很有幫助的,課程設計也是為我們以后的工作提前進行了一次練手,也是我們學習生活之中少有的一次自己探索、研究,發(fā)現(xiàn)問題、解決問題的機會。當然要做好一個課程設計也不是很簡單的,我認為有以下幾步:(1) 在設計程序之前,對所用單片機的內(nèi)部結構有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源;(2) 要有一個清晰的思路和一個完整的的軟件流程圖,善于將大的程序段縮小為每個子函數(shù)來實現(xiàn);(3) 在設計程序時

溫馨提示

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

最新文檔

評論

0/150

提交評論