呂志方
摘要:單片機是把組成微型計算機的各功能部件制作在一塊集成電路芯片上,構成完整的微型計算機。單片機具有體積小、重量輕、價格低廉、可靠性高、抗干擾能力強等特點,在智能儀表、工業控制、通訊設備、汽車電器和家用電器等很多領域有著廣泛的應用。文章以MCS-51單片機為例,介紹了汽車轉彎信號燈的系統硬件和系統軟件的設計。
關鍵詞:MCS-51單片機;汽車轉彎信號燈;系統硬件設計;系統軟件設計;集成電路 文獻標識碼:A
中圖分類號:TP212 文章編號:1009-2374(2016)13-0020-02 DOI:10.13535/j.cnki.11-4406/n.2016.13.010
1 汽車轉彎信號燈控制系統的功能要求
設汽車有一個轉彎控制桿,此控制桿有三個位置:中間位置時,汽車不轉彎;向上時,汽車左轉;向下時,汽車右轉。汽車轉彎時,汽車的兩個尾燈、兩個頭燈和兩個儀表板燈相應地發出閃爍信號,當應急開關合上時,6個燈都閃爍。汽車剎車時,尾燈信號不閃爍。汽車轉彎或應急狀態下,信號燈和儀表板燈閃爍頻率為1Hz,當停靠開關合上時,信號燈閃爍頻率為30Hz。
2 系統硬件的設計
汽車中單片機用+5伏供電,其他電路用+12伏電源供電。在單片機系統中,具有故障監測功能,發現故障能自動報警。圖中增加了晶體管Q7和7個電阻,Q7的集電極與T0相連,組成自動報警電路。假設一個信號燈受控斷開,相應單片機輸出口線為高電平,其余信號燈受控導通,導通的晶體管集電極輸出低電平,截止的晶體管集電極輸出高電平,Q7有6個輸入端,5個輸入端為低電平,1個輸入端為高電平,這時Q7導通,T0為低電平,如果測得T0為高電平,說明單片機電路發生故障,這就是故障監測的原理。
3 系統軟件的設計
系統軟件用匯編語言編寫,分為三部分:
3.1 口線說明和變量定義
程序中不采用口線名稱,采用符號地址,變量采用助記名,要改變具體引腳,只要在說明和定義部分作修改,給程序設計帶來了方便。
3.2 主程序
采用定時器/計數器0和1個軟件計數器SUB-DIV產生一秒的定時信號,實現低頻1Hz的閃爍功能。
3.3 中斷服務程序
3.3.1 1Hz信號的產生:SUB-DIV初值為244,由244變到0,經0.999424秒,其中SUB-DIV.7為1時間117/244秒,為0時間127/244秒,得到占空比50%的1秒信號。
3.3.2 30Hz信號的產生:計數器SUB-DIV值由244變為0時,低3位構成8種狀態,在0.999424秒中重復次數為30,把低3位狀態組合起來,形成一定占空比的30Hz信號。
3.3.3 各種信號的形成:根據系統輸入狀態(各開關位置),計算送各指示燈的信號。
1 BRAKE BIT P1.0 30 SETB TR0 59 ANL C,PARK
2 EMERG BIT P1.1 31 SJMP $ 60 MOV DIM,C
3 PARK BIT P1.2 32 UPDATE:DJNZ SUB-DIV,T0SERV 61 MOV C,L-TURN
4 L-TURN BIT P1.3 33 MOV SUB-DIV,#244 62 ORL C,EMERG
5 R-TURN BIT P1.4 34 ORL P1,#11100000B 63 ANL C,LO-FREQ
6 L-FRNT BIT P1.5 35 ORL P2,#00000111B 64 MOV L-DASH,C
7 R-FRNT BIT P1.6 36 CLR L-FRNT 65 MOV F0,C
8 L-DASH BIT P1.7 37 JB T0,FAULT 66 ORL C,DIM
9 R-DASH BIT P2.0 38 SETB L-FRNT 67 MOV L-FRNT,C
10 L-REAR BIT P2.1 39 CLR L-DASH 68 MOV C,BRAKE
11 R-REAR BIT P2.2 40 JB T0,FAULT 69 ANL C,/L-TURN
12 S-FAIL BIT P2.3 41 SETB L-DASH 70 ORL C,F0
13 SUB-DIV DATA 20H 42 CLR L-REAR 71 ORL C,DIM
14 HI-FREQ BIT SUB-DIV.0 43 JB T0,FAULT 72 MOV L-REAR,C
15 LO-FREQ BIT SUB-DIV.7 44 SETB L-REAR 73 MOV C, R-TURN
16 DIM BIT PSW.1 45 CLR R-ERNT 74 ORL C,EMERG
17 ORG 0000H 46 JB T0,FAULT 75 ANL C,LO-FREQ
18 LJMP INIT 47 SETB R-FRNT 76 MOV R-DASH,C
19 ORG 000BH 48 CLR R-DASH 77 MOV F0,C
20 MOV TH0,#-16 49 JB T0,FAULT 78 ORL C,DIM
21 PUSH PSW 50 SETB R-DASH 79 MOV R-FRNT,C
22 AJMP UPDATE 51 CLR R-REAR 80 MOV C,BRAKE
23 ORG 0040H 52 JB T0,FAULT 81 ANL C,/R-TURN
24 INIT: MOV TL0,#0 53 SETB R-REAR 82 ORL C,F0
25 MOV TH0,#-16 54 JB T0,T0SERV 83 ORL C,DIM
26 MOV TMOD #01100001B 55 FAULT:CPL S-FAIL 84 MOV R-REAR,C
27 MOV SUB-DIV,#244 56 T0SERV:MOV C,SUB-DIV.1 85 POP PSW
28 SETB ET0 57 ANL C,SUB-DIV.0 86 RETI
29 SETB EA 58 ORL C,SUB-DIV.2 87 END
4 結語
汽車轉彎信號燈的設計也可用數字邏輯電路來實現,缺點是靈活性差,系統功能有所變動,電路也要隨之變動,缺少必要的智能。采用本文MCS-51單片機控制系統,可以實現數字邏輯電路的全部功能,并有故障監控功能,體現了單片機控制的優越性。
參考文獻
[1]孫涵芳,徐愛卿.MCS-51/96系列單片機原理及應用
[M].北京:北京航空航天大學出版社,1987.
[2]馬彪.單片機應用技術[M].北京:中國輕工業出版
社,2005.
[3]秦實宏,徐春輝.MCS-51單片機原理及應用[M].武
漢:華中科技大學出版社,2010.
(責任編輯:黃銀芳)