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