基于單片機(jī)的水溫控制系統(tǒng)資料
基于單片機(jī)的水溫控制系統(tǒng)資料,基于,單片機(jī),水溫,控制系統(tǒng),資料
題 目: 基于單片機(jī)的水溫控制系統(tǒng)設(shè)計(jì) 專 業(yè): 班 級(jí) : 姓 名: 學(xué) 號(hào): 指導(dǎo)老師: 成 績(jī): 目 錄第1節(jié) 引言 31.1 水溫控制系統(tǒng)概述31.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容4 第2節(jié) 系統(tǒng)設(shè)計(jì)原理與方案論證 52.1 總體框圖52.2 總體方案論證52.3 各部分電路方案論證6第3節(jié) 硬件電路設(shè)計(jì)與計(jì)算83.1 溫度采樣和轉(zhuǎn)換電路83.2 溫度控制電路93.3 單片機(jī)控制部分103.4 鍵盤及數(shù)字顯示部分10第4節(jié) 實(shí)驗(yàn)測(cè)試124.1 循環(huán)顯示“HELLO888”124.2 鍵盤及數(shù)字顯示結(jié)合134.3 溫度設(shè)定和傳送電路154.4 PWM 電壓輸出電路20第5節(jié) 課程設(shè)計(jì)總結(jié)235.1 此次水溫控制系統(tǒng)設(shè)計(jì)過(guò)程中遇到的問(wèn)題及其解決方法235.2 設(shè)計(jì)體會(huì)及對(duì)該設(shè)計(jì)的建議23參考文獻(xiàn)24基于單片機(jī)的水溫控制系統(tǒng) 第1節(jié) 引言水溫控制在工業(yè)及日常生活中應(yīng)用廣泛,分類較多,不同水溫控制系統(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)。此外還有效減少了輸出繼電器的開關(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)能夠有很高的精確度(起碼是在滿足我們要求的范圍內(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鍵盤顯示鍵盤單片機(jī)基本系統(tǒng)微型打印機(jī)圖2-1 單片機(jī)控制系統(tǒng)原理框圖該水溫控制系統(tǒng)主要由AT89C51單片機(jī)控制系統(tǒng)、前向通道(溫度采樣轉(zhuǎ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ù)碼顯示和鍵盤設(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)主模塊及鍵盤顯示摸塊等四大模塊組成?,F(xiàn)將各部分主要元件及電路做以下的論證:(1)、溫度采樣部分 方案1:采用熱敏電阻,可滿足35-95的測(cè)量范圍,但熱敏電阻精度、重復(fù)性和可靠性都比較差,對(duì)于檢測(cè)精度小于1的溫度信號(hào)是不適用的。 方案2:采用溫度傳感器AD590。:AD590具有體積小、質(zhì)量輕、線形度好、性能穩(wěn)定等優(yōu)點(diǎn)。其測(cè)量范圍在-50- +150,滿刻度范圍誤差為0.3,當(dāng)電源電壓在510V之間,穩(wěn)定度為1時(shí),誤差只有0.01,其各方面特性都滿足此系統(tǒng)的設(shè)計(jì)要求。此外AD590是溫度-電流傳感器,對(duì)于提高系統(tǒng)抗干擾能力有很大的幫助。 經(jīng)上述比較,方案2明顯優(yōu)于方案1,故選用方案2。(2)、鍵盤顯示部分 控制與顯示電路是反映電路性能、外觀的最直觀部分,所以此部分電路設(shè)計(jì)的好壞直接影響到電路的好壞。 方案1:采用可編程控制器8279與數(shù)碼管及地址譯碼器74LS138組成,可編程/顯示器件8279實(shí)現(xiàn)對(duì)按鍵的掃描、消除抖動(dòng)、提供LED的顯示信號(hào),并對(duì)LED顯示控制。用8279和鍵盤組成的人機(jī)控制平臺(tái),能夠方便的進(jìn)行控制單片機(jī)的輸出。方案2:采用單片機(jī)AT2051與地址譯碼器74LS138組成控制和掃描系統(tǒng),并用2051的串口對(duì)主電路的單片機(jī)進(jì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-2AT89C51單片機(jī)原理圖第3節(jié) 硬件電路設(shè)計(jì)與計(jì)算本電路總體設(shè)計(jì)包括四部分:主機(jī)控制部分(89C51)、前向通道(溫度采樣和轉(zhuǎ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,滿刻度范圍誤差為0.3,當(dāng)電源電壓在510V之間,穩(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)換為05V的電壓信號(hào)。(3)ADC0804性能描述ADC0804為8位逐次逼近型A/D轉(zhuǎn)換器,其輸入電壓范圍在05v,轉(zhuǎn)換速度為100us,轉(zhuǎn)換精度為0.39,對(duì)應(yīng)誤差為0.234。滿足系統(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的輸入電壓范圍為05v,為了提高精度所以令水溫為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)制輸出控制電爐與電源的接通和斷開比例,以通斷控制調(diào)壓法控制電爐的輸入功率。MOC3041光電耦合器的耐壓值為400v,它的輸出級(jí)由過(guò)零觸發(fā)的雙向可控硅構(gòu)成,它控制著主電路雙向可控硅的導(dǎo)通和關(guān)閉。100電阻與0.01uF電容組成雙向可控硅保護(hù)電路??刂撇糠蛛娐穲D如圖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、 鍵盤及數(shù)字顯示部分 在設(shè)計(jì)鍵盤/顯示電路時(shí),我們使用單片機(jī)2051作為電路控制的核心,單片機(jī)2051具有一個(gè)全雙工的串行口采用串口,利用此串行口能夠方便的實(shí)現(xiàn)系統(tǒng)的控制和顯示功能。鍵盤/顯示接口電路如圖3-4所示圖3-4鍵盤/顯示部分電路 圖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ù)碼管的控制端和鍵盤,鍵盤掃描和顯示器掃描同用端口這樣能大大 的減少單片機(jī)的I/O,減少硬件的花費(fèi)。鍵盤的接法的差別直接影響到硬件和軟件的設(shè)計(jì),考慮到單片機(jī)2051的端口資源有限,所以我們?cè)谠O(shè)計(jì)中將傳統(tǒng)的4*4的鍵盤接成8*2的形式(如圖3-4),鍵盤的掃描除了和顯示共用的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”。源程序如下:12RG 0000HHL:MOV P1,#89HMOV P3,#00HACALL DELAYMOV P1,#86HMOV P3,#08HACALL DELAYMOV P1,#0C7HMOV P3,#10HACALL DELAYMOV P1,#0C7HMOV P3,#18HACALL DELAYMOV P1,#0C0HMOV P3,#20HACALL DELAYMOV P1,#80HMOV P3,#28HACALL DELAYMOV P1,#80HMOV P3,#30HACALL DELAYMOV P1,#80HMOV P3,#38HACALL DELAYLJMP HLDELAY: MOV R0,#0DFHD1: MOV R1,#0FFHDJNZ R1,$DJNZ R0,D1RET4.2、鍵盤及數(shù)字顯示結(jié)合編一小程序,實(shí)現(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。源程序如下所示:24ORG 0000HMOV P1,#8CHLL:ACALL HHACALL L0ACALL L1ACALL L2ACALL L3ACALL L4ACALL L5ACALL L6ACALL L7SJMP LLL0:CLR P3.5CLR P3.4CLR P3.3JNB P3.2,H0JNB P3.7,E0RETH0:JB P3.2,Y0SJMP H0Y0:MOV P1,#88HACALL HHSJMP LLE0:JB P3.7,F0SJMP E0F0:MOV P1,#0F9HACALL HHSJMP LLL1:CLR P3.5CLR P3.4SETB P3.3JNB P3.2,H1JNB P3.7,E1RETH1:JB P3.2,Y1SJMP H1Y1:MOV P1,#83HACALL HHLJMP LLE1:JB P3.7,F1SJMP E1F1:MOV P1,#0A4HACALL HHSJMP LLL2:CLR P3.5SETB P3.4CLR P3.3JNB P3.2,H2JNB P3.7,E2RETH2:JB P3.2,Y2SJMP H2Y2:MOV P1,#0C6HACALL HHLJMP LLE2:JB P3.7,F2SJMP E2F2:MOV P1,#0B0HACALL HHLJMP LLL3:CLR P3.5SETB P3.4SETB P3.3JNB P3.2,H3JNB P3.7,E3RETH3:JB P3.2,Y3SJMP H3Y3:MOV P1,#0A1HACALL HHLJMP LLE3:JB P3.7,F3SJMP E3F3:MOV P1,#99HACALL HHLJMP LLL4:SETB P3.5CLR P3.4CLR P3.3JNB P3.2,H4JNB P3.7,E4RETH4:JB P3.2,Y4SJMP H4Y4:MOV P1,#86HACALL HHLJMP LLE4:JB P3.7,F4SJMP E4F4:MOV P1,#92HACALL HHLJMP LLL5:SETB P3.5CLR P3.4SETB P3.3JNB P3.2,H5JNB P3.7,E5RETH5:JB P3.2,Y5SJMP H5Y5:MOV P1,#8EHACALL HHLJMP LLE5:JB P3.7,F5SJMP E5F5:MOV P1,#82HACALL HHLJMP LLL6:SETB P3.5SETB P3.4CLR P3.3JNB P3.2,H6JNB P3.7,E6RETH6:JB P3.2,Y6SJMP H6Y6:MOV P1,#89HACALL HHLJMP LLE6:JB P3.7,F6SJMP E6F6:MOV P1,#0F8HACALL HHLJMP LLL7:SETB P3.5SETB P3.4SETB P3.3JNB P3.2,H7JNB P3.7,E7RETH7:JB P3.2,Y7SJMP H7Y7:MOV P1,#0C7HACALL HHLJMP LLE7:JB P3.7,F7SJMP E7F7:MOV P1,#80HACALL HHLJMP LLHH:MOV P3,#0FFHACALL DELAYMOV P3,#0F7HACALL DELAYMOV P3,#0EFHACALL DELAYMOV P3,#0E7HACALL DELAYMOV P3,#0DFHACALL DELAYMOV P3,#0D7HACALL DELAYMOV P3,#0CFHACALL DELAYMOV P3,#0C7HACALL DELAYRETDELAY:MOV R0,#01HDAl: MOV R1,#9FHDA2: NOPNOPNOPNOPDJNZ R1,DA1DJNZ R0,DA2RETEND4.3、溫度設(shè)定和傳送電路編一小程序,實(shí)現(xiàn)溫度設(shè)定和傳送電路以下是雙機(jī)串口通訊主程序流程圖:圖4-1 雙機(jī)串口通訊流程圖;程序1-方式2兩位設(shè)定就不可的FLAGA BIT 2AH.0FLAGB BIT 2AH.1FLAG0 BIT P3.3FLAG1 BIT P3.4FLAG2 BIT P3.5GUAN1 EQU 30HGUAN2 EQU 31HGUAN3 EQU 32HGUAN4 EQU 33HGUAN5 EQU 34HGUAN6 EQU 35HGUAN7 EQU 36HGUAN8 EQU 37HORG 00HLJMP starORG 23HLJMP 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 SHOWACALL AASJMP 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 S2S2:;- -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 S3S3:;- -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 S4S4: ;- 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 S5S5:;- -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 S6S6:;- -設(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 S7S7:;- -發(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,GUAN7SEND: CLR ES MOV SBUF,A JNB TI,$ CLR TI SETB ESNEXT7: 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 DELAY2RET;- -中斷子程序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 RETIDELAY: ;- -消抖延時(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,904.4、PWM 電壓輸出電路編一小程序,實(shí)現(xiàn)PWM 電壓自動(dòng)可調(diào)寬度脈沖波輸出電路圖4-2 自動(dòng)可調(diào)寬度脈沖波輸出電路POUT EQU P1.0OUTBIT EQU 7FH ORG 0000H AJMP MAIN ORG 000BH AJMP CTC_INT ORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 SETB EA SETB ET0WAIT: SJMP WAITCTC_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_OUTOUT0: 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 OUTBITCTC_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.92 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品精選 北京理工大學(xué)出版社2003.33 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品匯編北京理工大學(xué)出版社2004.84 單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)張友德復(fù)旦大學(xué)出版社2003.65 電子系統(tǒng)設(shè)計(jì) 何小艇浙江大學(xué)出版社 2004.66 電路原理圖與電路板設(shè)計(jì)教程Protel99SE石宗義北京希望電子出 版社2002.6
收藏