版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機原理及系統課程設計</p><p> 專 業(yè): 電氣工程及其自動化 </p><p> 班 級: 電氣1004班 </p><p> 姓 名: </p><p> 學 號: </p><p>
2、; 指導教師: </p><p><b> 2013年3月7日</b></p><p> 摘要,基于單片機的工作原理,以八路搶答器為理念,制作廣泛</p><p><b> 1引 言</b></p><p> 本設計的設計內容是:基于單片機的汽車燈控制系統的設計
3、。模擬汽車在駕駛中的左轉彎、右轉彎、剎車、合緊急開關、??康炔僮鳌T谧筠D彎或右轉彎時,通過轉彎操作桿使左轉彎或右轉彎開關合上,從而使左頭信號燈、儀表板的左轉彎燈、左尾信號燈或右頭信號燈、儀表板的右轉彎信號燈、右尾信號燈閃爍;閉合緊急開關時以上六個信號燈全部閃爍;汽車剎車時,左右兩個尾信號燈點亮;若正當轉彎時剎車,則轉彎時原閃爍的信號燈應繼續(xù)閃爍,同時另一個尾信號燈點亮,以上閃爍的信號燈以1Hz頻率慢速閃爍;在汽車停靠開關合上時左頭信號燈
4、、右頭信號燈、左尾信號燈、右尾信號燈以10Hz頻率快速閃爍。任何在下表中未出現的組合,都將出現故障指示燈閃爍,閃爍頻率為10Hz。</p><p><b> 2設計方案及原理</b></p><p> 2.1系統硬件設計概述</p><p> 該設計方案中,選用ATMEL公司的8位通用單片機AT89C51,讓其P0口為系統的輸入端口,輸入
5、信號由開關的通斷產生,而P1口為系統的輸出端口,輸出給7個LED指示燈。同時,本設計中將剎車輸入信號以中斷的方式進行輸入,這樣在一定程度上就保證了諸如剎車這種緊急情況下實時性較高的需要。詳細的硬件設計方案見后續(xù)章節(jié)。</p><p> 2.2系統軟件設計概述</p><p> 根據系統的設計需要,為滿足系統實時性的需求,我們把剎車信號處理成外部中斷0的形式,其他輸入信號以普通的輸入信號
6、進行輸入,CPU以輪詢的方式對它們進行查詢。若CPU發(fā)現有輸入信號的組合是所期望輸入信號組合的任何一組時,則驅動相應的指示燈發(fā)出相應的指示情況。詳細的軟件設計方案見后續(xù)章節(jié)。</p><p><b> 3硬件設計</b></p><p> 3.1 硬件設計方案</p><p> 如前所述,在該設計方案中,選用ATMEL公司的8位通用單片機
7、AT89C51,讓其P0口為系統的輸入端口,輸入信號由開關的通斷產生,其中,P0.0為左轉彎開關,P0.1為右轉彎開關,P0.2為緊急開關,P0.3為??块_關。P1口為系統的輸出端口,輸出給7個LED指示燈。其中,P1.0到P1.2引腳分別連接汽車的左轉彎燈、左頭燈和左尾燈,為便于區(qū)分,這三個燈均用黃燈表示;P1.3到P1.5引腳分別連接汽車的右轉彎燈、右頭燈和右尾燈;P1.6引腳連接汽車的故障指示燈。同時,本設計中將剎車輸入信號以外部
8、中斷0的方式進行輸入,這樣在一定程度上就保證了諸如剎車這種緊急情況下實時性較高的需要。</p><p> 3.2 硬件設計原理圖</p><p> 在Proteus仿真環(huán)境下所搭建的系統硬件電路圖如圖3.1所示。</p><p> 圖3.1 系統硬件原理圖</p><p><b> 4 軟件設計</b></
9、p><p> 4.1 軟件設計方案</p><p> 根據設計要求,我們把左轉彎信號輸入、右轉彎信號輸入、緊急信號輸入和停靠信號輸入當做普通的信號輸入給單片機進行處理,此時CPU采用輪詢的方式對各個信號的組合方式逐個地進行排查:若CPU發(fā)現有有效的信號輸入,則驅動相應指示燈進行相應的顯示,若發(fā)現有無效的信號輸入,則驅動故障指示燈閃爍,若上述情況都未發(fā)生,則CPU繼續(xù)輪詢排查各個輸入信號的組
10、合,直到有信號輸入。</p><p> 由于剎車信號是一種很緊急的信號,故此處將剎車信號處理成外部中斷信號進行輸入,以保證實時性,將損失降低到最小。此時CPU正在執(zhí)行主程序(即CPU正以輪詢的方式排查各輸入信號的組合),當有剎車信號輸入時,程序立即轉向中斷服務程序去處理,其中包含著與剎車有關的各個有效信號的組合,當輸入信號的組合有效時,則發(fā)出相應的動作,若輸入無效信號時,則故障指示燈閃爍??紤]到一般剎車之后都需
11、要重新啟動汽車及整個汽車的控制系統,我們把當系統進入到中斷時的各個有效狀態(tài)人為地設置為重復等待狀態(tài),直到系統重新上電復位之后,又恢復到正常的等待狀態(tài)。</p><p> 4.2 系統設計流程圖</p><p> 4.2.1 主程序流程圖</p><p> 在主程序中,首先將輸出端口與清零,以免對后續(xù)的程序執(zhí)行結果產生錯誤的影響。片內存儲單元30H、31H和32
12、H分別用來當做左轉彎、右轉彎、緊急開關是否閉合的標志存儲器,若有相應的信號出現時,則相應的標志存儲器置為#FFH,否則,相應的標志存儲器清零。設置這三個標志存儲器的目的是為了當有剎車中斷產生是,便于CPU辨認是否在剎車的情況下有左轉彎、右轉彎或者是緊急開關閉合。為了能夠使系統在汽車處于運行狀態(tài)下連續(xù)可靠地工作,主程序采用循環(huán)掃描,即輪詢的方式工作。</p><p> 主程序流程圖如圖4.1所示。</p&g
13、t;<p> 4.2.2 中斷程序流程圖</p><p> 在中斷服務程序中,首先同主程序一樣,先將輸出口清零,以免影響后續(xù)程序執(zhí)行結果。緊接著,程序通過一級一級的判斷與排查,看是否有與題中所給出的信號組合相符的信號組合出現,若出現了,則相應的指示燈要出現相應的動作,并進入循環(huán)執(zhí)行的狀態(tài),直到系統從剎車狀態(tài)中解除出來,重新上電復位后,又重頭開始執(zhí)行程序;否則,故障指示燈顯示。</p>
14、<p> 中斷程序流程圖如圖4.2所示。</p><p> 圖4.1 主程序流程圖</p><p> 圖4.2 中斷程序流程圖</p><p><b> 5總 結</b></p><p> 經過將近一周時間的單片機課程設計,我又重新溫習回顧了有關8051單片機的基本結構和一些基本的指令,并進一步
15、加深了用單片機進行整個系統硬件和程序設計的方法與步驟,鞏固了利用單片機進行系統軟件設計時的一些技巧與方法。就本次所選的設計題目而言,我在設計的過程中,首先通過仔細分析題目,來找到解決問題的突破口,這一步對于后續(xù)過程的設計具有指導意義。其次,根據所分析的結果,綜合考慮各種必要條件后,設計出了系統的硬件電路圖。接著,進行系統的軟件設計,這一步需要詳細分析題中各種情況之間的邏輯關系與其自身的要求,還要綜合考慮到實際情況的需要。在搞清楚這些關系
16、之后,為系統編寫匯編程序源代碼。然后,在KeilC應用軟件環(huán)境下,對匯編源代碼進行編譯、匯編與連接,并將生成的可執(zhí)行文件與硬件系統相關聯,最后在Proteus仿真環(huán)境下進行仿真,調試仿真結果是否正確。通過此次課程設計,我復習掌握了不僅有關單片機的知識,還收獲了一些有關論文寫作規(guī)范的要求,這讓我受益匪淺。</p><p><b> 參考文獻</b></p><p>
17、 [1] 李華,王思明,張金敏.單片機原理及應用[M].蘭州:蘭州大學出版社,2001.5.</p><p> [2] 徐愛均.單片機原理實用教程-基于Proteus虛擬仿真[M].北京:電子工業(yè)出版社,2009.1.</p><p> [3] 李廣弟.單片機基礎[M].北京:北京航空航天大學出版社,1994.</p><p> [4] 房小翠.單片機實用系統
18、設計技術[M].北京:國防工業(yè)出版社,1999.</p><p> [5] 胡漢才.單片機原理及接口技術.清華大學出版社,1995.</p><p><b> 附 錄</b></p><p><b> ORG0000H</b></p><p><b> LJMPMAIN<
19、;/b></p><p><b> ORG0003H</b></p><p> LJMPINTRT0</p><p> MAIN:MOVP1,#00H ;輸出口清0</p><p> MOV30H,#00H ;標志清0</p>
20、;<p> MOV31H,#00H ;</p><p> MOV32H,#00H ;</p><p><b> SETBEX0</b></p><p><b> SETBEA</b></p><p> HP1:
21、MOVA,P0 ;左轉判斷</p><p><b> CLRC</b></p><p> SUBBA,#01H</p><p><b> JZZZW</b></p><p><b> JNZJX1</b></p
22、><p> ZZW:MOV30H,#0FFH ;左轉指示</p><p> SS1:MOVP1,#07H</p><p> LCALLDELAY1</p><p> MOVP1,#00H</p><p> LCALLDELAY1</p><p
23、><b> SJMPHP1</b></p><p> JX1:MOV30H,#00H</p><p> HP2:CLRC ;右轉判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#02
24、H</p><p><b> JZYZW</b></p><p><b> JNZJX2</b></p><p> YZW:MOV31H,#0FFH ;右轉指示</p><p> SS2:MOVP1,#38H</p><p
25、> LCALLDELAY1</p><p> MOVP1,#00H</p><p> LCALLDELAY1</p><p><b> SJMPHP2</b></p><p> JX2:MOV31H,#00H ;合緊急開關判斷</p><
26、p> HP3:CLRC</p><p><b> MOVA,P0</b></p><p> SUBBA,#04H</p><p><b> JZHJJ</b></p><p><b> JNZJX3</b></p><p&
27、gt; HJJ:MOV32H,#0FFH ;合緊急開關指示</p><p> SS3:MOVP1,#3FH</p><p> LCALLDELAY1</p><p> MOVP1,#00H</p><p> LCALLDELAY1</p><p><b
28、> SJMPHP3</b></p><p> JX3:MOV32H,#00H</p><p> HP4:CLRC ;合??块_關判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#08H<
29、/p><p><b> JZTK</b></p><p><b> JNZJX4</b></p><p> TK:MOVP1,#36H ;合??块_關指示</p><p> LCALLDELAY10</p><p>
30、MOVP1,#00H</p><p> LCALLDELAY10</p><p><b> SJMPHP4</b></p><p> JX4:CLRC ;有無輸入判斷</p><p><b> MOVA,P0</b></p&
31、gt;<p><b> JZTZ</b></p><p> CLRC ;左轉判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#01H</p><p><b> JZTZ&
32、lt;/b></p><p> CLRC ;右轉判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#02H</p><p><b> JZTZ</b></p><p>
33、CLRC ;合緊急開關判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#04H</p><p><b> JZTZ</b></p><p> CLRC ;合
34、??块_關判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#08H</p><p><b> JZTZ</b></p><p><b> AJMPGZ</b></p><p> GZ:MOV
35、P1,#40H ;故障指示</p><p> LCALLDELAY10</p><p> MOVP1,#00H</p><p> LCALLDELAY10</p><p><b> AJMPJX4</b></p><p> TZ:AJM
36、PMAIN ;返回繼續(xù)</p><p> INTRT0:CLREA ;關中斷</p><p> MOVP1,#00H</p><p> CLRC ;左轉判斷</p><p><b> MOV
37、A,30H</b></p><p> SUBBA,#0FFH</p><p><b> JZZZS</b></p><p> CLRC ;右轉判斷</p><p><b> MOVA,31H</b></p>&l
38、t;p> SUBBA,#0FFH</p><p><b> JZYZS</b></p><p> PSC:MOVA,P0 ;剎車判斷</p><p><b> JZSC</b></p><p><b> JNZGZ
39、1</b></p><p> SC:MOVP1,#24H</p><p> CLRC ;剎車合緊急開關判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#04H</p><p><
40、;b> JZHJS</b></p><p><b> SJMPSC</b></p><p> GZ1:MOVP1,#40H ;故障指示</p><p> LCALLDELAY10</p><p> MOVP1,#00H</p>&
41、lt;p> LCALLDELAY10</p><p><b> SJMPGZ1</b></p><p> ZZS:CLRC ;左轉彎剎車合緊急開關判斷</p><p><b> MOVA,P0</b></p><p> SUBB
42、A,#05H</p><p><b> JZZSJ</b></p><p> ZS:MOVP1,#27H ;左轉彎剎車指示</p><p> LCALLDELAY1</p><p> MOVP1,#00H</p><p><b>
43、 SETBP1.5</b></p><p> LCALLDELAY1</p><p><b> SJMPZZS</b></p><p> ZSJ:MOVP1,#3FH ;左轉彎剎車合緊急開關指示</p><p> LCALLDELAY1</p&g
44、t;<p> MOVP1,#00H</p><p><b> SETBP1.5</b></p><p> LCALLDELAY1</p><p><b> SJMPZSJ</b></p><p> YZS:CLRC ;
45、右轉彎剎車合緊急開關判斷</p><p><b> MOVA,P0</b></p><p> SUBBA,#06H</p><p><b> JZYSJ</b></p><p> YS:MOVP1,#3CH ;右轉彎剎車指示</p>
46、<p> LCALLDELAY1</p><p> MOVP1,#00H</p><p><b> SETBP1.2</b></p><p> LCALLDELAY1</p><p><b> SJMPYZS</b></p><p> Y
47、SJ:MOVP1,#3FH ;右轉彎剎車合緊急開關指示</p><p> LCALLDELAY1</p><p> MOVP1,#00H</p><p><b> SETBP1.2</b></p><p> LCALLDELAY1</p><p&
48、gt;<b> SJMPYSJ</b></p><p> HJS:MOVP1,#3FH ;剎車時合緊急開關指示</p><p> LCALLDELAY1</p><p> MOVP1,#00H</p><p><b> SETBP1.2</b>
49、</p><p><b> SETBP1.5</b></p><p> LCALLDELAY1</p><p><b> SJMPHJS</b></p><p><b> RETI</b></p><p> DELAY10:MOV
50、R7,#200 ;延時0.1s子程序</p><p> L:MOVR6,#123</p><p><b> NOP</b></p><p> L1:DJNZR6,L1</p><p><b> DJNZR7,L</b></p>
51、<p><b> RET</b></p><p> DELAY1:MOVR5,#10 ;延時1s子程序</p><p> L2:MOVR7,#200</p><p> L3:MOVR6,#123</p><p><b> NOP<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論