基于單片機的水溫控制系統資料
基于單片機的水溫控制系統資料,基于,單片機,水溫,控制系統,資料
題 目: 基于單片機的水溫控制系統設計
專 業(yè):
班 級 :
姓 名:
學 號:
指導老師:
成 績:
目 錄
第1節(jié) 引言…………………………………………………………… 3
1.1 水溫控制系統概述……………………………………………3
1.2 本設計任務和主要內容………………………………………4
第2節(jié) 系統設計原理與方案論證 ……………………………………5
2.1 總體框圖………………………………………………………5
2.2 總體方案論證…………………………………………………5
2.3 各部分電路方案論證…………………………………………6
第3節(jié) 硬件電路設計與計算……………………………………………8
3.1 溫度采樣和轉換電路…………………………………………8
3.2 溫度控制電路…………………………………………………9
3.3 單片機控制部分………………………………………………10
3.4 鍵盤及數字顯示部分…………………………………………10
第4節(jié) 實驗測試………………………………………………………12
4.1 循環(huán)顯示“HELLO888”………………………………………12
4.2 鍵盤及數字顯示結合…………………………………………13
4.3 溫度設定和傳送電路…………………………………………15
4.4 PWM 電壓輸出電路……………………………………………20
第5節(jié) 課程設計總結……………………………………………………23
5.1 此次水溫控制系統設計過程中遇到的問題及其解決方法…23
5.2 設計體會及對該設計的建議…………………………………23
參考文獻……………………………………………………………………24
基于單片機的水溫控制系統
第1節(jié) 引言
水溫控制在工業(yè)及日常生活中應用廣泛,分類較多,不同水溫控制系統的控制方法也不盡相同,其中以PID控制法最為常見。單片機控制部分采用AT89C51單片機為核心,采用軟件編程,實現用PID算法來控制PWM波的產生,進而控制電爐的加熱來實現溫度控制。然而,單純的PID算法無法適應不同的溫度環(huán)境,在某個特定場合運行性能非常良好的溫度控制器,到了新環(huán)境往往無法很好勝任,甚至使系統變得不穩(wěn)定,需要重新改變 PID 調節(jié)參數值以取得佳性能。
本文首先用PID算法來控制PWM波的產生,進而控制電爐的加熱來實現溫度控制。然后在模型參考自適應算法 MRAC基礎上,用單片機實現了自適應控制,彌補了傳統 PID控制結構在特定場合下性能下降的不足,設計了一套實用的溫度測控系統,使它在不同時間常數下均可以達到技術指標。此外還有效減少了輸出繼電器的開關次數,適用于環(huán)境參數經常變化的小型水溫控制系統。
1.1 水溫控制系統概述
溫度控制是無論是在工業(yè)生產過程中,還是在日常生活中都起著非常重要的作用,過低的溫度或過高的溫度都會使水資源失去應有的作用,從而造成水資源的巨大浪費。特別是在當前全球水資源極度缺乏的情況下,我們更應該掌握好對水溫的控制,把身邊的水資源好好地利用起來。
在現代冶金、石油、化工及電力生產過程中,溫度是極為重要而又普遍的熱工參數之一。在環(huán)境惡劣或溫度較高等場合下,為了保證生產過程正常安全地進行,提高產品的質量和數量,以及減輕工人的勞動強度、節(jié)約能源,要求對加熱爐爐溫進行測、顯示、控制,使之達到工藝標準,以單片機為核心設計的爐溫控制系統,可以同時采集多個數據,并將數據通過通訊口送至上位機進行顯示和控制。那么無論是哪種控制,我們都希望水溫控制系統能夠有很高的精確度(起碼是在滿足我們要求的范圍內),幫助我們實現我們想要的控制,解決身邊的問題。
在計算機沒有發(fā)明之前,這些控制都是我們難以想象的。而當今,隨著電 子行業(yè)的迅猛發(fā)展,計算機技術和傳感器技術的不斷改進,而且計算機和傳感器的價格也日益降低,可靠性逐步提高,用信息技術來實現水溫控制并提高控制的精確度不僅是可以達到的而且是容易實現的。用高新技術來解決工業(yè)生產問題, 排除生活用水問題實施對水溫的控制已成為我們電子行業(yè)的任務,以此來加強工業(yè)化建設,提高人民的生活水平。
1.2 本設計任務和主要內容
1.基本要求
一升水由1kW的電爐加熱,要求水溫可以在一定范圍內由人工設定,并能在環(huán)境溫度降低時實現自動調整,以保持設定的溫度基本不變。
2.主要性能指標
① 溫度設定范圍:,最小區(qū)分度為。
② 控制精度:溫度控制的靜態(tài)誤差。
③ 用十進制數碼顯示實際水溫。
3.擴展功能
① 具有通信能力,可接收其他數據設備發(fā)來的命令,或將結果傳送到其他數據設備。
② 采用適當的控制方法實現當設定溫度或環(huán)境溫度突變時,減小系統的調節(jié)時間和超調量。
③ 溫度控制的靜態(tài)誤差。
第2節(jié) 系統設計原理
2.1水溫控制系統總體框圖
傳感器
電爐
信號放大
功率放大
A / D
鍵盤顯示
鍵盤單片機基本系統
微型打印機
圖2-1 單片機控制系統原理框圖
該水溫控制系統主要由AT89C51單片機控制系統、前向通道(溫度采樣轉換電路)、后向通道(溫度控制電路)、鍵盤顯示電路等四部分組成,其總體設計框圖如上圖所示。
2.2總體方案論證
(一)、方案論證與比較
本題目是設計制作一個水溫控制系統,對象為一升凈水,加熱器為1KW的電爐。 要求能在35℃--95℃范圍內設定控制水溫,并具有較好的快速性和較小的超調,以及十進制數碼管顯示等功能。
1、總體方案設計及論證
根據題目的要求,我們提出了以下的兩種方案:
方案1:此方案是采用傳統的二位模擬控制方法,選用模擬電路,用電位器設定給定值,采用上下限比較電路將反饋的溫度值與給定的溫度值比較后,決定加熱或者不加熱。由于采用模擬控制方式,系統受環(huán)境的影響大,不能實現復雜的控制算法使控制精度做得教高,而且不能用數碼顯示和鍵盤設定。
方案2:采用單片機AT89C51為核心。采用了溫度傳感器AD590采集溫度變化信號,A/D采樣芯片ADC0804將其轉換成數字信號并通過單片機處理后去控制溫度,使其達到穩(wěn)定。使用單片機具有編程靈活,控制簡單的優(yōu)點,使系統能簡單的實現溫度的控制及顯示,并且通過軟件編程能實現各種控制算法使系統還具有控制精度高的特點。比較上述兩種方案,方案2明顯的改善了方案1的不足及缺點,并具有控制簡單、控制溫度精度高的特點,因此本設計電路采用方案2。
2.3 各部分電路方案論證
本電路以單片機為基礎核心,系統由前向通道模塊、后向控制模塊、系統主模塊及鍵盤顯示摸塊等四大模塊組成?,F將各部分主要元件及電路做以下的論證:
(1)、溫度采樣部分
方案1:采用熱敏電阻,可滿足35℃--95℃的測量范圍,但熱敏電阻精度、重復性和可靠性都比較差,對于檢測精度小于1℃的溫度信號是不適用的。
方案2:采用溫度傳感器AD590。:AD590具有體積小、質量輕、線形度好、性能穩(wěn)定等優(yōu)點。其測量范圍在-50℃-- +150℃,滿刻度范圍誤差為±0.3℃,當電源電壓在5—10V之間,穩(wěn)定度為1﹪時,誤差只有±0.01℃,其各方面特性都滿足此系統的設計要求。此外AD590是溫度-電流傳感器,對于提高系統抗干擾能力有很大的幫助。
經上述比較,方案2明顯優(yōu)于方案1,故選用方案2。
(2)、鍵盤顯示部分
控制與顯示電路是反映電路性能、外觀的最直觀部分,所以此部分電路設計的好壞直接影響到電路的好壞。
方案1:采用可編程控制器8279與數碼管及地址譯碼器74LS138組成,可編程/顯示器件8279實現對按鍵的掃描、消除抖動、提供LED的顯示信號,并對LED顯示控制。用8279和鍵盤組成的人機控制平臺,能夠方便的進行控制單片機的輸出。
方案2:采用單片機AT2051與地址譯碼器74LS138組成控制和掃描系統,并用2051的串口對主電路的單片機進行通信,這種方案既能很好的控制鍵盤及顯示,又為主單片機大大的減少了程序的復雜性,而且具有體積小,價格便宜的特點。
對比兩種方案可知,方案1雖然也能很好的實現電路的要求,但考慮到電路設計的成本和電路整體的性能,我們采用方案2。
(3)、控制電路部分
????方案1:采用8031芯片,其內部沒有程序存儲器,需要進行外部擴展,這
給電路增加了復雜度。
方案2:本方案的CPU模塊采用2051芯片,其內部有2KB單元的程序存儲器,不需外部擴展程序存儲器。但由于系統用到較多的I/O口,因此此芯片資源不夠用。
方案3:采用AT89C51單片機,其內部有8KB單元的程序存儲器,不需外部擴展程序存儲器,而且它的I/O口也足夠本次設計的要求。
? 比較這3種方案,綜合考慮單片機的各部分資源,因此此次設計選用方案3。設計電路圖如圖2-2?所示:
圖2-2???AT89C51單片機原理圖
第3節(jié) 硬件電路設計與計算
本電路總體設計包括四部分:主機控制部分(89C51)、前向通道(溫度采樣和轉換電路)、后向通道(溫度控制電路)、鍵盤顯示部分。
3.1 溫度采樣和轉換電路
系統的信號采樣和轉換電路主要由溫度傳感器AD590、基準電壓7812、運算放大器OP-07及A/D轉換電路ADC0804四部分組成。設計電路圖如圖3-1所示:
圖3-1??溫度采樣和轉換電路原理圖
(1)?AD590性能描述
測量范圍在-50℃--+150℃,滿刻度范圍誤差為±0.3℃,當電源電壓在5—10V之間,穩(wěn)定度為1﹪時,誤差只有±0.01℃?。AD590為電流型傳感器溫度每變化1℃其電流變化1uA在35℃和95℃時輸出電流分別為308.2uA?和368.2uA。
(2)基準電壓7812提供12V標準電壓,它與運算放大器OP-07和電阻組成信號轉換與放大電路,將35℃--95℃的溫度轉換為0—5V的電壓信號。
(3)ADC0804性能描述??
ADC0804為8位逐次逼近型A/D轉換器,其輸入電壓范圍在0—5v,轉換速度為100us,轉換精度為0.39﹪,對應誤差為0.234℃。
滿足系統的要求。?
(4)電路原理及參數計算???
溫度采樣電路的基本原理是采用電流型溫度傳感器AD590將溫度的變化量轉換成電流量,再通過OP-07將電流量轉換成電壓量,通過A/D轉換器ADC0804將其轉換成數值量交由單片機處理。圖3-1中三端穩(wěn)壓7812作為基準電壓,由運放虛短虛斷可知運放OP-07的反向輸入端(2腳)的電壓為零伏。當輸出電壓為零伏時(即Uo=0v)?,令7812的輸出電壓為=12V,OP-07的2腳處為A點,AD590的轉換電流為。列出A點的結點方程如下:
(1)
由于系統控制的水溫范圍為35℃--95℃,所以當輸出電壓為零伏時AD590的輸出電流為308.2uA,因此為了使Ui的電位為零就必須使電流?等于電流等于308.2uA,?三端穩(wěn)壓7812的輸出電壓為12v所以由方程(1)得?
= ?=38.94k (2)
由(2)取電阻R1=30k?,?R2=20k的電位器。
又由于ADC0804的輸入電壓范圍為0—5v?,為了提高精度所以令水溫為95℃時ADC0804的輸入電壓為5v(即Uo=5v)。此時列出A點的結點方程如下:
?? (3)
?
當水溫為95℃時AD590的輸出電流為368.2uA。由方程式(3)得
+=83.33k因此取=81k?,? =5k的電位器。
3.2、 溫度控制電路
此部分電路主要由光電耦合器MOC3041和雙向可控硅BTA12組成。采用脈寬調制輸出控制電爐與電源的接通和斷開比例,以通斷控制調壓法控制電爐的輸入功率。MOC3041光電耦合器的耐壓值為400v,它的輸出級由過零觸發(fā)的雙向可控硅構成,它控制著主電路雙向可控硅的導通和關閉。100Ω電阻與0.01uF電容組成雙向可控硅保護電路。控制部分電路圖如圖3-2所示:
圖3-2???溫度控制電路原理圖
3.3、 單片機控制部分
???? 此部分是電路的核心部分,系統的控制采用了單片機AT89C51。單片機AT89C51內部有8KB單元的程序存儲器及256字節(jié)的數據存儲器。因此系統不必擴展外部程序存儲器和數據存儲器這樣大大的減少了系統硬件部分。電路原理圖如圖3-3所示:
?圖3-3???單片機控制電路部分原理圖
3.4、 鍵盤及數字顯示部分
在設計鍵盤/顯示電路時,我們使用單片機2051作為電路控制的核心,單片機2051具有一個全雙工的串行口采用串口,利用此串行口能夠方便的實現系統的控制和顯示功能。鍵盤/顯示接口電路如圖3-4所示
圖3-4??鍵盤/顯示部分電路
圖3-4中單片機2051的P1口接數碼管的8只引腳,這樣易于對數碼管的譯碼,使數碼管能顯示設計者所需的各數值、符號等等。單片機2051的P3.3、P3.4、P3.5接3-8譯碼器74L138,譯碼器的輸出端直接接八個數碼管的控制端和鍵盤,鍵盤掃描和顯示器掃描同用端口這樣能大大 的減少單片機的I/O,減少硬件的花費。鍵盤的接法的差別直接影響到硬件和軟件的設計,考慮到單片機2051的端口資源有限,所以我們在設計中將傳統的4*4的鍵盤接成8*2的形式(如圖3-4),鍵盤的掃描除了和顯示共用的8個端外,另外的兩個端直接和2051的P3.2和P3.7相連。
圖3-5 譯碼顯示部分
如圖3-5的接法已經完全用完了單片機的15個I/O口,有效的利用了單片機的資源。
第4節(jié) 實驗測試
4.1循環(huán)顯示“HELLO888”
編一小程序,實現數碼管八跑馬——循環(huán)顯示“HELLO888”。源程序如下:
12
RG 0000H
HL:MOV P1,#89H
MOV P3,#00H
ACALL DELAY
MOV P1,#86H
MOV P3,#08H
ACALL DELAY
MOV P1,#0C7H
MOV P3,#10H
ACALL DELAY
MOV P1,#0C7H
MOV P3,#18H
ACALL DELAY
MOV P1,#0C0H
MOV P3,#20H
ACALL DELAY
MOV P1,#80H
MOV P3,#28H
ACALL DELAY
MOV P1,#80H
MOV P3,#30H
ACALL DELAY
MOV P1,#80H
MOV P3,#38H
ACALL DELAY
LJMP HL
DELAY: MOV R0,#0DFH
D1: MOV R1,#0FFH
DJNZ R1,$
DJNZ R0,D1
RET
4.2、鍵盤及數字顯示結合
編一小程序,實現鍵盤及數字顯示結合——按鍵盤1數碼管顯示1,按鍵盤2數碼管顯示3,按鍵盤3數碼管顯示3,按鍵盤4數碼管顯示4,按鍵盤5數碼管顯示5,按鍵盤6數碼管顯示6,按鍵盤7數碼管顯示7,按鍵盤8數碼管顯示8,按鍵盤9數碼管顯示9,按鍵盤10數碼管顯示A,按鍵盤11數碼管顯示b,按鍵盤12數碼管顯示C,按鍵盤13數碼管顯示d,按鍵盤14數碼管顯示E,按鍵盤15數碼管顯示F。源程序如下所示:
24
ORG 0000H
MOV P1,#8CH
LL:ACALL HH
ACALL L0
ACALL L1
ACALL L2
ACALL L3
ACALL L4
ACALL L5
ACALL L6
ACALL L7
SJMP LL
L0:CLR P3.5
CLR P3.4
CLR P3.3
JNB P3.2,H0
JNB P3.7,E0
RET
H0:JB P3.2,Y0
SJMP H0
Y0:MOV P1,#88H
ACALL HH
SJMP LL
E0:JB P3.7,F0
SJMP E0
F0:MOV P1,#0F9H
ACALL HH
SJMP LL
L1:CLR P3.5
CLR P3.4
SETB P3.3
JNB P3.2,H1
JNB P3.7,E1
RET
H1:JB P3.2,Y1
SJMP H1
Y1:MOV P1,#83H
ACALL HH
LJMP LL
E1:JB P3.7,F1
SJMP E1
F1:MOV P1,#0A4H
ACALL HH
SJMP LL
L2:CLR P3.5
SETB P3.4
CLR P3.3
JNB P3.2,H2
JNB P3.7,E2
RET
H2:JB P3.2,Y2
SJMP H2
Y2:MOV P1,#0C6H
ACALL HH
LJMP LL
E2:JB P3.7,F2
SJMP E2
F2:MOV P1,#0B0H
ACALL HH
LJMP LL
L3:CLR P3.5
SETB P3.4
SETB P3.3
JNB P3.2,H3
JNB P3.7,E3
RET
H3:JB P3.2,Y3
SJMP H3
Y3:MOV P1,#0A1H
ACALL HH
LJMP LL
E3:JB P3.7,F3
SJMP E3
F3:MOV P1,#99H
ACALL HH
LJMP LL
L4:SETB P3.5
CLR P3.4
CLR P3.3
JNB P3.2,H4
JNB P3.7,E4
RET
H4:JB P3.2,Y4
SJMP H4
Y4:MOV P1,#86H
ACALL HH
LJMP LL
E4:JB P3.7,F4
SJMP E4
F4:MOV P1,#92H
ACALL HH
LJMP LL
L5:SETB P3.5
CLR P3.4
SETB P3.3
JNB P3.2,H5
JNB P3.7,E5
RET
H5:JB P3.2,Y5
SJMP H5
Y5:MOV P1,#8EH
ACALL HH
LJMP LL
E5:JB P3.7,F5
SJMP E5
F5:MOV P1,#82H
ACALL HH
LJMP LL
L6:SETB P3.5
SETB P3.4
CLR P3.3
JNB P3.2,H6
JNB P3.7,E6
RET
H6:JB P3.2,Y6
SJMP H6
Y6:MOV P1,#89H
ACALL HH
LJMP LL
E6:JB P3.7,F6
SJMP E6
F6:MOV P1,#0F8H
ACALL HH
LJMP LL
L7:SETB P3.5
SETB P3.4
SETB P3.3
JNB P3.2,H7
JNB P3.7,E7
RET
H7:JB P3.2,Y7
SJMP H7
Y7:MOV P1,#0C7H
ACALL HH
LJMP LL
E7:JB P3.7,F7
SJMP E7
F7:MOV P1,#80H
ACALL HH
LJMP LL
HH:MOV P3,#0FFH
ACALL DELAY
MOV P3,#0F7H
ACALL DELAY
MOV P3,#0EFH
ACALL DELAY
MOV P3,#0E7H
ACALL DELAY
MOV P3,#0DFH
ACALL DELAY
MOV P3,#0D7H
ACALL DELAY
MOV P3,#0CFH
ACALL DELAY
MOV P3,#0C7H
ACALL DELAY
RET
DELAY:MOV R0,#01H
DAl: MOV R1,#9FH
DA2: NOP
NOP
NOP
NOP
DJNZ R1,DA1
DJNZ R0,DA2
RET
END
4.3、溫度設定和傳送電路
編一小程序,實現溫度設定和傳送電路——以下是雙機串口通訊主程序流程圖:
圖4-1 雙機串口通訊流程圖
;程序1------方式2兩位設定就不可的
FLAGA BIT 2AH.0
FLAGB BIT 2AH.1
FLAG0 BIT P3.3
FLAG1 BIT P3.4
FLAG2 BIT P3.5
GUAN1 EQU 30H
GUAN2 EQU 31H
GUAN3 EQU 32H
GUAN4 EQU 33H
GUAN5 EQU 34H
GUAN6 EQU 35H
GUAN7 EQU 36H
GUAN8 EQU 37H
ORG 00H
LJMP star
ORG 23H
LJMP CKT
;-----------------------初始設定
STAR:
MOV SP,#60H
MOV IE,#10010000B
MOV SCON,#10010000B
ANL PCON,#0111111B
MOV TMOD, #20H
MOV TH1, #0F2H
MOV TL1, #0F2H
SETB TR1
MOV GUAN2,#00H
MOV GUAN3,#00H
MOV GUAN6,#00H
MOV GUAN7,#00H
CLR FLAGB
CLR FLAGA
MOV DPTR,#TABLE
;-----------------主要執(zhí)行總程序
ZONGSAO:
LCALL SHOW
ACALL AA
SJMP ZONGSAO
;--- ----掃描按鍵是否按下子程序
AA:
S1:;------------ ------0,5鍵
JNB FLAGB ,S2
CLR FLAG2
CLR FLAG1
CLR FLAG0
JB P3.2 ,NEXT1
ACALL DELAY
JB P3.2 ,NEXT1
JNB P3.2 ,$
JB FLAGA ,WW1
MOV GUAN7,#00H
SETB FLAGA
LJMP NEXT1
WW1:
MOV GUAN6 ,#00H
CLR FLAGB
NEXT1:
JB P3.7 ,ONE1
ACALL DELAY
JB P3.7 ,ONE1
JNB P3.7 ,$
JB FLAGA, MM1
MOV GUAN7,#05H
SETB FLAGA
LJMP ONE1
MM1:
MOV GUAN6, #05H
CLR FLAGB
ONE1: LJMP S2
S2:;---------------- ------1,6鍵
JNB FLAGB, S3
CLR FLAG2
CLR FLAG1
SETB FLAG0
JB P3.2 ,NEXT2
LCALL DELAY
JB P3.2 ,NEXT2
JNB P3.2 ,$
JB FLAGA ,WW2
MOV GUAN7 ,#01H
SETB FLAGA
LJMP NEXT2
WW2:
MOV GUAN6 ,#01H
CLR FLAGB
NEXT2:
JB P3.7 ,ONE2
LCALL DELAY
JB P3.7 ,ONE2
JNB P3.7 ,$
JB FLAGA ,MM2
MOV GUAN7,#06H
SETB FLAGA
LJMP ONE2
MM2:
MOV GUAN6 ,#06H
CLR FLAGB
ONE2: LJMP S3
S3:;------------------- ---2,7鍵
JNB FLAGB ,S4
CLR FLAG2
SETB FLAG1
CLR FLAG0
JB P3.2 ,NEXT3
LCALL DELAY
JB P3.2 ,NEXT3
JNB P3.2 ,$
JB FLAGA ,WW3
MOV GUAN7 ,#02H
SETB FLAGA
LJMP NEXT3
WW3:
MOV GUAN6 ,#02H
CLR FLAGB
NEXT3:
JB P3.7 ,ONE3
LCALL DELAY
JB P3.7 ,ONE3
JNB P3.7 ,$
JB FLAGA ,MM3
MOV GUAN7,#07H
SETB FLAGB
LJMP ONE3
MM3:
MOV GUAN6 ,#07H
CLR FLAGB
ONE3: LJMP S4
S4: ;----------------- 3,8鍵
JNB FLAGB ,S5
CLR FLAG2
SETB FLAG1
SETB FLAG0
JB P3.2 ,NEXT4
LCALL DELAY
JB P3.2 ,NEXT4
JNB P3.2 ,$
JB FLAGA, WW4
MOV GUAN7 ,#03H
SETB FLAGA
LJMP NEXT4
WW4:
MOV GUAN6,#03H
CLR FLAGB
NEXT4:
JB P3.7 ,ONE4
LCALL DELAY
JB P3.7 ,ONE4
JNB P3.7 ,$
JB FLAGA ,MM4
MOV GUAN7,#08H
SETB FLAGA
LJMP ONE4
MM4:
MOV GUAN6 ,#08H
CLR FLAGB
ONE4: LJMP S5
S5:;----------- -----4,9鍵
JNB FLAGB ,S6
SETB FLAG2
CLR FLAG1
CLR FLAG0
JB P3.2 ,NEXT5
LCALL DELAY
JB P3.2, NEXT5
JNB P3.2 ,$
JB FLAGA ,WW5
MOV GUAN7 ,#04H
SETB FLAGA
LJMP NEXT5
WW5:
MOV GUAN6 ,#04H
CLR FLAGB
NEXT5:
JB P3.7, ONE5
LCALL DELAY
JB P3.7 ,ONE5
JNB P3.7 ,$
JB FLAGA ,MM5
MOV GUAN7,#09H
SETB FLAGA
SETB FLAGB
LJMP ONE5
MM5:
MOV GUAN6 ,#09H
CLR FLAGB
ONE5: LJMP S6
S6:;----------- ---設定鍵,清除(零)鍵
SETB FLAG2
CLR FLAG1
SETB FLAG0
JB P3.2 ,NEXT6
LCALL DELAY
JB P3.2,NEXT6
JNB P3.2 ,$
SETB FLAGB
NEXT6:
JB P3.7 ,ONE6
LCALL DELAY
JB P3.7 ,ONE6
JNB P3.7 ,$
MOV GUAN6,#00H
MOV GUAN7,#00H
CLR FLAGA
SETB FLAGB
ONE6: LJMP S7
S7:;------------- -------------發(fā)送鍵
SETB FLAG2
SETB FLAG1
CLR FLAG0
JB P3.2 ,NEXT7
LCALL DELAY
JB P3.2,NEXT7
JNB P3.2 ,$
CLR FLAGB
CLR FLAGA
MOV B,#0AH
MOV A,GUAN6
MUL AB
ADD A,GUAN7
SEND: CLR ES
MOV SBUF,A
JNB TI,$
CLR TI
SETB ES
NEXT7: NOP
RET
;-------------- ------顯示掃描子程序
SHOW:
;-----------guan8
SETB FLAG0
SETB FLAG1
SETB FLAG2
MOV P1,#0CEH
ACALL DELAY2
;---------guan7
CLR FLAG0
SETB FLAG1
SETB FLAG2
MOV A ,GUAN7
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY2
;---------guan6
SETB FLAG0
CLR FLAG1
SETB FLAG2
MOV A ,GUAN6
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY2
;----------------guan5
CLR FLAG0
CLR FLAG1
SETB FLAG2
MOV P1,#0C6H
ACALL DELAY2
;---------------guan4
SETB FLAG0
SETB FLAG1
CLR FLAG2
MOV P1,#0CEH
ACALL DELAY2
;--------guan3
CLR FLAG0
SETB FLAG1
CLR FLAG2
MOV A ,GUAN3
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY2
;---------guan2
SETB FLAG0
CLR FLAG1
CLR FLAG2
MOV A ,GUAN2
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY2
CLR FLAG0;-----------guan1
CLR FLAG1
CLR FLAG2
MOV P1,#0C6H
ACALL DELAY2
RET
;------------ ------------中斷子程序
CKT:
PUSH ACC
PUSH PSW
CLR RI
MOV A,SBUF
; JNB RI,$
MOV B,#10
DIV AB
MOV GUAN2,A
MOV GUAN3,B
POP PSW
POP ACC
RETI
DELAY: ;---- -------消抖延時程序6MS
MOV R0,#3CH
DL2:MOV R1,#7DH
DL1:NOP
NOP
DJNZ R1,DL1
DJNZ R0,DL2
RET
delay2:;--- -------------掃描延時程序
MOV r0,#01h
dl4:MOV r1,#0a0h
dl3:NOP
NOP
DJNZ r1,dl3
DJNZ r0,dl4
RET
;-------------- ----------數碼管顯示表
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90
4.4、PWM 電壓輸出電路
編一小程序,實現PWM 電壓自動可調寬度脈沖波輸出電路
圖4-2 自動可調寬度脈沖波輸出電路
POUT EQU P1.0
OUTBIT EQU 7FH
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP CTC_INT
ORG 0030H
MAIN: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB EA
SETB ET0
WAIT: SJMP WAIT
CTC_INT: PUSH ACC
PUSH PSW
CLR TR0
JNB OUTBIT,OUT0
SETB POUT
CLR C
MOV A,#0FFH
SUBB A,0FFH
MOV TL0,A
MOV A,#0FFH
SUBB A,#0FH
MOV TH0,A
CLR OUTBIT
SJMP CTC_OUT
OUT0: CLR POUT
CLR C
MOV A,#0FFH
SUBB A,#0FFH
MOV TL0,A
MOV A,#0FFH
SUBB A,#1FH
MOV TH0,A
MOV A,TL0
ADD A,#0FFH
MOV TL0,A
MOV A,TH0
ADDC A,#0FH
MOV TH0,A
SETB OUTBIT
CTC_OUT: SETB TR0
POP PSW
POP ACC
RETI
第5節(jié) 課程設計總結
5.1、此次水溫控制系統設計過程中遇到的問題及其解決方法
在實現溫度—電壓轉換電路過程中,出現當溫度為90度時,電壓輸出為1.5V卻無論如何也不能調到5V的狀況,后經檢驗發(fā)現是由于小板原理圖中滑動變阻器R17、R22調動幅度太小所至,我們將其5K滑變改為20K,此時可以實現調到5V。
5.2、對該設計的建議
本次《基于單片機的水溫控制系統設計》是以AT89C51為核心,采用軟件編程,實現用PID算法來控制PWM波的產生,進而控制電爐的加熱來實現溫度控制。在系統的軟硬件調試過程中,不斷地有問題出現,如OP-07、ADC0804會發(fā)燙,串行通信…,但是在老師和同學的指導和幫助下,通過電路檢查、原理分析、程序修改等工作,這些問題都一一得到了解決,所以在這次調試過程中,我們學到了很多知識,同時也大大地提高了我們的實際動手能力,這對我們以后的系統設計會有很大的幫助。同時,該系統還存在著一些問題,如溫度顯示精度不高,沒有采用小數部分;PID算法的參數不夠精確,這影響水溫達到穩(wěn)定的時間。
參考文獻
[1] 《8051單片機實踐與應用》???? 吳金???清華大學出版社????2002.9
[2] 《全國大學生電子設計競賽獲獎作品精選》? 北京理工大學出版社?2003.3
[3] 《全國大學生電子設計競賽獲獎作品匯編》??北京理工大學出版社?2004.8
[4] 《單片微型機原理、應用與實驗》???張友德???復旦大學出版社???2003.6
[5] 《電子系統設計》?? ? 何小艇???浙江大學出版社 2004.6
[6] 《電路原理圖與電路板設計教程Protel?99SE》?石宗義?北京希望電子出 版社??2002.6
收藏