




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于AT89C52的溫控儀的軟件設(shè)計1 緒論1.1 概述溫度是工業(yè)生產(chǎn)中常見并且十分重要的參數(shù)之一,任何物理變化和化學(xué)變化的過程都與溫度密切相關(guān), 因此常需要監(jiān)測環(huán)境溫度變化并對被控對象進行控制及調(diào)節(jié),特別是在冶金、石油、食品、印染等工廠中。因此, 在生產(chǎn)過程中常需對溫度進行檢測和監(jiān)控。不同的工藝所需的溫度變化曲線各不相同,而現(xiàn)有的溫度控制儀大多只能進行恒溫控制,許多生產(chǎn)過程中加熱、保溫、降溫以及自然降溫等操作都是由人工操作的,這就不可避免地產(chǎn)生各種誤差,進而影響產(chǎn)品質(zhì)量。個別采用的溫度自動控制系統(tǒng)由于造價較高、操作復(fù)雜等原因又限制了在中小企業(yè)的應(yīng)用,因此,研究和開發(fā)一種實用的溫度控制系統(tǒng)成為
2、當(dāng)務(wù)之急。采用微型機進行溫度檢測、數(shù)字顯示、信息存儲及實時控制,對于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用。而溫度測控在工業(yè)領(lǐng)域具有廣泛的應(yīng)用,傳感器技術(shù)、微電子技術(shù)、單片機技術(shù)的不斷發(fā)展,為智能溫度測控1功能的完善、測控精度的提高和抗干擾能力的增強等提供了條件。由于單片機具有集成度高、功能強、體積小、價格低、抗干擾能力強等優(yōu)于一般CPU的優(yōu)點,因此,在要求較高控制精度和較低成本的工業(yè)測溫系統(tǒng)中,往往采用單片機作為數(shù)字控制器取代模擬控制器。采用AT89C52單片機進行控制,可以有效的節(jié)約成本提高性價比。本文采用模糊控制2的算法是在單片機中實現(xiàn)的,單片機作為核心控制器,為了使硬件更為簡
3、單,本文在軟件方面設(shè)置了較多的控制子程序,如溫度采集子程序、溫度轉(zhuǎn)換子程序、濾波子程序、定時子程序、顯示子程序。環(huán)境溫度可以先用溫度傳感器采集再通過A/D采樣取得,也可以直接利用數(shù)字溫度傳感器DS18B20來實現(xiàn)。不管采用什么方法采集溫度,都需要與單片機進行接口,根據(jù)預(yù)置值與實際數(shù)值的比對,并根據(jù)比對的結(jié)果進行調(diào)節(jié)。單片機可以選用AT89系列3,大容量的存儲空間可以使電路更為簡單,操作更方便。溫度控制器主要是采集外部溫度數(shù)據(jù),從而達到控制溫度的目的,此時就要用到傳感器,在選用溫度傳感器時可以選用熱電式溫度傳感器,電動勢信號便于傳送。單片機數(shù)據(jù)采集,可以通過傳感器向A/D轉(zhuǎn)換器傳輸數(shù)據(jù)(采集數(shù)據(jù)
4、的時間間隔可以由上位機設(shè)定),當(dāng)單片機接收到數(shù)據(jù)后,可以根據(jù)軟件中的溫度采集子程序?qū)?shù)據(jù)進行整理,根據(jù)預(yù)期值的要求向執(zhí)行機構(gòu)發(fā)出控制指令,達到控制溫度的目的。在A/D轉(zhuǎn)換過程中,由于被測對象工作環(huán)境的原因,輸入信號中常含有各種噪聲和干擾,如電場、磁場以及溫濕度場等的輻射引起的干擾,影響了系統(tǒng)的穩(wěn)定和精度。為了減少對采樣值的干擾,提高信噪比,提高系統(tǒng)精度以及系統(tǒng)穩(wěn)定性和可靠性,在模擬系統(tǒng)中往往采用RC濾波電路。而在微機組成的測控系統(tǒng)中則常采用數(shù)字濾波的方法,它與模擬濾波器相比較有以下優(yōu)點:1、用程序?qū)崿F(xiàn)數(shù)字濾波,無需增加任何硬件設(shè)備,不存在阻抗匹配問題,可實現(xiàn)多通道共享,降低系統(tǒng)成本。2、可以對
5、頻率很低的信號實現(xiàn)濾波,而RC濾波由于受電容容量的影響,頻率不能太低。3、可根據(jù)需要編制不同的濾波程序,以選擇不同的濾波方式,使用靈活方便。由于數(shù)字濾波具有上述優(yōu)點,因而在一些測控系統(tǒng)中被廣泛應(yīng)用。數(shù)字濾波的方法很多,通常運用算術(shù)平均值濾波和換熱中值法濾波4。本文采樣中值濾波法。本文密切結(jié)合實際課題進行研究,針對溫控儀系統(tǒng)的開發(fā)需求,提出并設(shè)計了一個基于模糊控制算法的溫度控制系統(tǒng),實驗調(diào)試和仿真結(jié)果驗證了本系統(tǒng)的可行性。1.2溫控儀的發(fā)展與現(xiàn)狀溫控儀系統(tǒng)在國內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫控儀來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進國家相比,仍然有著較大的差距。成
6、熟的溫控產(chǎn)品主要以“點位”控制及常規(guī)的PID控制器為主,它們只能適應(yīng)一般的溫度控制系統(tǒng),而用于較高控制場合的智能化、自適應(yīng)控制儀表,國內(nèi)技術(shù)還不十分成熟,形成商品化并廣泛應(yīng)用的控制儀表較少。隨著我國經(jīng)濟的發(fā)展及加入WTO,我國政府及企業(yè)對此都非常重視,對相關(guān)企業(yè)資源進行了重組,相繼建立了一些國家、企業(yè)的研發(fā)中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。目前,溫控儀產(chǎn)品從模擬、集成溫度控制器發(fā)展到智能數(shù)碼溫度控制器。智能溫控儀(數(shù)字溫控器)是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)合,特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種控制器,并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)控制功能的,
7、其智能化程度也取決于軟件的開發(fā)水平,現(xiàn)階段正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性的方向迅速發(fā)展。溫度控制技術(shù)按照控制目標(biāo)的不同可分為兩類:動態(tài)溫度跟蹤與恒值溫度控制。動態(tài)溫度跟蹤實現(xiàn)的控制目標(biāo)是使被控對象的溫度值按預(yù)先設(shè)定好的曲線進行變化。在工業(yè)生產(chǎn)中很多場合需要實現(xiàn)這一控制目標(biāo),如發(fā)酵過程控制,化工生產(chǎn)中的化學(xué)反應(yīng)溫度控制,冶金工廠中燃燒爐中的溫度控制等;恒值溫度控制的目的是使被控對象的溫度恒定在某一給定數(shù)值上,且要求其波動幅度(即穩(wěn)態(tài)誤差)不能超過某允許值。1.3 AT89C52單片機簡介Intel公司繼1976年推出MCS-48系列8位單片機之后,又于1980年推出了MCS-
8、51系列高檔8位單片機。至今20多年來,51系列單片機經(jīng)久不衰,并得到廣泛的應(yīng)用。近幾年來,世界上很多生產(chǎn)半導(dǎo)體的大公司都開始生產(chǎn)以8051為內(nèi)核的單片機,比如ATMEL/PHLIPS/SST公司的AT89/P89/STC89系列和AT87/P87系列單片機,越來越多地得到廣泛應(yīng)用5。在51系列單片機中有多種型號的產(chǎn)品,分為普通型和增強型。本文所用的AT89C52單片機就是增強型的一種,它的程序存儲器的容量是普通型的兩倍。AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采
9、用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。它將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,
10、以適應(yīng)不同產(chǎn)品的需求。目前單片機已經(jīng)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用是每一個電子愛好者的首選。1.4 本章小結(jié)本章首先對所研究課題的背景做以闡述,然后介紹了溫控儀發(fā)展的不同階段和發(fā)展趨勢,簡單介紹了AT89C52單片機及其應(yīng)用,進一步說明了溫控儀
11、設(shè)計的意義。2 系統(tǒng)控制算法的實現(xiàn)2.1 模糊控制的基本原理模糊控制的基本原理6如圖1所示,它的核心部分是模糊控制器,如圖中的虛線框部分表示,它主要包括輸入量的模糊化、模糊推理和逆模糊化(或稱模糊判決)3部分。計算誤差變化控制規(guī)則執(zhí)行機構(gòu)傳感器A/DeecEEC模糊化處理U逆模糊化模糊推理y給定值r被控制量被控對象 圖1 模糊控制的原理圖2.2模糊控制程序的設(shè)計思想本系統(tǒng)所用的模糊控制器由單片機AT89C52的程序來實現(xiàn),用單片機實現(xiàn)的具體過程如下:(1)求系統(tǒng)給定值與反饋值的誤差e。(2)計算誤差變化率ec(即de/dt)。(3)輸入量的模糊化。將前邊得到的誤差及誤差變化率的精確值模糊化,變
12、成模糊量E、EC(dE/dt),并將控制量輸出量u模糊化為U。(4)編寫控制規(guī)則。(5)進行模糊推理。(6)逆模糊化。(7)建立模糊控制查詢表,以便單片機查表快速控制。單片機執(zhí)行完(1)(6)步驟后,即完成了對被控對象的一步控制,然后等到下一次A/D采樣,再進行第二步控制,這樣循環(huán)下去,就完成了對被控對象的控制。2.3 模糊控制算法的實現(xiàn)2.3.1 模糊控制規(guī)則表的建立本系統(tǒng)采用溫度誤差e和溫度變化率ec作為模糊控制器的輸入變量,溫度控制量u作為模糊控制器的輸出變量。系統(tǒng)中溫度誤差e、溫度誤差變化率ec、控制量u的基本論域分別為5,5、2, 2和0,1。本系統(tǒng)輸入語言變量的語言值取7個,輸出控
13、制量用于控制繼電器驅(qū)動電路。將占空比模糊控制量設(shè)定為0、1/4、1/2、3/4、1五個單點模糊量和一個控制風(fēng)扇吹風(fēng)的單點控制模糊量。因此本系統(tǒng)中的輸出語言變量的語言值取6個:當(dāng)U=0時,單片機P3.5口置低電平,使風(fēng)扇控制電路工作;當(dāng)U=1時,加熱絲控制電路工作,且繼電器在1個周期內(nèi)全關(guān)斷;當(dāng)U=2時,加熱絲控制電路工作,且繼電器在1/4個周期內(nèi)接通,在3/4個周期內(nèi)關(guān)斷。依次類推,當(dāng)U=5時,加熱絲控制電路工作,且繼電器在1個周期內(nèi)全接通。系統(tǒng)控制規(guī)則如表1所列。表1 系統(tǒng)控制規(guī)則ECUENLNMNS0PSPMPLNLLLLLLMSMZNMLLLLLMZZNSLLMMSMZZN0LMMSMZ
14、ZNNPSMSMZZZNNPMZZZNNNNPLZZZNNNN系統(tǒng)使用最大中心法實現(xiàn)解模糊化。系統(tǒng)的模糊控制規(guī)則查詢表如表2所列。表2 模糊控制查詢表EEC543210123451055555543211955555542211855555542211755555542111655555542111555555542111455544432111355544432111255444322100155443211100044332111000133221110000222221110000322211000000422211000000511111000000611111000000711111
15、00000081111100000091111100000010111110000002.3.2 模糊控制算法應(yīng)用程序的實現(xiàn)溫度誤差e和溫度誤差變化率ec的最壞情況值均為100,在此建立的溫度誤差e和溫度誤差變化率ec的基本論域分別為5,5、2, 2。這樣就必須對溫度誤差e和溫度誤差變化率ec限幅,溫度誤差e分下列3種情況:若e5,則取e=5;若e5,則取e=5;否則若5e5時,采用四舍五入的方法對其取整,得到e后再對其進行量化處理。同理,溫度誤差變化率ec也分下列3種情況:若ec2.5,則取ec=2.5;若ec2.5則取ec=2.5;否則若2.5ec2.5時,采用四舍五入的方法對其取整,得到
16、ec后再對其進行量化處理。這樣就可以使溫度誤差e和溫度誤差變化率ec在整個測控溫度變化范圍內(nèi),即0,100內(nèi),控制量都可以起到作用。由于誤差和誤差變化率均可正可負(fù),因此將要比較進行分支的有符號數(shù)與零進行比較為負(fù)則轉(zhuǎn)到負(fù)數(shù)程序執(zhí)行,再與其余負(fù)數(shù)中的值進行比較,兩數(shù)相減,若結(jié)果中的符號位CF=1,說明被減數(shù)小于減數(shù),CF=0,說明被減數(shù)大于減數(shù);否則為正則轉(zhuǎn)到正數(shù)程序執(zhí)行,再與其余正數(shù)中的值進行比較,兩數(shù)相減,若結(jié)果中的符號位CF=1,說明被減數(shù)小于減數(shù),CF=0,說明被減數(shù)大于減數(shù)??刂屏孔饔玫恼伎毡茸映绦?,采用定時程序來完成,調(diào)整占空比時,使T0、T1同時配合使用,T0專用于置低電平定時,即雙
17、向可控硅導(dǎo)通,T1專用于置高電平定時,即雙向可控硅關(guān)斷,在總定時周期不變的情況下,調(diào)節(jié)T0、T1的定時時間,以改變其占空比的大小,來完成對控制量的操作。2.4 本章小結(jié)本章較系統(tǒng)地介紹了本文中所需用的控制算法,也就是模糊控制算法。首先對這種算法的基本原理做了介紹,然后講述了模糊控制程序的設(shè)計思想,最后通過詳細(xì)介紹模糊控制規(guī)則表的建立以及模糊控制算法應(yīng)用程序的實現(xiàn)講述了模糊控制算法的實現(xiàn)。3 系統(tǒng)軟件的實現(xiàn)鉑電阻測溫系統(tǒng)7的主程序流程圖如圖2所示。開 始啟動A/D賦初值調(diào)數(shù)據(jù)采集子程序調(diào)數(shù)字濾波子程序調(diào)溫標(biāo)變換子程序調(diào)顯示子程序誤差e處理子程序誤差變化率ec處理子程序調(diào)E、EC量化子程序調(diào)控制子
18、程序調(diào)溫標(biāo)變換子程序調(diào)顯示子程序結(jié) 束調(diào)鍵盤處理 子程序YNS1鍵按下嗎?數(shù)據(jù)采集子程序圖2 鉑電阻測溫系統(tǒng)的主程序流程圖3.1 A/D轉(zhuǎn)換子程序先送地址鎖存允許信號ALE一上跳沿,使A、B、C地址狀態(tài)送入地址鎖存器中,然后送START一上跳沿使內(nèi)部寄存器清0,再給其一下跳沿,開始進行A/D轉(zhuǎn)換,然后判斷轉(zhuǎn)換結(jié)束狀態(tài)信號EOC是否為1,為0則繼續(xù)等待轉(zhuǎn)換,為1則將轉(zhuǎn)換好的數(shù)字量經(jīng)ADC0808的8個數(shù)據(jù)輸出端D0D8送到AT89C52的P0.0P0.7口。流程圖如3所示。開 始送ALE上跳沿,鎖存地址送START上跳沿,內(nèi)部寄存器清0送START下降沿,啟動A/D轉(zhuǎn)換返 回YNEOC=0嗎?取
19、A/D轉(zhuǎn)換數(shù)據(jù),送R0圖3 A/D轉(zhuǎn)換處理子程序流程圖3.2 鍵盤處理子程序鍵盤處理子程序完成了輸入控制系統(tǒng)的設(shè)定值的功能,以便與系統(tǒng)的采樣值比較,求出系統(tǒng)的誤差和誤差變化率,供以后的模糊控制子程序使用。在這個模塊里,硬件電路設(shè)計中使用了兩個雙穩(wěn)態(tài)開關(guān)和兩個按鈕開關(guān),兩個雙穩(wěn)態(tài)開關(guān)分別作為第1鍵和第2鍵,兩個按鈕開關(guān)分別為第3鍵和第4鍵,第1鍵來判斷是轉(zhuǎn)入控制處理子程序運行,還是轉(zhuǎn)入鍵盤處理子程序運行。用第2鍵來判斷是進行十位加一或減一操作,還是進行個位加一或減一操作。若第1鍵按下,第2鍵未按下,轉(zhuǎn)入十位進行加一或減一的操作;若第1鍵和第2鍵都按下,轉(zhuǎn)入個位進行加一或減一的操作。第3鍵為減一操
20、作,第4鍵為加一操作。鍵盤處理子程序流程圖如圖4所示。開 始YNS1鍵按下嗎?YNYNS2鍵按下嗎?S3鍵按下嗎?顯示緩沖器十位減一調(diào)顯示程序調(diào)控制子程序S4鍵按下嗎?顯示緩沖器十位加一調(diào)顯示程序YNYN調(diào)顯示程序調(diào)顯示程序顯示緩沖器個位減一顯示緩沖器個位加一K3鍵按下嗎?K4鍵按下嗎?返 回圖4 鍵盤處理子程序流程圖3.3 溫度標(biāo)度變換模塊模擬系統(tǒng)在讀入被測模擬信號并轉(zhuǎn)換成數(shù)字量后,需轉(zhuǎn)換成操作人員所熟悉的物理量。這種轉(zhuǎn)換就是標(biāo)度變換。線性標(biāo)度變換的公式為: (1)上式中,Y為參數(shù)測量值;Ymax為測量范圍最大值;Ymin為測量范圍最小值;Ymax為對應(yīng)的A/D轉(zhuǎn)換值;Nmin為Ymin對應(yīng)
21、的A/D轉(zhuǎn)換值;X為測量值Y對應(yīng)的A/D轉(zhuǎn)換值。本系統(tǒng)中, Ymin=0,Ymax =100,Nmin=0,Nmax=255,則 (2)其中,,。由于x的系數(shù)為小數(shù),在單片機中編制像0.39這樣的小數(shù)的乘法程序很難實現(xiàn),如果將其近似取值為0.4,則乘以最大A/D轉(zhuǎn)換值后,會產(chǎn)生的誤差。所以,設(shè)線性系數(shù)為a1,最終轉(zhuǎn)化的結(jié)果為100,通過可確定系數(shù)。是四舍五入取100還是取101,將其放入單片機進行調(diào)試,結(jié)果發(fā)現(xiàn)取100時,顯示最高只能顯示99,所以選用101。3.4 顯示子程序顯示模塊8的功能為:使第1個數(shù)碼管顯示A/D轉(zhuǎn)化數(shù)據(jù)采集的采樣值,而第2個數(shù)碼管顯示由鍵盤輸入的設(shè)定值,用于顯示對系統(tǒng)
22、溫度的設(shè)定,在整個系統(tǒng)進行測控的過程中,兩數(shù)碼管同時顯示,顯示程序中采樣值顯示采用了常規(guī)的顯示程序,不再贅述,這里只談編寫顯示程序中鍵盤顯示時的一點注意,由于最后生成的設(shè)定值是由十位或個位的加1鍵和十位或個位的減1鍵輸入,須嚴(yán)格區(qū)分才可以編制其顯示程序,此處采用的方法是將個位的加1、減1鍵輸入的值存放在28H,而十位的加1、減1鍵輸入的值存放在34H,然后驅(qū)動不同的位碼即可正常顯示。流程圖如圖5所示。開 始二進制轉(zhuǎn)化為十進制送A/D采集百位數(shù)顯示延時送A/D采集十位數(shù)顯示延時送A/D采集個位數(shù)顯示延時送鍵盤處理百位數(shù)顯示延時送鍵盤處理十位數(shù)顯示延時送鍵盤處理個位數(shù)顯示延時結(jié) 束圖5 顯示處理子
23、程序流程圖3.5 定時子程定時程序主要是用于完成模糊查詢表的占空比控制,總體思想是根據(jù)模糊控制表中占空比控制變量U的不同取值,采用不同的定時來改變繼電器的通斷,進而完成對加熱和風(fēng)扇的控制。開 始置定時方式1T0循環(huán)次數(shù)送寄存器R2T1循環(huán)次數(shù)送寄存器R6P3.4口置低電平T0賦定時初值啟動T0T1賦定時初值啟動T1調(diào)溫標(biāo)變換子程序調(diào)顯示子程序結(jié) 束調(diào)顯示子程序YNR2為0嗎?P3.4口置高電平Y(jié)N10ms到了嗎?YNR6為0嗎?NY10ms到了嗎?調(diào)溫標(biāo)變換子程序圖6 定時處理子程序根據(jù)繼電器的機械特性,要求其不能頻繁通斷,所以通斷要有一定長的時間,但又要考慮到控制能及時的根據(jù)新的采樣值和設(shè)定
24、值的變化來做出相應(yīng)的動作,所以采用以下方法:以占空比1/4為例說明,定時器T0、T1 仍都采用方式1定時,T0專用于置低電平時,即雙向可控硅導(dǎo)通,T1專用于置高電平時,即雙向可控硅關(guān)斷,先將P3.4口置低電平,啟動T0定時,定時長度僅取10ms,高字節(jié)存放0ECH,低字節(jié)存放78H,循環(huán)次數(shù)為1次,每次10ms定時完成后,不直接進行循環(huán),而是插入數(shù)據(jù)采集程、標(biāo)度變換和顯示程序,然后再進行循環(huán),循環(huán)1次后,P3.4口置高電平,啟動T1定時,為了方便計算占空比,定時長度仍取10ms,循環(huán)次數(shù)為3次,同上,10ms定時完成后,仍不直接進行循環(huán),而是插入數(shù)據(jù)采集程、標(biāo)度變換和顯示程序,然后再進行循環(huán),
25、循環(huán)3次后返回主程序,這樣就完成了占空比為1/4的定時。流程圖如圖6所示。3.6 量化子程序?qū)τ谙到y(tǒng)采樣值和設(shè)定值求出的溫度誤差e和溫度變化率ec,不能直接查詢模糊控制表,需要經(jīng)過量化程序,得到量化后誤差變量E和誤差變化率變量EC才可以對應(yīng)于誤差控制表的行列值,進行查詢控制,所以需要編制量化程序。溫度誤差e的量化較簡單,量化子程序流程圖如圖7所示。開 始取誤差e符號C1取誤差e量化因子Ke結(jié) 束YNC1=1嗎?誤差e量化結(jié)果求補求誤差e量化結(jié)果取誤差e量化因子Ke求誤差e量化結(jié)果誤差e求補圖7 量化子程序流程圖溫度變化率ec的量化因子Kec=2.5,采用整數(shù)和小數(shù)分而治之的方法,先將誤差變化率
26、ec乘以2,送入量化暫存單元2CH,再取誤差變化率ec,將其除以2送入量化暫存單元2DH,再使2CH和2DH里的內(nèi)容相加,即可完成量化因子2.5的功能,誤差變化率ec的量化子程序流程圖同理可得。3.7 其他模塊開 始31H送ANYYYYYYNNNNN(31H)(32H)嗎?(31H)(32H)嗎?(31H)與(32H)交換(32H)(33H)嗎?(32H)(33H)嗎?(31H)(33H)嗎?(33H)(31H)嗎?(31H)送2AH結(jié) 束(32H)送2AH(32H)送2AH(32H)送2AH(33H)送2AH(33H)送2AH圖8 中值數(shù)字濾波子程序流程圖模擬信號都必須經(jīng)過A/D轉(zhuǎn)換后才能被
27、計算機接受,干擾作用于模擬信號之后,使A/D轉(zhuǎn)換結(jié)果偏離真實值。如果僅采樣一次,單片機無法確定該結(jié)果是否可信,也就是說在系統(tǒng)中存在干擾,本系統(tǒng)中,在軟件方面的抗干擾9措施主要是從以下兩個方面來考慮:(l)按鍵的軟件消抖措施按鍵是一個機械開關(guān),當(dāng)鍵按下時,開關(guān)閉合;當(dāng)鍵松開時,開關(guān)斷開。其特點之一就是它的抖動性,這是由按鍵的機械特性所決定的,抖動的時間一般約為l0ms 20ms。對于按鍵消抖的具體措施目前有兩種:一是用硬件電路來實現(xiàn),即用RC濾波電路濾除抖動。另一種是用軟件延時的方法來解決,即利用軟件的延時避開按鍵的按下與抬起時都有的抖動期,從而避免檢測到干擾信號。本文采用的就是軟件延時消抖的方
28、法。附錄中給出了延時程序的源程序,同時延時程序還作為通用功能模塊被其他模塊調(diào)用;(2)數(shù)字濾波數(shù)字濾波是將一組輸入數(shù)字序列進行一定的運算而轉(zhuǎn)換成另一組輸出數(shù)字序列的方法,采用軟件濾波算法不需要增加硬件設(shè)備,可靠性高,功能多樣,使用靈活,但是要占用一定的處理器運行時間。在本系統(tǒng)設(shè)計中,采用了數(shù)字濾波的軟件抗干擾措施,即加進了中值數(shù)字濾波子程序,流程圖如圖8所示。另外為了進行采樣值數(shù)碼顯示加入了二-十進制轉(zhuǎn)換子程序,為了求取誤差及誤差變化率,加入將鍵盤設(shè)定值進行十-二進制轉(zhuǎn)換的子程序。3.8 本章小結(jié)本章是本文的重點部分,主要講述了基于AT89C52的溫控儀系統(tǒng)的整體軟件設(shè)計流程,分別介紹了A/D
29、轉(zhuǎn)換子程序、鍵盤處理子程序、溫度標(biāo)度變換模塊、顯示子程序、定時子程序,量化子程序以及其它一些模塊的設(shè)計流程及實現(xiàn)方法。其中也介紹了軟件的抗干擾措施。 4 系統(tǒng)調(diào)試4.1 Proteus軟件介紹本文是基于Proteus7.4軟件進行仿真的。Proteus10是目前最好的模擬單片機外圍器件的工具,它可以仿真51 系列、AVR,PIC 等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC 器件.)。不過,軟件仿真精度有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開發(fā)板和仿真器當(dāng)然是最好選擇,但對于簡單的開發(fā)應(yīng)該是比較好的選擇。Prot
30、eus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。PROTEUS特點:1、Proteus軟件提供了數(shù)千種元器件和多達30多個元件庫。2、在Proteus軟件中,理論上同一種儀器可以在一個電路中隨意的調(diào)用。3、除了現(xiàn)實存在的儀器外,Proteus還可以以圖形的方式實時地顯示線路上變化的信號。4、虛擬儀器儀
31、表具有理想的參數(shù)指標(biāo),可減少儀器對測量結(jié)果的影響。5、Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。6、具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。7、目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。8、支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其
32、強大 ,可仿真51、AVR、PIC。4.2 Keil uVision2軟件介紹 Keil uVision211集成開發(fā)環(huán)境是Keil Software Inc/Keil Elektronik GmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺,內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立和管理、編譯、連接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程,由于編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達到了較高的水平,而且可以附加靈活的控制選項,在開發(fā)大型項目時非常理想。由于Keil本身是一個純軟件的東西,還不能直接進行硬件仿真,需要連接其他仿真器。uVision2軟件調(diào)試器能十分理
33、想地進行快速、可靠的程序調(diào)試,調(diào)試器包括一個高速模擬器,可以用它模擬整個80C51系統(tǒng)。Keil特點:1、全功能的源代碼編輯器;2、器件庫用來配置開發(fā)工具設(shè)置;3、項目管理器用來創(chuàng)建和維護用戶的項目;4、集成的MAKE工具可以匯編、編譯和連接用戶嵌入式應(yīng)用;5、所有開發(fā)工具的設(shè)置都是對話框形式的;6、真正的源代碼級的對CPU和外圍器件的調(diào)試器;7、高級GDI(AGDI)接口用來在目標(biāo)硬件上進行軟件調(diào)試以及和Monitor-51進行通信。4.3 系統(tǒng)軟件調(diào)試系統(tǒng)的軟件調(diào)試借助于Proteus7.4軟件,在進行系統(tǒng)軟件的連續(xù)調(diào)試之前要先將程序編譯成功,在keil uVision2里編譯后生成TEM
34、.HEX文件,然后才能在Proteus里仿真。圖9 實測溫度48、設(shè)定溫度55時測溫系統(tǒng)仿真圖本文中使用了分析圖表的方法顯示系統(tǒng)在不同溫度情形下加熱器控制信號輸出端口與風(fēng)扇控制信號輸出端口的占空比,其中ADC0808的模擬信號輸入端用DC信號源提供。P3.4和P3.5引腳輸出控制信號。當(dāng)輸入電壓為2.7V時,系統(tǒng)的輸出顯示實際溫度為48,而系統(tǒng)的設(shè)定溫度為55,系統(tǒng)仿真圖如圖9所示。此時系統(tǒng)的實際溫度小于設(shè)定溫度,系統(tǒng)中的加熱絲控制電路開始工作。其系統(tǒng)輸出控制信號如圖10所示。 圖10 設(shè)定溫度為55、實際溫度為48時,系統(tǒng)輸出的控制信號圖11 設(shè)定溫度為55、實際溫度為60時,系統(tǒng)輸出的控制
35、信號當(dāng)設(shè)定溫度為55、實際溫度為60時,系統(tǒng)實際溫度大于設(shè)定溫度,系統(tǒng)中的風(fēng)扇控制電路開始工作,系統(tǒng)輸出控制信號如圖11所示,系統(tǒng)仿真圖如圖12所示。從系統(tǒng)的仿真結(jié)果可知,本系統(tǒng)的設(shè)計是滿足設(shè)計要求的。圖12 設(shè)定溫度為55、實際溫度為60時測溫系統(tǒng)仿真圖4.4本章小結(jié)本章主要介紹了仿真軟件Protues和Keil uVision2及其特點,運用分析圖表進行了系統(tǒng)軟件的調(diào)試。根據(jù)實際溫度與設(shè)定溫度的不同差值得出仿真結(jié)果,最終得出本設(shè)計是滿足設(shè)計要求的。結(jié)束語 本文是基于AT89C52的溫控儀的軟件設(shè)計,本文先從溫度測控技術(shù)的發(fā)展與現(xiàn)狀以及單片機技術(shù)的發(fā)展歷史進行介紹。確定選用模糊控制作為系統(tǒng)控
36、制算法,分別論述了模糊控制的基本原理及模糊控制算法的實現(xiàn)方法。在系統(tǒng)軟件設(shè)計方面,主要包括A/D轉(zhuǎn)換子程序模塊、鍵盤處理子程序模塊、溫度標(biāo)度變換模塊、顯示子程序模塊、定時子程序模塊、量化子程序模塊等。通過對溫控儀方面資料的查閱,針對本課題的特點,采用了模糊控制方案。用單片機進行溫度控制和數(shù)據(jù)采集,完成了以單片機為物理基礎(chǔ)的溫度控制系統(tǒng)的軟件設(shè)計,用Keil軟件與Proteus軟件相結(jié)合進行了系統(tǒng)調(diào)試。當(dāng)然,在設(shè)計過程中也出現(xiàn)了一些問題,比如溫度控制算法的選用,常用的控制算法除了模糊控制方法外還有PID控制、SMITH算法、DAHLIN控制等,但最終經(jīng)過論證由于模糊控制算法方便易懂、執(zhí)行簡便、成本低廉,所以本設(shè)計采用了模糊控制算法。另外在設(shè)計中如果僅采樣一次,單片機無法確定該結(jié)果是否可信,為了克服干擾,系統(tǒng)中加入了中值數(shù)字濾波子程序,使系統(tǒng)更具有可靠性。之前并不了解PROTEUS軟件,通過此次設(shè)計學(xué)會了使用這個仿真軟件,使我覺得自己又掌握了一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人類疾病學(xué)概論考試題含答案
- 2025應(yīng)屆生在簽訂勞動合同過程中應(yīng)注意什么細(xì)節(jié)
- 代理銷售協(xié)議規(guī)定
- 浙江國企招聘2025寧波前灣產(chǎn)業(yè)集團有限公司第1批次招聘10人筆試參考題庫附帶答案詳解
- 2025貴州高速公路集團有限公司招聘77人筆試參考題庫附帶答案詳解
- 2025招商新檢及成員公司招聘(53人)筆試參考題庫附帶答案詳解
- 2025山東滕州市悟通香料有限責(zé)任公司省博士后創(chuàng)新實踐基地招聘筆試參考題庫附帶答案詳解
- 2025上半年貴州畢節(jié)市納雍縣鴿子花農(nóng)業(yè)有限公司招聘10人筆試參考題庫附帶答案詳解
- 紡織檢測領(lǐng)域的發(fā)展趨勢試題及答案
- 紡織工程師證書考試常見誤區(qū)試題及答案
- 針刺傷的預(yù)防及處理(課堂PPT)
- 畢業(yè)設(shè)計粗飼料粉碎機的設(shè)計全套CAD圖紙
- 植物基酸奶項目說明(范文模板)
- 鈑金報價計算表(強)
- IATF16949過程審核檢查表模版
- 云南某公司合并財務(wù)報表附注
- 單相半橋逆變電路
- 第5章 瓦斯抽采參數(shù)的測定及計算
- 南外加試卷精華.doc
- DSP的指令系統(tǒng)
- 節(jié)能施工專項方案(完整版)
評論
0/150
提交評論