版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機系統(tǒng)課程設計報告</p><p> 專 業(yè): 網(wǎng)絡工程1班 </p><p> 學 生 姓 名: </p><p> 學 號: </p><p> 完成日期:2011年10月28日</p>&l
2、t;p> 1 設計任務和性能指標</p><p><b> 1.1設計任務</b></p><p> 利用單片機完成交通信號燈控制器的設計,該交通信號燈控制器由一條主干道和一條支干道匯合成十字路口,在每個入口處設置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外。用紅、綠、黃發(fā)光二極管作信號燈。如圖上圖所示。設
3、東西向為主干道,南北為支干道。</p><p><b> 1.2性能指標</b></p><p> ?。?)處于常允許通行的狀態(tài),支干道有車來時才允許通行。主干道亮綠燈時,支干道亮紅燈;支干道亮綠燈時,主干道亮紅燈。</p><p> (2)干道均有車時,兩者交替允許通行,主干道每次放行60秒,支干道每次放行40秒,設立60秒、40秒計時、
4、顯示電路。</p><p> ?。?)綠燈亮到紅燈亮的轉換過程中,要亮5秒黃燈作為過渡。黃燈亮時,原紅燈按1Hz的頻率閃爍。</p><p> ?。?)支干道通行時間及黃燈亮的時間均可在0~99秒內任意設置。</p><p><b> 2 設計方案</b></p><p><b> 2.1任務分析</
5、b></p><p> 模擬交通燈控制器就是使用單片機來控制一些LED 和數(shù)碼管,模擬真實交通燈的功能。紅、黃、綠交替閃亮,利用數(shù)碼管倒計數(shù)顯示間隔等,用于管理十字路口的車輛及行人交通,計時牌顯示路口通行轉換剩余時間等</p><p><b> 2.2方案設計</b></p><p> 根據(jù)設計的要求可知,系統(tǒng)的硬件原理框圖如下圖所
6、示。</p><p><b> 系統(tǒng)硬件框圖</b></p><p> 單片機可選用AT89C52,它與8052系列單片機全兼容,但其內部帶有4KB的FLASH ROM,設計時無需外接程序存儲器,為設計和調試帶來極大的方便。南北向和東西向各采用2個數(shù)碼管計時,同時需要對該方向的指示燈的點亮時間進行倒計時。鍵盤系統(tǒng)可以根據(jù)系統(tǒng)的需要設置不同的鍵的個數(shù),可以選擇線式鍵
7、盤或矩陣式鍵盤,若單片機的IO口不夠用時,可以考慮擴展8255或8155滿足系統(tǒng)的要求。</p><p><b> 2. 軟件方案 </b></p><p> 根據(jù)設計要求,程序框圖如圖1所示。軟件可由匯編語言完成,也可由C語言完成。軟件設計可以分為以下幾個功能模塊:</p><p> 主程序:初始化及鍵盤監(jiān)控。</p>&
8、lt;p> 計時程序模塊:為定時器的中斷服務子程序,完成0.1秒(或其他時間)和1秒的時間定時。 </p><p> 顯示程序模塊:完成60個發(fā)光二極管(實際上只需驅動30個)和8個LED數(shù)碼管的顯示驅動。</p><p><b> 程序流程圖</b></p><p><b> 3 系統(tǒng)硬件設計</b><
9、;/p><p> 3.1單片機的最小系統(tǒng)</p><p> ATMEL公司生產(chǎn)的AT89C52單片機它是硬件電路的核心部分,時鐘電路晶振使用12MHz,復位電路采取按鍵復位方式。具體連接圖3.1和圖3.2。</p><p> 單片機系統(tǒng)的時鐘電路</p><p> 單片機系統(tǒng)的復位電路</p><p><b&
10、gt; 3.2電源電路設計</b></p><p> 電源用5V直流變壓器直接供電。</p><p> 3.3數(shù)碼管顯示電路</p><p> 顯示電路采用8個共陰數(shù)碼管,P1口作為數(shù)碼管的輸入,P3.4、P3.5、P3.6 P3.7分別作為東西南北四路數(shù)碼管的位選端。</p><p><b> 數(shù)碼管顯示電路
11、</b></p><p> 3.4信號燈控制電路</p><p><b> 應急電路</b></p><p><b> 4 系統(tǒng)軟件設計</b></p><p><b> 4.1 主程序設計</b></p><p> 系統(tǒng)程序流程圖
12、 </p><p><b> 5 調試及性能分析</b></p><p><b> 5.1 調試分析</b></p><p> 5.1.1 軟件調試</p><p> 軟件調試主要是利用proteus仿真軟件完成電路的搭建,運行以發(fā)現(xiàn)設計中的錯誤及時改正。</p>&l
13、t;p> 5.1.2 硬件調試</p><p> 硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊等。具體步驟及測試結果如下:</p><p> ?。?)檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導線是否完全連接,對未連接的進行修復。</p><p> ?。?)參照原理圖,檢查各個器件之間的連接是否連接正確,是否存在虛焊,經(jīng)測試,各連接不存
14、在問題。</p><p> ?。?)以上兩項檢查并修復完后,給該硬件電路上電,電源指示燈點亮。</p><p> 5.1.3 系統(tǒng)功能調試</p><p> 通過軟件仿真顯示,系統(tǒng)基本能完成要求,由于設計思路出現(xiàn)問題,鍵盤沒有正確的做出來,沒有鍵盤電路,緊急情況也可以通過一個按鈕來采取相關的動作。</p><p><b> 6
15、 心得體會</b></p><p> 這次單片機課程設計歷時兩個星期的時間,在這次設計過程里我體驗了從設計、畫板、編程、焊板到調試的整個過程。</p><p> 對于交通燈這個題目,由于以前學單片機這個課程時,做過類似相關的實驗,覺得這個比較簡單而且做出的東西也比較直觀,在確定題目之后,查閱了大量的資料,初步完成了電路設計方案。</p><p>
16、接著就是畫電路板,這個軟件的應用學過了,但是學的時候感覺很簡單,但是到了具體設計的時候,問題不斷的出來,比如有的器件庫里面沒有封裝,要自己花封裝,這時候就很容易出問題,比如焊盤的大小,有的器件上焊盤大小不一樣,有個別大的是用來固定的,這個很容易被忽略。</p><p> 接下來就是程序的設計了,雖然感覺交通燈程序沒什么難的,就是數(shù)碼管倒計時顯示加幾個閃爍的二極管就完事,但是也許是起初想的太簡單,設計時到了細節(jié)處
17、,也出了不少問題,而且很難被檢查出來,但是最后經(jīng)過不斷努力,還是寫出來正確的代碼。</p><p> 通過這次課設,對以前學過的知識進行了鞏固,加深了理解,提高了應用的能力,而且提高了我們的發(fā)現(xiàn)、分析、解決問題的能力。經(jīng)歷了從最初的設計到最后做出產(chǎn)品的開發(fā)過程,提高了對專業(yè)的認識及興趣,對于我來說,對以后就業(yè)有及其重大的影響。參考文獻</p><p> [1] 徐維祥.單片微型機原理及
18、應用 大連理工大學出版社,2006.12</p><p> [2] 胡漢才.單片機原理與接口技術[M].北京: 清華大學大學出版社,2004.1-505.</p><p> [3] 閆勝利.Altium Designer 6.X中文版使用教程 電子工業(yè)出版社 2007.6</p><p> [4] 李泉溪.單片機原理</p><p>&
19、lt;b> 附錄1 系統(tǒng)原理圖</b></p><p><b> 附錄2 系統(tǒng)仿真圖</b></p><p><b> 附錄3 程序清單</b></p><p> ;------------------------------------</p><p><b>
20、 ;程序實現(xiàn)功能</b></p><p> ;西南北路口直行與轉彎交替通行,數(shù)碼管顯示直行通行倒計時,紅綠黃燈顯示包括人行道在內的道路交通狀態(tài)。</p><p> ;某一方向道路擁擠時,可以人工控制調節(jié)東西南北方向通行時間。</p><p> ;緊急情況時,各路口交通燈顯示紅燈,數(shù)碼管保持數(shù)據(jù)不變。</p><p> ;
21、工作寄存器及存儲單元分配</p><p><b> ;1.工作寄存器</b></p><p> ;R2設置為定時器定時中斷次數(shù),R6、R7用于延時程序中的寄存器</p><p><b> ;2.片內存儲單元</b></p><p> ;30H、31H作為兩組數(shù)碼管顯示數(shù)據(jù)存儲單元;32H、3
22、3H作為交通燈初始狀態(tài)存儲單元;40H、41H作為交通燈顯示數(shù)據(jù)存儲單元</p><p><b> ;3.標志位</b></p><p> ;00H:南北通行標志位 ; 01H:東西通行標志位;02H:緊急事件標志位 </p><p> ;-----------------------------------</p>&
23、lt;p> SNF EQU 00H ;;;南北通行標志位</p><p> EWF EQU 01H ;;;東西通行標志位</p><p> URF EQU 02H ;;;緊急事件標志位</p><p> ORG 0000H</p><p&g
24、t; LJMP MAIN ;;;上電轉主程序</p><p> ORG 000BH ;;;定時中斷入口</p><p> LJMP DSZD </p><p> ORG 0003H ;;;緊急中斷入口</p>
25、;<p> LJMP URZD</p><p> ORG 0030H </p><p> MAIN: LCALL INIT ;;;調用初始化子程序</p><p> LOOP: LCALL DIS ;;;循環(huán)執(zhí)行顯示子程序</p><p> AJMP LOOP<
26、;/p><p> ;///////////初始化程序</p><p> INIT: SETB SNF </p><p> SETB EWF </p><p> SETB URF </p><p> MOV R2,#20
27、 ;;;定時器中斷20次為1s</p><p> MOV TMOD,#01H ;;;初始化定時器</p><p> MOV TL0,#0B0H</p><p> MOV TH0,#3CH</p><p> SETB EA ;;;開定時中斷與緊急中斷</p><p&g
28、t;<b> SETB ET0</b></p><p><b> SETB TR0</b></p><p><b> SETB EX0</b></p><p> SETB IT0 ;;;設置中斷程控方式</p><p> MOV DP
29、TR,#TAB ;;;數(shù)值首地址放入DPTR中</p><p> MOV 40H,#40 ;;;東南西北通行時間設置</p><p> MOV 41H,#40</p><p> MOV 30H,#40 ;;;通行時間初始化</p><p> MOV 31H,#60</p>
30、;<p> MOV P0,#4CH ;;;初始化時南北通行并把交通燈狀態(tài)分別放在32H和33H中</p><p> MOV 32H,#4CH</p><p> MOV P2,#15H</p><p> MOV 33H,#15H</p><p><b> RET</b>
31、</p><p> ;////////////顯示子程序</p><p> DIS: MOV P3,#0DFH ;;;選中南北方向的十位數(shù)碼管</p><p> MOV A,30H ;;;把顯示數(shù)據(jù)送人數(shù)碼管顯示</p><p> MOV B,#10</p><p>
32、<b> DIV AB</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,A ;;;</p><p> LCALL D1MS</p><p> MOV P3,#0EFH ;;;選中南北方向的個位數(shù)碼管</p>&l
33、t;p> MOV A,B ;;;送入數(shù)碼管顯示</p><p> MOVC A,@A+DPTR </p><p> MOV P1,A</p><p> LCALL D1MS</p><p> MOV P3,#7FH ;;;選中第東西方向的十位數(shù)碼管</p>
34、<p> MOV A,31H ;;;送入數(shù)碼管顯示</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,A</p><p>
35、 LCALL D1MS</p><p> MOV P3,#0BFH ;;;選中第東西方向的個位數(shù)碼管</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,A</p><p> LCA
36、LL D1MS</p><p> SETB P3.0</p><p> SETB P3.1</p><p> JNB P3.0,DIS_S ;;;查詢是否第一個按鍵按下</p><p> JNB P3.1,DIS_E ;;;查詢是否第二個按鍵按下</p><p> AJMP DI
37、S_R ;;;沒有鍵按下則返回</p><p> DIS_S:LCALL D5MS ;;;按鍵去抖</p><p> JNB P3.0,DIS_SN</p><p> AJMP DIS_R </p><p> DIS_SN:MOV 40H,#50 ;;;對通行時間從新分配
38、,南北通行時間加長</p><p> MOV 41H,#30</p><p> AJMP DIS_R</p><p> DIS_E:LCALL D5MS ;;;按鍵去抖</p><p> JNB P3.1,DIS_EW </p><p> AJMP DIS_R</p>
39、;<p> DIS_EW:MOV 40H,#30 ;;;東西通行時間加長</p><p> MOV 41H,#50</p><p> DIS_R:RET </p><p> ;///////定時中斷處理程序</p><p> DS_C: LJMP DS_R
40、 ;;;接力跳轉</p><p> DSZD: PUSH ACC ;;;保護現(xiàn)場</p><p><b> PUSH PSW</b></p><p> CLR TR0 ;;;關定時器及中斷標志位并重新賦值</p><p><b> CLR
41、 TF0</b></p><p> MOV TL0,#0B0H</p><p> MOV TH0,#3CH</p><p> DJNZ R2,DS_C ;;;判斷1m時間是否到達</p><p> MOV R2,#20 ;;;到達重新賦值</p><p>
42、; DEC 30H ;;;南北方向通行時間減一</p><p> MOV A,30H ;;;把減一后的時間送入顯示存儲單元</p><p> ;;;;;;;南北通行到達最后4秒時黃燈閃爍</p><p> DS_10:CJNE A,#4,DS_11 ;;;如果通行時間剩余4秒</p>&
43、lt;p> JNB SNF,DS_11 ;;;判斷是否是南北通行</p><p> MOV P0,#8AH </p><p> MOV 32H, #8AH ;;;把交通燈狀態(tài)存入存儲單元(后面類似)</p><p> DS_11:CJNE A,#3,DS_12 ;;;不是剩余3秒,返回</p
44、><p> JNB SNF,DS_12 ;;;不是南北通行時間,返回</p><p> MOV P0,#88H</p><p> MOV 32H, #88H</p><p> DS_12:CJNE A,#2,DS_13</p><p> JNB SNF,DS_13</p>
45、<p> MOV P0,#8AH</p><p> MOV 32H, #8AH </p><p> DS_13:CJNE A,#1,DS_14</p><p> JNB SNF,DS_14</p><p> MOV P0,#88H</p><p> MOV 32H, #88
46、H</p><p> ;------------------------</p><p> DS_14:JNZ DS_NE ;;;通行時間沒有結束轉向改變東西方向的數(shù)碼管</p><p> CPL SNF ;;;如果通行時間結束則對標志位取反</p><p> JNB SNF,DS_
47、1 ;;;判斷是否南北通行</p><p> MOV 30H,40H ;;;是,點亮相應的交通燈</p><p> MOV P0,#4CH</p><p> MOV 32H,#4CH ;;;存儲交通燈狀態(tài)</p><p> MOV P2,#15H</p><p&
48、gt; MOV 33H, #15H ;;;存儲交通燈狀態(tài)</p><p> DS_NE:DEC 31H ;;;東西方向通行時間減一</p><p> MOV A,31H ;;;把通行剩余時間送入顯示存儲單元</p><p> ;;;;;;;;東西方向通行時間剩余4秒鐘黃燈閃爍(程序注釋與南北方向類
49、似 略)</p><p> DS_20:CJNE A,#4,DS_21 </p><p> JB EWF,DS_21</p><p> MOV P0,#51H</p><p> MOV 32H, #51H</p><p> DS_21:CJNE A,#3,DS_22</p>
50、<p> JB EWF,DS_22</p><p> MOV P0,#41H</p><p> MOV 32H, #41H</p><p> DS_22:CJNE A,#2,DS_23</p><p> JB EWF,DS_23</p><p> MOV P0,#51
51、H</p><p> MOV 32H, #51H</p><p> DS_23:CJNE A,#1,DS_24</p><p> JB EWF,DS_24</p><p> MOV P0,#41H</p><p> MOV 32H, #41H</p><p> ;
52、-----------------------------</p><p> DS_24:JNZ DS_R ;;;東西方向時間沒有結束,返回</p><p> CPL EWF ;;;對通行狀態(tài)取反</p><p> JNB EWF,DS_2 ;;;東西方向通行時間到來,跳轉</
53、p><p> MOV 31H,#80 ;;;東西方向通行結束,重新顯示時間</p><p> MOV P0,#89H ;;;點亮相應的交通燈</p><p> MOV 32H, #89H</p><p> MOV P2,#29H</p><p> MOV 3
54、3H, #29H</p><p> AJMP DS_R </p><p> DS_1: MOV 30H,#80 ;;;南北通行時間結束,重新對顯示存儲單元賦值 </p><p> MOV P0,#89H ;;;執(zhí)行轉彎狀態(tài)1</p><p> MOV 32H, #89H
55、</p><p> MOV P2,#26H</p><p> MOV 33H, #26H</p><p> AJMP DS_NE </p><p> DS_2: MOV 31H,41H ;;;東西方向開始通行,賦值予顯示存儲單元</p><p> MOV
56、 P0,#61H ;;;點亮相應的交通燈</p><p> MOV 32H, #61H</p><p> MOV P2,#15H</p><p> MOV 33H, #15H</p><p> DS_R: SETB TR0 </p><p> POP PSW
57、 ;;;恢復現(xiàn)場</p><p><b> POP ACC</b></p><p><b> RETI</b></p><p> ;/////////////緊急中斷處理程序</p><p> URZD: PUSH ACC ;;;保護現(xiàn)場</p>
58、;<p><b> PUSH PSW</b></p><p> CLR IE0 ;;;清除中斷標志位</p><p> CLR TR0 ;;;關定時器</p><p> CPL URF ;;;緊急事件標志位</p><
59、p> JB URF,UR_CON ;;;緊急結束;跳轉</p><p> MOV P0,#49H ;;;各路口燈全顯示紅燈亮</p><p> MOV P2,#15H</p><p> AJMP UR_R</p><p> UR_CON:SETB TR0 ;;;
60、恢復正常交通</p><p> MOV A,32H</p><p> MOV P0,A</p><p> MOV A,33H</p><p> MOV P2,A</p><p> UR_R: POP PSW ;;;恢復現(xiàn)場</p><p>&
61、lt;b> POP ACC</b></p><p> RETI </p><p> ;////////////查表指令</p><p> TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH</p><p> DB 7DH, 07H, 7FH, 6FH<
62、/p><p> ;//////////延時5ms與1ms</p><p> D5MS: MOV R7,#5</p><p> D1MS: MOV R7,#10</p><p> MOV R6,#50 </p><p> L1: DJNZ R6,$</p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論