基于單片機的水溫控制系統(tǒng)設(shè)計資料
基于單片機的水溫控制系統(tǒng)設(shè)計資料,基于,單片機,水溫,控制系統(tǒng),設(shè)計,資料
基于單片機的水溫控制系統(tǒng)設(shè)計目 錄摘 要4第1節(jié) 課題任務(wù)要求 .5第2節(jié) 總體方案設(shè)計 .52.1 總體方案確定.6 2.1.1 控制方法選擇.6 2.1.2 系統(tǒng)組成7 2.1.3 單片機系統(tǒng)選擇7 2.1.4 溫度控制.7 2.1.5 方案選擇.7第3節(jié) 系統(tǒng)硬件設(shè)計.83.1 系統(tǒng)框圖.83.2 程序流程圖.12第4節(jié) 參數(shù)計算.164.1 系統(tǒng)模塊設(shè)計.16 4.1.1 溫度采集及轉(zhuǎn)換.164.1.2 傳感器輸出信號放大.17 4.1.3模數(shù)轉(zhuǎn)換.184.1.4 外圍電路設(shè)計.194.1.5 數(shù)值處理及顯示部分.194.1.6 PID算法介紹.194.1.7 A/D轉(zhuǎn)換模塊.204.1.8 控制模塊.214.2 系統(tǒng)硬件調(diào)試.21第5節(jié) CPU軟件抗干擾 .245.1 看門狗設(shè)計.24第6節(jié) 測試方法和測試結(jié)果276.1 系統(tǒng)測試儀器及設(shè)備.276.2 測試方法.276.3 測試結(jié)果27結(jié)束語 .29 參考文獻(xiàn).30基于單片機的水溫控制系統(tǒng)設(shè)計摘要:本系統(tǒng)以AT89C51,AT89C2051單片機為核心,主要包括傳感器溫度采集,A/D模/數(shù)轉(zhuǎn)換,按扭操作,單片機控制,數(shù)碼管數(shù)字顯示等部分。本系統(tǒng)采用PID算法實現(xiàn)溫度控制功能,通過串行通信完成兩片單片機信息的交互而實現(xiàn)溫度設(shè)定、控制和顯示。本設(shè)計還可以通過串口與上位機(電腦)連接,實現(xiàn)電腦控制。系統(tǒng)設(shè)計有體積小、交互性強等優(yōu)點。為了實現(xiàn)高精度的水溫控制,本單片機系統(tǒng)采用PID算法控制和PWM脈寬調(diào)制相結(jié)合的技術(shù),通過控制雙向可控硅改變電爐和電源的接通、斷開,從而改變水溫加熱時間的方法來實現(xiàn)對水溫的控制。本系統(tǒng)由鍵盤顯示和溫度控制兩個模塊組成,通過模塊間的通信完成溫度設(shè)定、實溫顯示、水溫升降等功能。具有電路結(jié)構(gòu)簡單、程序簡短、系統(tǒng)可靠性高、操作簡便等特點。第1節(jié) 課題任務(wù)與要求:1.基本要求 一升水由1kw的電爐加熱,要求水溫可以在一定范圍內(nèi)由人工設(shè)定,并能在環(huán)境溫度降低時實現(xiàn)自動調(diào)整,以保持設(shè)定的溫度基本不變。2.主要性能指標(biāo)a. 溫度設(shè)定范圍:30-90,最小區(qū)分度為1。b. 控制精度:溫度控制的靜態(tài)誤差1。c. 用十進(jìn)制數(shù)碼顯示實際水溫。d. 能打印實測水溫值。3.擴展功能a. 具有通信能力,可接受其他數(shù)據(jù)設(shè)備發(fā)來的命令,或?qū)⒔Y(jié)果傳送到其他數(shù)據(jù)設(shè)備。b. 采用適當(dāng)?shù)目刂品椒▽崿F(xiàn)當(dāng)設(shè)定溫度與環(huán)境溫度突變時,減小系統(tǒng)的調(diào)節(jié)時間和超調(diào)量。c. 溫度控制的靜態(tài)誤差1。d. 能自動顯示水溫隨時間變化的曲線。第2節(jié) 總體方案設(shè)計2.1總體方案的確定2.1.1、控制方法選擇由于水溫控制系統(tǒng)的控制對象具有熱存儲能力大,慣性也較大的特點。水在容器內(nèi)的流動或熱量傳遞都存在一定的阻力,因而可以歸于具有純滯后的一階大慣性環(huán)節(jié)。一般來說,熱過程大多具有較大的滯后,它對任何信號的響應(yīng)都會推遲一段時間,使輸出與輸入之間產(chǎn)生相移。對于這樣一些存在大的滯后特性的過渡過程控制,一般來說可以采用以下幾種控制方案:(1)輸出開關(guān)量控制:對于慣性較大的過程可以簡單地采用輸出開關(guān)量控制的方法。這種方法通過比較給定值與被控參數(shù)的偏差來控制輸出的狀態(tài):開關(guān)或者通斷,因此控制過程十分簡單,也容易實現(xiàn)。但由于輸出控制量只有兩種狀態(tài),使被控參數(shù)在兩個方向上變化的速率均為最大,因此容易硬氣反饋回路產(chǎn)生振蕩,對自動控制系統(tǒng)會產(chǎn)生十分不利的影響,甚至?xí)驗檩敵鲩_關(guān)的頻繁動作而不能滿足系統(tǒng)對控制精度的要求。因此,這種控制方案一般在大慣性系統(tǒng)對控制精度和動態(tài)特性要求不高的情況下采用。(2)比例控制(P控制)比例控制的特點是控制器的輸出與偏差成比例,輸出量的大小與偏差之間有對應(yīng)關(guān)系。當(dāng)負(fù)荷變化時,抗干擾能力強,過渡時間短,但過程終了存在余差。因此它適用于控制通道滯后較小、負(fù)荷變化不大、允許被控量在一定范圍內(nèi)變化的系統(tǒng)。使用時還應(yīng)注意經(jīng)過一段時間后需將累積誤差消除。a. 比例積分控制(PI控制)由于比例積分控制的特點是控制器的輸出與偏差的積分成比例,積分的作用使得過渡過程結(jié)束時無余差,但系統(tǒng)的穩(wěn)定性降低。雖然加大比例度可以使穩(wěn)定性提高,但又使過渡時間加長。因此,PI控制適用于滯后較小、負(fù)荷變化不大、被控量不允許有余差的控制系統(tǒng),它是工程上使用最多、應(yīng)用最廣的一種控制方法。b. 比例積分加微分控制(PID控制)比例積分加微分控制的特點是微分的作用使控制器的輸出與偏差變化的速度成正比例,它對克服對象的容量滯后有顯著的效果。在比例基礎(chǔ)上加上微分作用,使穩(wěn)定性提高,再加上積分作用,可以消除余差。因此,PID控制適用于負(fù)荷變化大、容量滯后較大、控制品質(zhì)要求又很高的控制系統(tǒng)。 結(jié)合本例題設(shè)計任務(wù)與要求,由于水溫系統(tǒng)的傳遞函數(shù)事先難以精確獲得,因而很難判斷哪一種控制方法能夠滿足系統(tǒng)對控制品質(zhì)的要求。但從以上對控制方法的分析來看,PID控制方法最適合本例采用。另一方面,由于可以采用單片機實現(xiàn)控制過程,無論采用上述哪一種控制方法都不會增加系統(tǒng)硬件成本,而只需對軟件作相應(yīng)改變即可實現(xiàn)不同的控制方案。因此本系統(tǒng)可以采用PID的控制方式,以最大限度地滿足系統(tǒng)對諸如控制精度、調(diào)節(jié)時間和超調(diào)量等控制品質(zhì)的要求。2.1.2、.系統(tǒng)組成就控制器本身而言,控制電路可以采用急經(jīng)典控制理論和常規(guī)模擬控制系統(tǒng)實現(xiàn)水溫的自動團(tuán)結(jié)。但隨著計算機與超大規(guī)模集成電路的迅速發(fā)展,以現(xiàn)代控制理論和計算機為基礎(chǔ),采用數(shù)字控制、顯示、A/D與D/A轉(zhuǎn)換,配額后執(zhí)行器與控制閥構(gòu)成的計算機控制系統(tǒng),在過程控制過程中得到越來越廣泛的應(yīng)用。由于本例是一個典型的檢測、控制型應(yīng)用系統(tǒng),它要求系統(tǒng)完成從水溫檢測、信號處理、輸入、運算到輸出控制電爐加熱功率以實現(xiàn)水溫控制的全過程。因此,應(yīng)以單片微型計算機為核心組成一個專用計算機應(yīng)用系統(tǒng),以滿足檢測、控制應(yīng)用類型的功能要求。另外,單片機的使用也為實現(xiàn)水溫的智能化控制以及提供完善的人機交互界面及多機通訊接口提供了可能,而這些功能在常規(guī)數(shù)字邏輯道路中往往是難以實現(xiàn)或無法實現(xiàn)的。所以,本例采用以單片機為核心的直接數(shù)字控制系統(tǒng)(DDC)。2.1.3、.單片機系統(tǒng)選擇AT89C2051、AT89C51單片機是最常用的單片機,是一種低損耗、高性能、CMOS八位微處理器。AT89C2051與MCS-51系列的單片機在指令系統(tǒng)和引腳上完全兼容,而且能使系統(tǒng)具有許多MCS-51系列產(chǎn)品沒有的功能,功能強、靈活性高而且價格低廉。AT89S51可構(gòu)成真正的單片機最小應(yīng)用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的可靠性,降低了系統(tǒng)成本。只要程序長度小于4K,四個I/O口全部提供給擁護(hù)。系統(tǒng)運行中需要存放的中間變量較少,可不必再擴充外部RAM。1.1.4、溫度控制鍵盤輸入一個需要控制的溫度,通過單片機2051的串口把數(shù)據(jù)傳送到AT89C51,AT89C51通過數(shù)據(jù)比較,PID分析,T0,T1產(chǎn)生PWM波來控制電爐是否繼續(xù)加熱還是停止加熱。1.1.5、方案選擇方案一:用熱敏電阻:通過電阻的變化來獲得電壓的變化,起價格雖然便宜但是精度不是很高。對于一個精度要求高的系統(tǒng)不宜采用方案二:用A/D590:通過AD590溫度傳感器采集溫度,由于AD590是電流傳感器,經(jīng)過電阻轉(zhuǎn)換為電壓。雖然價格較高但是精度高。經(jīng)比較,我們選擇方案二第3節(jié) 系統(tǒng)硬件設(shè)計3.1系統(tǒng)框圖傳 感器電爐單 片 機 基 本 系 統(tǒng)信號放大A/D功率放大鍵盤顯示圖3-1 單片機控制系統(tǒng)原理框圖3.1.2鍵盤顯示電路本模塊以AT89C2051單片機為核心,利用138譯碼器對顯示器動態(tài)掃描及作為鍵盤的掃描線,采用此方法大大簡化了硬件,充分的利用了單片機的資源,這也是本設(shè)計的巧妙所在。可同過鍵盤來設(shè)置溫度,并顯示在數(shù)碼管上,并通過串口發(fā)送出去,另外檢測到溫度通過串口接收進(jìn)來,并顯示在相應(yīng)的數(shù)碼管上鍵盤的掃描輸入與顯示器的掃描輸出由單片機控制,但考慮到鍵盤與接口需要較多的I/O口線,如果直接由單片機控制,一方面必須擴充系統(tǒng)I/O口,另一方面,鍵盤與LED顯示的掃描處理占用大量機時,增加軟件編程負(fù)擔(dān)。為此在組成系統(tǒng)人機對話通道時采用了可編程的鍵盤。顯示接口芯片8051,由8051負(fù)責(zé)鍵盤掃描、消抖處理和顯示輸出工作。根據(jù)認(rèn)為的要求,8051鍵盤被設(shè)計為2*8行,掃描線有SL0SL8經(jīng)譯碼輸出,接入鍵盤列線,查詢RL0RL1提供,采用鍵盤掃描法對16個按鍵進(jìn)行讀取狀態(tài)。使用行列式,把這16個按鍵分為82,采用74LS138對8行鍵盤輪流掃描,再通過P3.2和P3.7這2列讀進(jìn)來,從而判斷按鍵是否按下。電路如圖3所示。鍵盤的系統(tǒng)框圖如下: 鍵盤顯示圖一 鍵盤顯示圖二2系統(tǒng)溫度控制前向通道:以AT89C51單片機為控制核心,采集到溫度,經(jīng)放大,AD轉(zhuǎn)換后送單片機處理,再通過串行口發(fā)送到顯示模塊因為考慮到PID運算時需要調(diào)用浮點數(shù)運算程序庫,程序需要占用很大的存儲空間,8051內(nèi)部的能滿足此要求,所以不需要擴展外部ROM,系統(tǒng)中運行中需要存放的中間變量只有給定溫度和實測,PID運算中間結(jié)果及輸出結(jié)果等十幾個變量.因而8051片內(nèi)的RAM能夠滿足要求,可不必再擴展。后向通道:后向通道是實現(xiàn)控制型號輸出的通道,單片機系統(tǒng)產(chǎn)生的控制信號經(jīng)過功率放大器的放大控制電爐的輸入功率,以實現(xiàn)水溫的控制的目的.根據(jù)系統(tǒng)的總誤差要求,后向通道的控制精度也要應(yīng)控制在0.83%之內(nèi).以上就是整個電路的框圖, 將前述各單元電路連接起來,就可構(gòu)成完整的系統(tǒng)硬件電路圖。系統(tǒng)硬件電路中除了包含前、后向通道的輸入、輸出插座外,還應(yīng)考慮增加苦干個插座,以方便主控板與各部件的連接。硬件電路制作包括印刷線路板制作、焊接和系統(tǒng)連接等幾個方面。印刷線路板的設(shè)汁一般都是在計算機上利用Protel 99 SE軟件進(jìn)行輔助設(shè)計。3.2 程序流程圖系統(tǒng)軟件由主程序、鍵盤掃描、LED顯示、串行口中斷組成。由于本模塊就進(jìn)行鍵盤與顯示任務(wù),且鍵盤掃描與LED掃描是用同個74LS138來完成,可以將程序精簡,即把鍵盤和顯示的程序合在一起放在主程序里。(1)初始化。設(shè)定可編程芯片的工作方式,對內(nèi)存中的工作參數(shù)區(qū)進(jìn)行初始化,顯示系統(tǒng)初始狀態(tài)。(2)讀溫度程序. 通過DS18B20的側(cè)溫.(3)調(diào)用PID算法子程序通過鍵盤模塊發(fā)送過來的數(shù)據(jù),即給定值,和測量值進(jìn)行計算,輸出PWM波.對電爐的水溫度進(jìn)行控制.(4)返回(2)定時中斷服務(wù)程序: 采樣定時由定時器o的定時操作完成,定時器o的定時初值時間由PID的運算結(jié)果控制。程序流程如圖所示:(3)脈寬調(diào)制輸出子程序:NYYNYNNY開始初始化P3.3、P3.4、P3.5=000消抖31H 0P130H延時Flaga=1等待按鍵放開P3.2=0?P3.7=0?消抖等待按鍵放開Flaga=1?P3.3、P3.4、P3.5=001P131H延時Flagb=1?Flagb 132H 0Flagb0.P3.3、P3.4、P3.5=010P3.3、P3.4、P3.5=011.P3.3、P3.4、P3.5=101P3.3、P3.4、P3.5=100P3.3、P3.4、P3.5=110P3.3、P3.4、P3.5=111入口P0.0輸出高電平脈寬標(biāo)志位清0返回脈寬標(biāo)志位是高電平?P0.0輸出低電平把脈寬標(biāo)志位置1YN初始化調(diào)用水溫檢測子程序調(diào)用PID算法子程序開起定時器定時時間到?調(diào)用脈寬子程序返回YNN初始化調(diào)讀溫度子程序調(diào)PWM子程序調(diào)PID子程序調(diào)發(fā)送子程序定時時間到Y(jié)PID子程序T1=T1+K(Ek-E(K-1)設(shè)置溫度大于實測溫度設(shè)置溫度減實際溫度實際溫度減設(shè)置溫度置標(biāo)志位清標(biāo)志位差值放30HYN子程序返回占空比加上差值標(biāo)志位為1PWM占空比到上限PWM占空低到下限占空比減去差值開始復(fù)位DS18B20發(fā)讀存儲器命令返回發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換命令延時復(fù)位DS18B20將溫度轉(zhuǎn)換成BCD碼發(fā)送溫度值,顯示溫度水溫檢測子程序第4節(jié) 參數(shù)計算系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試。按+鍵設(shè)定溫度值加一;按-鍵設(shè)定溫度值減一;按設(shè)溫鍵,可任意設(shè)置溫度,輸入相應(yīng)的數(shù)值,按確定鍵即可,按取消鍵則返回前一次設(shè)置的值;按初始鍵則返回剛一開機的狀態(tài)。軟件的調(diào)試府在仿真器提供的單步、斷點、跟蹤等功能的支持下對各子程序分別進(jìn)行調(diào)試將調(diào)試完的工程序連接起來再調(diào)試逐步擴大調(diào)試范圍。4.1 系統(tǒng)各模塊設(shè)計及參數(shù)計算4.1.1、溫度采集部分及轉(zhuǎn)換部分我們使用AD590來采集外界的溫度。AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。它的主要特性如下:1、流過器件的電流(mA)等于器件所處環(huán)境的熱力學(xué)溫度(開爾文)度數(shù),即:mA/K式中: 流過器件(AD590)的電流,單位為mA; T熱力學(xué)溫度,單位為K。2、AD590的測溫范圍為-55+150。3、AD590的電源電壓范圍為4V30V。電源電壓可在4V6V范圍變化,電流 變化1mA,相當(dāng)于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會被損壞。4、輸出電阻為710MW。5、精度高。AD590共有I、J、K、L、M五檔,其中M檔精度最高,在-55+150范圍內(nèi),非線性誤差為0.3。由于AD590采集的輸出數(shù)據(jù)是模擬量電流,而且很小,不易測量,所以我們要將電流量轉(zhuǎn)換成電壓量,這樣有利于后面的放大及D/A轉(zhuǎn)換。我們改用一個固定電阻(9.1k或10k)和一個電位器(1K)串接的方法,這樣可以通過調(diào)節(jié)電位器使得每路輸出電壓基本一致。如以0為參考值則應(yīng)使其電壓輸出為2.73V;如以25為參考值,則應(yīng)使其電壓輸出為2.98V.4.1.2、傳感器輸出信號放大電路部分:由于取得的電壓量很小,我們選用LM324做為運放,以為其內(nèi)部帶有四個運放,可以使得運放部分在電路版上不占用太大的體積。我們用了其內(nèi)部的三個運放。第一級運放我們做成射級跟隨器的形式,起到阻抗匹配的作用。第二級運放設(shè)計為反相比例求和電路,根據(jù)反相比例求和電路公式,我們設(shè)計了如下圖的電路,U=-((10/10)*U1+10/(20+R)),其中U為第二級輸出電壓,R為50k的電位器??梢酝ㄟ^調(diào)節(jié)電位器使得輸出電壓達(dá)到要求。設(shè)0時,第二級的輸出為2.73-2.73=0V,而25時,第二級的輸出為2.73-2.98= -0.25V(反相)(零位調(diào)整)。第三級運放設(shè)計為反相比例放大電路,我們設(shè)計為將第二級的輸出電壓放大5倍。所以我們選用了10k和50k的電阻來實現(xiàn)。4.1.3、模數(shù)轉(zhuǎn)換電路部分:這部分最初想用ADC0809的,但為了配合使用CD4051,我們最終選擇了ADC0804。ADC0804的規(guī)格及引腳圖8位CMOS逐次逼近型的A/D轉(zhuǎn)換器三態(tài)鎖定輸出存取時間:135s;分辨率:8位;轉(zhuǎn)換時間:100s;總誤差:1LSB;工作溫度:ADC0804LCN0+70;ADC0804LCD -40+85;引腳圖及說明如圖所示:/CS:芯片選擇信號。/RD:外部讀取轉(zhuǎn)換結(jié)果的控制腳輸出信號。/RD為高時,DB0DB7處于高阻抗;/RD為低時,數(shù)字?jǐn)?shù)據(jù)才會輸出。/WR:用來啟動轉(zhuǎn)換的控制輸入,相當(dāng)于ADC的轉(zhuǎn)換開始(/CS=0時),當(dāng)/WR由高變?yōu)榈蜁r,轉(zhuǎn)換器被清除;當(dāng)/WR回到高時,轉(zhuǎn)換正式開始。CLK IN, CLK R:時鐘輸入或接振蕩元件(R,C),頻率約限制在100kHz1460kHz,如果使用RC電路則其振蕩頻率為1/(1.1RC)./INTR:中斷請求信號輸出,低電平動作。VIN(+)、VIN():差動模擬電壓輸入。輸入單端正電壓時,VIN()接地;而差動輸入時,直接加入VIN(+)、VIN()。AGND,DGND:模擬信號及數(shù)字信號的接地。VREF:輔助參考電壓。DB0DB7:8位的數(shù)字輸出。VCC:電源供應(yīng)以及作為電路的參考電壓。眾所周知, 精度是數(shù)據(jù)采集系統(tǒng)的重要指標(biāo), 模數(shù)轉(zhuǎn)換器的量化誤差是影響系統(tǒng)精度的主要因素,A/D轉(zhuǎn)換器的位數(shù)越多, 其量化誤差越小, 一個M 位的A/D 轉(zhuǎn)換器的量化誤差可表示為:式中V ref為模數(shù)轉(zhuǎn)換器的參考基準(zhǔn)電壓。設(shè)A/D 轉(zhuǎn)換電路的模擬輸入電壓為Vi, 則經(jīng)A/D 轉(zhuǎn)換后的相對誤差表示為: (2)上式表明, 當(dāng)模數(shù)轉(zhuǎn)換器的位數(shù)選定后, 其相對誤差D與其模擬輸入電壓V i 成反比。因此只有將輸入信號V i 預(yù)放大到接近參考電壓V ref, 才能充分發(fā)揮A/D轉(zhuǎn)換器位數(shù)的效能, 減小量化誤差, 提高系統(tǒng)數(shù)據(jù)采集精度。此即為引入前置放大器的目的之所在。逐步逼近式A/D的轉(zhuǎn)換公式:,、Ux為輸入電壓、N為輸出值 (1-1) (1-2)當(dāng)選定參考電壓和A/D位數(shù)時,e為常數(shù),由誤差傳遞公式得:,Ux是輸入絕對誤差 (1-3)由式(1-3)知:當(dāng)輸入電壓越大,A/D轉(zhuǎn)換的相對誤差越小,當(dāng)然輸入電壓不能大于A/D最大轉(zhuǎn)換電壓。因此為了減少A/D轉(zhuǎn)換誤差,對輸入信號進(jìn)行放大。4.1.4、ADC0804芯片外圍電路的設(shè)計:a.19腳的CLKR端接一個10k的電阻和150PF的電容,根據(jù)公式f=1/(1.1RC),可算得時鐘輸入頻率為0.6兆左右。b.9腳:選擇470k的電阻、5k的電位器和2.7伏的穩(wěn)壓管來調(diào)節(jié)芯片的相對電壓。本電路中應(yīng)調(diào)節(jié)電位器使得9腳電壓為2.56伏。c.1、7、8腳接地d.6腳接運放的輸出端,采集收集到的信號,經(jīng)過A/D轉(zhuǎn)換最后輸出8位2 進(jìn)制數(shù),這樣就可以送到單片機里進(jìn)行處理了。4.1.5、數(shù)值處理部分及顯示部分: 數(shù)值處理部分:我們采用8051芯片,其內(nèi)部自帶程序存儲器。其外接12兆的晶振來給起供應(yīng)震蕩頻率。9腳接一個10F的電解電容再接地,來實現(xiàn)復(fù)位功能。/RD和/WR分別與ADC0804的/RD和/WR相連,實現(xiàn)數(shù)據(jù)的讀寫控制。P2.4腳與ADC0804的/INTR相接,可以通過編程來判斷該腳的高低來得知A/D轉(zhuǎn)換是否完成。P1.4P1.7及P2.7口分別外接一個4.7k的電阻接至三極管的C端,來控制三極管的通斷,來控制5個數(shù)碼管的亮暗。P2.0P2.2口分別與ADC0804的9、10、11腳來控制選擇的路數(shù)。 顯示部分:用7447芯片與8051的P1.0P1.3口相連,7447芯片可將8051轉(zhuǎn)換好的8421BCD碼轉(zhuǎn)換成7段碼送到數(shù)碼管顯示。數(shù)碼管選用共陽的,因此在其Vcc端要外接一個三極管(9013),通過控制三極管給數(shù)碼管供電,來控制數(shù)碼管的通斷。4.1.6、PID算法的介紹:在模擬系統(tǒng)中,PID算法的表達(dá)式:(1)式中: P(t)調(diào)節(jié)器的輸出信號: e(t)調(diào)節(jié)器的偏差信號,它等于測量值與給定值之差; KP調(diào)節(jié)器的比例系數(shù);TI調(diào)節(jié)器的積分時間; TD調(diào)節(jié)器的微分時間。4.1.7、A/D轉(zhuǎn)換模塊由于系統(tǒng)對信號采集的速度要求不高,故可以采用價格低的8位逐次逼近式A/D轉(zhuǎn)換器ADC0804,該轉(zhuǎn)換器轉(zhuǎn)換速度為100us,轉(zhuǎn)換精度為0.39%,對應(yīng)誤差為0.2340C。故采用AD0804,ADC0804是8位模數(shù)轉(zhuǎn)化電路,它能把模擬電壓值轉(zhuǎn)化為8位二進(jìn)制碼,其轉(zhuǎn)化公式如下:DX=VIN*256/VREF 我們這里設(shè)置VREF 等于5V(因為這里懸空沒接,查資料可知其為5V),則DX 所對應(yīng)的值就是八位二進(jìn)制碼的十進(jìn)制值,具體轉(zhuǎn)化表如下:溫度值A(chǔ)DCin(V)DX十六進(jìn)制編碼溫度值A(chǔ)DCin(V)DX十六進(jìn)制編碼0C0000H30C2.344878H2C0.156107H35C2.73498BH4C0.31320AH40C3.125AA0H8C0.625320H45C3.516BB4H10C0.781427H50C3.906CC7H15C1.17253CH55C4.297DDCH20C1.56064FH60C4.688EF0H25C1.953763H64C5.000FFFHA/D轉(zhuǎn)換器時鐘電路參數(shù)計算ADC0804片內(nèi)有時鐘電路,其振蕩頻率可按下式計算: fclk1/1.1RC式中R和C分別是CLK_R和CLK_IN兩端外接一對地電阻、電容的阻容值。其典型應(yīng)用參數(shù)為R=10K,C=150PF。此時fclk640kHz,A/D轉(zhuǎn)換時間約為103s。A/D轉(zhuǎn)換器的INTR與89C51的P1.0相連,單片機以查詢方式獲取A/D轉(zhuǎn)換器轉(zhuǎn)換完畢的信息。4.1.8、控制模塊由于用單片機來控制雙向晶閘管,而晶閘管陽極和陰極間所接的是220V的交流電壓,故本電路在中間加了一個光電耦合器件,使低壓區(qū)和高壓區(qū)隔離開。光電耦合器件采用的是MOC3041,其耐壓值為400V,可以滿足本設(shè)計的要求。而光電耦合器件的工作電流較大,因此前面需加放大電路,采用的是小功率硅三極管9012可滿足要求,另外為了保護(hù)光電耦合器件需在高壓側(cè)接一個大功率電阻。雙向晶閘管的選取:由于負(fù)載是1KW的電爐,用于控制負(fù)載輸入功率的雙向晶閘管應(yīng)能滿足負(fù)載對工作電壓、電流的要求。工作電壓峰值可按下式計算: Vp=2201.414=313(V)工作電流峰值可按下式計算: Ip=1000/2201.414=6.43(A)因此,為滿足應(yīng)用要求并適當(dāng)留有余地,雙向晶閘管可選用BAT12-600,該器件可承受的最大反向電壓為600V,最大電流為12A,為了保護(hù)雙向晶閘管還可在其旁邊加一保護(hù)電路(即緩沖電路),因為雙向晶閘管在開通和關(guān)斷的瞬間du/dt的變化率較大,開關(guān)損耗很大,因此加上阻容電路,利用儲能元件對能量進(jìn)行緩沖,從而達(dá)到保護(hù)的目的,具體電路如圖2所示。由于本電路采用PID控制,程序較長,約為2.8K左右,因此選用比較熟悉AT89C51單片機,其容量為4K,可以滿足設(shè)計的要求。復(fù)位電路的參數(shù)選擇:本設(shè)計晶振用的是12M,則機器周期為1us,要使單片機復(fù)位需持續(xù)2個機器周期的高電平??砂聪率接嬎悖?RC2us 為了使單片機能夠可靠地上電自動復(fù)位,選取R=8.2K,C=10uF。4.2 系統(tǒng)硬件調(diào)試溫系統(tǒng)經(jīng)溫度傳感器和信號放大器產(chǎn)生05V的模擬電壓信號送入A/D轉(zhuǎn)換器的輸入端,A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量通過系統(tǒng)總線送入單片機進(jìn)行運算處理。硬件電路的調(diào)試應(yīng)依次對單片機基本系統(tǒng)、前向通道和后向通道分別進(jìn)行調(diào)試。調(diào)試時可利用仿真器對各接口地址進(jìn)行讀寫操作,靜態(tài)地測試電路各部分的連接是否正確;對于動態(tài)過程(如中斷響應(yīng)、脈寬調(diào)制輸出等)可以編寫簡短的調(diào)試程序配合硬件電路的調(diào)試。4.2.1、單片機基本系統(tǒng)調(diào)試(a)晶振電路 將仿真器晶扳開關(guān)打到外部,如果仿真器出現(xiàn)死機現(xiàn)象,說明用戶系統(tǒng)晶振電路有問題,此時應(yīng)用示波器觀察單片機時鐘信號,或輸入端是否振蕩信或檢查品振電路各器件參數(shù)。(b)復(fù)位電路按下復(fù)位按鈕應(yīng)使系統(tǒng)處于復(fù)位狀態(tài),否則用用表檢查復(fù)位電路各點信號和器件參數(shù)。(2)LED顯示電路本電路采用8個共陰的數(shù)碼管動態(tài)顯示,前4個為設(shè)定溫度,后4個為實測溫度。動態(tài)掃描時采用74LS138對這8個數(shù)碼管輪流掃描,進(jìn)行位控,而P1口是進(jìn)行段控信號的控制,為了增加數(shù)碼管的亮度,共陰端有三極管來驅(qū)動它的電流。電路如圖6所示。(3)鍵盤接口電路 本電路采用鍵盤掃描法對16個按鍵進(jìn)行讀取狀態(tài)。使用行列式,把這16個按鍵分為82,采用74LS138對8行鍵盤輪流掃描,再通過P3.2和P3.7這2列讀進(jìn)來,從而判斷按鍵是否按下(4)前向通道調(diào)試比較簡單(5)后向通道調(diào)試(a)靜態(tài)調(diào)試 用仿真器在p00上輸出高電平,雙向可控硅導(dǎo)通電爐開始加熱;在P00上輸出低電平雙向可控硅截止,電爐停止加熱。如果輸出不正常,應(yīng)按信號輸出順序分別撿查P00、光電耦合器輸入端、光電耦合器輸出端及雙向可控硅兩端的電壓情況。(b)動態(tài)調(diào)試編寫簡短調(diào)試程序,在P00上周期性地輸出一定占空比的脈寬調(diào)制波形,用示被器觀察電爐兩端電壓輸入波形和通斷比例。改變輸出波形占空比,電爐兩端電壓輸入的通斷比也應(yīng)有相應(yīng)改變。 (6) 傳感器電路部分溫度傳感器種類較多。熱電偶由于熱電勢較小,因而靈敏度較低;熱敏電阻由于非線性而影響精度;鉑電阻溫度傳感器由于成本高,在一般小系統(tǒng)中很少使用。AD590是美國Analog Devices公司生產(chǎn)的二端式集成溫度傳感器,具有體積小、重量輕、線性度好、性能穩(wěn)定等一系列優(yōu)點。它的測溫范圍為-50+155C,滿刻度誤差為0.3C,當(dāng)電源電壓在510V之間,穩(wěn)定度為1%,誤差只有0.01C,完全適用于本設(shè)計對水溫測量的要求。另外AD590是溫度電流傳感器,對于提高系統(tǒng)抗干擾能力也有很大幫助,因此本設(shè)計選用AD590作為溫度傳感器。其輸出電流I與溫度的關(guān)系可用下式表示: 或式中:I輸出電流,單位mAKT標(biāo)定因子,AD590的標(biāo)定因子為1mA/C;TK開氏溫度。TC攝氏溫度??梢?,當(dāng)溫度為攝氏0C時,輸出電流為273.2mA。放大器電阻計算:由于我的測量定為+C+64C,根據(jù)這一測量范圍要求,信號轉(zhuǎn)換電路應(yīng)將+C+64C溫度轉(zhuǎn)換為05V的電壓信號,根據(jù)以上分析可知AD590在0C和64C時輸出電流分別為273.2uA和337.2uA,因此R1、RS、R2、RS2阻值可按下式計算: R1+RS1=12V/273.2UA=43.9K取R1=40K,RS1=5K。 R2+RS2=5V/64UA=78.1K取R2=68K,RS2=12K。 綜上所述,在上述6部分都沒有問題后,就可以進(jìn)行下一步了,即軟件調(diào)試。(6)軟件調(diào)試:軟件的調(diào)試府在仿真器提供的單步、斷點、跟蹤等功能的支持下對各子程序分別進(jìn)行調(diào)試將調(diào)試完的工程序連接起來再調(diào)試逐步擴大調(diào)試范圍。調(diào)試的過程一般是:a測試程序輸入條件或設(shè)定程序輸入條件;b以單步、斷點或跟蹤方式運行程序;c檢查程序運行結(jié)果;d運行結(jié)果不正確時查找原因。修改程序,重復(fù)上述過程。(7) 注意:A.輸入抗干擾a、鍵盤按鍵在按下與抬起時都會有1020ms的抖動毛刺出現(xiàn),在讀取鍵值時可先延時,再進(jìn)行采樣,在本設(shè)計中我是調(diào)用了一段顯示子程序,和同學(xué)的電路相比,效果非常明顯。b.AD轉(zhuǎn)換器 由于外界的干擾,AD采樣后的數(shù)據(jù)會有較大誤差,為了提高準(zhǔn)確度,可采用輸入分區(qū)抗干擾法,對模擬信號進(jìn)行初步的處理,降低外界干擾的破壞性,當(dāng)然再配合多數(shù)平均法處理效果更加。B.輸出抗干擾 一般來說,單片機的低電平驅(qū)動能力遠(yuǎn)高于高電平的驅(qū)動能力,可以用上拉電阻的方法來平衡單片機的端口驅(qū)動能力,以提高整體的抗干擾能力。因此本設(shè)計中只要涉及輸出控制都是采用低電平驅(qū)動。第5節(jié) CPU軟件抗干5.1 看門狗設(shè)計單片機最易受干擾的是內(nèi)部計數(shù)器PC的值。在受強干擾的時,PC值改變,改變后的值又是隨機的,為一不確定值。因此,對系統(tǒng)內(nèi)核CPU進(jìn)行R軟件抗干擾顯得尤為重要,本設(shè)計采用的是看門狗設(shè)計。 這樣, 就可以進(jìn)行總體調(diào)試了。把編寫好的程序放在電腦里,使用偉福仿真器來仿真,看看8個數(shù)碼管顯示的數(shù)據(jù)是否正確,按下按鍵后能否在數(shù)碼管上顯示設(shè)定的值,反復(fù)的調(diào)試、修改程序,使達(dá)到預(yù)期的效果??撮T狗(Watchdog)電路是嵌入式系統(tǒng)需要的抗干擾措施之一。本文用X25045芯片設(shè)計了一種新的看門狗電路,具有體積小、占用I/O口線少和編程方便的特點,可廣泛應(yīng)用于儀器儀表和各種工控系統(tǒng)中。系統(tǒng)在運行時,通常都會遇到各種各樣的現(xiàn)場干擾,抗干擾能力是衡量工控系統(tǒng)性能的一個重要指標(biāo)。看門狗(Watchdog)電路是自行監(jiān)測系統(tǒng)運行的重要保證,幾乎所有的工控系統(tǒng)都包含看門狗電路。在8096系列單片機和增強型8051系列單片機中,該系統(tǒng)已經(jīng)做在芯片內(nèi)部,用戶只要用軟件開放它就可以,使用很方便。但目前工控系統(tǒng)仍在使用廉價的普通型8051系列單片機,則看門狗電路必須由用戶自己建立??撮T狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統(tǒng)需要出讓一個定時器資源,這在許多系統(tǒng)中很難辦到,而且若系統(tǒng)軟件運行不正常,可能導(dǎo)致看門狗系統(tǒng)也癱瘓。硬件看門狗是真正意義上的“程序運行監(jiān)視器”,如計數(shù)型的看門狗電路通常由555多諧振蕩器、計數(shù)器以及一些電阻、電容等組成,分立元件組成的系統(tǒng)電路較為復(fù)雜,運行不夠可靠。X25045芯片簡介X25045是美國Xicor公司的生產(chǎn)的標(biāo)準(zhǔn)化8腳集成電路,它將EEPROM、看門狗定時器、電壓監(jiān)控三種功能組合在單個芯片之內(nèi),大大簡化了硬件設(shè)計,提高了系統(tǒng)的可靠性,減少了對印制電路板的空間要求,降低了成本和系統(tǒng)功耗,是一種理想的單片機外圍芯片。X25045引腳如圖1所示。圖5-1 X25045引腳圖其引腳功能如下。CS:片選擇輸入;SO:串行輸出,數(shù)據(jù)由此引腳逐位輸出;SI:串行輸入,數(shù)據(jù)或命令由此引腳逐位寫入X25045;SCK:串行時鐘輸入,其上升沿將數(shù)據(jù)或命令寫入,下降沿將數(shù)據(jù)輸出;WP:寫保護(hù)輸入。當(dāng)它低電平時,寫操作被禁止;Vss:地;Vcc:電源電壓;RESET:復(fù)位輸出。X25045在讀寫操作之前,需要先向它發(fā)出指令,指令名及指令格式如表1所示。表1 X25045指令及其含義X25045看門狗電路設(shè)計及編程X25045硬件連接圖如圖2所示。X25045芯片內(nèi)包含有一個看門狗定時器,可通過軟件預(yù)置系統(tǒng)的監(jiān)控時間。在看門狗定時器預(yù)置的時間內(nèi)若沒有總線活動,則X25045將從RESET輸出一個高電平信號,經(jīng)過微分電路C2、R3輸出一個正脈沖,使CPU復(fù)位。圖2電路中,CPU的復(fù)位信號共有3個:上電復(fù)位(C1、R2),人工復(fù)位(S、R1、R2)和Watchdog復(fù)位(C2、R3),通過或門綜合后加到RESET端。C2、R3的時間常數(shù)不必太大,有數(shù)百微秒即可,因為這時CPU的振蕩器已經(jīng)在工作。圖5-2X25045看門狗電路硬件連接圖看門狗定時器的預(yù)置時間是通過X25045的狀態(tài)寄存器的相應(yīng)位來設(shè)定的。如表2所示,X25045狀態(tài)寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關(guān),其余位和EEPROM的工作設(shè)置有關(guān)。第6節(jié) 測試方法和測試結(jié)果 6.1 系統(tǒng)測試儀器及設(shè)備雙路跟蹤穩(wěn)壓穩(wěn)流電源DH1718E-5直流穩(wěn)壓電源數(shù)字示波器Tektronix TDS1002偉福E6000/L 仿真器多功能數(shù)字表GDM-8145數(shù)字萬用表0100溫度計、調(diào)溫電熱杯、秒表6.2 測試方法由于系統(tǒng)不完善,我采用的是分步調(diào)試的方法,步驟如下: (1)在水杯中存放1L凈水,放置在1KW的電爐上,打開控制電源,系統(tǒng)進(jìn)入準(zhǔn)備工作狀態(tài)。(2)先調(diào)零,先將OP07的2、3腳短路,然后調(diào)節(jié)滑動變阻器,使六腳輸出為0。(3)在改變溫度使溫度為35時輸出為0V,溫度為95時輸出為5V。在65時為2.5V。 (4)在結(jié)合軟件進(jìn)行水溫控制,假如設(shè)定溫度為88,而實際溫度為55,那么就加熱使水問到達(dá)88,此時水爐會自動斷電,當(dāng)水溫低與88,水爐有會自動加熱實現(xiàn)控制的作用。 (5)然后在雙機通訊,用鍵盤設(shè)定溫度,結(jié)合軟件加以控制。6.3 測試結(jié)果(1)測量溫度與給定溫度的相應(yīng)值如表1所示 表 1給定溫度()實測溫度()相對誤差給定溫度()實測溫度()相對誤差135350465632.5224543-3.2257573-2.33355532.82685832.18上表用溫度計標(biāo)定測溫系統(tǒng)。分別是水溫穩(wěn)定在35、45、55、65、75、85,觀察系統(tǒng)測量溫度值和實際溫度值,盡量校準(zhǔn)系統(tǒng)使測量誤差在1以內(nèi)。記錄測量數(shù)據(jù)填入表1。由上表可以看出,實測溫度和給定溫度之間的絕對溫度超出了1之間,由于系統(tǒng)顯示數(shù)值沒有小數(shù)部分,所測結(jié)果只能以度來衡量,其實際誤差是稍大于1的,測量結(jié)果不是很滿足系統(tǒng)誤差的要求。這也是這個系統(tǒng)設(shè)置不全的一方面。可以是調(diào)0的過程中由于調(diào)不到0,我把反饋電阻R18給換了,我第一次換的是20K的雖然能調(diào)到但波動很大,后來我又換了一個10K的,那波動就小了很多,也能調(diào)到要求的范圍了。但我覺得還是有問題,這個問題是我到現(xiàn)在還沒解決的,在設(shè)計的過程中有些電阻是自己去估計取出來的,有些還是很有問題的,我認(rèn)為這是導(dǎo)致誤差的主要原因。因此我認(rèn)為可以通過改變電路中一些電阻或電容的阻值來得到改善。注意,在測量的過程中,也就是在使用AD590傳感器的時候,為了避免器件一被測液體的直接接觸,應(yīng)將傳感器裝入保護(hù)套管中,或?qū)⑵骷糜操|(zhì)乙烯樹脂等材料密封,以避免被測液體對傳感器的腐蝕和對測量精度產(chǎn)生影響。結(jié)束語 根據(jù)設(shè)計要求,調(diào)試完成的系統(tǒng)應(yīng)作全面的指標(biāo)測試。測試過程如下: a.通過鍵盤輸人水溫給定值,輸入范圍能滿足40一90C區(qū)分度為1 C的要求。 b.運行水溫控制系統(tǒng),觀察水溫變化情況測量水溫靜態(tài)誤差,該誤差應(yīng)能滿足要求。 c.在給定突變或環(huán)境溫度突變的情況下,觀察系統(tǒng)的調(diào)節(jié)時間和超調(diào)量,并能根據(jù)需要改變系統(tǒng)控制參數(shù),實現(xiàn)不同的控制品質(zhì)要求。 通過這次實驗, 了解了傳感器A/D590的特性和其應(yīng)用。也收獲了很多關(guān)于單片機相互通信的知識。特別是對PID算法有了一定的了解。在整個系統(tǒng)的制作過程中,溫度的采樣遇到了很大的困難,電阻值沒有調(diào)準(zhǔn)。還有在PCB板的制作過程中預(yù)先沒有設(shè)置好線條的粗細(xì),在加220V電壓的線路中,線條應(yīng)該加粗,防止相互之間的干擾。本系統(tǒng)溫度采樣,PWM波和通信都已經(jīng)已經(jīng)完成,但是由于PAB板不能加220V電壓,故而沒有最總完成電路系統(tǒng)。使我的動手能力提高了許多,能夠讓我在做電路時,自己來解決碰到的問題,學(xué)會了怎樣去分析電路,怎樣把所學(xué)到的知識和實際相起來。但是由于自己是第一次真正做系統(tǒng),所以在很多方面都沒有經(jīng)驗,故而并沒有完成老師的要求,今后將都作系統(tǒng)來加強自己這方面的不足。參考文獻(xiàn)電子系統(tǒng)設(shè)計 主編:何小艇 浙江大學(xué)出版社8051單片機實踐與應(yīng)用 編著:吳金戎,沈慶陽等 清華大學(xué)出版社單片機應(yīng)用系統(tǒng)設(shè)計 編著:韓志軍,王振波等 機械工業(yè)出版社28
收藏