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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、1按下時(shí),a車道放行;開(kāi)關(guān)k2按下時(shí),b車道放行;開(kāi)關(guān)k1和k2的控制信號(hào)經(jīng)異或取反后,產(chǎn)生中斷請(qǐng)求信號(hào)(0有效),通過(guò)外部中斷1向cpu發(fā)出中斷請(qǐng)求;因此產(chǎn)生外部中斷1中斷的條件應(yīng)是:int1=k1k2。采用中斷加查詢擴(kuò)展法,可以判斷出要求放行的是a車道(k1)還是b車道(k2)。以按鍵k0模擬緊急車輛通過(guò)開(kāi)關(guān),當(dāng)k0為高電平時(shí)屬正常情況,當(dāng)k0為低電平時(shí),屬緊急車道通過(guò)的情況,直接將k0信號(hào)接至int0(p3.2)腳即可實(shí)現(xiàn)外部中斷0中斷。交通信號(hào)燈與控制狀態(tài)對(duì)應(yīng)關(guān)系控制狀態(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綜上所述,可設(shè)計(jì)出基于stc89c52單片機(jī)控制交通信號(hào)燈模擬信號(hào)燈控制系統(tǒng)的電路圖如圖所示。4.1 元器件清單基于stc89c52單片機(jī)的交通信號(hào)控制系統(tǒng)元件清單如下表所示:元件名稱型號(hào)數(shù)量/個(gè)用途單片機(jī)stc89c521控制核心晶振12mhz1晶振電路電容30pf2晶振電路電解電容10f/10v1復(fù)位電路電阻10k1復(fù)位電路驅(qū)動(dòng)器74ls071led驅(qū)動(dòng)發(fā)光二極管led12黃、

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

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

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

10、;開(kāi)cpu中斷,開(kāi)外中斷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延時(shí)子程序 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ù)壓棧保護(hù) push th1 ;th1壓棧保護(hù) push t

12、l1 ;tl1壓棧保護(hù) 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)場(chǎng) pop th1 pop p1 reti ;返回主程序intt1: clr ea ;關(guān)中斷 push p1 ;壓棧保護(hù)現(xiàn)場(chǎng) push th1 push tl1 setb ea ;開(kāi)中斷 jb p3.0,bop ;a道無(wú)車轉(zhuǎn)向b道 mov p1,#0f3h ;a道綠燈,b道紅燈 sjmp del1 ;轉(zhuǎn)向5s延時(shí)bop: jb p3.1,exit ;b道無(wú)車推出中斷

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)場(chǎng) 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 ;啟動(dòng)t1lp1: jbc tf1,lp2 ;查詢計(jì)數(shù)溢出 sjmp lp1lp2: mov th1,#3ch ;置

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論