




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 1 交通燈的設計目的及方案介紹1設計課題的目的通過單片機的課程設計, 加深和鞏固單片機知識, 提高綜合及靈活運用 所學的知識來解決日常生活及工業控制的能力, 提高針對知識的需要, 選擇和查 閱其他資料書籍、靈活運用其中知識及自學能力,提高組成系統、編程、制版、 調試的全方面能力,通過對課題設計方案的分析、選擇、比較,熟悉單片機運用 于系統開發、研制的過程,軟硬件設計的方法、內容及步驟。培養發現問題、分 析問題和解決問題的能力以及創新能力和創新思維的提高。1.2 設計要求及說明設計一個具有特定功能的十字路口交通燈。 該交通燈上電或按鍵復位后 能自動顯示系統提示符“ P. ”, 進入準備工作狀態
2、。按開始鍵則開始工作,按 結束鍵則返回“ P. ”狀態。要求甲車道和乙車道兩條交叉道路上的車輛交替運 行,甲車道為主車道,每次通車時間為 60 秒,乙車道為次車道,每次通車時間 為 30 秒,要求黃燈亮 3 秒,并且 1 秒閃爍一次。有應急車輛出現時,紅燈全亮, 應急車輛通車時間 10 秒,同時禁止其他車輛通過。1.3 方案介紹及工作原理1.3.1 方案介紹系統整體框圖如圖 1.1 所示:1.3.2 工作原理該系統采用的是使用現有單片機最小的硬件電路和 P3 口控制交通燈, P2 口 控制數碼管各位,P0 口控制數碼管各段,P1.0、P1.1 口線控制數碼管各位和P1.2 口接收緊急信號電路集
3、合而成, 構成交通燈的總體電路, 即交通燈。 通過對單片 機編寫對應的程序 , 控制各個部分,達到預期的效果。2 交通燈的硬件設計及 PCB 圖2.1 交通燈原理圖電路原理圖如附錄一,電路原理圖由各功能模塊組成。2.2 交通燈各模塊功能2.2.1 單片機最小系統電路單片機最小系統由CPU復位電路,振蕩電路三部分構成,CPU采用的是 Atmel公司高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全 兼容的AT89S52芯片。AT89S52具有以下標準功能: 8k字節Flash,256字節 RAM,32位I/O 口線,看門狗定時器,2個數據指針,三個16位 定時器/計 數器,一個6向
4、量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外, AT89S52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模 式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作。掉 電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。8位微控制器 8K字節在系統可編程FlashAT89S52 。復位電路用于產生復位信號,通過RST引腳送入單片機,進行復位操作。而 復位電路又可以分為上電復位,按鍵電平復位和按鍵脈沖復位這三種,在這次設計中,選用的是按鍵電平復位電路。其功能為:上電的同時,RC回路開始充電,RST引腳端出現正脈
5、沖,只要 RST段保持10ms以上的高電平,就能夠使單片機 有效的復位。振蕩電路是從AT89S52的XTAL1和 XTAL2接入時鐘信號的。由外接晶振及電 容C1, C2所構成的并聯諧振電路接在放大器的反饋回路中。在設計電路板時為 減小干擾,晶振和電容應該盡可能的與單片機近些,以減少寄生電容,更好的保證振蕩器穩定可靠。其功能為:產生振蕩脈沖,為單片機運行提供時序。上拉電阻是為了拉高電壓,增強IO 口的驅動能力。2.2.2顯示電路設計單片機應用系統最常用的顯示器是 LED(發光二極管顯示器)、LED(液晶顯 示器)。這兩種顯示器可顯示數字、字符及系統的狀態。它們的驅動電路簡單、 易于實現且價格低
6、廉,因此,得到了廣泛應用。本次設計要顯示數字倒計時,用 數碼管動態顯示。將LED顯示器各位數碼管的所有段控端相應地并聯在一起,由P0的8個口線控制,形成段選線多路復用,而各位數碼管的共陽極分別由P2 口的其中四個口線控制,實現各位的分時選通。共陽極數碼管字形代碼表如表2.1所示。表2.1共陽極數碼管字形代碼表字型共陽代碼字型共陽代碼0C0H682H1F9H7F8H2A4H880H3B0H990H499HP.0CH592H滅FFH223數碼管驅動電路設計本設計采用的數碼管驅動是采用 PNP三極管驅動,有效增強數碼管顯示的亮 度。當給P2 口線與三極管的發射極相連,用于連接數碼管位控與三極管的集電
7、 極相連,三極管的基極通過電阻與地相連,當給P2高電平的同時,輸出高電平信號控制數碼管的顯示位顯示。2.2.4緊急按鍵電路設計緊急信號為低電平,通過設計緊急按鍵電路與P1.2 口相連接,緊急信號通過P1.2輸入單片機內部,當緊急事件過去后,單片機回到原來的地方繼續工作。 2.2.5程序下載口電路設計ATME公司的89S5XX提供了支持ISP(在線下載程序)并口下載功能,它只需 一塊八位鎖存器就可以實現了 ,原理如下:MOSI:數據串行輸出(S52P1.5腳),MISO:串行數據輸入(S52 P1.6腳),SCK:同步控制時鐘(S51 P1.7腳),RST 接單片機復位腳,當有足夠的高電平使S5
8、1處于復位狀態,它就會開啟讀寫程序 功能。2.2.6電源電路設計因為本次設計所需電源的模塊有單片機最小系統, 數碼管顯示器,二極管交 通燈,它們所需電源都為+5V,因而電源設計只需設計一個+5V電源。為了供電 方便,我們直接在插孔處引一根數據線用 USB接 口供電。2.2.7交通燈元器件清單交通燈元件清單如表2.2。表2.2交通燈元件清單元件名稱元件個數元件特性AT89S521電阻254.7K Q31K Q1200 Q電容233pF極性電容r 1 :22 口 FLED數碼管24位一體共陽晶振112M發光二極管4紅色4綠色按鍵9四角開關1六角USB電源接口12.3 PCB設計圖我們可以根據設計電
9、路原理圖,以購買的元器件的尺寸、引腳,仔細封裝各 個元器件,如果不能在庫里找到的我們自己根據實際需要,自己創建封裝。2.3.1元器件布局圖交通燈元器件布局圖如附錄二所示2.3.2PCB 圖根據電路原理圖,將每個元器件放置在適當的位子,按照PCBB線的原則,以正確,美觀,認真將各個元器件連接起來。PCB圖如附錄三所示。3交通燈的軟件設計3.1單片機資源分配由電路原理圖可知,單片機 AT89S52的資源分配如下:第9腳RST接復位電路和下載口復位端;第18腳XTAL1第19腳XTAL2接振蕩電路;P0 口用于數碼管顯示器的段控控制;P1 口接數碼管的位控控制P3 口接LED燈3.2軟件系統各模塊功
10、能3.2.1 顯示P.模塊該模塊的功能是在單片機上電或者復位后,在數碼管上顯示“P. ”,此時系統處于等待工作狀態。在按下開始按鈕后,跳出此模塊,進入正常的工作狀態。3.2.2亮燈模塊該模塊的功能是控制交通燈的亮與滅,在程序中,先控制主路的綠燈亮57S, 再黃燈閃爍3秒,即每秒亮半秒滅半秒,同時支路上的紅燈亮60S;再控制支路上的綠燈亮27S,再黃燈閃爍3秒,即每秒亮半秒滅半秒,同時主路上的紅燈亮 30S。正常情況下,隨著主程序循環。當緊急按鈕按下后,控制兩個路口的紅燈 同時亮十秒,待緊急時間過去,主動跳出。3.2.3顯示模塊該模塊的功能是主路和支路上的時間顯示。 當系統開始運行時, 同時在主
11、路 和支路上顯示60S的倒計時,待60S過后,同時在主路和支路上顯示 30S的倒計 時,正常情況下,隨著主程序循環。當按下緊急按鈕之后,同時在主路和支路上 顯示 10S 的倒計時,之后主動跳出。緊急按鈕模塊該模塊的功能是在出現緊急情況下, 按下緊急按鈕, 送入單片機信號, 系統 進入緊急狀態,在數碼管顯示10S倒計時,同時主路和支路的紅燈都亮。待 10S 過后,自動跳出。延時模塊該模塊的功能是為其他各模塊提供延時。 不論是數碼管顯示的延時, 紅綠燈 亮的延時,黃燈的閃爍, 都需要此模塊來提供延時。 采用延時子程序, 延時 50ms。 3.3 程序流程框圖交通燈程序流程框圖如圖 3.1 所示。圖
12、3.1程序流程框圖Y中斷結束3.4交通燈程序清單交通燈程序清單如附錄四所示4交通燈設計仿真4.1仿真原理圖仿真是我們檢測我們的硬件設計和軟件與硬件的結合好壞的重要方法,也能為我們做實物提供保障。我們采用Kiel結合Proteus仿真,仿真電路原理圖如附錄五所示。圖4.1“P. ”顯示(2)當按開始按鈕時,數碼顯示管和交通燈均開始正常工作。如圖4.2所示圖4.2正常工作顯示(3)當緊急按鈕按下時,數碼顯示管和交通燈均按照計劃工作。如圖4.3所示ABCDEFG DF 12I I I I I I I I II圖4.3緊急情況下顯示5 設計體會及出現的問題5.1 設計體會 通過這次對交通燈的設計, 我
13、們更加認識了單片機, 更加熟悉了對單片機的 應用。在這次設計的過程中, 從電路原理圖的設計, 就透徹的理解了單片機最小系 統的構成及其工作原理。 從數碼管的選擇中, 懂得了可以采用不同的元器件, 只 要我們運用相應的程序, 就能達到同樣的效果。 從三極管的應用中, 發現了理論 跟實踐存在的巨大差別。 只有實踐才能檢驗所學的理論, 才能發自己對理論認識 的誤區和盲點。在軟件的設計過程中, 收獲更大。 通過此次設計程序, 透徹的明白了每一個 指令的應用方法和功能, 很好的統一復習了單片機的指令系統。 也正是在運用中 也發現了自己對部分指令的錯誤認識和誤區, 在改正錯誤中獲得了收獲。 在實驗 的基礎
14、上, 再一次對 keil 軟件進行了一次全面的運用, 更加熟悉了 keil 軟件的 各項功能。在做實物的過程中, 很好的鍛煉了自己的動手能力, 同時也提高了自己發現 問題,解決問題的能力。當最終看到自己的成果握在手中時, 有一種非常美妙的成就感, 也激發了自 己的學習興趣。增強了自信,培養了自己的各個方面的能力。5.2 設計中出現的問題 在本次試驗中,由于理論和實踐經驗缺乏,出現了很多問題。首先是先到倒 計時的問題, 我設計了 1 秒鐘的子程序, 然后再按鍵功能 1 中調用它, 同時在最 后 3 秒鐘閃爍燈, 后來發現這樣根本不能實現燈閃爍一秒, 而是兩秒, 針對這個 問題,我就將 1 秒鐘的
15、子程序改為 0.5 秒,然后再程序里面兩次調用它。 其次出 現了按了一個鍵實現了功能不能跳往另外一個鍵功能程序, 我就想到了要分別在 鍵功能程序里面再調用子程序, 這個問題就解決了。 最后在應急的時候我只想到 了在應急里面循環, 在老師的提點下, 我想到了應急之后應該恢復原來的交通秩 序,這個就要牽扯到現場的保護和恢復, 于是我馬上聯想到剛學完不久的中斷知 識,首先我想用外部中斷,但是發現外部中斷的兩根口線已經被 LED燈占用,然 后我就想到要用定時器中斷,編好以后,發現又有新的問題出現了。 。6 鳴謝附錄一原理圖 附錄二 程序清單 附錄三仿真電路圖 附錄四PCB圖附錄二 *J*;設計者: X
16、X;設計日期: 2010年 12月 24 日 *J*;堆棧棧底 :7FH *J*;LED 數碼管設置:;P0.0P0.7 接段控線,分別接 a,b,c,d,e,f,g,dp.;P2.0P2.7 接位控線,分別接(從右至左) LED1LED8 ;顯示緩沖區: LED1LED8 分別對應 78H7FH *J*;獨立式鍵盤:;八個按鍵 S0S7 分別接 P1.0P1.7 *J*;LED 流水燈設置:;八個 LED 燈 LED1LED8 分別接 P3.0P3.7 *J*;項目名稱:交通燈;KEYA (S0 鍵鍵功能程序 );KEYB (S1 鍵鍵功能程序 );KEYC (S2 鍵鍵功能程序 ) *J*
17、;常數表格 ;KKK( 系統顯示四位序號表 );TAB( 共陽數碼管字型代碼表 ) *J*; 子程序 ;DELAY (延時 10ms 子程序);DL (延時2ms子程序);KEY( 鍵掃描子程序 );LOOP0(P1.0 口數據處理子程序 );LOOP1(P1.1 口數據處理子程序 );LOOP2(P1.2 口數據處理子程序 ) ;DISP (數碼管顯示子程序) ;KK0(0.5 秒顯示處理程序 ) *J*; 起始程序區:ORG 0000HLJMP MAINORG 0030HMAIN:MOVSP,#7FH;堆棧初始化MOVR0,#20H;對 RAM 區清零MOVR2,#96QL:MOVR0,#
18、00HINCR0DJNZR2,QLMOVP2,#7FH;送位控MOVP0,#0CH;送段控顯示 P.* J監控程序*程序初始化*KEY: LCALLKEYK;監控程序JB20H.0,LOOP0JB20H.1,LOOP11JB20H.2,LOOP22LJMPKEYLOOP11: LJMPLOOP1LOOP22: LJMPLOOP2* J鍵功臺匕能程序*LOOP0:MOVR3,#60;甲通道顯示初值 60 秒MOVR5,#57;乙通道顯示初值 57 秒MM0:MOVP3,#33H;顯示交通燈,甲通道綠,乙通道紅LCALLKK0;調顯示程序LCL0:LCALLKK0JNBP1.0,LCL0;判按鍵
19、0 是否按下JNBP1.1,LOOP1;判按鍵 1 是否按下JNBP1.2,LL0;判按鍵 2 是否按下LJMPLK0LL0:LCALLLOOP2LK0:DECR5DECR3CJNER5,#00H,MM0M1:MOVR3,#03;等于 3 時顯示乙通道黃燈處理MOVR5,#03MM1:MOVP3,#33HLCL1:LCALLKK0JNBP1.1,LOOP1JNBP1.2,LL1JNBP1.0,LCL1MOVP3,#077HLCALLKK0LJMPLK1LL1:LCALLLOOP2LK1:DECR3DECR5CJNER3,#00H,MM1M2:MOVR3,#30;乙通道亮綠燈,甲通道亮紅燈MOV
20、R5,#27MM2:MOVP3,#0CCH;點亮交通燈LCALLKK0LCL2:LCALLKK0JNBP1.0,LCL2JNBP1.1,LOOP1JNBP1.2,LL2LJMPLK2LL2:LCALLLOOP2LK2:DECR3DECR5CJNER5,#05H,MM2M3:MOVR3,#03MOVR5,#03MM3:MOVP3,#0CCH;等于三秒時甲通道黃燈處理LCL3:LCALLKK0JNBP1.0,LCL3JNBP1.1,LOOP1JNBP1.2,LL3LJMPLK3LL3:LCALLLOOP2LK3:MOVP3,#0DDHLCALLDECDECCJNEKK0R3R5R3,#00H, M
21、M3;等于三秒時乙通道黃燈處理LJMPLOOP0;沒有按鍵按下則在此程序循環LOOP1:MOVP3,#0FFH;按鍵 1 按下處理程序LCALLFUWEIJNBP1.0,KEY0JNBP1.2,LOOP2LJMPLOOP1;沒有按鍵按下則在此程序循環LOOP2:MOV24H,R3;按鍵 2 按下處理程序MOV25H,R5;將原寄存器內容保存MOVR3,#10MOVR5,#10MOVR7,#00HMOVP3,#55HMM5:LCALLKK0LCALLKK0JNBP1.1,LOOP1DECR3DECR5CJNER3,#00H, MM5MOVR3,24H;返回時將原寄存器內容還原MOVR5,25H;保護現場RET;緊急十秒處理后返回KEY0:LJMPLOOP0KEY1:LJMPKEY*顯示子程序DISP: PUSHDPHPUSHDPLPUSHACCPUSHPSWCLRRS0SETBRS1MOVR1,#78HMOVR5,#08HMOVR2,#0FEHDISP1: MOVA,R1MOVDPTR,#TAB*;保護 DPTR 內容MOVCA,MOVP0,MOVP2,LCALLDLMOVA,RLAMOVR2,INCR1DJ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論