版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE19PAGE61第一章緒論溫度控制,在工業(yè)自動(dòng)化控制中占有非常重要的地位。單片機(jī)系統(tǒng)的開(kāi)發(fā)應(yīng)用給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來(lái)了一次新的技術(shù)革命,自動(dòng)化、智能化均離不開(kāi)單片機(jī)的應(yīng)用。將單片機(jī)控制方法運(yùn)用到溫度控制系統(tǒng)中,可以克服溫度控制系統(tǒng)中存在的嚴(yán)重滯后現(xiàn)象,同時(shí)在提高采樣頻率的基礎(chǔ)上可以很大程度的提高控制效果和控制精度?,F(xiàn)代自動(dòng)控制越來(lái)越朝著智能化發(fā)展,在很多自動(dòng)控制系統(tǒng)中都用到了工控機(jī),小型機(jī)、甚至是巨型機(jī)處理機(jī)等,當(dāng)然這些處理機(jī)有一個(gè)很大的特點(diǎn),那就是很高的運(yùn)行速度,很大的內(nèi)存,大量的數(shù)據(jù)存儲(chǔ)器。但隨之而來(lái)的是巨額的成本。在很多的小型系統(tǒng)中,處理機(jī)的成本占系統(tǒng)成本的比例高達(dá)20%,而對(duì)于這些小型的系統(tǒng)來(lái)說(shuō),配置一個(gè)如此高速的處理機(jī)沒(méi)有任何必要,因?yàn)檫@些小系統(tǒng)追求經(jīng)濟(jì)效益,而不是最在乎系統(tǒng)的快速性,所以用成本低廉的單片機(jī)控制小型的,而又不是很復(fù)雜,不需要大量復(fù)雜運(yùn)算的系統(tǒng)中是非常適合的。溫度控制,在工業(yè)自動(dòng)化控制中占有非常重要的地位,如在鋼鐵冶煉過(guò)程中要對(duì)出爐的鋼鐵進(jìn)行熱處理,才能達(dá)到性能指標(biāo),塑料的定型過(guò)程中也要保持一定的溫度。隨著科學(xué)技術(shù)的迅猛發(fā)展,各個(gè)領(lǐng)域?qū)ψ詣?dòng)控制系統(tǒng)控制精度、響應(yīng)速度、系統(tǒng)穩(wěn)定性與自適應(yīng)能力的要求越來(lái)越高,被控對(duì)象或過(guò)程的非線(xiàn)性、時(shí)變性、多參數(shù)點(diǎn)的強(qiáng)烈耦合、較大的隨機(jī)擾動(dòng)、各種不確定性以及現(xiàn)場(chǎng)測(cè)試手段不完善等,使難以按數(shù)學(xué)方法建立被控對(duì)象的精確模型的情況。隨著電子技術(shù)以及應(yīng)用需求的發(fā)展,單片機(jī)技術(shù)得到了迅速的發(fā)展,在高集成度,高速度,低功耗以及高性能方面取得了很大的進(jìn)展。伴隨著科學(xué)技術(shù)的發(fā)展,電子技術(shù)有了更高的飛躍,我們現(xiàn)在完全可以運(yùn)用單片機(jī)和電子溫度傳感器對(duì)某處進(jìn)行溫度檢測(cè),而且我們可以很容易地做到多點(diǎn)的溫度檢測(cè),如果對(duì)此原理圖稍加改進(jìn),我們還可以進(jìn)行不同地點(diǎn)的實(shí)時(shí)溫度檢測(cè)和控制。1.1設(shè)計(jì)指標(biāo)設(shè)計(jì)一個(gè)溫度控制系統(tǒng)具體化技術(shù)指標(biāo)如下。1.被控對(duì)象可以是電爐或燃燒爐,溫度控制在0~100℃,誤差為±0.52.恒溫控制;3.LED實(shí)時(shí)顯示系統(tǒng)溫度,用鍵盤(pán)輸入溫度;1.2本文的工作詳細(xì)分析課題任務(wù),設(shè)計(jì)了電源電路,鍵盤(pán)電路,單片機(jī)系統(tǒng),顯示電路,執(zhí)行器電路,報(bào)警電路,復(fù)位電路,時(shí)鐘電路,A/D轉(zhuǎn)換電路等系統(tǒng)。然后根據(jù)課題任務(wù)的要求設(shè)計(jì)出實(shí)現(xiàn)控制任務(wù)的硬件原理圖和軟件,并進(jìn)行訪(fǎng)真調(diào)試。
第二章設(shè)計(jì)思想實(shí)現(xiàn)溫度控制的方法有多種,可以用工控機(jī)作為控制器,用熱電阻測(cè)量溫度;也可以用單片機(jī)作為控制器,用熱電偶進(jìn)行溫度測(cè)量。當(dāng)然每一種方案都有其各自的優(yōu)點(diǎn)。本章詳細(xì)列舉、說(shuō)明了基于89C2051單片機(jī)的溫度控制的方案、并畫(huà)出了其原理方框圖,對(duì)方案的優(yōu)缺點(diǎn)進(jìn)行了分析。2.1設(shè)計(jì)思想方案(1)硬件組成:?jiǎn)纹瑱C(jī)、A/D轉(zhuǎn)換器、LED顯示器、集成的熱電偶溫度變送器、固態(tài)繼電器、大功率發(fā)熱器。(2)工作原理:由集成的熱電偶變送器對(duì)系統(tǒng)溫度進(jìn)行檢測(cè),并完成信號(hào)標(biāo)準(zhǔn)化、變送功能。單片機(jī)執(zhí)行控制功能、由固態(tài)繼電器控制大功率發(fā)熱器電源的導(dǎo)通與斷開(kāi),從而達(dá)到控制溫度的目的。TL255189C20TL255189C2051固態(tài)繼電器LED顯示DDZ—Ⅲ熱電偶溫度變送器鍵盤(pán)電爐溫度圖2-1方案的原理框圖2.2論證分析最終方案論述:很顯然,方案較其它相比無(wú)論在經(jīng)濟(jì)上和實(shí)現(xiàn)容易程度上都要好。方案在實(shí)行控制的時(shí)候不像其它采用D/A轉(zhuǎn)換后再控制調(diào)節(jié)閥的方法,而是直接外接一個(gè)固態(tài)繼電器,通過(guò)內(nèi)部改變定時(shí)器的中斷時(shí)間來(lái)調(diào)節(jié)一個(gè)周期內(nèi)電子開(kāi)關(guān)的導(dǎo)通和斷開(kāi)時(shí)間。這樣既節(jié)省了材料也可以很大程度上減少硬件電路的結(jié)構(gòu)。綜上所述方案有如下的特點(diǎn):(1)在完成所要求的任務(wù)的基礎(chǔ)之上還有著結(jié)構(gòu)簡(jiǎn)單、明了的特點(diǎn),很容易實(shí)現(xiàn),而且在一定的程度上節(jié)約成本。(2)由于采用了離線(xiàn)的方法,很大程度上的減少了編程的麻煩,實(shí)現(xiàn)起來(lái)較容易。(3)采用了無(wú)污染能源,保護(hù)環(huán)境。同時(shí)也省去了為建造燃料供應(yīng)子系統(tǒng)的費(fèi)用,節(jié)約了成本。采用了模擬的PWM變換,和固態(tài)繼電器。可以將采樣頻率提高到很多的水平,使控制結(jié)果更準(zhǔn)確,實(shí)時(shí)性、控制效果更好。
第三章系統(tǒng)設(shè)計(jì)整個(gè)系統(tǒng)由軟件和硬件兩部分組成。本章詳細(xì)介紹了系統(tǒng)的硬件和軟件設(shè)計(jì),并對(duì)硬件和軟件的每一個(gè)部分進(jìn)行了分析,在后半部分還對(duì)系統(tǒng)模型進(jìn)行了訪(fǎng)真與程序調(diào)試。硬件和軟件的每一個(gè)壞節(jié)都是深思熟慮而成,各自完成相應(yīng)的功能并組成一個(gè)統(tǒng)一的整體。3.1硬件設(shè)計(jì)系統(tǒng)硬件由電源電路,溫度檢測(cè)變送電路、模數(shù)接口轉(zhuǎn)換電路、單片機(jī)系統(tǒng)和人機(jī)接口等部分組成。系統(tǒng)電源為整個(gè)系統(tǒng)提供電能;溫度檢測(cè)變送電路將檢測(cè)到的溫度信號(hào)轉(zhuǎn)換成標(biāo)準(zhǔn)的電壓信號(hào)輸入到模數(shù)接口轉(zhuǎn)換電路;模數(shù)接口轉(zhuǎn)換電路輸出的數(shù)字信號(hào)進(jìn)入單片機(jī)系統(tǒng);單片機(jī)系統(tǒng)根據(jù)輸入的數(shù)字信號(hào)以模糊控制算法為基礎(chǔ)求出控制值,控制執(zhí)行器的運(yùn)行及溫度的顯示。原理框圖見(jiàn)圖2-1。3.1由于整個(gè)系統(tǒng)都是用單片機(jī)和各類(lèi)芯片及電阻、電容組成的,其工作電壓為+5V,不需要負(fù)電壓,可采用三端固定正電壓集成穩(wěn)壓器7805系列的芯片[6]。其輸出電壓5V,按輸出電流不同可分為78M05、78L05,輸出電流分別為0.5A和1.0A,轉(zhuǎn)換成功率分別為2.5W和5W其主要電路如附圖中的電源電路圖所示。其中輸入電壓為交流220V,經(jīng)過(guò)變壓器其輸出為9.5V,再進(jìn)行整流。整流可通過(guò)四個(gè)二極管進(jìn)行全波整流,也可以利用集成整流堆來(lái)進(jìn)行(同原理)。后面接電容C1、C2為濾波電容進(jìn)行濾波,注意電解電容應(yīng)該要有一定裕量,否則不能起到很好的濾波效果。本電路中使用的電容大小為470uf,耐壓為25伏。78L05的輸出級(jí)接入兩個(gè)濾波電容,用于減小因?yàn)殡娫床▌?dòng)對(duì)系統(tǒng)造成的影響和濾波。其不需要采用大容量的電解電容器,容量大小為100uf耐壓為25伏,再接入0.1μF的電容器,便可減少因?yàn)殡娫床▌?dòng)的影響和濾去紋波,很好地改善負(fù)載的瞬態(tài)響應(yīng)。然而,隨之產(chǎn)生一個(gè)弊端,即一旦78M05的輸入出現(xiàn)短路時(shí),輸出端大電容上存儲(chǔ)的電荷,將通過(guò)集成穩(wěn)壓器內(nèi)部放電,可能會(huì)造成內(nèi)部電路的損壞,故在其間跨接一個(gè)二極管,為放電提供放泄通路,對(duì)集成穩(wěn)壓器起到了分流保護(hù)作用。3.1.2溫度信號(hào)的檢測(cè)變送包含兩個(gè)方面,一是檢測(cè)環(huán)節(jié),另一個(gè)是變送環(huán)節(jié)。檢測(cè)環(huán)節(jié)至關(guān)重要,檢測(cè)元件的選型關(guān)系到檢測(cè)的精度和變送環(huán)節(jié)中信號(hào)變送的容易程度。在溫度的檢測(cè)過(guò)程中一般用熱電阻和熱電偶完成,熱電阻一般用在檢測(cè)精度要求不是很高的地方,而熱電偶則在靈敏度上比熱電偶更好,檢測(cè)精度能比熱電阻有一個(gè)數(shù)位的差異檢測(cè)與變送設(shè)備主要根據(jù)被檢測(cè)參數(shù)的性質(zhì)與系統(tǒng)設(shè)計(jì)的總體考慮來(lái)決定。被檢測(cè)參數(shù)性質(zhì)的不同,準(zhǔn)確度要求、響應(yīng)速度要求的不同以及對(duì)控制性能要求的不同都影響檢測(cè)、變送器的選擇,要從工藝的合理性、經(jīng)濟(jì)性加以綜合考慮。應(yīng)遵循以下原則:1.可能選擇測(cè)量誤差小的測(cè)量元件。盡可能選擇快速響應(yīng)的測(cè)量元件與變送設(shè)備。對(duì)測(cè)量信號(hào)作必要的處理。a測(cè)量信號(hào)校正。b測(cè)量信號(hào)噪聲(擾動(dòng))的抑制。對(duì)測(cè)量信號(hào)進(jìn)行曲線(xiàn)線(xiàn)性化處理。溫度是工業(yè)生產(chǎn)過(guò)程中最常見(jiàn)、最基本的參數(shù)之一。所以,溫度的檢測(cè)與控制是自動(dòng)控制工程的重要任務(wù)之一。測(cè)量溫度的方法有兩種,一種是接觸式、另一種是非接觸式。接觸式測(cè)量的主要特點(diǎn)是:方法簡(jiǎn)單、可靠,測(cè)量精度高。但是由于測(cè)溫元件要與被測(cè)介質(zhì)接觸進(jìn)行熱交換,才能達(dá)到平衡,因而產(chǎn)生了滯后現(xiàn)象。同時(shí)測(cè)量體可能與被測(cè)介質(zhì)產(chǎn)生化學(xué)。此外測(cè)量體還受到耐溫材料的限制,不能應(yīng)用于很高溫度的測(cè)量。非接觸式測(cè)溫是通過(guò)接收被測(cè)介質(zhì)發(fā)出的輻射熱來(lái)判斷的。其主要特點(diǎn)是:測(cè)溫原則上不愛(ài)限制;速度較快,可以對(duì)運(yùn)動(dòng)休進(jìn)行測(cè)量。但是它受到物體的輻射率、距離、煙塵和水汽等因素影響,測(cè)溫誤差較大。由于本系統(tǒng)中測(cè)量的對(duì)象為電爐,測(cè)量溫度在0~100℃目前工業(yè)生產(chǎn)過(guò)程中常用的接觸式溫度測(cè)溫原理、與使用場(chǎng)合如表3-1:表3-1各類(lèi)傳感元件的特點(diǎn)和使用場(chǎng)合表3-1各類(lèi)傳感元件的特點(diǎn)和使用場(chǎng)合測(cè)溫原理溫度計(jì)名稱(chēng)測(cè)溫范圍℃主要特點(diǎn)體積變化體積變化固體熱膨脹雙金屬溫度計(jì)--200~700結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜,適用于就上測(cè)量,傳送距離不很遠(yuǎn)氣體熱膨脹玻璃液體溫度計(jì)液體熱膨脹壓力式溫度計(jì)-200~600電阻變化電阻變化利用尸體或半導(dǎo)體的電阻值隨溫度變化的性質(zhì)鉑、銅、鎳、銠、鐵熱敏電阻-270~900-270~900準(zhǔn)確度高,能遠(yuǎn)傳,適用于低、中溫測(cè)量鍺、碳、金屬氧化物熱敏電阻利用金屬的熱電效應(yīng)熱電效應(yīng)利用金屬的熱電效應(yīng)熱電效應(yīng)普通金屬熱電阻-200~1800-200~1800測(cè)量范圍廣,精度高,能遠(yuǎn)傳,適用于中、高溫測(cè)量貴重金屬熱電阻難熔金屬熱電阻非金屬熱電阻從表中所列的各種溫度測(cè)量?jī)x表中,機(jī)械式大多用于就地指示;輻射式的精度較差,只有電的測(cè)溫儀表精度較高,信號(hào)又便于傳送。所以熱電偶和熱敏電阻溫度計(jì)在工業(yè)生產(chǎn)和科學(xué)研究領(lǐng)域中得到了廣泛地應(yīng)用。熱電偶溫度計(jì)在工業(yè)生產(chǎn)過(guò)程中極為廣泛。它具有測(cè)溫精度高,在小范圍內(nèi)熱電動(dòng)勢(shì)與溫度基本呈單值、線(xiàn)性關(guān)系,穩(wěn)定性和復(fù)現(xiàn)性較好,測(cè)溫范圍寬,響應(yīng)時(shí)間較快等特點(diǎn)。其使用時(shí)一定要注意冷端溫度補(bǔ)償,在一般情況下采用補(bǔ)償電橋的方法較多。其具體實(shí)現(xiàn)過(guò)程見(jiàn)下面的分析過(guò)程。熱電阻溫度計(jì)是利用導(dǎo)體或半導(dǎo)體的電阻值隨溫度而變化的性質(zhì)來(lái)測(cè)量溫度的。常用的有鉑電阻、銅電阻、半導(dǎo)體熱敏電阻等,但與熱電偶相比較,在精度上,熱電偶精度比熱電阻高。變送器在數(shù)據(jù)采集過(guò)程中擔(dān)任了把傳感器檢測(cè)到的信號(hào)變成統(tǒng)一標(biāo)準(zhǔn)信號(hào)(DC4~20mA或DC1~5V),從而使處理器能夠識(shí)別數(shù)據(jù)的級(jí)別,便于在自運(yùn)控制過(guò)程中進(jìn)行運(yùn)算和做出相應(yīng)的處理決策。DDZ-Ш熱電偶溫度變送器可以把溫度轉(zhuǎn)換成統(tǒng)一的標(biāo)準(zhǔn)信號(hào)(DC4~20mA或DC1~5V),其輸出送顯示儀表或調(diào)節(jié)器,調(diào)節(jié)器實(shí)現(xiàn)對(duì)溫度的顯示或自動(dòng)控制。DDZ-Ш熱電偶溫度變送器具有熱電偶冷端溫度補(bǔ)償、零點(diǎn)調(diào)整、零點(diǎn)遷移、量程調(diào)整以及線(xiàn)性化等重功能。其具有以下幾個(gè)特點(diǎn):(1)采用了線(xiàn)性集成電路,提高了儀表的可靠性、穩(wěn)定性及各項(xiàng)技術(shù)性能。(2)熱電偶溫度變送器中采用了線(xiàn)性化電路,使變送器的輸出電流?;螂妷盒盘?hào)和被測(cè)溫度(輸入信號(hào))成線(xiàn)性關(guān)系。(3)線(xiàn)路中采用了安全火花防爆措施,幫可用于危險(xiǎn)場(chǎng)所中的溫度測(cè)量變送。由以上分析,我們可以得出結(jié)論,DDZ-Ш熱電偶溫度變送器是一種集成的自動(dòng)化溫度傳感變送器,在量程和精度上都完全滿(mǎn)足設(shè)計(jì)中溫度測(cè)量、變送的要求。3.1.因?yàn)閱纹瑱C(jī)不能直接處理模擬信號(hào),所以必須將熱電偶檢測(cè)到的溫度模擬信號(hào)變化成數(shù)字信號(hào),單片機(jī)才能做出相應(yīng)的處理。按照設(shè)計(jì)指標(biāo),精度要求在±0.5℃。采用8位A/D轉(zhuǎn)換器如果設(shè)定其成比例關(guān)系,即0~255,0℃~100℃。則其精確度為0.39用12位A/D器,其輸入電壓為0~5V時(shí)對(duì)應(yīng)的輸出為0~4096,設(shè)計(jì)要求溫度控制在0~100℃。我們可以將100℃時(shí)A/D輸出為1000,這樣其精度可以達(dá)到0.1℃,完全滿(mǎn)足設(shè)計(jì)的要求。前面已經(jīng)說(shuō)明變送器的輸出為1~5V,所以可以調(diào)節(jié)送器的量程,0℃時(shí)變送器輸出為1.22V,而A/D轉(zhuǎn)換的輸出為1000;100TLC2551/2541是TI公司生產(chǎn)的串行12位A/D轉(zhuǎn)換器[8],其采用DIP-8封裝,簡(jiǎn)單的微處理器接口,單通道差分輸入,轉(zhuǎn)換時(shí)間在Flock=400KHz時(shí)為3.2us,5V供電時(shí)輸入范圍:0~5V,輸入輸出完全兼容TTL和CMOS電路,全部非校準(zhǔn)誤差:±1LSB。單5V供電,工作溫度范圍:0℃~70℃;其接口電路如圖3-圖圖3-2模數(shù)轉(zhuǎn)換電路3.11單片機(jī)選型整個(gè)系統(tǒng)采用最小化設(shè)計(jì),其外部所接組件大多采用了串行通信,所以在單片機(jī)選型時(shí)不需要很多的并行口,有一定的程序存儲(chǔ)器和定時(shí)器、外部中斷即可。圖3-389c2051及其引腳與網(wǎng)標(biāo)由ATMEL公司生產(chǎn)的AT圖3-389c2051(1)具有適于控制的8位CPU和指令系統(tǒng);(2)128字節(jié)的片內(nèi)RAM;2KB片內(nèi)ROM;(3)15線(xiàn)并行I/O口;(4)兩個(gè)16位定時(shí)/計(jì)數(shù)器;(5)一個(gè)全雙工串行口;(6)6個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)的中斷結(jié)構(gòu);2晶振電路的設(shè)計(jì)單片機(jī)內(nèi)部帶有時(shí)鐘電路,因此,只需要在片外通過(guò)X1、X2引腳接入定時(shí)控制單元(晶體振蕩和電容),即可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩器的工作頻率一般在1.2~12MHz之間,當(dāng)然在一般情況下頻率越快越好??梢员WC程序運(yùn)行速度即保證了控制的實(shí)時(shí)性。一般采用石英晶振作定時(shí)控制元件;在不需要高精度參考時(shí)鐘時(shí),也可以用電感代替晶振,有時(shí)也可以引入外部時(shí)鐘脈沖信號(hào)。C9、C10雖然沒(méi)有嚴(yán)格要求,但電容的大小影響振蕩器的振蕩的穩(wěn)定性和起振的快速性,通常選擇在10~30PF左右。在設(shè)計(jì)電路板時(shí),晶振,電容等均應(yīng)盡可能靠近芯片,以減小分布電容,保證振蕩器振蕩的穩(wěn)定性。圖圖3-4復(fù)位電路和時(shí)鐘電路3.1在系統(tǒng)的設(shè)計(jì)過(guò)程中,考慮到加熱器在加熱過(guò)程中出現(xiàn)斷電的情況。當(dāng)這種情況發(fā)生時(shí),系統(tǒng)應(yīng)該繼續(xù)加熱到斷電前設(shè)定的溫度。而設(shè)定的溫度存儲(chǔ)在單片機(jī)的數(shù)據(jù)在存儲(chǔ)器中,單片機(jī)斷電重啟動(dòng)后存儲(chǔ)的設(shè)定溫度已經(jīng)消失。為了達(dá)到此功能,在單片機(jī)外部加入了一個(gè)基于I2C總線(xiàn)的E2I2C總線(xiàn)簡(jiǎn)介:I2C總線(xiàn)由PHILIPS提出,是一種用于IC器件之間連接的二線(xiàn)制總線(xiàn)。它通過(guò)SDA(串行數(shù)據(jù)線(xiàn))及SCL(串行時(shí)鐘線(xiàn))兩根線(xiàn)在連到總線(xiàn)上的器件之間傳送信息,并根據(jù)地址識(shí)別每個(gè)器件:不管是單片機(jī)、存儲(chǔ)器、LCD驅(qū)動(dòng)器還是鍵盤(pán)接口。采用I2C其協(xié)議定義的數(shù)據(jù)格式如下:開(kāi)始7/10器件地址R/WACKSUBADDACKDATAACK……停止AT24C01是美國(guó)ATMEL公司的低功耗CMOS串行E2PROM,它是內(nèi)含128×8位存儲(chǔ)空間,具有工作電壓寬(2.5~5.5V)、擦寫(xiě)次數(shù)多(大于10000次)、寫(xiě)入速度快(小于10ms)等特點(diǎn)。在系統(tǒng)中,用AT24C01存儲(chǔ)用戶(hù)設(shè)定的保持溫度,上限溫度和下限溫度。當(dāng)系統(tǒng)斷電再得電以后,系統(tǒng)將自動(dòng)的讀出AT24C01中的保存值,并根據(jù)其內(nèi)容進(jìn)行加熱,直到設(shè)定的溫度。從而達(dá)到了斷電后再加熱的目的。其實(shí)際電路連接圖如圖3-5,電阻R7、R8為I2C圖圖3-5AT24C01接口3.1.1顯示電路圖圖3-6顯示電路顯示部分用于顯示用戶(hù)設(shè)定的溫度、上限溫度、下限溫度和當(dāng)前溫度值等。當(dāng)然,從理論上而言,如果要很明了的顯示各種數(shù)值的話(huà),應(yīng)該加上漢字顯示模塊,這樣就可以一目了然的識(shí)別出各種設(shè)定值。從這一方面來(lái)說(shuō)LCD顯示器就占有很大的優(yōu)勢(shì)。但LCD顯示器也存在著很大的不足,如LCD顯示器一般都有8根數(shù)據(jù)線(xiàn)和5根控制線(xiàn),即使是用串行的情況下也要占用單片機(jī)的8個(gè)I/O口[,或者6根線(xiàn)和幾個(gè)邏輯門(mén)。使用LED顯示器可以很容易解決I/O口的問(wèn)題,采用51單片機(jī)的串行方式0,只要兩根線(xiàn)(數(shù)據(jù)與時(shí)鐘)就能完成顯示功能,而且串行口還可以跟其它芯片共用,只要加上一個(gè)邏輯門(mén)電路形成線(xiàn)選就可以了。但其有一個(gè)明顯的弱點(diǎn)就是顯示的時(shí)候只能看到一個(gè)值,讓人有一種不直觀的感覺(jué),并且在鍵盤(pán)上設(shè)定好一個(gè)顯示管理鍵,要顯示什么值只有按這個(gè)鍵就可以達(dá)到循環(huán)顯示的目的。本顯示電路共設(shè)了四位,分別用于顯示溫度的百、十、個(gè)、小數(shù)位。所以顯示的溫度可以精確到小數(shù)點(diǎn)后一位,即0.1℃。但溫度的設(shè)定值只能輸入兩位,即十位百位。Disselec用于選通顯示。其具體電路圖3-62信號(hào)輸入電路鍵盤(pán)作為人機(jī)接口之一,在系統(tǒng)的功能實(shí)現(xiàn)過(guò)程中起著不可或缺的作用。在硬件的實(shí)現(xiàn)上,采用串行接口,由一個(gè)74HC164,其8個(gè)輸出口作為矩陣鍵盤(pán)的列線(xiàn),再由89C2051的P1.1、P1.2作為行線(xiàn)組成,每根線(xiàn)上都加一個(gè)上拉電阻,用于減小干擾。整個(gè)鍵盤(pán)共設(shè)16個(gè)鍵,見(jiàn)圖3-7。其鍵名和功能如表3-2。圖3-7圖3-7鍵盤(pán)電路表3-2鍵盤(pán)設(shè)置與功能設(shè)定表3-2鍵盤(pán)設(shè)置與功能設(shè)定鍵名個(gè)數(shù)(標(biāo)號(hào))功能數(shù)字鍵10(0~9)輸入0~100℃下限溫度1(15)設(shè)定上限溫度,正常顯示時(shí)輸入有限,數(shù)據(jù)輸入時(shí)無(wú)效,且報(bào)錯(cuò)上限溫度1(14)設(shè)定下限溫度,正常顯示時(shí)輸入有限,數(shù)據(jù)輸入時(shí)無(wú)效,且報(bào)錯(cuò)設(shè)定恒溫1(13)設(shè)定恒溫溫度,正常顯示時(shí)輸入有限,數(shù)據(jù)輸入時(shí)無(wú)效,且報(bào)錯(cuò)停機(jī)鍵1(11)使其停止加熱,正常顯示時(shí)有限,停機(jī)時(shí)停止顯示,停止測(cè)量。確認(rèn)鍵1(10)確定輸入的數(shù)據(jù),輸入數(shù)據(jù)時(shí)有效,其它情況下報(bào)警。下翻1(12)循環(huán)顯示設(shè)定、上限、下限溫度,按下顯示2秒,不按則顯示溫度3報(bào)警電路為使系統(tǒng)的人機(jī)交互界面更好,設(shè)置了兩路報(bào)警信號(hào),分別為兩路紅色的發(fā)光二極管,用于顯示越限報(bào)警和誤輸入報(bào)警。圖3-8報(bào)警電路圖3-8報(bào)警電路誤輸入報(bào)警(LED2)主要用于鍵盤(pán)管理中,當(dāng)用鍵盤(pán)進(jìn)行恒溫設(shè)定、上、下限溫度設(shè)定時(shí)工作人員如果沒(méi)有按說(shuō)明中所要求的步驟進(jìn)行操作的話(huà)就是所謂的誤操作。當(dāng)出現(xiàn)誤操作時(shí)誤輸入報(bào)警燈點(diǎn)亮,此時(shí)工作人員應(yīng)進(jìn)行輸入檢查,查看說(shuō)明并更正。越限報(bào)警和誤輸入報(bào)警分別由P1.0和P1.5口引出,其上接的電阻為限流電阻,用于防止電流過(guò)大而引起的發(fā)光二極管燒毀。3.執(zhí)行機(jī)構(gòu)為一個(gè)固態(tài)繼電器,程序中采用了模擬的PWM變換方法。通過(guò)控制固態(tài)繼電器的導(dǎo)通與關(guān)斷達(dá)到控制電爐的通電和斷電的目的。圖3-圖3-9執(zhí)行器電路圖3.2軟件設(shè)計(jì)系統(tǒng)的軟件部分以主程序?yàn)槿肟?,在初始化之后調(diào)用鍵盤(pán)管理程序,完成對(duì)鍵盤(pán)的掃描,讀入鍵值,并根據(jù)相應(yīng)的鍵值進(jìn)行各類(lèi)操作。溫度采樣頻率由定時(shí)器控制,在每一次采樣完成之后進(jìn)行控制時(shí)間的計(jì)算和顯示刷新。3.2.主程序作為程序的入口,控制各類(lèi)程序的調(diào)用。在系統(tǒng)中其主要的任務(wù)是調(diào)用鍵盤(pán)管理程序。然后其它的功能都由鍵盤(pán)管理程序和中斷程序完成??梢哉f(shuō)主程序起到了重啟動(dòng)后讀入E2PROM中的設(shè)計(jì)溫度和上、下限溫度;設(shè)計(jì)各類(lèi)定時(shí)器和開(kāi)中斷的,并調(diào)用鍵盤(pán)管理程序的功能。但這樣處理主程序起到了分散功能的作用,即主程序會(huì)變得很容易編寫(xiě),而具體的功能都由功能子程序完成。主程序流程如圖3-10所示。具體程序如下:開(kāi)始初始化,開(kāi)中斷開(kāi)始初始化,開(kāi)中斷移入設(shè)定值并顯示調(diào)用鍵盤(pán)管理子程序結(jié)束圖3-10主程序流程START:MOVSP,#70H;置堆棧,如堆棧超出會(huì)造成處理器復(fù)位。LCALLRDNBYT;讀入E2PROM中的初使會(huì)標(biāo)志、各類(lèi)設(shè)定溫度。MOVR1,#SETTEMPLCALLVALUDISPMOVR1,#TEMPHIGHLCALLVALUDISPMOVR1,#TEMPLOWLCALLVALUDISP;單片機(jī)復(fù)位后,會(huì)分別顯示各類(lèi)設(shè)定溫度2秒MOVTMOD,#11H;定時(shí)器0、1都為16位定時(shí)器MOVTH0,#3CHMOVTL0,#0B0HMOVTH1,#3CHMOVTL1,#0B0H;兩定時(shí)器第一周期內(nèi)的定時(shí)時(shí)間為0.05秒(12M)SETBPT1;定時(shí)器1優(yōu)先,定時(shí)器1用于控制加熱器的運(yùn)行SETBEASETBET0SETBET1SETBTR0SETBTR1;開(kāi)定時(shí)中斷和總中斷,兩個(gè)定時(shí)器開(kāi)始定時(shí)LCALLKEYOPT;調(diào)用鍵盤(pán)管理程序,完成各類(lèi)操作用于顯示設(shè)定;溫度、上、下限溫度、和變換的子程序3.2.1TLC2551的驅(qū)動(dòng)前面已經(jīng)說(shuō)明系統(tǒng)中采用的A/D轉(zhuǎn)換芯片是串行的,所以我們?cè)谑褂闷鋾r(shí)必須按照其時(shí)序一步步的完成,其時(shí)序圖如圖3-11所示。圖3-11TLC2551的時(shí)序圖圖3-11TLC2551的時(shí)序圖ADC:PUSHACLRCS;選通ADCNOPSETBclkNOPNOPCLRC;清C標(biāo)志CLRclkMOVR3,#12;時(shí)序要求clra;清ACCNOPADCLK:SETBCLKNOPNOPCLRCLKMOVC,DO;移入ADC值RLCA;左移CJNER3,#8,NEXTMOVADCDATAH,A;存儲(chǔ)ADC高位值NEXT:DJNZR3,ADCLKMOVADCDATAL,A;存儲(chǔ)ADC低位值POPASETBCS;關(guān)A/DRET2由前面硬件部分的說(shuō)明可以得出,設(shè)計(jì)要求的A/D轉(zhuǎn)換結(jié)果跟溫度值的關(guān)系是:A/D值=溫度×10。正如前面說(shuō)所,由于變送器的限制,我們只能將0℃時(shí)所對(duì)應(yīng)的變送器輸出為1.22V,而100℃時(shí)對(duì)應(yīng)的變送器輸出是其量化順序?yàn)椋鹤x入A/D轉(zhuǎn)換值、用二進(jìn)制無(wú)符號(hào)除法將轉(zhuǎn)換值減去1000,再將其結(jié)果用二進(jìn)制無(wú)符號(hào)數(shù)除法除以10,取商和余數(shù)。分別作為溫度的整數(shù)部分和小數(shù)部分,用于四位溫度顯示。流程圖如圖3-12所示。具體程序如下:圖3-12A/D轉(zhuǎn)換和量化流程圖圖3-12A/D轉(zhuǎn)換和量化流程圖入口啟動(dòng)A/D,讀入數(shù)值A(chǔ)/D值-1000計(jì)算出溫度值返回;0~9的字形碼DISPLAY:SETBDISSELEC;選取通顯示MOVSCON,#00H;串口方式0MOVR1,#04H;顯示四位MOVR3,#0;用于判斷是否應(yīng)加入小數(shù)位MOVDPTR,#NUMDATA;數(shù)字字型碼地MOVR0,#DISPTEMP;移入顯示數(shù)據(jù)的地址LOOPDIS:MOVA,@R0;移入AMOVCA,@A+DPTR;取值MOV24H,A;加入一寄存器用于緩沖MOVA,R3CJNEA,#2,NOT2MOVA,24HSETBACC.7;判斷是否為個(gè)位,如是則點(diǎn)亮小數(shù)點(diǎn)AJMPDDNOT2:MOVA,24HDD:MOVSBUF,A;發(fā)送WAITDIS:JNBTI,WAITDIS;等待發(fā)送CLRTIDECR0;地址減1DJNZR1,LOOPDIS;發(fā)送完畢否?OUTDIS:CLRDISSELEC;不選通顯示RET3.2.3片外I2CE2PROM的作用已在前面說(shuō)明,其內(nèi)部用連續(xù)的7個(gè)字節(jié)分別用于存儲(chǔ)首次開(kāi)機(jī)標(biāo)志、設(shè)定溫度、上限溫度和下限溫度。其中標(biāo)志占一個(gè)字節(jié),其余各占2個(gè)字節(jié)。其時(shí)序圖如圖3-13圖3-圖3-13I2C總線(xiàn)的時(shí)序圖從上圖我們很容易看出I2C總線(xiàn)的時(shí)序。使用時(shí)最開(kāi)始發(fā)起始位,然后是器件地址,接著是從地址、數(shù)據(jù)最后是結(jié)束位,中間還夾著應(yīng)答位。AT2401在電路中的器件地址為1010000(前4位為I2C協(xié)議規(guī)定的E2PROM的地址,后3位為其類(lèi)地址,由圖3-6可知其類(lèi)地址為000)。因?yàn)橹挥玫搅似渲械?0H~16H單元,其余單元空閑,所以SUBADD(圖中的第二個(gè)ADDESS3.2.圖3-14顯示程序流程要顯示的數(shù)據(jù)存儲(chǔ)于連續(xù)的四個(gè)數(shù)據(jù)存儲(chǔ)器之中。由圖3-6圖3-14顯示程序流程SUBF寄存器中即可。其要顯示的數(shù)據(jù)共四位位于從TEMPDATA開(kāi)始的四個(gè)連續(xù)存儲(chǔ)空間中。流程如圖3-14,具體程序如下:ORG00hLJMPstart;程序開(kāi)始 ORG03HRETI;軟件抗干擾ORG0bhLJMPintt0;定時(shí)器0的中斷服務(wù)程序ORG13HRETI;軟件抗干擾ORG1bhLJMPintt1;定時(shí)器1的中斷服務(wù)程序ORG23HRETI;軟件抗干擾SDABITP3.0;I2CSCLBITP3.1;SDA(數(shù)據(jù)),SCL(時(shí)鐘)CSBITP3.4;A/D轉(zhuǎn)換器的選通線(xiàn)LOCKBITP3.5;E2PROM的寫(xiě)允許線(xiàn)OPEBITP3.7;執(zhí)行器的輸入(控制)LINE1BITP1.3LINE2BITP1.2;鍵盤(pán)的兩跟行線(xiàn)lineflagbit05h;(1)行線(xiàn)標(biāo)志,為第1行LED1BITP1.0;(1)越限報(bào)警指示燈LED2BITP1.4;(1)誤輸入報(bào)警指示燈DOBITP3.3;串行A/D的輸出CLKBITP3.2;串行A/D的時(shí)鐘線(xiàn)INITIALEQU30H;用于判斷是否為第一次開(kāi)機(jī)SETTEMPEQU31H;用戶(hù)設(shè)定的溫度TEMPHIGHEQU32H;用戶(hù)設(shè)定的上限溫度,如超過(guò)則有越限報(bào)警TEMPLOWEQU33h;用戶(hù)設(shè)定的下限溫度,如低于則有越限報(bào)警KEYTEMPEQU34H;由鍵盤(pán)輸入的設(shè)定、上、下溫度,共三位。分別為;34H,35H,36H。KEYBOARDEQU37H;用于緩沖存儲(chǔ)用戶(hù)從鍵盤(pán)輸入的值。ADCHIGHEQU38H;ADC-1000后的高位暫存值A(chǔ)DCLOWEQU39H;ADC-1000后的低位暫存值A(chǔ)DCDATAHEQU3AH;A/D轉(zhuǎn)換的高位ADCDATALEQU3BH;A/D轉(zhuǎn)換的低位DISPTEMPEQU3CH;顯示溫度的暫存區(qū),共四位3C~3F。分別;為小數(shù)、個(gè)、;十、百位。MTDEQUINITIAL;I2CMRDEQUINITIAL;接收區(qū)的首址,同INITIALNUMBYTEQU04H;I2CSWAEQUA0H;I2CSRAEQUA1H;I2CSUBDAAEQU02H;I2CTIMEHEATEQU40H;加熱時(shí)間的存儲(chǔ)地址TIUNHEATEQU41H;不加熱的時(shí)間存儲(chǔ)地址TRANEQU42H;模糊量化結(jié)果的存儲(chǔ)地址DISPFLAGEQU43H;顯示標(biāo)志,用于識(shí)別設(shè)定、上、下限溫度;的顯示3.鍵盤(pán)管理程序包括鍵盤(pán)掃描程序(用于將輸入的鍵值讀入到數(shù)據(jù)存儲(chǔ)器中)、鍵值判斷轉(zhuǎn)移程序(判斷輸入的數(shù)值并根據(jù)數(shù)值的異同做出相應(yīng)的處理)。1鍵盤(pán)掃描子程序由圖3-7可知同顯示接口一樣,鍵盤(pán)接口同樣使用了串行口的方式0。當(dāng)檢測(cè)到有鍵按下時(shí),程序?qū)z測(cè)是在第0行或者是在第1行,然后通過(guò)串行輸出不同的列值來(lái)掃描按下的鍵在哪一列。最后將鍵值讀入到keyboard存儲(chǔ)器中。鍵值=行值×8+列值。具體程序如下:keyscan:movscon,#00h;選擇串行模式nokey:setbline1setbline2movsbuf,#0;檢查重點(diǎn)已被選擇serial:jnbti,serial;等待發(fā)送串行時(shí)鐘clrtijnbline1,keyinjnbline2,keyin;或更關(guān)鍵的被選擇ajmpnokey;沒(méi)有關(guān)鍵keyin:lcalldelay_10ms;延遲10msjnbline1,keyline1jnbline2,keyline2ajmpnokeykeyline1:movr3,#0setblineflag;lineflag是第一線(xiàn)ajmpliescan;謊言?huà)呙鑛eyline2:movr3,#1liescan:movr5,#8;八謊言movr4,#0mova,#0feh;初步liescanmovsbuf,aserial2:jnbti,serial2;謊言?huà)呙栝_(kāi)始clrtijblineflagline1insetbline2jnbline2,okkey;尋找謊言line1in:setbline1jnbline1,okkeyrevote:setbcrlcaincr4djnzr5,liescanajmpnokey;系統(tǒng)erorrokkey:mova,r3movb,#8mulabadda,r4movkeyboarta;stort關(guān)鍵clrkeyflag;明確thekeyflagret2鍵值判斷轉(zhuǎn)移子程序圖3-15鍵盤(pán)管理程序流程由硬件部分可知鍵盤(pán)中除了幾個(gè)數(shù)字鍵外,還有幾個(gè)功能鍵。此程序用于判斷輸入的鍵是功能鍵還是數(shù)字鍵,如果是功能鍵則選擇相應(yīng)的功能或者在誤輸入的情況下報(bào)警,提醒操作者。其流程圖見(jiàn)圖3-15,圖3-15鍵盤(pán)管理程序流程keyopt:clrclcallkeyscan;調(diào)用用鍵盤(pán)掃描程序clr00hmova,keyboardcjnea,#10,wrong;0~9為數(shù)字鍵,10為確認(rèn)鍵,此是按下則報(bào)警wrong:setbled2lcalldelay_2sclrled2ajmpkeyoptn10:jcwrong;為0~9clrccjnea,#11,xiafangajmpshutupxiafang:cjnea,#12,tempin;為輸入各類(lèi)溫度mova,disflagcjnea,#2,no2movdispflag,#0ajmpdispno2:adddispflag,#1;dispflag加一disp:mova,dispflagmovb,#31hadda,b;a+b=addresmovr1,a;顯示溫度lcallvaludispajmpkeyopttempin:cjnea,#13,highinsetb00hlcalldataajmpkeyopthighin:cjnea,#14,lowinsetb01hlcalldataajmpkeyoptlowin:setb02hlcalldataajmpkeyoptretshutup:cpl03hjb03h,turnoffsetbea;關(guān)掉中斷ajmpkeyoptturnoff:clroptclreaajmpkeyopt;關(guān)掉中斷3.1定時(shí)中斷0中斷服務(wù)子程序定時(shí)中斷0用于等周期的進(jìn)行A/D轉(zhuǎn)換(即溫度的采樣點(diǎn)數(shù)固定),并將采樣后的值作為輸入量,再由控制程序?qū)崿F(xiàn)由輸入量到輸出量的計(jì)算,再將計(jì)算出的控制量存儲(chǔ)在fuzztime寄存器中。并調(diào)用顯示程序刷新當(dāng)前系統(tǒng)的溫度。整個(gè)程序?yàn)轫樞驁?zhí)行。流程圖如圖3-16,具體程序如下:INTT0:PUSHPSWCLRTR0;關(guān)中斷SETBRS0SETBRS1;選寄存器組MOVTH0,#3CHMOVTL0,#0B0H;重置初值DJNZTIMEquickt0MOVTIME,#10;采樣周期為5秒LCALLADC;調(diào)用A/D轉(zhuǎn)換程序LCALLFUZZY;調(diào)用程序算出定時(shí)常數(shù)jB05H,QUICKT0;05H=1,為正在顯示數(shù)值時(shí),不能顯示當(dāng)前溫度LCALLDISPLAY;顯示刷新quickt0:SETBTR0;開(kāi)中斷POPPSWRETI2定時(shí)器1中斷服務(wù)子程序同定時(shí)器0類(lèi)似,定時(shí)器實(shí)現(xiàn)了模擬的PWM變換。即定時(shí)器1中存在一個(gè)周期時(shí)間(為20MS)。在這個(gè)時(shí)間內(nèi)定時(shí)器1在fuzztime個(gè)周期的時(shí)間內(nèi)將執(zhí)行器通電,使加熱器加熱,其余的周期時(shí)間(20-fuzztime)執(zhí)行器不通電。整個(gè)程序采用順序執(zhí)行,流程圖如圖3-17。具體程序如下:INTT1:PUSHPSWSETBRS0;中斷1中全部用了通用寄存器1CLRTR1MOVTH1,#3CHMOVTL1,#0B0HMOVA,TIMEHEATCJNEA,TIMEHEAT,NOHEATJB06H,UNHEAT;用于判斷加熱是否完畢DJNZR3,QUICKT1NOHEAT:MOVR3,TIMEHEAT;移入加熱的時(shí)間SETB06HAJMPQUICKT1UNHEAT:DJNZR4,QUICKT1MOVR4,TIUNHEAT;移入不加熱的時(shí)間CLR06HQUICKT1:POPPSWSETBTR1RETI3.運(yùn)算程序?qū)崿F(xiàn)了由A/D轉(zhuǎn)換值到控制值的運(yùn)算。其中包含了求差量化和查表等子程序。偏差=現(xiàn)行溫度值─設(shè)定溫度值,其集合可以表示為{負(fù)大(NB)、負(fù)小(NS)、零(Z0)、正小(PS)、正大(PB)}并將其大小量化為九個(gè)等級(jí):-4,-3,-2,-1,0,+1,+2,+3,+4。其論域E為E={-4,-3,-2,-1,0,+1,+2,+3,+4}。為簡(jiǎn)化運(yùn)算,可將控制量U的大小也量化成上述九個(gè)等級(jí)若根據(jù)專(zhuān)家經(jīng)驗(yàn),這些集的隸屬度量化為如表3-3:表表3-3集的隸屬度量量化等級(jí)語(yǔ)言變量量化等級(jí)語(yǔ)言變量-4-3-2-10+1+2+3+4PB000000.40.711PS0000.40.710.70.40ZO000.40.710.70.400NS00.40.710.70000NB110.70.400000根據(jù)熟練操作人員手工控制經(jīng)驗(yàn),控制規(guī)則如下:1)IFE=NBTHENU=PB2)IFE=NSTHENU=PS3)IFE=ZOTHENU=ZO4)IFE=PSTHENU=NS5)IFE=PBTHENU=NB上述控制規(guī)則為一多重條件語(yǔ)句,可用誤差論域E到控制量論域U的關(guān)系R表示為:接下來(lái)再由講法法則和上述計(jì)算關(guān)系進(jìn)行矩陣運(yùn)算,結(jié)果如表3-4表表3-4差值與控制量的等級(jí)對(duì)應(yīng)表-4-3-2-10+1+2+3+4U+4+3+2+10-1-2-3-4差值與實(shí)際溫度的量化關(guān)系如表3-5表表3-5量化等級(jí)與實(shí)際溫度的對(duì)應(yīng)表量化等級(jí)-4-3-2-10+1+2+3+4實(shí)際溫差℃-5-3-2-10+1+2+3+5控制U與實(shí)際輸出的量化關(guān)系如表3-6表表3-6控制量的量化等級(jí)與實(shí)際輸出之間的關(guān)系量化等級(jí)-4-3-2-10+1+2+3+4實(shí)際輸出20105321000注:數(shù)值為每20個(gè)周期內(nèi)的導(dǎo)通周期數(shù)實(shí)際運(yùn)用過(guò)程中,可以將-4~4量化為0~8,減少符號(hào)數(shù)的運(yùn)算。另外為了減少程序,可由差值量化后直接求出控制量,而不必要對(duì)控制量進(jìn)行反量化。表表3-7簡(jiǎn)化后的實(shí)際溫差與實(shí)際輸出的關(guān)系表實(shí)際溫差-50+0.+0.+0.5+5012345678實(shí)際輸出20105321000注:數(shù)值為每20個(gè)周期內(nèi)的導(dǎo)通周期數(shù)分析可知,可以通過(guò)查表程序來(lái)求得其控制值。程序流程圖如圖3-18。具體程序如下所;示:入口求差值并量化入口求差值并量化由差值量化值求fuzztime返回保存圖3-18運(yùn)算子程序的流程圖timedb0h,0h,1h,2h,3h,5h,14hfuzzy:pushpswpushalcall2bytesub;調(diào)用2進(jìn)制無(wú)符號(hào)數(shù)減法lcall2bytediv;調(diào)用2進(jìn)制無(wú)符號(hào)數(shù)除法lcalltransmit;調(diào)用求差并量化子程序movdptr,#time;模糊時(shí)間入地址DPTRmova,tran;量化等級(jí)入Amovca,@a+dptr;模糊時(shí)間入Amovtimeheat,a;將所得時(shí)間放入加熱時(shí)間中clrc;清C,馬上要用減法mova,#20;總共為20個(gè)周期subba,timeheatmovtiunheat,a;求出不加執(zhí)熱時(shí)間popapoppswret入口差值為正?入口差值為正?直接量化負(fù)數(shù)求原碼去符號(hào)返回A/D值-1000圖3-19.求差量化子程序圖transmit:movr0,,#distempincr0mov22h,@r0;移入個(gè)位incr0mova,@r0;移入十位movb,#10mulab;十位值*10adda,22h;再加上個(gè)位mov22h,aincr0mova,@r0movb,#100mulabadda,22h;百位*100+十位*10+個(gè)位clrclrccjnza,temphigh,high;如上越限有報(bào)警high:jncoutsetbled1lcalldelay_2sclrled1out1:cjnea,templow,low;如上越限有報(bào)警low:jcout2setbled1lcalldelay_2sclrled1out2:subba,settempacalllianghuaret3.3抗干擾設(shè)計(jì)與軟件調(diào)試在系統(tǒng)的運(yùn)行過(guò)程中可能出現(xiàn)各種干擾,如信號(hào)不穩(wěn)定、電路板搞干擾能力差、程序跑飛等,也可能在搬運(yùn)或者使用過(guò)程中對(duì)電路板或者原器件的磨損等。所以在設(shè)計(jì)過(guò)程中應(yīng)做好搞干擾設(shè)計(jì),以求將干擾對(duì)系統(tǒng)產(chǎn)生的影響降到最低。3.在硬件設(shè)計(jì)過(guò)程中為了減少外部信號(hào)對(duì)系統(tǒng)的影響采用了以下幾種抗干擾措施。I/O口外接濾波電容和上拉電阻,減小信號(hào)干擾。2制作PCB板時(shí)對(duì)重點(diǎn)信號(hào)線(xiàn)實(shí)行地線(xiàn)包絡(luò),并于導(dǎo)線(xiàn)集中的地方和過(guò)孔處補(bǔ)上淚滴,加強(qiáng)連接。3.PCB板的雙面分別填充電源層與地線(xiàn)層,并對(duì)沒(méi)有并線(xiàn)的地方進(jìn)行覆銅PCB板布局實(shí)行模塊化分離,模塊之間進(jìn)行信號(hào)隔離,對(duì)電源變壓器進(jìn)行隔離。3.軟件抗干擾就有投資低的優(yōu)點(diǎn),本文采用的軟件抗干擾措施如下:(1)指令冗余當(dāng)CUP受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行,引起程序的混亂,我們首先要盡快將程序納入正軌,也就是讓程序彈飛到某一個(gè)單字節(jié)指令NOP,這就是指令冗余,自此,常在一些對(duì)程序的流向起決定作用的指令之前插入兩條NOP指令,以保證彈飛的程序迅速納入正確的控制軌道。在某些對(duì)系統(tǒng)工作狀態(tài)至關(guān)重要的指令前也可插入兩條NOP指令,以保證被正確執(zhí)行。(2)軟件陷阱當(dāng)彈飛的程序落到非程序區(qū)(如ROM中未使用的空閑和程序中的數(shù)據(jù)表格區(qū))時(shí),就形成了死循環(huán),解決的辦法就是用一條引導(dǎo)指令強(qiáng)行將捕獲的程序印象到一個(gè)指定的地址,為了加強(qiáng)捕獲的效果,一般還在其前面加兩條NOP指令。因此,軟件陷阱由三條指令組成:NOPNOPLJIMPSTARTa.未使用的中斷向量區(qū)當(dāng)干擾未使用的中斷開(kāi)放,并激活這些中斷時(shí),就會(huì)進(jìn)一步引起混亂,如果我們?cè)谶@些地方布上陷阱,就能及時(shí)捕獲到中斷??稍谥袛嗳肟谔幖尤隦ETI指令。b.未使用的大片ROM空間對(duì)于剩下的ROM空間,一般在每隔一段設(shè)置一個(gè)陷阱(02H00H00H)從頭開(kāi)始,此時(shí)前兩個(gè)00H即是設(shè)置陷阱的地址,又是NOP指令,起到雙重的作用。3.1.模糊表的求取在軟件設(shè)計(jì)部分中已經(jīng)說(shuō)明,運(yùn)算中由于單片機(jī)的運(yùn)算能力有限,所以將矩陣的運(yùn)算部分采用了離線(xiàn)的方式,進(jìn)行求取。其體的求取過(guò)程如下:將熟練操作人員得出的關(guān)系得出關(guān)系R。如圖3-20。(2)運(yùn)行編好的程序,求出控制量。依次輸入各種情況下的隸屬度,并進(jìn)行解求出控制表。如E=NS時(shí)有,U=[0.40.40.70.70.710.70.70.7]。圖3-20系統(tǒng)的模糊關(guān)系R圖3-2圖3-20系統(tǒng)的模糊關(guān)系R按照隸屬度最大原則,應(yīng)先取控制量為“+1”級(jí)。同理均可從R中確定一個(gè)相應(yīng)的值,列成控制表如表3-5。2.軟件的調(diào)試軟件的調(diào)試部分包括各類(lèi)程序的調(diào)試,如主程序、鍵盤(pán)管理子程序、定時(shí)中斷程序。當(dāng)然最重要的是運(yùn)算程序,它可以檢測(cè)運(yùn)算的正確性,和在此運(yùn)算方式下的控制效果及精度等。接好調(diào)試電路,輸入程序并進(jìn)行查錯(cuò)、編譯,運(yùn)得程序觀察結(jié)果,并繪制曲線(xiàn)如下。(1)當(dāng)輸入溫度為95℃時(shí),理想曲線(xiàn)、最終調(diào)試曲線(xiàn)及最初測(cè)試曲線(xiàn)對(duì)照如3-21圖3-圖3-21輸入溫度為95℃(2)選中最終參數(shù)后,輸入溫度為50℃時(shí),理想曲線(xiàn)測(cè)試曲線(xiàn)對(duì)照如圖3-2圖圖3-22輸入溫度為50℃分析:(1)我們可以看出當(dāng)?shù)谝淮螠y(cè)試時(shí),由于參數(shù)不準(zhǔn),所以出現(xiàn)了誤差較大,達(dá)不到系統(tǒng)指標(biāo)。而經(jīng)過(guò)不斷調(diào)整參數(shù),系統(tǒng)達(dá)到了預(yù)期的控制效果。(2)當(dāng)參數(shù)調(diào)好后,重新設(shè)置輸入溫度??梢钥闯鲈趖1以前系統(tǒng)全速加熱,但由于自然散熱,曲線(xiàn)并不是直線(xiàn)。而溫度上升到48℃時(shí)上升斜率減小,到相差0.5℃綜上所述,在控制精度上完全達(dá)到了設(shè)計(jì)任務(wù)的要求。
第四章程序清單;**************************\;程序名:模糊溫度控制系統(tǒng);功能:實(shí)現(xiàn)了模糊控制的溫度控制,溫度的顯示和設(shè)定;**************************\ORG00hLJMPstart;程序開(kāi)始 ORG03HRETI;軟件抗干擾ORG0bhLJMPintt0;定時(shí)器0的中斷服務(wù)程序ORG13HRETI;軟件抗干擾ORG1bhLJMPintt1;定時(shí)器1的中斷服務(wù)程序ORG23HRETI;軟件抗干擾SDABITP3.0;I2CSCLBITP3.1;SDA(數(shù)據(jù)),SCL(時(shí)鐘)CSBITP3.4;A/D轉(zhuǎn)換器的選通線(xiàn)LOCKBITP3.5;E2PROM的寫(xiě)允許線(xiàn)OPEBITP3.7;執(zhí)行器的輸入(控制)LINE1BITP1.3LINE2BITP1.2;鍵盤(pán)的兩跟行線(xiàn)lineflagbit05h;(1)行線(xiàn)標(biāo)志,為第1行LED1BITP1.0;(1)越限報(bào)警指示燈LED2BITP1.4;(1)誤輸入報(bào)警指示燈DOBITP3.3;串行A/D的輸出CLKBITP3.2;串行A/D的時(shí)鐘線(xiàn)INITIALEQU30H;用于判斷是否為第一次開(kāi)機(jī)SETTEMPEQU31H;用戶(hù)設(shè)定的溫度TEMPHIGHEQU32H;用戶(hù)設(shè)定的上限溫度,如超過(guò)則有越限報(bào)警TEMPLOWEQU33h;用戶(hù)設(shè)定的下限溫度,如低于則有越限報(bào)警KEYTEMPEQU34H;由鍵盤(pán)輸入的設(shè)定、上、下溫度,共三位。分別為;34H,35H,36H。KEYBOARDEQU37H;用于緩沖存儲(chǔ)用戶(hù)從鍵盤(pán)輸入的值。ADCHIGHEQU38H;ADC-1000后的高位暫存值A(chǔ)DCLOWEQU39H;ADC-1000后的低位暫存值A(chǔ)DCDATAHEQU3AH;A/D轉(zhuǎn)換的高位ADCDATALEQU3BH;A/D轉(zhuǎn)換的低位DISPTEMPEQU3CH;顯示溫度的暫存區(qū),共四位3C~3F。分別;為小數(shù)、個(gè)、;十、百位。MTDEQUINITIAL;I2CMRDEQUINITIAL;接收區(qū)的首址,同INITIALNUMBYTEQU04H;I2CSWAEQUA0H;I2CSRAEQUA1H;I2CSUBDAAEQU02H;I2CTIMEHEATEQU40H;加熱時(shí)間的存儲(chǔ)地址TIUNHEATEQU41H;不加熱的時(shí)間存儲(chǔ)地址TRANEQU42H;模糊量化結(jié)果的存儲(chǔ)地址DISPFLAGEQU43H;顯示標(biāo)志,用于識(shí)別設(shè)定、上、下限溫度;的顯示;*******************************;函數(shù)名:主函數(shù);功能:實(shí)現(xiàn)了開(kāi)機(jī)顯示和調(diào)用鍵盤(pán)管理程序;*********************************org50hSTART:MOVSP,#70H;置堆棧,如堆棧超出會(huì)造成處理器復(fù)位。LCALLRDNBYT;讀入E2PROM中的初使會(huì)標(biāo)志、各類(lèi)設(shè)定溫度。MOVR1,#SETTEMPLCALLVALUDISPMOVR1,#TEMPHIGHLCALLVALUDISPMOVR1,#TEMPLOWLCALLVALUDISP;單片機(jī)復(fù)位后,會(huì)分別顯示各類(lèi)設(shè)定溫度2秒MOVTMOD,#11H;定時(shí)器0、1都為16位定時(shí)器MOVTH0,#3CHMOVTL0,#0B0HMOVTH1,#3CHMOVTL1,#0B0H;兩定時(shí)器第一周期內(nèi)的定時(shí)時(shí)間為0.05秒(12M)SETBPT1;定時(shí)器1優(yōu)先,定時(shí)器1用于控制加熱器的運(yùn)行SETBEASETBET0SETBET1SETBTR0SETBTR1;開(kāi)定時(shí)中斷和總中斷,兩個(gè)定時(shí)器開(kāi)始定時(shí)LCALLKEYOPT;調(diào)用鍵盤(pán)管理程序,完成各類(lèi)操作用于顯示設(shè)定;溫度、上、下限溫度、和變換的子程序;*****************************;函數(shù)名:數(shù)值顯示程序;功能:將要顯示的各類(lèi)溫度量化并調(diào)用顯示程序;入口:R1(要顯示數(shù)據(jù)的地址);*****************************VALUDISP:PUSHPSWPUSHA;存儲(chǔ)斷點(diǎn)SETB05H;為正在顯示設(shè)定、上、下限值,此是不中斷顯示溫度MOVR0,#DISPTEMP;溫度存儲(chǔ)低地址MOV@R0,#0;設(shè)定溫度中沒(méi)有小數(shù)位,為0INCR0MOVA,@R1;移入數(shù)據(jù)MOVB,#10DIVAB;除以10再取余MOV@R0,B;余數(shù)作為顯示的個(gè)位數(shù)INCR0DIVABMOV@R0,B;十位入地址MOV@R0,A;設(shè)定的百位入地址LCALLDISPLAY;顯示刷新LCALLDELAY_2S;延時(shí)2秒CLR05H;可以顯示當(dāng)前溫度了POPAPOPPSWRET;****************************;函數(shù)名:A/D轉(zhuǎn)換程序;功能:進(jìn)行A/D串行轉(zhuǎn)換;轉(zhuǎn)換結(jié)果高4位存于ADCDATAH中,低8位存儲(chǔ)于ADCDATAL中;******************************ADC:PUSHACLRCS;選通ADCNOPSETBclkNOPNOPCLRC;清C標(biāo)志CLRclkMOVR3,#12;時(shí)序要求clra;清ACCNOPADCLK:SETBCLKNOPNOPCLRCLKMOVC,DO;移入ADC值RLCA;左移CJNER3,#8,NEXTMOVADCDATAH,A;存儲(chǔ)ADC高位值NEXT:DJNZR3,ADCLKMOVADCDATAL,A;存儲(chǔ)ADC低位值POPASETBCS;關(guān)A/DRET;**************************;函數(shù)名:顯示程序;功能:串行顯示溫度;R0為顯示數(shù)據(jù)低字節(jié)地址;*************************NUMDATADBC0H,F9H,D8H,B0H,99H,92H,82HF8H,80H,98H;0~9的字形碼DISPLAY:SETBDISSELEC;選取通顯示MOVSCON,#00H;串口方式0MOVR1,#04H;顯示四位MOVR3,#0;用于判斷是否應(yīng)加入小數(shù)位MOVDPTR,#NUMDATA;數(shù)字字型碼地MOVR0,#DISPTEMP;移入顯示數(shù)據(jù)的地址LOOPDIS:MOVA,@R0;移入AMOVCA,@A+DPTR;取值MOV24H,A;加入一寄存器用于緩沖MOVA,R3CJNEA,#2,NOT2MOVA,24HSETBACC.7;判斷是否為個(gè)位,如是則點(diǎn)亮小數(shù)點(diǎn)AJMPDDNOT2:MOVA,24HDD:MOVSBUF,A;發(fā)送WAITDIS:JNBTI,WAITDIS;等待發(fā)送CLRTIDECR0;地址減1DJNZR1,LOOPDIS;發(fā)送完畢否?OUTDIS:CLRDISSELEC;不選通顯示RET;************************;函數(shù)名:雙字節(jié)的無(wú)符號(hào)數(shù)減法;功能:用于雙字節(jié)的無(wú)符號(hào)數(shù)減法;減數(shù)固定為1000,化為16進(jìn)制后為3E8H,即高位為3,低為為E8;*************************2bytesub:pushapushpswclrc;借位標(biāo)志清0mova,ADCDATALsubba,#0e8h;減去低位movADCLOW,amova,ADCDATAHsubba,#3;減去高位movADCHIGH,a;存儲(chǔ)結(jié)果poppswpoparet;************************;函數(shù)名:雙字節(jié)的無(wú)符號(hào)數(shù)除法;功能:用于雙字節(jié)的無(wú)符號(hào)數(shù)減除法,分別求出溫度的小數(shù),個(gè),十,百位;被除數(shù):雙字節(jié)的無(wú)符號(hào)數(shù)減法的剩余值;*************************2BYTEDIV:MOVR5,ADCHIGHMOVR4,ADCLOW;被除數(shù)的高低位MOVR3,#0MOVR2#10MOVR0,#DISTEMPLCALLSUBDIVMOV@R0,R6;小數(shù)位進(jìn)入INCR0LCALLSUBDIV;其被除數(shù)地址不變MOV@R0,R6INCR0LCALLSUBDIV;每次的除數(shù)都相同為10MOV@R0,R6INCR0MOV@R0,R4;個(gè)、十、百位分別進(jìn)入相應(yīng)的內(nèi)存單元中RET;***************************;(1)入口:R5(高)、R4(低),被除數(shù);R3(高)、R2(低),非零除數(shù)。;(2)出口:R5(高)、R4(低),商;R7(高)、R6(低),余數(shù)。;***************************SUBDIV:POPPSWSETBRS1;存儲(chǔ)前面的通用寄存器組,并重新選擇為2CLRA;部分余數(shù)單元清零MOVR7,AMOVR6,AMOVR0,#10;除法移位次數(shù)LP:CLRC;移位MOVA,R4RLCAMOVR4,AMOVA,R5RLCAMOVR5,AMOVA,R6RLCAMOVR6,AMOVA,R7RLCAMOVR7,ALP1:MOVA,R6;部分余數(shù)減法SUBBA,R2MOVR1,AMOVA,R7SUBBA,R3JCSMALLMOVR7,AMOVA,R1MOVR6,AINCR4;商加1SJMPLP1SMALL:DJNZR0,LPMOV20H,R7;四舍五入JB07H,ADD1CLRCMOVA,R6RLCAMOVR6,AMOVA,R7RLCASUBBA,R3JCRETURNJNZADD1MOVA,R6SUBBA,R2JCRETURNADD1:MOVA,R4;商加1ADDA,#01HMOVR4,AMOVA,R5ADDCA,#00HMOVR5,ARETURN:POPPSWRET;************************;函數(shù)名:定時(shí)器0服務(wù)程序;功能:用于定時(shí)中斷掃描,采樣溫度,計(jì)算模糊時(shí)間;************************INTT0:PUSHPSWCLRTR0;關(guān)中斷SETBRS0SETBRS1;選寄存器組MOVTH0,#3CHMOVTL0,#0B0H;重置初值DJNZTIMEquickt0MOVTIME,#10;采樣周期為5秒LCALLADC;調(diào)用A/D轉(zhuǎn)換程序LCALLFUZZY;調(diào)用模糊算法程序算出定時(shí)常數(shù)jB05H,QUICKT0;05H=1,為正在顯示數(shù)值時(shí),不能顯示當(dāng)前溫度LCALLDISPLAY;顯示刷新quickt0:SETBTR0;開(kāi)中斷POPPSWRETI;************************;函數(shù)名:定時(shí)器1服務(wù)程序;用于定時(shí)器1的定時(shí)中斷控制執(zhí)行器;************************INTT1:PUSHPSWSETBRS0;中斷1中全部用了通用寄存器1CLRTR1MOVTH1,#3CHMOVTL1,#0B0HMOVA,TIMEHEATCJNEA,TIMEHEAT,NOHEATJB06H,UNHEAT;用于判斷加熱是否完畢DJNZR3,QUICKT1NOHEAT:MOVR3,TIMEHEAT;移入加熱的時(shí)間SETB06HAJMPQUICKT1UNHEAT:DJNZR4,QUICKT1MOVR4,TIUNHEAT;移入不加熱的時(shí)間CLR06HQUICKT1:POPPSWSETBTR1RETI;**************************;函數(shù)名:鍵盤(pán)掃描程序;功能:掃描按鍵;出口:鍵值位于keyboard中;鍵值=行*8+列;**************************keyscan:movscon,#00h;選擇串行模式nokey:setbline1setbline2movsbuf,#0;檢查重點(diǎn)已被選擇serial:jnbti,serial;等待發(fā)送串行時(shí)鐘clrtijnbline1,keyinjnbline2,keyin;或更關(guān)鍵的被選擇ajmpnokey;沒(méi)有關(guān)鍵keyin:lcalldelay_10ms;延遲10msjnbline1,keyline1jnbline2,keyline2ajmpnokeykeyline1:movr3,#0setblineflag;lineflag是第一線(xiàn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鷹課件語(yǔ)文教學(xué)課件
- 特殊旅客課件教學(xué)課件
- 2024年度建設(shè)工程施工合同工期與質(zhì)量要求
- 2024年度維修保養(yǎng)服務(wù)合同
- 2024年城鄉(xiāng)供水工程特許經(jīng)營(yíng)合同
- 2024年度設(shè)備采購(gòu)合同:甲乙雙方在二零二四年就某設(shè)備的采購(gòu)的詳細(xì)合同條款
- 2024企業(yè)人力資源管理與聘用合同詳細(xì)規(guī)定
- 2024年家長(zhǎng)學(xué)生老師三方面協(xié)議
- 2024年國(guó)際貨物買(mǎi)賣(mài)合同:機(jī)械設(shè)備
- 【初中生物】觀察周邊環(huán)境中的生物+課件2024-2025學(xué)年人教版生物七年級(jí)上冊(cè)
- 辦稅服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
- 冷庫(kù)是有限空間應(yīng)急預(yù)案
- 基于PLC的機(jī)械手控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 足軟組織感染的護(hù)理查房
- 建設(shè)項(xiàng)目竣工環(huán)境保護(hù)驗(yàn)收管理辦法
- 植物學(xué)課件:第二章 種子和幼苗
- 一日生活中幼兒自主探究行為的表現(xiàn)及支持策略研究
- 第8課 用制度體系保證人民當(dāng)家做主
- 軟件測(cè)試規(guī)范模板
- 足皮膚感染的護(hù)理課件
- 新蘇教版六年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)(精編)
評(píng)論
0/150
提交評(píng)論