單片機原理及應用課程設計基于STC89C52單片機的交通燈控制系統(tǒng)設計_第1頁
單片機原理及應用課程設計基于STC89C52單片機的交通燈控制系統(tǒng)設計_第2頁
單片機原理及應用課程設計基于STC89C52單片機的交通燈控制系統(tǒng)設計_第3頁
單片機原理及應用課程設計基于STC89C52單片機的交通燈控制系統(tǒng)設計_第4頁
單片機原理及應用課程設計基于STC89C52單片機的交通燈控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應用課程設計 題 目 基于stc89c52單片機的 交通燈控制系統(tǒng)設計 學生姓名 學 號 2012115020343 學 院 計算機科學與技術學院 專 業(yè) 通信工程 指導教師 二一五 年 六月 十七 日基于stc89c52單片機的交通燈控制系統(tǒng)陳國盛1. 項目概述隨著我國經(jīng)濟的高速發(fā)展,私家車、公家車的增加,無疑會給我國道路交通系統(tǒng)帶來沉重的壓力,很多大城市都不同程度的受到交通堵塞問題的困擾。下面以stc89c52單片機為核心,設計出以人性化、智能化為目的的交通信號燈控制系統(tǒng)。2. 項目意義用stc89c52單片機控制一個交通信號燈系統(tǒng),晶振采用12mhz。設a車道與b車道交叉組成

2、十字路口,a是主道,b是支道。設計要求如下:(1) 用發(fā)光二極管模擬交通信號燈,用按鍵開關模擬車輛檢測信號。(2) 正常情況下,a、b兩車道輪流放行,a車道放行9s,其中3s用于警告;b車道放行6s,其中3s用于警告。(3) 在交通繁忙時,交通信號燈控制系統(tǒng)應有手控開關,可人為的改變信號燈的狀態(tài),以緩解交通擁擠狀況。在b車道放行期間,若a車道有車而b車道無車,按下開關k1使a車道放行5s;在a車道放行期間,若b車道有車而a車道無車,按下開關k2是b車道放行5s。(4) 有緊急車輛通過時,按下k3使a、b車道均為紅燈,禁行5s。3 系統(tǒng)設計交通控制系統(tǒng)主要控制a、b兩車道的交通,以stc89c5

3、2單片機為核心芯片,通過控制三色led的亮滅來控制各車道的通行;另外通過3個按鍵來模擬各車道有無車輛的情況和有緊急車輛的情況。根據(jù)要求,制定總體設計思想如下:(1) 正常情況下運行主程序,采用0.5s延時子程序的反復調(diào)用來實現(xiàn)各種定時時間。(2) 一車道有車,而另一車道無車時,采用外部中斷1執(zhí)行中斷服務程序,并設置該中斷為低優(yōu)先級中斷。(3) 有緊急車輛通過時,采用外部中斷0執(zhí)行中斷服務程序,并設置該中斷為高優(yōu)先級中斷,實現(xiàn)二級中斷嵌套。3.1 框圖設計基于stc89c52單片機的交通信號燈控制系統(tǒng)由電源電路、單片機主控電路、按鍵控制電路和道路顯示電路幾部分組成。3.2 關鍵技術(1) 單片機

4、最小系統(tǒng)工作原理及設計(晶振電路和復位電路)(2) 按鍵電路工作原理及設計(3) 驅(qū)動電路74ls07的特性及使用(4) led的特性及使用(5) stc89c52單片機引腳(6) 單片機匯編語言及程序設計4 硬件設計用12只led模擬交通信號燈,以stc89c52單片機的p1口控制這12只發(fā)光二極管,由于單片機帶負載能力有限,因此,在p1口與發(fā)光二極管之間用74ls07作驅(qū)動電路,p1口輸出0時,信號燈亮;輸出1時,信號燈滅。在正常情況和交通繁忙時,a、b兩車道的6只信號燈的控制狀態(tài)有5種形式,即p1口控制功能及相應控制碼如表1-2所示。分別以按鍵k1、k2模擬a、b道的車輛檢測信號,開關k

5、1按下時,a車道放行;開關k2按下時,b車道放行;開關k1和k2的控制信號經(jīng)異或取反后,產(chǎn)生中斷請求信號(0有效),通過外部中斷1向cpu發(fā)出中斷請求;因此產(chǎn)生外部中斷1中斷的條件應是:int1=k1k2。采用中斷加查詢擴展法,可以判斷出要求放行的是a車道(k1)還是b車道(k2)。以按鍵k0模擬緊急車輛通過開關,當k0為高電平時屬正常情況,當k0為低電平時,屬緊急車道通過的情況,直接將k0信號接至int0(p3.2)腳即可實現(xiàn)外部中斷0中斷。交通信號燈與控制狀態(tài)對應關系控制狀態(tài)p1口控制碼p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.0未用未用b道綠燈b道黃燈b道紅燈a道綠燈

6、a道黃燈a道紅燈a道放行,b道禁止f3h11110011a道警告,b道禁止f5h11110101a道禁止,b道放行deh11011110a道禁止,b道警告eeh11101110a道禁止,b道禁止f6h11110110綜上所述,可設計出基于stc89c52單片機控制交通信號燈模擬信號燈控制系統(tǒng)的電路圖如圖所示。4.1 元器件清單基于stc89c52單片機的交通信號控制系統(tǒng)元件清單如下表所示:元件名稱型號數(shù)量/個用途單片機stc89c521控制核心晶振12mhz1晶振電路電容30pf2晶振電路電解電容10f/10v1復位電路電阻10k1復位電路驅(qū)動器74ls071led驅(qū)動發(fā)光二極管led12黃、

7、紅、綠燈集成塊74ls041按鍵電路集成塊74ls861按鍵電路電阻4.7k2按鍵電路按鍵4按鍵電路電阻30012led限流電源+5v/0.5a1提供+5v4.2 電路原理圖4.3 電路仿真圖5 軟件設計主程序采用查詢方式定時,由r2寄存器確定調(diào)用0.5s延時子程序的次數(shù),從而獲取交通燈的各種時間。子程序采用定時器1方式1查詢式定時,定時器定時50ms,r3寄存器確定50ms循環(huán)10次,從而獲取0.5s的延時保護時間。有車車道放行的中斷服務程序首先要保護現(xiàn)場,因需要用到延時子程序和p1口,故需要保護的寄存器有r3、p1、th1和tl1,保護現(xiàn)場時還需要關中斷,以防止高優(yōu)先級中斷(緊急車輛通過所

8、產(chǎn)生的中斷)出現(xiàn)導致程序混亂。開中斷,由軟件查詢p3.0和p3.1口,判別哪一車道有車。待交通燈信號出現(xiàn)后,保持5s的延時,然后關中斷,恢復現(xiàn)場,再開中斷,返回主程序。緊急車輛出現(xiàn)時的中斷服務程序也需保護現(xiàn)場,但無須關中斷(因其為高優(yōu)先級中斷),然后執(zhí)行相應的服務,待交通燈信號出現(xiàn)出現(xiàn)后延時5s,確保緊急車輛通過交叉路口,然后,恢復現(xiàn)場,返回主程序。5.1 程序流程圖開始初始化a綠燈、b紅燈延時9sa綠燈閃爍2.5sa黃燈、b紅燈b黃燈、a紅燈b綠燈閃爍2.5s延時6sa紅燈、b綠燈延時2s延時2s主程序中斷響應關中斷保護現(xiàn)場開中斷a道有車嗎?a綠燈、b紅燈b道有車嗎?a紅燈、b綠燈延時5s關

9、中斷恢復現(xiàn)場開中斷返回nyy有車車道放行時的中斷服務程序(int1)緊急情況時的中斷服務程序(int0)中斷響應保護現(xiàn)場a紅燈、b綠燈延時5s恢復現(xiàn)場返回5.2 程序清單 org 0000h ljmp main ;轉(zhuǎn)向主程序 org 0003h ljmp intt0 ;轉(zhuǎn)向緊急車輛中斷服務程序 org 0013h ljmp intt1 ;轉(zhuǎn)向有車車道中斷服務程序 org 0200hmain: mov sp,#30h setb px0 ;置外部中斷0為高優(yōu)先級中斷 mov tcon,#00h ;置外部中斷0、1為電平觸發(fā) mov tmod,#10h ;置定時器1為方式1 mov ie,#85h

10、;開cpu中斷,開外中斷0、1中斷 loop: mov p1,#0f3h ;a道綠燈放行,b道紅燈禁止 mov r1,#18 ;置0.5s循環(huán)次數(shù)(0.5x18=9s)dip1: acall delay ;調(diào)用0.5s延時子程序 djnz r1,dip1 ;9s不到繼續(xù)循環(huán) mov r1,#05 ;置a綠燈閃爍循環(huán)次數(shù)wan1: cpl p1.2 ;a綠燈閃爍 acall delay djnz r1,wan1 ;閃爍次數(shù)未到,繼續(xù)循環(huán) mov p1,#0f5h ;a黃燈警告,b紅燈禁止 mov r1,#04h ;置0.5s循環(huán)次數(shù)(0.5x4=2s)yl1: acall delay djnz

11、r1,yl1 ;2s未到繼續(xù)循環(huán) mov p1,#0deh ;a紅燈,b綠燈 mov r1,#12 ;置0.5s循環(huán)次數(shù)(0.5x12=6s)dip2: acall delay djnz r1,dip2 ;6s未到繼續(xù)循環(huán) mov r1,#05hwan2: cpl p1.5 ;b綠燈閃爍 acall delay djnz r1,wan2 mov p1,#0eeh ;a紅燈,b黃燈 mov r1,#04hyl2: acall delay djnz r1,yl2 ajmp loop ;循環(huán)執(zhí)行主程序intt0: push p1 ;p1口數(shù)據(jù)壓棧保護 push th1 ;th1壓棧保護 push t

12、l1 ;tl1壓棧保護 mov p1,#0f6h ;a、b道均為紅燈 mov r2,#10 ;置0.5s循環(huán)初值(5s)dey0: acall delay djnz r2,dey0 ;5s未到繼續(xù)循環(huán) pop tl1 ;彈?;謴同F(xiàn)場 pop th1 pop p1 reti ;返回主程序intt1: clr ea ;關中斷 push p1 ;壓棧保護現(xiàn)場 push th1 push tl1 setb ea ;開中斷 jb p3.0,bop ;a道無車轉(zhuǎn)向b道 mov p1,#0f3h ;a道綠燈,b道紅燈 sjmp del1 ;轉(zhuǎn)向5s延時bop: jb p3.1,exit ;b道無車推出中斷

13、mov p1,#0deh ;a紅燈,b綠燈del1: mov r5,#10 ;置0.5s循環(huán)初值(5s)next: acall delay djnz r5,next ;5s未到繼續(xù)循環(huán)exit: clr ea pop tl1 ;彈?;謴同F(xiàn)場 pop th1 pop p1 setb ea retidelay: mov r3,#0ah ;0.5s子程序(50msx10=0.5s) mov th1,#3ch ;置50ms初值x=3cb0h mov tl1,#0b0h setb tr1 ;啟動t1lp1: jbc tf1,lp2 ;查詢計數(shù)溢出 sjmp lp1lp2: mov th1,#3ch ;置

14、50ms初值x=3cb0h mov tl1,#0b0h djnz r3,lp1 ret end6 系統(tǒng)仿真及調(diào)試單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試過程中被發(fā)現(xiàn)糾正的。但是通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布恼{(diào)試是基礎,如果硬件調(diào)試不通過,軟件設計則無從做起。硬件的調(diào)試主要是把電路各種參數(shù)調(diào)整到符合設計要求。先排除硬件電路故障,包括設計性錯誤和工藝性故障。一般原則是先靜態(tài)后動態(tài)。經(jīng)過兩周的努力工作,終于完成了自己的單片機課程設計。雖說忙碌了點,但我覺得這樣的生活充實且有成就感,當然,也獲益匪淺。在焊接過程中,我學會應先

15、合理的布局,并認真檢查每個元器件,確保無誤后再焊接。還有,不能急于求成,要焊接一個模塊,檢查一個模塊,免得整個版子焊完后再在一大堆線中檢查,這樣不僅效率低且耗時。自然,我也學會如何去發(fā)現(xiàn)問題與解決問題的一些方法。至于軟件設計與調(diào)試,我覺得它主要考驗你的思維邏輯能力及你對指令的熟悉程度??梢哉f再整個軟件設計過程中,我不僅學會了延時的兩種方法,即軟件延時和硬件延時,還掌握數(shù)碼管的兩種顯示方式(即動態(tài)顯示與靜態(tài)顯示)及其如何選擇。當然,通過幾次反復調(diào)試過程,使得我對匯編指令有了更深刻的理解。在整個課程設計過程我還掌握了一下幾點:(1)掌握了電子系統(tǒng)設計的流程,熟悉了各種硬件電路以及軟件編程方法。(2)理解了最單片機的各部分組成及特性。(3)熟練使用了各種計算機輔助設計工具完成設計,充分掌握了這些工具的使用。(4)學會了利用keil uvision2對匯編語言進行編譯過程.更進一步加深了對proteus軟件的學習。通過本次的課程設計,充分意識到自己所學的東西還是非常有限的,不過通過設計,還是學到了一些書本上沒有學到的東西,為自己以后的學習起了很大的幫助。就

溫馨提示

  • 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

提交評論