徐偉
摘 要:本文的研究目的是掌握單片機在工業(yè)控制中的應用,涉及單片機的結構,原理及其匯編語言指令和程序的掌握。主要內容為單片機鍋爐液位控制系統(tǒng)。通過單片機對鍋爐液位的語音顯示和報警,可以避免鍋爐爆炸等生產事故,從而確保了安全生產。
關鍵詞:單片機;液位;顯示和報警
中圖分類號:TP27 文獻標志碼:A
0 前言
單片機作為計算機的一個分支,廣泛應用于工業(yè)控制、智能儀器儀表、機電一體化產品、家用電器等各個領域。單片機又稱微控制器。它把三大部分(CPU+存儲器+I/O接口)和一些實時控制所需的功能器件集成在該芯片上。
這次的設計任務是利用單片機構成一個小系統(tǒng)在鍋爐液位控制中的應用與研究。雖然系統(tǒng)比較小,但是可以看出單片機的功能強大和應用的廣泛性。
1 系統(tǒng)的設計
由任務書的要求我們可以確定。我們的設計性質為產品開發(fā)。按產品開發(fā)設計步驟,我們把設計分為4個部分:(1)總體介紹;(2)硬件系統(tǒng)的設計;(3)軟件系統(tǒng)的設計;(4)軟硬件結合性能測試分析。
1.1 總體介紹
系統(tǒng)控制圖如圖1所示。
1.1.1 單片機 ATMEL 89C51
(1)結構特點與分類。ATEMEL 89系列單片機內部結構與80C51接近,主要含有以下部件:(a)8051CPU;(b)內部震蕩電路;(c)總線控制部件;(d)定時/計數(shù)部件,中斷控制部件;(e)并行I/O接口,串行I/O接口;(f)片內RAM,特殊功能寄存器SFR,F(xiàn)lash程序存儲器。ATEMEL 89系列單片機可分為標準型,低檔型,高檔型。
(2)兼容性。ATEMEL 89系列單片機與MCS-51指令系統(tǒng)兼容,可以用相同引腳的89系列單片機直接代替80C51產品。AT89C51相同封裝的80C51兼容,指令系統(tǒng)完全相同,開發(fā)與設計均與80C51相同,是ATMEL公司功能強,性價比高的單片機。
(3)ATC89C51特點:(a)程序存儲器的加密位。ATC89C51內部有4KB的閃存程序存儲器,其閃存存儲器均有3個加密位。(b)AT89C51片內有4KB的Flash程序存儲陣列,一片新的AT89C51,其存儲器陣列處于擦除狀態(tài)(FFH),此時可以對其進行編程,存儲器陣列一次編程一個字節(jié),若編程任何非空字節(jié)時,需對整個存儲器陣列進行擦除。
1.1.2 3-8譯碼器74LS138
3-8譯碼器74LS138為一種常用的地址譯碼芯片,其引腳圖如圖2所示。
其中G1、/G2A、/G2B為3個控制端,只有當G1為“1”且/G2A,/G2B均為“0”時,譯碼器才能進行譯碼輸出。否則譯碼器的8個輸出端全為高阻狀態(tài)。具體使用時,G1,G2A,G2B即可直接至+5V(電源端)或接地,也可參與地址譯碼。但其譯碼關系必須為100。需要時也可通過反相器使輸入信號滿足要求。
1.1.3 8D鎖存器74LS373
74LS373是一種帶輸出三態(tài)門的8D鎖存器,其結構如圖3所示:1D~8D為輸入端。1Q~8Q為輸出端。G位數(shù)據鎖存控制端:當G為“1”時,鎖存器輸出端同輸入端;當G由“1”變“0”時,數(shù)據輸入鎖存器中。/OE為輸出允許端:當/OE為“0”時,三態(tài)門打開;當/OE為“1”時三態(tài)門關閉,輸出呈高阻狀態(tài)。在MCS-51單片機系統(tǒng)中,常采用74LS373作為地址鎖存器使用,其連接方法如圖4所示:其中輸入端1D~8D接至單片機的P0口,輸出端提供的是低8位地址,G端接至單片機的地址鎖存允許信號ALE。輸出允許端/OE接地,表示輸出三態(tài)門一直打開。
1.1.4 74LS244 驅動器
74LS244常作單片機的總線驅動器,也做三態(tài)數(shù)據緩沖器。
1.1.5 液晶數(shù)碼管
LED顯示器是由發(fā)光二極管顯示字段組成的顯示器件。在單片機應用系統(tǒng)中通常使用的是七段LED。通常的七段LED顯示器中有8個發(fā)光二極管,其中7個發(fā)光二極管構成7筆字型,一個發(fā)光二極管構成小數(shù)點。
1.1.6 LED顯示器的顯示方式
在單片機應用系統(tǒng)中可利用LED顯示塊靈活地構成所要求位數(shù)的顯示器。根據顯示方式的不同,位選線和段選線的連接方法有所不同。段選線控制字符選擇,位選線控制顯示位的亮或暗。
(1)LED靜態(tài)顯示方式。LED工作在靜態(tài)顯示方式下,共陰極接地或共陽極接+5V;每一位的段選碼與一個8位并行I/O口相連。 N位靜態(tài)顯示器要求有N×8根I/O口線,占用I/O口線較多。故在位數(shù)較多時往往采用動態(tài)顯示方式。
(2)LED動態(tài)顯示方式。LED動態(tài)顯示是將所有的段選線并接在一個I/O口上,共陰極端或共陽極端分別由相應的I/O口線控制。
1.1.7 語音芯片ISD1420
ISD1400系列單片語音錄放集成電路,其內部設有時鐘振蕩器,128K E2PROM(電可編,電可擦只讀存儲器),前置放大器,自動增益電路,反混疊濾波器,模擬轉發(fā)器,平滑濾波器,差分功放等高品質語音錄放系統(tǒng)所需的全部基本功能電路。ISD1400系列單片器件采用單一電源供電,工作電壓為直流(VDD)5V。其靜電電流典型值0.5μA,最大值2μA;工作電流典型值15mA,最大值30mA;錄放周期后,僅需0.5μA保持電流。
(1)管腳功能。這里對管腳文字及管腳功能作以下簡介:①A0~A7:地址輸入端;②VCCD:數(shù)字電路電源正極;③VCCA:模擬電路電源正極 ;④VSSD : 數(shù)字電路電源負極,地;⑤VSSA:模擬電路電源負極,地;⑥SP+:功放輸出端,接揚聲器(+);⑦SP—:功放輸出端,接揚聲器(—);⑧XCLK:外接時鐘(振蕩電路);⑨ANA IN:模擬量輸入;⑩ANA OUT:模擬量輸出;AGC:自動增益控制;MIC:駐極體話筒輸入;MIC REF:駐極體話筒參考輸入;PLAYE:邊緣觸發(fā)放音端;PLAYL:電平觸發(fā)放音端;REC:錄音觸發(fā)端;RECLED:發(fā)光二極管接口端;NC:空腳
(2)操作模式:ISD1420地址輸入端具有雙重功能,根據地址中的A6,A7的電平的高低,決定著A0~A7的功能。如果A6,A7都是低電平,則A0~A7輸入均為地址位,A0作起始地址用。地址位僅作為輸入端,在操作過程中不能輸出內部的地址信息。根據PLAYE,PLAYL或REC的下降沿信號,地址輸入被鎖定。如果A6,A7同為高電平,它們即為模式位。操作模式可以與微機接口,也可以用連線控制操作。有關地址輸入端的功能說明如下:(a)A0:信息檢索;(b)A1:刪除EOM標志;(c)A3:循環(huán)重放信息;(d)A4:連續(xù)尋址;(e)A2,A5未用。
(3)典型應用電路:ISD1400系列器件目前已被用于微型固體錄音機、通信、電話、車船、飛機黑匣子、有聲電子信函、語音信箱、高級玩具等。ISD1420與計算機,單片機相結合,應用前景十分廣闊。它可以開發(fā)會說話的電子秤,語音數(shù)字萬用表,會說話的電壓表和電流表,多路語音報警系統(tǒng)等新穎的電子電器來。
1.2 硬件系統(tǒng)的設計
1.2.1單片機通信
(1)基本概念:計算機與外界的信息交換稱為通信?;镜耐ㄐ欧椒ㄓ胁⑿型ㄐ藕痛型ㄐ艃煞N。一個信息的各位數(shù)據被同時傳送的通信方法稱為并行通信。并行通信依靠I/O接口實現(xiàn)。其通信速度快,但傳輸線根數(shù)多,只適用于近距離(相距數(shù)米)的通信。一個信息的各位數(shù)據被逐位順序傳送的通信方式稱為串行通信。串行通信可通過串行接口實現(xiàn)。串行通信速度慢,但傳輸線少,適宜長距離通信。串行通信又有異步通信和同步通信兩種方式。
(2)串行接口的功能與結構:串行口有4種工作方式。方式0并不用于通信,而是通過外接移位寄存器芯片實現(xiàn)擴展并行I/O接口線的功能。方式1、方式2、方式3都是異步通信方式。方式1用于雙機串行通信。方式2、方式3主要用于多機通信,也可用于雙機通信。
(3)串行接口的工作方式:由于本單片機控制系統(tǒng)通信距離較長,且為雙機通信,宜采用方式1。
1.2.2 語音與顯示系統(tǒng)
本系統(tǒng)中,在ISD1420中分段存入“液位過低”,“液位過高”,“危險液位”……“鍋爐有故障,請檢查”等語音信息,在單片機的控制下,可以根據需要提取任意的組合信息。
顯示器件中最常見的是LED(發(fā)光二極管)和LED數(shù)碼管,前者多用于信號指示,后者可用于數(shù)字輸出,它們有足夠的亮度,耗電與發(fā)熱都很少,并可在單一+5V電源下工作。
對于輸入器件,通過擴展輸入口與單片機連接;對于輸出器件,則常通過擴展輸出口與單片機連接。本例LED通過74LS245驅動芯片與單片機接口。
本系統(tǒng)采用共陰極數(shù)碼管動態(tài)掃描顯示,兩個74ls245與4個LED數(shù)碼管相連接,用于位驅動和段驅動。片選信號由74ls138提供。
1.2.3 單片機外圍電路
(1)控制部件及振蕩器:控制部件是單片機的神經中樞,它包括定時和控制電路、指令寄存器、譯碼器以及信息傳送等部件。單片機的定時控制功能是用片內的時鐘電路和定時電路來完成的。而片內的時鐘產生有兩種方式:內部時鐘方式和外部時鐘方式。采用內部時鐘方式時,片內高增益反相放大器通過XTAL1,XYAL2外接作為反饋元件的晶體(呈感性)與電容組成的并聯(lián)諧振回路構成一個自激振蕩器向內部時鐘電路提供振蕩時鐘。振蕩器的頻率主要取決于晶體的振蕩頻率,一般晶體可在1.2MHz~12MHz任選。電容C1,C2的值則有微調作用,通常取30pF左右。如圖5所示。
(2)復位電路:與其他計算機一樣,MCS—51單片機系統(tǒng)常常有上電復位和按鈕復位兩種方法。復位是靠外部電路實現(xiàn)的。圖6是上電復位及按鈕復位的電路。
上電時,+5V電源立即對單片機芯片供電,同時經電阻R對電容C3充電。C3上電壓建立的過程就產生一定寬度的負脈沖,經反相后,RST上出現(xiàn)正脈沖使單片機實現(xiàn)了上電復位。按鈕按下時,RST上同樣出現(xiàn)高電平,實現(xiàn)了按鈕復位。非門在這里不僅起了反相作用,還增大了驅動能力,電容C,C起濾波作用,防止干擾竄入復位端產生誤動作。
1.2.4系統(tǒng)硬件電路
液位信息自串行輸入口RXD送入,P2口送出高電平經74LS138譯碼器變成低電平選通驅動器74LS245,先位選碼后段選碼,在4個數(shù)碼管上顯示液位數(shù)值,并判斷其是否在報警范圍內,若在,則由低電平選通ISD1420語音芯片和高電平選通74LS373地址所存器,并送入液位信息地址到語音芯片進行報警。這樣就提醒操作者及時調節(jié)閥門,維持液位在安全范圍內。
1.2.5硬件電路制作與檢查
根據硬件電路選擇所需元器件,先把大的片子在電路板上合理布局,然后進行焊接。最后焊接電阻電容等小的元件。等全部完成后,檢查焊點是否實得,切忌有虛焊點,反復檢查,認真對待。
1.3 軟件系統(tǒng)的設計
1.3.1系統(tǒng)軟件流程圖
根據此次單片機應用系統(tǒng)設計要求,軟件流程圖如圖7所示。
1.3.2 軟件程序
根據軟件系統(tǒng)流程圖編寫程序如下所示:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV A,30H ;主程序
CLR C
SUBB A,#20H
JC DANGER ;H<-75 JMP
MOV A,30H
CLR C
SUBB A,#33H
JC LOW_ALARM ;H<-60 JMP
MOV A,30H
CLR C
SUBB A,#0CCH
JNC HIGH_ALARM ;H>60 JMP
MOV A,30H
CLR C
SUBB A,#5AH
JC OPEN_WATER ;-60 < H < -30 JMP
MOV A,30H
CLR C
SUBB A,#0A5H
JNC STOP_WATER ;30 < H < 60 JMP
AJMP DISPLAY
DANGER: ;危險液位報警
CLR P1.0 ;STOP BUMP
CLR P1.1 ;STOP WIND
MOV DPTR,#4000H
MOV A,#10H
MOVX @DPTR,A ;DANGER ALARM
ORL P2,#0E0H
AJMP DISPLAY
LOW_ALARM: ;低液位報警
MOV DPTR,#4000H
MOV A,#08H
MOVX @DPTR,A ;LOW ALARM
ORL P2,#0E0H
AJMP DISPLAY
HIGH_ALARM: ; 高液位報警
MOV DPTR,#4000H
MOV A,#04H
MOVX @DPTR,A
ORL P2,#0E0H
AJMP DISPLAY
OPEN_WATER: ;開泵
SETB P1.0 ;OPEN BUMP
AJMP DISPLAY
STOP_WATER: ;關泵
CLR P1.0 ;STOP BUMP
DISPLAY: ;數(shù)字量與高度之間轉換
MOV A,30H
MOV B,#0C8H ;200
MUL AB
MOV 32H,A ;LOW BIT
MOV 31H,B ;HIGH BIT
MOV 33H,#0FFH ;255
MOV A,32H
MOV R7,#00H
CLR C
LOOP_SUBB:
SUBB A,33H
JC JIE_WEI
INC R7
SJMP LOOP_SUBB
JIE_WEI:
DEC 31H
MOV A,31H
CJNE A,#0FFH,LOOP_SUB
SJMP LOOP_OUT
LOOP_SUB:
INC R7
SJMP LOOP_SUBB
LOOP_OUT:
MOV A,R7
CLR C
SUBB A,#64H
JC MINUS
MOV 40H,#00H ;SAVE BIT 1
SJMP PLUS
MINUS:
MOV A,#64H
CLR C
SUBB A,R7
MOV 40H,#40H ;SAVE BIT 1
PLUS: MOV B,#64H
DIV AB
MOV 41H,A ;SAVE BIT 2
MOV A,B
MOV B,#0AH
DIV AB
MOV 42H,A ;SAVE BIT 3
MOV 43H,B ;SAVE BIT 4
MOV 50H,40H ;DIDP 1 BIT
MOV R6,#00H ;PUT COUNT VALUE
FIND1_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,41H,F(xiàn)IND_NO1
LJMP FIND1
FIND_NO1:
INC R6
SJMP FIND1_IN
FIND1: MOV 51H,R6
MOV R6,#00H
FIND2_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,42H,F(xiàn)IND_NO2
SJMP FIND2
FIND_NO2:
INC R6
SJMP FIND2_IN
FIND2: MOV 52H,R6
MOV R6,#00H
FIND3_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,#43H,F(xiàn)IND_NO3
SJMP FIND3
FIND_NO3:
INC R6
SJMP FIND3_IN
FIND3: MOV 53H,R6
SJMP DISP_START
TAB:DB 3FH,06H,59H,4FH,66H
DB 6DH,7DH,07H,7FH,67H
DISP_START: ;顯示程序
MOV DPTR,#2000H
MOV A,#01H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,50H
MOVX @DPTR,A ;DISP 1 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#02H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,51H
MOVX @DPTR,A ;DISP 2 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#04H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,52H
MOVX @DPTR,A ;DISP 3 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#08H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,53H
MOVX @DPTR,A
ACALL DELAY_1ms
AJMP MAIN ;返回主程序
DELAY_1ms: ;延時1毫秒
MOV R1,#0AH
DEL1:MOV R2,#18H
DEL2:NOP
NOP
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END MAIN
1.3.3 軟件調試
本系統(tǒng)主要有兩個程序模塊,顯示程序和報警程序。借助計算機軟件調試工具,對已編好的系統(tǒng)程序分塊進行反復調試,發(fā)現(xiàn)錯誤及時更正,直到完全無誤為止。
1.4 軟硬件結合性能測試介紹
單片機應用系統(tǒng)的程序存儲器必須寫有調試好的應用程序,系統(tǒng)才能運行。因此,總要有調試過程,甚至反復多次調試。由于程序是連續(xù)高速的運行的,我們無法觀察它的運行情況,也無法加以修改,為了提供診斷、修改等調試手段,必須用到開發(fā)工具。
從用戶源程序的編寫到單片機應用系統(tǒng)正常工作前的全過程,統(tǒng)稱為單片機應用系統(tǒng)的開發(fā),而用已實現(xiàn)這一開發(fā)的工具便稱為開發(fā)裝置或開發(fā)系統(tǒng)。
開發(fā)系統(tǒng)本身也是一個計算機系統(tǒng),在完成上述開發(fā)任務時,可進行仿真:把應用系統(tǒng)自身的單片機拔掉,將開發(fā)系統(tǒng)的仿真插頭插入以取代原單片機,從而實現(xiàn)對用戶樣機軟、硬件的故障診斷和調試。
結語
(1)設計單片機應用系統(tǒng)時,首先必須明確設計任務和設計要求,抓住關鍵問題,作為系統(tǒng)總體方案設計的依據.合理選擇機型和系統(tǒng)構成方案。合理劃分軟硬件的功能,以有利兼顧系統(tǒng)價格比和縮短研制周期。
(2)機型選擇。系統(tǒng)的擴展和配置是硬件設計的主要內容。當機型確定后,必須根據應用對象所需的數(shù)字量及模擬量通道,進行I/O饑餓口的分配,擬定外圍設備接口相應的電路,考慮中斷順序和方法。硬件設計應充分滿足系統(tǒng)功能要求,并留有適當余地,以便調試時修改和二次開發(fā)。
(3)軟件設計常采用模塊化結構,分塊設計和調試,易于尋找故障和修改。根據每個模塊的功能,首先畫出程序流程圖,然后盡可能應用程序設計方法的技巧編制應用程序。
(4)為提高應用系統(tǒng)可靠性,還應進行軟硬件抗干擾設計。
參考文獻
[1]丁元杰.單片微機原理及應用[M].北京:機械工業(yè)出版社,1999.
[2]陳汝全,林水生.實用微機與單片機控制技術[M].成都:電子科技大學出版社,1993.