2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于51單片機的交通燈控制系統(tǒng)</p><p>  摘要: 交通信號燈使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往作為一個核心部件來使用,故本系統(tǒng)采用單片機STC89C52為中心器件來設計交通燈控制器,模擬十字路口交通燈的各種狀態(tài)顯示以及倒計時時間。</p><p>  本設計系統(tǒng)

2、由單片機I/O口擴展系統(tǒng)、交通燈狀態(tài)顯示系統(tǒng)、LED數碼顯示系統(tǒng)、復位電路等幾大部分組成。系統(tǒng)除基本的交通燈功能外,還具有倒計時顯示、更改倒計時時間的功能,簡單模擬了十字路口可能出現的一些狀況。軟件上采用匯編編程,主要編寫了主程序、LED數碼管顯示程序、更改時間程序和延時程序等。</p><p>  我們根據已有的實驗電路板硬件連接圖,編寫程序,燒錄并成功運行出結果,實現了對十字路口交通燈的模擬。</p&g

3、t;<p>  關鍵字: 交通燈,單片機,自動控制</p><p><b>  一、總體設計方案</b></p><p><b>  1.設計要求</b></p><p>  程序開始運行先南北段通行、東西段禁止30s,后東西段通行、南北 段禁止30s,依此循環(huán)。 </p><p>

4、;  系統(tǒng)可以增減通行時間,通過兩個按鍵“時間-”和“時間+”在已設定的30s基礎上實現減10s或加10s。</p><p><b>  設計目的</b></p><p>  1) 了解交通燈管理的基本工作原理 2)熟悉STCT89C52的工作原理和應用編程 3)熟悉STC89C52并行接口的各種工作方式和應用

5、 4)熟悉STC89C52計數器/定時器的工作方式 5)掌握多位LED顯示以及數碼管顯示問題的解決</p><p><b>  設計任務和內容</b></p><p>  單片機采用用STC89C52芯片,使用發(fā)光二極管(紅,黃,綠)代表各個路口的交通燈,用8段數碼管對轉換時間進行倒時(東西路口30秒,南北路口30秒,黃燈時間5秒)。</p

6、><p>  1) 使用protues軟件繪制硬件電路圖</p><p>  2) 根據電路圖編寫實現設計內容的匯編程序</p><p>  3) 軟件仿真和實物調試</p><p><b>  4.設計原理分析</b></p><p>  1.1交通燈顯示時序的理論分析與計算</p>

7、<p>  一般情況下時間顯示數碼管顯示30。此時南北段直行通行(綠燈)、東西段禁止(紅燈)30s,南北段的數碼管從30s開始倒計時,東西段方向數碼管從25s開始倒計時,至最后5s時南北段綠燈變成黃燈閃爍,東西段依然禁止(紅燈),兩個方向數碼管同時變成從5s倒計時。再后東西段直行通行(綠燈)、南北段禁止(紅燈)30s,東西段的數碼管從30s開始倒計時,南北段方向數碼管從25s開始倒計時,至最后5s時東西段綠燈變成黃燈閃爍,南北

8、段依然禁止(紅燈),兩個方向數碼管同時變成從5s倒計時。再后變成東西段直行通行(綠燈)、南北段禁止(紅燈)30s,這樣循環(huán)下去。</p><p>  1.2交通燈顯示時間的理論分析與計算</p><p>  倒計時顯示利用定時器中斷,設置TH0=TH1=(65536-50000)/256,即每0.05秒中斷一次。每到第20次中斷即過了20*0.05秒=1秒時,使時間的計數值減1,便實現了倒

9、計時的功能。</p><p>  狀態(tài)燈顯示中黃燈閃爍同樣可以利用定時器中斷。每到第10次中斷即過了10*0.05秒=0.5秒時,使黃燈標志位反置,即可讓黃燈1秒閃爍一次。</p><p>  1.3 更改交通燈時間原理與方法</p><p>  P3.4和P3.5分別與按鍵通過共陰極連接,在單片機上電之前更改按鍵,上電后掃描P3口,根據P3口的狀態(tài)確定紅綠燈倒計時

10、初始時間。上電之后更改時間,只能在下一個完整四個狀態(tài)循環(huán)時實現。P3.4和P3.5的狀態(tài)表:</p><p>  程序設計(時間更改和P1口亮燈部分)</p><p>  1、時間更改程序設計</p><p>  按鍵處理程序,89C52通過對P3口掃描,確定是否有鍵按下,再判斷具體是那個鍵按下,根據鍵值跳轉到按鍵處理程序。這里根據不同按鍵處理程序選擇不同初始時間。

11、</p><p>  MAIN:MOV SP,#60H</p><p>  MOV A,P3 ;掃描P3口</p><p>  ANL A, #00110000B;保留P3.4、P3.5口</p><p>  CJNE A,#00110000B,TO_35;P3.4=1且P3.5=1?否則跳轉到35s</p>&

12、lt;p>  MOV 25H,#25; 設置南北通行時間初值25秒,存放到25單元</p><p>  MOV 26H,#25; 設置東西通行時間初值25秒,存放到26單元</p><p><b>  JMP NBLD </b></p><p>  TO_35:CJNE A,#00100000B,TO_15;P3.4=0且P3.5=

13、1?否則跳轉到15s</p><p>  MOV 25H,#35; 設置南北通行時間初值35秒,存放到25單元</p><p>  MOV 26H,#35; 設置東西通行時間初值35秒,存放到26單元</p><p><b>  JMP NBLD</b></p><p>  TO_15:CJNE A,#00010

14、000B,EXIT1;P3.4=1且P3.5=0?否則跳轉到退出</p><p>  MOV 25H,#15</p><p>  MOV 26H,#15</p><p><b>  JMP NBLD</b></p><p>  EXIT1:RET ;退出</p><p>  2、P1口亮燈程序設計

15、</p><p>  在本設計中,實際控制的燈只有6個,即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。均是低電平有效。共有4種狀態(tài):東西紅燈亮,南北綠燈亮(F9H);東西紅燈亮,南北黃燈亮(EDH);東西綠燈亮,南北紅燈亮(F6H);東西黃燈亮,南北紅燈亮(DEH)。</p><p>  2.1通過鍵盤掃描確定初始時間,放入25H單元。</p><p&

16、gt;  NBLD: MOV R1,25H; 南北通行時間裝入R1</p><p>  2.2 狀態(tài)0:南北綠燈亮,東西紅燈亮</p><p>  NBLD1: MOV P1,#0F9H; 實現狀態(tài)0,點亮南北綠燈,東西紅燈</p><p>  MOV 20H,R1; 為南北方向顯時做準備</p><p><b

17、>  MOV A,R1;</b></p><p>  ADD A,#5; 實現南北方向30秒計時</p><p>  MOV 21H,A; 為東西方向顯時做準備</p><p>  LCALL NBLED </p><p>  LCALL NBLED; 顯示南北方向時間</p&g

18、t;<p>  DJNZ R1,NBLD1; 判斷25秒通行時間是否完,未完就重 新顯示與延時,完了就轉入下一狀態(tài)</p><p>  2.3 狀態(tài)1:南北黃燈亮,東西紅燈亮</p><p>  NBHD: MOV R2,#5; 為黃燈閃爍時間記入初值</p><p>  NBHD1: MOV P1,#0EDH; 實現狀態(tài)1,

19、點亮南北黃燈,東西紅燈</p><p>  MOV 22H,R2; 為顯時做準備</p><p>  LCALL HDLED; 調用黃燈顯示程序,延時0.5秒</p><p>  MOV P1,#0FDH; 熄滅黃燈</p><p>  LCALL HDLED; 再次調用黃燈顯時程序,以便湊足1秒

20、</p><p>  DJNZ R2,NBHD1; 判斷5秒通行時間是否完,未完就重新顯示、延時,完了就轉入下一狀態(tài)</p><p>  2.4 狀態(tài)2:南北紅燈亮,東西綠燈亮</p><p>  DXLD: MOV R3,26H; 東西通行時間裝入R3</p><p>  DXLD1: MOV P1,#0F6H; 實現

21、狀態(tài)2,點亮南北紅燈,東西綠燈</p><p>  MOV 24H,R3; 為顯時做準備</p><p>  MOV A,R3; </p><p><b>  ADD A,#5;</b></p><p>  MOV 23H,A; 為下一狀態(tài)的顯時做準備</p><p>

22、;  LCALL DXLED; 顯示南北方向時間</p><p>  LCALL DXLED</p><p>  DJNZ R3,DXLD1; 判斷25秒通行時間是否完,未完就重新顯示、延時,完了,就轉入下一狀態(tài)</p><p>  2.5 狀態(tài)3:南北紅燈亮,東西黃燈亮</p><p>  DXHD: MOV R2,#5;

23、 為黃燈閃爍時間記入初值 </p><p>  DXHD1: MOV 22H,R2 ; </p><p>  MOV P1,#0DEH; 實現狀態(tài)3,點亮南北紅燈,東西黃燈</p><p>  LCALL HDLED; 調用黃燈顯時程序</p><p>  MOV P1,#0FEH; 熄滅東西黃燈</p>

24、<p>  LCALL HDLED; 再次顯時,湊足1秒</p><p>  DJNZ R2,DXHD1; 判斷是否顯時達到5秒</p><p>  AJMP MAIN; 轉入主程序</p><p>  2.6 黃燈閃爍程序</p><p>  DXHD1:MOV P1,#0DEH; 點亮黃燈</p

25、><p>  LCALL HDLED; 調用黃燈顯時程序</p><p>  MOV P1,#0FEH; 熄滅黃燈</p><p>  LCALL HDLED; 再次顯時,湊足1秒</p><p>  DJNZ R2,DXHD1; 判斷是否顯時達到5秒</p><p><b>  三、硬件設計

26、</b></p><p>  根據實驗電路板電路圖,使用protues作硬件圖。</p><p><b>  四、實驗仿真及調試</b></p><p>  在使用實驗電路板調試的過程中,上電之前按下P3.4口的按鍵,上電,南北綠燈亮,東西紅燈亮,數碼管顯示南北35s,東西40s;按下P3.5口的按鍵,下一個完整循環(huán)時數碼管顯示南北

27、15s,東西20s;不按鍵,下一個完整循環(huán)時數碼管顯示南北25s,東西30s。每次復位時都顯示為南北25s,東西30s。</p><p>  在調試過程中,只有根據調試結果才能發(fā)現程序的錯誤和改進之處,而且有時候軟件仿真不一定有結果,只有硬件的現象是唯一的,所以必須根據硬件來處理。</p><p><b>  五、課程設計總結</b></p><p

28、>  本次課程設計在大家的共同努力下,從最初的無從下手到成功實現的這一過程中,我們在不斷學習。一開始以為可以編寫了程序再與硬件結合,后來發(fā)現實驗室的試驗箱與我們的接口不一樣,于是知道應該根據硬件圖來確定軟件編寫。我負責編寫的修改時間和亮燈程序,讓我對匯編程序中的分支程序、P1口功能等知識點有了更深刻的認識。這次課程設計中,我們還共同學習了如何用軟件畫硬件圖、用軟件仿真單片機以及燒錄程序的方法等等。</p><p

29、>  但是本次課程設計還有很多不足的地方,以更改時間部分為例,目前只能實現每次完全循環(huán)前通過判斷按鍵按下的狀態(tài)來改變初始時間,如果要實現隨時改變時間,需要更多改進。</p><p><b>  六、參考文獻</b></p><p>  [1] 張毅剛.單片機原理及接口技術[M].哈爾濱工業(yè)大學出版社,1990. </p><p&

30、gt;  [2] 郝建國等.單片機在電子電路中的應用[M].清華大學出版社,2006</p><p>  [3] 樓然苗.單片機課程設計指導[M].西安電子科技大學出版社,2009</p><p>  [4] 柴鈺.單片機控制交通燈[J].常州輕工職業(yè)技術學報,2011</p><p>  [5] 從宏濤.電子設計自動化[M].西安電子科技大學出版社,2011<

31、;/p><p><b>  七、附錄</b></p><p><b>  附錄1:程序清單</b></p><p><b>  ORG 0000H</b></p><p>  AJMP MAIN </p><p><b>  ORG 0400H&

32、lt;/b></p><p>  MAIN:MOV SP,#60H</p><p><b>  MOV A,P3</b></p><p>  ANL A, #00110000B</p><p>  CJNE A,#00110000B,TO_35 </p><p>  MOV 25H,#25&

33、lt;/p><p>  MOV 26H,#25</p><p><b>  JMP NBLD </b></p><p>  TO_35:CJNE A,#00100000B,TO_15</p><p>  MOV 25H,#35</p><p>  MOV 26H,#35</p><

34、p><b>  JMP NBLD</b></p><p>  TO_15:CJNE A,#00010000B,EXIT1</p><p>  MOV 25H,#15</p><p>  MOV 26H,#15</p><p><b>  JMP NBLD</b></p><

35、p><b>  EXIT1:RET</b></p><p>  NBLD: MOV R1,25H</p><p>  NBLD1: MOV P1,#0F9H</p><p>  MOV 20H,R1</p><p><b>  MOV A,R1</b></p><p>

36、<b>  ADD A,#5</b></p><p><b>  MOV 21H,A</b></p><p>  LCALL NBLED</p><p>  LCALL NBLED</p><p>  DJNZ R1,NBLD1</p><p>  NBHD: MOV R2,

37、#5</p><p>  NBHD1: MOV P1,#0EDH</p><p>  MOV 22H,R2</p><p>  LCALL HDLED</p><p>  MOV P1,#0FDH</p><p>  LCALL HDLED</p><p>  DJNZ R2,NBHD1<

38、/p><p>  DXLD: MOV R3,26H</p><p>  DXLD1: MOV P1,#0F6H</p><p>  MOV 24H,R3</p><p>  MOV A,R3 </p><p><b>  ADD A,#5</b></p><p>&l

39、t;b>  MOV 23H,A</b></p><p>  LCALL DXLED</p><p>  LCALL DXLED</p><p>  DJNZ R3,DXLD1</p><p>  DXHD: MOV R2,#5</p><p>  DXHD1: MOV 22H,R2 </p

40、><p>  MOV P1,#0DEH</p><p>  LCALL HDLED</p><p>  MOV P1,#0DFH</p><p>  LCALL HDLED</p><p>  DJNZ R2,DXHD1</p><p><b>  AJMP MAIN</b>&

41、lt;/p><p>  DELAY: LCALL DELAY1</p><p>  LCALL DELAY1</p><p><b>  RET</b></p><p>  DELAY1: MOV R6,#50 </p><p>  DE6: MOV R0,#50</p><p&g

42、t;  DE7: DJNZ R0,DE7</p><p>  DJNZ R6,DE6</p><p>  RET </p><p>  NBLED: MOV P0,#0</p><p>  MOV R7,#25</p><p>  LED1: MOV A,20H</p><p

43、>  MOV DPTR,#TAB</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p>&l

44、t;p><b>  SETB P2.7</b></p><p>  MOV P0,#0FEH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A <

45、/p><p>  LCALL DELAY1</p><p><b>  MOV A ,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p><p><b>  SETB P2.7</b>&

46、lt;/p><p>  MOV P0,#0FDH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A </p><p>  LCALL DELAY1</p&g

47、t;<p><b>  MOV A,21H</b></p><p>  MOV DPTR,#TAB</p><p>  MOV B,#10 </p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p&

48、gt;<b>  CLR P2.6</b></p><p><b>  SETB P2.7</b></p><p>  MOV P0,#0FBH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b>&

49、lt;/p><p>  MOV P0,A </p><p>  LCALL DELAY1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b><

50、/p><p><b>  SETB P2.7</b></p><p>  MOV P0,#0F7H</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A

51、 </p><p>  LCALL DELAY1</p><p>  DJNZ R7,LED1</p><p><b>  RET</b></p><p>  HDLED: MOV P0,#0</p><p>  MOV R7,#25</p><p>  L

52、ED2: MOV A,22H</p><p>  MOV DPTR,#TAB</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p><b>  C

53、LR P2.6</b></p><p><b>  SETB P2.7</b></p><p>  MOV P0,#0FAH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><

54、p>  MOV P0,A </p><p>  LCALL DELAY1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p><p><b&

55、gt;  SETB P2.7</b></p><p>  MOV P0,#0F5H</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A </p><p>  

56、LCALL DELAY</p><p>  DJNZ R7,LED2</p><p><b>  RET</b></p><p>  DXLED: MOV P0,#0</p><p>  MOV R7,#25</p><p>  LED3: MOV A,23H</p><p&

57、gt;  MOV DPTR,#TAB</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p><

58、p><b>  SETB P2.7</b></p><p>  MOV P0,#0FEH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A </p>

59、<p>  LCALL DELAY1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p><p><b>  SETB P2.7</b></p>

60、;<p>  MOV P0,#0FDH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A </p><p>  LCALL DELAY1</p><p>

61、;<b>  MOV A,24H</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b><

62、;/p><p><b>  SETB P2.7</b></p><p>  MOV P0,#0FBH</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A

63、 </p><p>  LCALL DELAY1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  CLR P2.6</b></p><p><b>  SETB P2.7</b

64、></p><p>  MOV P0,#0F7H</p><p><b>  CLR P2.7</b></p><p><b>  SETB P2.6</b></p><p>  MOV P0,A </p><p>  LCALL DELAY1</p>

65、<p>  DJNZ R7,LED3</p><p><b>  RET</b></p><p>  TAB:DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH </p><p><b>  END</b></p><p>  附錄2:電路設計總圖&

溫馨提示

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

評論

0/150

提交評論