基于單片機的水溫控制系統(tǒng)資料
基于單片機的水溫控制系統(tǒng)資料,基于,單片機,水溫,控制系統(tǒng),資料
題 目: 基于單片機的水溫控制系統(tǒng)設(shè)計
專 業(yè):
班 級 :
姓 名:
學(xué) 號:
指導(dǎo)老師:
成 績:
目 錄
第1節(jié) 引言…………………………………………………………… 3
1.1 水溫控制系統(tǒng)概述……………………………………………3
1.2 本設(shè)計任務(wù)和主要內(nèi)容………………………………………4
第2節(jié) 系統(tǒng)設(shè)計原理與方案論證 ……………………………………5
2.1 總體框圖………………………………………………………5
2.2 總體方案論證…………………………………………………5
2.3 各部分電路方案論證…………………………………………6
第3節(jié) 硬件電路設(shè)計與計算……………………………………………8
3.1 溫度采樣和轉(zhuǎn)換電路…………………………………………8
3.2 溫度控制電路…………………………………………………9
3.3 單片機控制部分………………………………………………10
3.4 鍵盤及數(shù)字顯示部分…………………………………………10
第4節(jié) 實驗測試………………………………………………………12
4.1 循環(huán)顯示“HELLO888”………………………………………12
4.2 鍵盤及數(shù)字顯示結(jié)合…………………………………………13
4.3 溫度設(shè)定和傳送電路…………………………………………15
4.4 PWM 電壓輸出電路……………………………………………20
第5節(jié) 課程設(shè)計總結(jié)……………………………………………………23
5.1 此次水溫控制系統(tǒng)設(shè)計過程中遇到的問題及其解決方法…23
5.2 設(shè)計體會及對該設(shè)計的建議…………………………………23
參考文獻……………………………………………………………………24
基于單片機的水溫控制系統(tǒng)
第1節(jié) 引言
水溫控制在工業(yè)及日常生活中應(yīng)用廣泛,分類較多,不同水溫控制系統(tǒng)的控制方法也不盡相同,其中以PID控制法最為常見。單片機控制部分采用AT89C51單片機為核心,采用軟件編程,實現(xiàn)用PID算法來控制PWM波的產(chǎn)生,進而控制電爐的加熱來實現(xiàn)溫度控制。然而,單純的PID算法無法適應(yīng)不同的溫度環(huán)境,在某個特定場合運行性能非常良好的溫度控制器,到了新環(huán)境往往無法很好勝任,甚至使系統(tǒng)變得不穩(wěn)定,需要重新改變 PID 調(diào)節(jié)參數(shù)值以取得佳性能。
本文首先用PID算法來控制PWM波的產(chǎn)生,進而控制電爐的加熱來實現(xiàn)溫度控制。然后在模型參考自適應(yīng)算法 MRAC基礎(chǔ)上,用單片機實現(xiàn)了自適應(yīng)控制,彌補了傳統(tǒng) PID控制結(jié)構(gòu)在特定場合下性能下降的不足,設(shè)計了一套實用的溫度測控系統(tǒng),使它在不同時間常數(shù)下均可以達到技術(shù)指標。此外還有效減少了輸出繼電器的開關(guān)次數(shù),適用于環(huán)境參數(shù)經(jīng)常變化的小型水溫控制系統(tǒng)。
1.1 水溫控制系統(tǒng)概述
溫度控制是無論是在工業(yè)生產(chǎn)過程中,還是在日常生活中都起著非常重要的作用,過低的溫度或過高的溫度都會使水資源失去應(yīng)有的作用,從而造成水資源的巨大浪費。特別是在當(dāng)前全球水資源極度缺乏的情況下,我們更應(yīng)該掌握好對水溫的控制,把身邊的水資源好好地利用起來。
在現(xiàn)代冶金、石油、化工及電力生產(chǎn)過程中,溫度是極為重要而又普遍的熱工參數(shù)之一。在環(huán)境惡劣或溫度較高等場合下,為了保證生產(chǎn)過程正常安全地進行,提高產(chǎn)品的質(zhì)量和數(shù)量,以及減輕工人的勞動強度、節(jié)約能源,要求對加熱爐爐溫進行測、顯示、控制,使之達到工藝標準,以單片機為核心設(shè)計的爐溫控制系統(tǒng),可以同時采集多個數(shù)據(jù),并將數(shù)據(jù)通過通訊口送至上位機進行顯示和控制。那么無論是哪種控制,我們都希望水溫控制系統(tǒng)能夠有很高的精確度(起碼是在滿足我們要求的范圍內(nèi)),幫助我們實現(xiàn)我們想要的控制,解決身邊的問題。
在計算機沒有發(fā)明之前,這些控制都是我們難以想象的。而當(dāng)今,隨著電 子行業(yè)的迅猛發(fā)展,計算機技術(shù)和傳感器技術(shù)的不斷改進,而且計算機和傳感器的價格也日益降低,可靠性逐步提高,用信息技術(shù)來實現(xiàn)水溫控制并提高控制的精確度不僅是可以達到的而且是容易實現(xiàn)的。用高新技術(shù)來解決工業(yè)生產(chǎn)問題, 排除生活用水問題實施對水溫的控制已成為我們電子行業(yè)的任務(wù),以此來加強工業(yè)化建設(shè),提高人民的生活水平。
1.2 本設(shè)計任務(wù)和主要內(nèi)容
1.基本要求
一升水由1kW的電爐加熱,要求水溫可以在一定范圍內(nèi)由人工設(shè)定,并能在環(huán)境溫度降低時實現(xiàn)自動調(diào)整,以保持設(shè)定的溫度基本不變。
2.主要性能指標
① 溫度設(shè)定范圍:,最小區(qū)分度為。
② 控制精度:溫度控制的靜態(tài)誤差。
③ 用十進制數(shù)碼顯示實際水溫。
3.擴展功能
① 具有通信能力,可接收其他數(shù)據(jù)設(shè)備發(fā)來的命令,或?qū)⒔Y(jié)果傳送到其他數(shù)據(jù)設(shè)備。
② 采用適當(dāng)?shù)目刂品椒▽崿F(xiàn)當(dāng)設(shè)定溫度或環(huán)境溫度突變時,減小系統(tǒng)的調(diào)節(jié)時間和超調(diào)量。
③ 溫度控制的靜態(tài)誤差。
第2節(jié) 系統(tǒng)設(shè)計原理
2.1水溫控制系統(tǒng)總體框圖
傳感器
電爐
信號放大
功率放大
A / D
鍵盤顯示
鍵盤單片機基本系統(tǒng)
微型打印機
圖2-1 單片機控制系統(tǒng)原理框圖
該水溫控制系統(tǒng)主要由AT89C51單片機控制系統(tǒng)、前向通道(溫度采樣轉(zhuǎn)換電路)、后向通道(溫度控制電路)、鍵盤顯示電路等四部分組成,其總體設(shè)計框圖如上圖所示。
2.2總體方案論證
(一)、方案論證與比較
本題目是設(shè)計制作一個水溫控制系統(tǒng),對象為一升凈水,加熱器為1KW的電爐。 要求能在35℃--95℃范圍內(nèi)設(shè)定控制水溫,并具有較好的快速性和較小的超調(diào),以及十進制數(shù)碼管顯示等功能。
1、總體方案設(shè)計及論證
根據(jù)題目的要求,我們提出了以下的兩種方案:
方案1:此方案是采用傳統(tǒng)的二位模擬控制方法,選用模擬電路,用電位器設(shè)定給定值,采用上下限比較電路將反饋的溫度值與給定的溫度值比較后,決定加熱或者不加熱。由于采用模擬控制方式,系統(tǒng)受環(huán)境的影響大,不能實現(xiàn)復(fù)雜的控制算法使控制精度做得教高,而且不能用數(shù)碼顯示和鍵盤設(shè)定。
方案2:采用單片機AT89C51為核心。采用了溫度傳感器AD590采集溫度變化信號,A/D采樣芯片ADC0804將其轉(zhuǎn)換成數(shù)字信號并通過單片機處理后去控制溫度,使其達到穩(wěn)定。使用單片機具有編程靈活,控制簡單的優(yōu)點,使系統(tǒng)能簡單的實現(xiàn)溫度的控制及顯示,并且通過軟件編程能實現(xiàn)各種控制算法使系統(tǒng)還具有控制精度高的特點。比較上述兩種方案,方案2明顯的改善了方案1的不足及缺點,并具有控制簡單、控制溫度精度高的特點,因此本設(shè)計電路采用方案2。
2.3 各部分電路方案論證
本電路以單片機為基礎(chǔ)核心,系統(tǒng)由前向通道模塊、后向控制模塊、系統(tǒng)主模塊及鍵盤顯示摸塊等四大模塊組成?,F(xiàn)將各部分主要元件及電路做以下的論證:
(1)、溫度采樣部分
方案1:采用熱敏電阻,可滿足35℃--95℃的測量范圍,但熱敏電阻精度、重復(fù)性和可靠性都比較差,對于檢測精度小于1℃的溫度信號是不適用的。
方案2:采用溫度傳感器AD590。:AD590具有體積小、質(zhì)量輕、線形度好、性能穩(wěn)定等優(yōu)點。其測量范圍在-50℃-- +150℃,滿刻度范圍誤差為±0.3℃,當(dāng)電源電壓在5—10V之間,穩(wěn)定度為1﹪時,誤差只有±0.01℃,其各方面特性都滿足此系統(tǒng)的設(shè)計要求。此外AD590是溫度-電流傳感器,對于提高系統(tǒng)抗干擾能力有很大的幫助。
經(jīng)上述比較,方案2明顯優(yōu)于方案1,故選用方案2。
(2)、鍵盤顯示部分
控制與顯示電路是反映電路性能、外觀的最直觀部分,所以此部分電路設(shè)計的好壞直接影響到電路的好壞。
方案1:采用可編程控制器8279與數(shù)碼管及地址譯碼器74LS138組成,可編程/顯示器件8279實現(xiàn)對按鍵的掃描、消除抖動、提供LED的顯示信號,并對LED顯示控制。用8279和鍵盤組成的人機控制平臺,能夠方便的進行控制單片機的輸出。
方案2:采用單片機AT2051與地址譯碼器74LS138組成控制和掃描系統(tǒng),并用2051的串口對主電路的單片機進行通信,這種方案既能很好的控制鍵盤及顯示,又為主單片機大大的減少了程序的復(fù)雜性,而且具有體積小,價格便宜的特點。
對比兩種方案可知,方案1雖然也能很好的實現(xiàn)電路的要求,但考慮到電路設(shè)計的成本和電路整體的性能,我們采用方案2。
(3)、控制電路部分
????方案1:采用8031芯片,其內(nèi)部沒有程序存儲器,需要進行外部擴展,這
給電路增加了復(fù)雜度。
方案2:本方案的CPU模塊采用2051芯片,其內(nèi)部有2KB單元的程序存儲器,不需外部擴展程序存儲器。但由于系統(tǒng)用到較多的I/O口,因此此芯片資源不夠用。
方案3:采用AT89C51單片機,其內(nèi)部有8KB單元的程序存儲器,不需外部擴展程序存儲器,而且它的I/O口也足夠本次設(shè)計的要求。
? 比較這3種方案,綜合考慮單片機的各部分資源,因此此次設(shè)計選用方案3。設(shè)計電路圖如圖2-2?所示:
圖2-2???AT89C51單片機原理圖
第3節(jié) 硬件電路設(shè)計與計算
本電路總體設(shè)計包括四部分:主機控制部分(89C51)、前向通道(溫度采樣和轉(zhuǎn)換電路)、后向通道(溫度控制電路)、鍵盤顯示部分。
3.1 溫度采樣和轉(zhuǎn)換電路
系統(tǒng)的信號采樣和轉(zhuǎn)換電路主要由溫度傳感器AD590、基準電壓7812、運算放大器OP-07及A/D轉(zhuǎn)換電路ADC0804四部分組成。設(shè)計電路圖如圖3-1所示:
圖3-1??溫度采樣和轉(zhuǎn)換電路原理圖
(1)?AD590性能描述
測量范圍在-50℃--+150℃,滿刻度范圍誤差為±0.3℃,當(dāng)電源電壓在5—10V之間,穩(wěn)定度為1﹪時,誤差只有±0.01℃?。AD590為電流型傳感器溫度每變化1℃其電流變化1uA在35℃和95℃時輸出電流分別為308.2uA?和368.2uA。
(2)基準電壓7812提供12V標準電壓,它與運算放大器OP-07和電阻組成信號轉(zhuǎn)換與放大電路,將35℃--95℃的溫度轉(zhuǎn)換為0—5V的電壓信號。
(3)ADC0804性能描述??
ADC0804為8位逐次逼近型A/D轉(zhuǎn)換器,其輸入電壓范圍在0—5v,轉(zhuǎn)換速度為100us,轉(zhuǎn)換精度為0.39﹪,對應(yīng)誤差為0.234℃。
滿足系統(tǒng)的要求。?
(4)電路原理及參數(shù)計算???
溫度采樣電路的基本原理是采用電流型溫度傳感器AD590將溫度的變化量轉(zhuǎn)換成電流量,再通過OP-07將電流量轉(zhuǎn)換成電壓量,通過A/D轉(zhuǎn)換器ADC0804將其轉(zhuǎn)換成數(shù)值量交由單片機處理。圖3-1中三端穩(wěn)壓7812作為基準電壓,由運放虛短虛斷可知運放OP-07的反向輸入端(2腳)的電壓為零伏。當(dāng)輸出電壓為零伏時(即Uo=0v)?,令7812的輸出電壓為=12V,OP-07的2腳處為A點,AD590的轉(zhuǎn)換電流為。列出A點的結(jié)點方程如下:
(1)
由于系統(tǒng)控制的水溫范圍為35℃--95℃,所以當(dāng)輸出電壓為零伏時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點的結(jié)點方程如下:
?? (3)
?
當(dāng)水溫為95℃時AD590的輸出電流為368.2uA。由方程式(3)得
+=83.33k因此取=81k?,? =5k的電位器。
3.2、 溫度控制電路
此部分電路主要由光電耦合器MOC3041和雙向可控硅BTA12組成。采用脈寬調(diào)制輸出控制電爐與電源的接通和斷開比例,以通斷控制調(diào)壓法控制電爐的輸入功率。MOC3041光電耦合器的耐壓值為400v,它的輸出級由過零觸發(fā)的雙向可控硅構(gòu)成,它控制著主電路雙向可控硅的導(dǎo)通和關(guān)閉。100Ω電阻與0.01uF電容組成雙向可控硅保護電路。控制部分電路圖如圖3-2所示:
圖3-2???溫度控制電路原理圖
3.3、 單片機控制部分
???? 此部分是電路的核心部分,系統(tǒng)的控制采用了單片機AT89C51。單片機AT89C51內(nèi)部有8KB單元的程序存儲器及256字節(jié)的數(shù)據(jù)存儲器。因此系統(tǒng)不必擴展外部程序存儲器和數(shù)據(jù)存儲器這樣大大的減少了系統(tǒng)硬件部分。電路原理圖如圖3-3所示:
?圖3-3???單片機控制電路部分原理圖
3.4、 鍵盤及數(shù)字顯示部分
在設(shè)計鍵盤/顯示電路時,我們使用單片機2051作為電路控制的核心,單片機2051具有一個全雙工的串行口采用串口,利用此串行口能夠方便的實現(xiàn)系統(tǒng)的控制和顯示功能。鍵盤/顯示接口電路如圖3-4所示
圖3-4??鍵盤/顯示部分電路
圖3-4中單片機2051的P1口接數(shù)碼管的8只引腳,這樣易于對數(shù)碼管的譯碼,使數(shù)碼管能顯示設(shè)計者所需的各數(shù)值、符號等等。單片機2051的P3.3、P3.4、P3.5接3-8譯碼器74L138,譯碼器的輸出端直接接八個數(shù)碼管的控制端和鍵盤,鍵盤掃描和顯示器掃描同用端口這樣能大大 的減少單片機的I/O,減少硬件的花費。鍵盤的接法的差別直接影響到硬件和軟件的設(shè)計,考慮到單片機2051的端口資源有限,所以我們在設(shè)計中將傳統(tǒng)的4*4的鍵盤接成8*2的形式(如圖3-4),鍵盤的掃描除了和顯示共用的8個端外,另外的兩個端直接和2051的P3.2和P3.7相連。
圖3-5 譯碼顯示部分
如圖3-5的接法已經(jīng)完全用完了單片機的15個I/O口,有效的利用了單片機的資源。
第4節(jié) 實驗測試
4.1循環(huán)顯示“HELLO888”
編一小程序,實現(xiàn)數(shù)碼管八跑馬——循環(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、鍵盤及數(shù)字顯示結(jié)合
編一小程序,實現(xiàn)鍵盤及數(shù)字顯示結(jié)合——按鍵盤1數(shù)碼管顯示1,按鍵盤2數(shù)碼管顯示3,按鍵盤3數(shù)碼管顯示3,按鍵盤4數(shù)碼管顯示4,按鍵盤5數(shù)碼管顯示5,按鍵盤6數(shù)碼管顯示6,按鍵盤7數(shù)碼管顯示7,按鍵盤8數(shù)碼管顯示8,按鍵盤9數(shù)碼管顯示9,按鍵盤10數(shù)碼管顯示A,按鍵盤11數(shù)碼管顯示b,按鍵盤12數(shù)碼管顯示C,按鍵盤13數(shù)碼管顯示d,按鍵盤14數(shù)碼管顯示E,按鍵盤15數(shù)碼管顯示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、溫度設(shè)定和傳送電路
編一小程序,實現(xiàn)溫度設(shè)定和傳送電路——以下是雙機串口通訊主程序流程圖:
圖4-1 雙機串口通訊流程圖
;程序1------方式2兩位設(shè)定就不可的
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
;-----------------------初始設(shè)定
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:;----------- ---設(shè)定鍵,清除(零)鍵
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
;-------------- ----------數(shù)碼管顯示表
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90
4.4、PWM 電壓輸出電路
編一小程序,實現(xiàn)PWM 電壓自動可調(diào)寬度脈沖波輸出電路
圖4-2 自動可調(diào)寬度脈沖波輸出電路
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é) 課程設(shè)計總結(jié)
5.1、此次水溫控制系統(tǒng)設(shè)計過程中遇到的問題及其解決方法
在實現(xiàn)溫度—電壓轉(zhuǎn)換電路過程中,出現(xiàn)當(dāng)溫度為90度時,電壓輸出為1.5V卻無論如何也不能調(diào)到5V的狀況,后經(jīng)檢驗發(fā)現(xiàn)是由于小板原理圖中滑動變阻器R17、R22調(diào)動幅度太小所至,我們將其5K滑變改為20K,此時可以實現(xiàn)調(diào)到5V。
5.2、對該設(shè)計的建議
本次《基于單片機的水溫控制系統(tǒng)設(shè)計》是以AT89C51為核心,采用軟件編程,實現(xiàn)用PID算法來控制PWM波的產(chǎn)生,進而控制電爐的加熱來實現(xiàn)溫度控制。在系統(tǒng)的軟硬件調(diào)試過程中,不斷地有問題出現(xiàn),如OP-07、ADC0804會發(fā)燙,串行通信…,但是在老師和同學(xué)的指導(dǎo)和幫助下,通過電路檢查、原理分析、程序修改等工作,這些問題都一一得到了解決,所以在這次調(diào)試過程中,我們學(xué)到了很多知識,同時也大大地提高了我們的實際動手能力,這對我們以后的系統(tǒng)設(shè)計會有很大的幫助。同時,該系統(tǒng)還存在著一些問題,如溫度顯示精度不高,沒有采用小數(shù)部分;PID算法的參數(shù)不夠精確,這影響水溫達到穩(wěn)定的時間。
參考文獻
[1] 《8051單片機實踐與應(yīng)用》???? 吳金???清華大學(xué)出版社????2002.9
[2] 《全國大學(xué)生電子設(shè)計競賽獲獎作品精選》? 北京理工大學(xué)出版社?2003.3
[3] 《全國大學(xué)生電子設(shè)計競賽獲獎作品匯編》??北京理工大學(xué)出版社?2004.8
[4] 《單片微型機原理、應(yīng)用與實驗》???張友德???復(fù)旦大學(xué)出版社???2003.6
[5] 《電子系統(tǒng)設(shè)計》?? ? 何小艇???浙江大學(xué)出版社 2004.6
[6] 《電路原理圖與電路板設(shè)計教程Protel?99SE》?石宗義?北京希望電子出 版社??2002.6
收藏