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