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