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

下載本文檔

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

文檔簡介

1、單片機接口設(shè)計交通燈專業(yè):電氣工程及其自動化班級:姓名:學(xué)號:2012.06.20摘 要11.引言22.總體設(shè)計方案22.1.設(shè)計思路22.1.1.設(shè)計目的22.1.2.設(shè)計任務(wù)和內(nèi)容32.1.3.芯片簡介52.2.設(shè)計方框圖83.設(shè)計原理分析83.1.交通燈顯示時序的理論分析83.2電路模塊113.2.1. 數(shù)碼管顯示模塊113.2.2.復(fù)位電路153.2.3.晶振電路164.總結(jié)165.參考文獻166.附錄176.1.附錄1:程序清單和硬件電路圖17摘 要交通在人們的日常生活中占有重要的地位,隨著人們社會活動的日益頻繁,這點更是體現(xiàn)的淋漓盡致。交通信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)

2、交通流量、提高道路通行能力,減少交通事故有明顯效果。近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本系統(tǒng)采用單片機at80c51為中心器件來設(shè)計交通燈控制器,系統(tǒng)實用性強、操作簡單、擴展性強。本設(shè)計就是采用單片機模擬十字路口交通燈的各種狀態(tài)顯示以及倒計時時間。本設(shè)計系統(tǒng)由單片機i/o口擴展系統(tǒng)、交通燈狀態(tài)顯示系統(tǒng)、led數(shù)碼顯示系統(tǒng)、復(fù)位電路等幾大部分組成。系統(tǒng)除基本的交通燈功能外,還具有倒計時等功能,較好的模擬實

3、現(xiàn)了十字路口可能出現(xiàn)的狀況。軟件上采用c51編程,主要編寫了主程序,led數(shù)碼管顯示程序,中斷程序延時程序等。經(jīng)過整機調(diào)試,實現(xiàn)了對十字路口交通燈的模擬。關(guān)鍵字:電子線路 at80c51 led 交通燈2.總體設(shè)計方案2.1 設(shè)計思路2.1.1 設(shè)計目的(1)加強對單片機和匯編語言的認識,充分掌握和理解設(shè)計各部分的工作原理、設(shè)計過程、選擇芯片器件、模塊化編程等多項知識。(2)用單片機模擬實現(xiàn)具體應(yīng)用,使個人設(shè)計能夠真正使用。(3)把理論知識與實踐相結(jié)合,充分發(fā)揮個人能力,并在實踐中鍛煉。(4)提高利用已學(xué)知識分析和解決問題的能力。(5)提高實踐動手能力。2.1.2設(shè)計任務(wù)和內(nèi)容1.設(shè)計任務(wù)單片

4、機采用用at80c51芯片,由于實驗用的單片機要求,這次實驗要求:1、顯示要求與十字路口要求一直2、有倒計時3、用6位數(shù)碼管顯示:左2位表示左轉(zhuǎn)彎,中間2位表示直行,右2位表示右轉(zhuǎn)彎;2個數(shù)碼管中其中1個表示燈(用h l u分別表示紅、綠、黃),另一個數(shù)碼管用于倒計時。4、本機地址為0ah,當接到上位機發(fā)的0ah時,則回發(fā)0ah當接到上位機發(fā)的aah時,則將當前狀態(tài)發(fā)給上位機,當前狀態(tài)自己定義并分類2.設(shè)計內(nèi)容(1)硬件系統(tǒng)設(shè)計說明及原理圖。(2)軟件流程圖及軟件清單。(3)編寫程序并將調(diào)試好的程序固化到單片機中,能夠?qū)崿F(xiàn)通信設(shè)計方框圖整個設(shè)計以at80c51單片機為核心,由數(shù)碼管顯示,led

5、數(shù)碼管顯示,復(fù)位電路組成。硬件模塊入圖2-1。at89c51單片機數(shù)碼管顯示數(shù)碼管選通晶振電路復(fù)位電路交通模式:條件有限,只能實現(xiàn)單方向交通控制,但是不會出現(xiàn)交通事故情況。具體要求:單方向,有左轉(zhuǎn),直行,右轉(zhuǎn)。每個方向用兩個數(shù)碼管表示,一個用作紅綠燈表示,另一個作為時間倒計時。具體時間安排是方向狀態(tài)時間狀態(tài)時間狀態(tài)時間狀態(tài)時間狀態(tài)時間狀態(tài)時間左轉(zhuǎn)紅5綠3黃4黃3紅4紅2直行綠5黃3紅8紅7紅4紅2右轉(zhuǎn)綠9綠4綠1紅5紅2綠22.1.3芯片簡介80c51單片機引腳圖及引腳功能介紹首先我們來介紹一下單片機的引腳圖及引腳功能(如下圖所示), 引腳的具體功能將在下面詳細介紹單片機的40個引腳大致可分為

6、4類:電源、時鐘、控制和i/o引腳。 電源: vcc - 芯片電源,接+5v; vss - 接地端; 時鐘:xtal1、xtal2 - 晶體振蕩電路反相輸入端和輸出端。 控制線:控制線共有4根, ale/prog:地址鎖存允許/片內(nèi)eprom編程脈沖 ale功能:用來鎖存p0口送出的低8位地址 prog功能:片內(nèi)有eprom的芯片,在eprom編程期間,此引腳輸入編程脈沖。 psen:外rom讀選通信號。 rst/vpd:復(fù)位/備用電源。 rst(reset)功能:復(fù)位信號輸入端。 vpd功能:在vcc掉電情況下,接備用電源。 ea/vpp:內(nèi)外rom選擇/片內(nèi)eprom編程電源。 ea功能:

7、內(nèi)外rom選擇端。 vpp功能:片內(nèi)有eprom的芯片,在eprom編程期間,施加編程電源vpp。 i/o線80c51共有4個8位并行i/o端口:p0、p1、p2、p3口,共32個引腳。復(fù)位p3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。2.2設(shè)計方框圖晶振源數(shù)碼管倒計時顯示at80c51路口紅綠燈燈3.設(shè)計原理分析3.1 交通燈顯示時序的理論分析對于一個交通路口來說,首先是安全性能,再者是最短的時間內(nèi)達到最大的車流量,就算是達到了最佳的性能。先設(shè)定一些標號如圖21 所示。說明:此圖為直方圖,上邊為北路口燈,右邊為東路口燈,下邊為南路口燈,左邊為西路口燈。 圖22 所示為一

8、種紅綠燈規(guī)則的狀態(tài)圖,分別設(shè)定為s1、s2、s3、s4,交通燈以這四的狀態(tài)為一個周期,循環(huán)執(zhí)行(見圖23)。圖21請注意圖21b和圖21d,它們在一個時間段中四個方向都可以通車,這種狀態(tài)能在一定的時間內(nèi)達到較大的車流量,效率特別高。依據(jù)上述的車輛行駛的狀態(tài)圖,可以列出各個路口燈的邏輯表,由于相向的燈的狀態(tài)圖是一樣的,所以只需寫出相鄰路口的燈的邏輯表;根據(jù)圖23 可以看出,相鄰路口的燈它們的狀態(tài)在相位上相差180。1.1. 電路模塊數(shù)碼管顯示(1) 動態(tài)顯示方式:動態(tài)顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數(shù)碼管的位選被輪流選中,多個數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對位選選中的

9、數(shù)碼管有效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點亮?xí)r間和間隔時間的比例有關(guān)。通過調(diào)整電流和時間參數(shù),可以既保證亮度,又保證顯示。若顯示器的位數(shù)不大于8位,則顯示器的公共端只需一個8位i/o口進行動態(tài)掃描(稱為掃描口),控制每位顯示器所顯示的字形也需一個8位口(稱為段碼輸出)。不管是紅綠燈燈,還是時間顯示都是數(shù)碼管,所以都是動態(tài)顯示。程序初始化:中斷設(shè)置,初始值設(shè)定外中斷進入:進入循環(huán),與關(guān)斷循環(huán)狀態(tài)變換:單方向紅路燈變化及左右轉(zhuǎn)數(shù)碼管顯示:數(shù)碼管的選通與顯示多機通信:實現(xiàn)與上位機的通信,狀態(tài)傳輸數(shù)碼管顯示子程序:xs:mov a,r1 ;顯示,數(shù)碼管

10、的顯示,首先是十進制轉(zhuǎn)換 mov b,#10 ;將r1.r2.r3轉(zhuǎn)化成十進制 div ab mov 30h,b mov a,r2 mov b,#10 div ab mov 31h,b mov a,r3 mov b,#10 div ab mov 32h,b mov a,r3 ;數(shù)碼管 的顯示 mov dptr,#ledmap movc a,a+dptr push a mov dptr,#8002h mov a,#1h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay mov dptr,#8002h mov a,#2h movx d

11、ptr,a mov a,42h mov dptr,#8004h movx dptr,a call delay mov a,r2 mov dptr,#ledmap movc a,a+dptr push a mov dptr,#8002h mov a,#4h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay mov dptr,#8002h mov a,#8h movx dptr,a mov a,41h mov dptr,#8004h movx dptr,a call delay mov a,r1 mov dptr,#ledmap mo

12、vc a,a+dptr push a mov dptr,#8002h mov a,#10h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay mov dptr,#8002h mov a,#20h movx dptr,a mov a,40h mov dptr,#8004h movx dptr,a call delay ret3.2.1紅綠燈顯示模塊本實驗狀態(tài)調(diào)節(jié):bb: mov r1,#05h ;bb是顯示,其中先賦值,嵌套了時間中斷,調(diào)用時間中斷。 mov r2,#05h mov r3,#09h ;下邊的都是相同的,時間的不同是用

13、最短時間,然后重復(fù)賦值,實現(xiàn)的 mov 40h,#76h mov 41h,#38h ;bb.mm.nn.ff.oo.zz.xx都是顯示程序,直接賦值調(diào)用時間程序,r1.r2.r3.在程序里一秒減一。 mov 42h,#38h ;并且調(diào)用xs(顯示),顯示即為數(shù)碼管顯示程序 lcall t0 mm:lcall xs cjne r1,#00h,mm mov r1,#03h mov r2,#03h mov r3,#04h mov 40h,#38h mov 41h,#3eh mov 42h,#38h lcall t0 nn:lcall xs cjne r1,#00h,nn mov r1,#04h mo

14、v r2,#08h mov r3,#01h mov 40h,#3eh mov 41h,#76h mov 42h,#38h lcall t0 ff:lcall xs cjne r3,#00h,ff mov r1,#03h mov r2,#07h mov r3,#05h mov 40h,#3eh mov 41h,#76h mov 42h,#76h lcall t0 oo:lcall xs cjne r1,#00h,oo mov r1,#04h mov r2,#04h mov r3,#02h mov 40h,#76h mov 41h,#76h mov 42h,#76h lcall t0zz:lcal

15、l xs cjne r3,#00h,zz mov r1,#02h mov r2,#02h mov r3,#02h mov 40h,#76h mov 41h,#76h mov 42h,#38h lcall t0 xx:lcall xs cjne r3,#00h,xx ljmp int0 t0:setb tr0 ;時間t0中斷,r1.r2.r3.運行一次減一 mov th0,#3ch mov tl0,#0b0h djnz r0,yy mov r0,#0ah dec r2 dec r3 dec r1yy:reti3.2.2 復(fù)位電路復(fù)位方式有多種,本設(shè)計采用按鍵復(fù)位。接線圖如圖程序3.1復(fù)位電路,框

16、圖在設(shè)定的定時時間內(nèi),89s52必須在rst引腳產(chǎn)生一個由高到低的電平變化,以清內(nèi)部定時器. 3.2.3 晶振電路晶振電路原理圖如3-2:3-2晶振模塊原理圖選取原則:傳統(tǒng)做法,但能夠?qū)崿F(xiàn)所需,即最簡單也最是實用。電容選取30pf,晶振為30mhz。4.總結(jié)通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步。本次課程設(shè)計的過程是艱辛的,不過收獲卻是很大的。在設(shè)計過程中,會出現(xiàn)了一些問題,但經(jīng)過思考都一一解決了,如:首先是對于題目的審視,全部由數(shù)

17、碼管顯示,并且有左右轉(zhuǎn),首先是確定是單方向的控制。再者是顯示的規(guī)則與順序,我們之間也進行了相當時間的討論,也一起去十字路口看過相關(guān)的顯示,但是單個數(shù)碼管顯示是有限的,所以最終定了一個比較合理的方案,實現(xiàn)路口的正常交通,不產(chǎn)生交通事故。還有代碼的編寫,首先確定代碼需要的中斷,順序,結(jié)構(gòu),還是與前面實驗的有相關(guān)的聯(lián)系,借鑒相關(guān)程序進行了比較。狀態(tài)顯示并且是時間變化的現(xiàn)實,不同步,使用一個定時器,是比較困難的。所以采用了,不同段,不同賦值的方法,實現(xiàn)現(xiàn)實的連續(xù)。通信的程序,因為沒有硬件與上位機連接,所以一直沒法調(diào)試,小組的幾個人也都討論了相關(guān)的程序。每個人都寫了一段,但是相關(guān)協(xié)議必須是與上位機相同的

18、,所以,最后才把通信程序?qū)懞?,與上位機連接后還是沒有實現(xiàn),跳不出通信程序。最后發(fā)現(xiàn)通信程序,串行中斷進入之后最后沒有中斷返回,而是內(nèi)部跳轉(zhuǎn),經(jīng)組內(nèi)成員檢查發(fā)現(xiàn)并及時改正。經(jīng)過調(diào)試修改都一一解決,程序順利完成,并實現(xiàn)了其功能。由于單片機板有限,實驗調(diào)試時拷進程序?qū)崿F(xiàn)了紅綠燈的顯示正常。進行復(fù)位等的操作。之前沒注意,在試驗箱的晶振是6m的,之后單片機是12m的,所以時間是有些不同,之后改的雙倍的。綜合課程設(shè)計讓我把以前學(xué)習(xí)到的知識得到鞏固和進一步的提高認識,對已有知識有了更進一步的理解和認識。在此,由于自身能力有限,在課程設(shè)計中碰到了很多的問題,我通過查閱相關(guān)書籍、資料以及和周圍同學(xué)交流。當然,通

19、過這次課程設(shè)計,我也發(fā)現(xiàn)了自身的很多不足之處,在以后的學(xué)習(xí)中,我會不斷的完善自我。2. 參考文獻1李朝青.單片機原理及接口技術(shù)(第3版).2005年10月2.蔡朝洋.單片機控制實習(xí)與專題制作3.樓然苗.單片機課程設(shè)計指導(dǎo)4.趙廣林.電路設(shè)計與制版3. 附錄3.1. 附錄1:程序清單 org 000h ;主程序 ajmp main org 0003h ;外中斷 ljmp int0 org 000bh ;時間中斷 ljmp t0 org 0023h ;串口中斷 ljmp tx ledmap: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh

20、, 77h, 7ch, 39h, 5eh, 79h, 71h ; 八段管顯示碼 org 0060h main:mov tmod,#21h ;t1方式1,t0方式0 mov scon,#0f0h ;串口允許接收 mov th1,#0fah mov tl1,#0fah ;自動重裝載 setb tr1 mov pcon,#00h ;波特率不變化 mov ie,#90h ;開中斷允許 mov th0,#3ch ;定時1s mov tl0,#0b0h mov r0,#0ah ;循環(huán)十次 mov r5,#02h ;設(shè)置初值 mov r6,#02h setb ex0 ;t0設(shè)置 setb it0 setb

21、et0 int0:jnb tr0,bb ;判斷是否開中斷 clr tr0 ;關(guān)閉中斷 mov r1,#00h mov r2,#00h mov r3,#00h mov 40h,#00h mov 41h,#00h mov 42h,#00h lcall xs jmp main bb: mov r1,#05h ;bb是顯示,其中先賦值,嵌套了時間中斷,調(diào)用時間中斷。 mov r2,#05h mov r3,#09h ;下邊的都是相同的,時間的不同是用最短時間,然后重復(fù)賦值,實現(xiàn)的 mov 40h,#76h mov 41h,#38h ;bb.mm.nn.ff.oo.zz.xx都是顯示程序,直接賦值調(diào)用時間

22、程序,r1.r2.r3.在程序里一秒減一。 mov 42h,#38h ;并且調(diào)用xs(顯示),顯示即為數(shù)碼管顯示程序 lcall t0 mm:lcall xs cjne r1,#00h,mm mov r1,#03h mov r2,#03h mov r3,#04h mov 40h,#38h mov 41h,#3eh mov 42h,#38h lcall t0 nn:lcall xs cjne r1,#00h,nn mov r1,#04h mov r2,#08h mov r3,#01h mov 40h,#3eh mov 41h,#76h mov 42h,#38h lcall t0 ff:lcall

23、 xs cjne r3,#00h,ff mov r1,#03h mov r2,#07h mov r3,#05h mov 40h,#3eh mov 41h,#76h mov 42h,#76h lcall t0 oo:lcall xs cjne r1,#00h,oo mov r1,#04h mov r2,#04h mov r3,#02h mov 40h,#76h mov 41h,#76h mov 42h,#76h lcall t0zz:lcall xs cjne r3,#00h,zz mov r1,#02h mov r2,#02h mov r3,#02h mov 40h,#76h mov 41h,

24、#76h mov 42h,#38h lcall t0 xx:lcall xs cjne r3,#00h,xx ljmp int0 t0:setb tr0 ;時間t0中斷,r1.r2.r3.運行一次減一 mov th0,#3ch mov tl0,#0b0h djnz r0,yy mov r0,#0ah dec r2 dec r3 dec r1yy:reti xs:mov a,r1 ;顯示,數(shù)碼管的顯示,首先是十進制轉(zhuǎn)換 mov b,#10 ;將r1.r2.r3轉(zhuǎn)化成十進制 div ab mov 30h,b mov a,r2 mov b,#10 div ab mov 31h,b mov a,r3

25、mov b,#10 div ab mov 32h,b mov a,r3 ;數(shù)碼管的顯示 mov dptr,#ledmap movc a,a+dptr push a mov dptr,#8002h mov a,#1h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay mov dptr,#8002h mov a,#2h movx dptr,a mov a,42h mov dptr,#8004h movx dptr,a call delay mov a,r2 mov dptr,#ledmap movc a,a+dptr push a m

26、ov dptr,#8002h mov a,#4h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay mov dptr,#8002h mov a,#8h movx dptr,a mov a,41h mov dptr,#8004h movx dptr,a call delay mov a,r1 mov dptr,#ledmap movc a,a+dptr push a mov dptr,#8002h mov a,#10h movx dptr,a pop a mov dptr,#8004h movx dptr,a call delay

27、mov dptr,#8002h mov a,#20h movx dptr,a mov a,40h mov dptr,#8004h movx dptr,a call delay ret tx:jnb ri,$ ;通訊,多機通訊程序,判斷是否接到的是0a,若是0a那么返回0a。接通 clr ri ;接收到0aa.開始傳送狀態(tài),左轉(zhuǎn)直行,右轉(zhuǎn)狀態(tài) mov a,sbuf cjne a,#0ah,hh clr sm2 jmp ii hh:setb sm2 ii:cjne a,#0aah,xx0 jmp yy0 xx0:cjne a,#55h,zz0 reti zz0:mov a,#0ah mov sbu

28、f,a jnb ti,$ clr ti reti ;判斷 yy0:mov a,41h cjne a,76h,hl mov a,#110 add a,31h mov sbuf,a jnb ti,$ clr ti exd:mov a,40h cjne a,76h,ehl mov a,#110 add a,30h mov sbuf,a jnb ti,$ clr ti mov a,#120 add a,32h mov sbuf,a jnb ti,$ clr ti reti ehl:cjne a,38h,ehh mov a,#120 add a,30h mov sbuf,a jnb ti,$ clr ti mov a,#120 add a,32h mov sbuf,a jnb ti,$ clr ti reti ehh:mov a,#130 add a,30h mov sbuf,a jnb ti,$ clr ti mov a,#120 add a,32h mov sbuf,a jnb ti,$ clr ti reti

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論