目 錄 摘 要…………………………………………………………………………………4 第1節 課題任務要求 ……………………………………………………………..5 第2節 總體方案設計 ………………………………………….………………....5 2.1 總體方案確定……………………………………………….…………………..6 2.1.1 控制方法選擇………………………………...…………………………….6 2.1.2 系統組成……………………………………………………………………7 2.1.3 單片機系統選擇……………………………………………………………7 2.1.4 溫度控制……………………………..…………………………………….7 2.1.5 方案選擇…………………………..………………………………………7 第3節 系統硬件設計……………………….……………………………………..8 3.1 系統框圖……………………………………………………………………..8 3.2 程序流程圖…………………………………..……………….……………..12 第4節 參數計算……………………………..………………….………………...16 4.1 系統模塊設計…………………………………………….……………………16 4.1.1 溫度采集及轉換………………….……………………..………………….16 4.1.2 傳感器輸出信號放大…………………..……………………………………17 4.1.3模數轉換………………………………..…………………………………….18 4.1.4 外圍電路設計……………………………….……………………………….19 4.1.5 數值處理及顯示部分………………………………………………………..19 4.1.6 PID算法介紹………………………………………………...………………19 4.1.7 A/D轉換模塊………………………………………………..………………20 4.1.8 控制模塊……………………………………………………..………………21 4.2 系統硬件調試………………………………………………………………….21 第5節 CPU軟件抗干擾 ………………………………………….……………..24 5.1 看門狗設計………………………………………………………….…………24 第6節 測試方法和測試結果……………………………………………27 6.1 系統測試儀器及設備…………………………………………....……………27 6.2 測試方法…………………………………………………………..…………27 6.3 測試結果………………………………………………………………………27 結束語 ………………………………….………………....……..29 參考文獻.…………………………………….……….…………………..…30 基于單片機的水溫控制系統設計 摘要: 本系統以AT89C51,AT89C2051單片機為核心,主要包括傳感器溫度采集,A/D模/數轉換,按扭操作,單片機控制,數碼管數字顯示等部分。本系統采用PID算法實現溫度控制功能,通過串行通信完成兩片單片機信息的交互而實現溫度設定、控制和顯示。本設計還可以通過串口與上位機(電腦)連接,實現電腦控制。系統設計有體積小、交互性強等優點。為了實現高精度的水溫控制,本單片機系統采用PID算法控制和PWM脈寬調制相結合的技術,通過控制雙向可控硅改變電爐和電源的接通、斷開,從而改變水溫加熱時間的方法來實現對水溫的控制。本系統由鍵盤顯示和溫度控制兩個模塊組成,通過模塊間的通信完成溫度設定、實溫顯示、水溫升降等功能。具有電路結構簡單、程序簡短、系統可靠性高、操作簡便等特點。
第1節 課題任務與要求: 1.基本要求 一升水由1kw的電爐加熱,要求水溫可以在一定范圍內由人工設定,并能在環境溫度降低時實現自動調整,以保持設定的溫度基本不變。 2.主要性能指標 a.溫度設定范圍:30-90℃,最小區分度為1℃。 b.控制精度:溫度控制的靜態誤差≤1℃。 c.用十進制數碼顯示實際水溫。 d.能打印實測水溫值。 3.擴展功能 a.具有通信能力,可接受其他數據設備發來的命令,或將結果傳送到其他數據設備。 b.采用適當的控制方法實現當設定溫度與環境溫度突變時,減小系統的調節時間和超調量。 c.溫度控制的靜態誤差≤1℃。 d.能自動顯示水溫隨時間變化的曲線。 第2節 總體方案設計 2.1總體方案的確定 2.1.1、控制方法選擇 由于水溫控制系統的控制對象具有熱存儲能力大,慣性也較大的特點。水在容器內的流動或熱量傳遞都存在一定的阻力,因而可以歸于具有純滯后的一階大慣性環節。一般來說,熱過程大多具有較大的滯后,它對任何信號的響應都會推遲一段時間,使輸出與輸入之間產生相移。對于這樣一些存在大的滯后特性的過渡過程控制,一般來說可以采用以下幾種控制方案: (1)輸出開關量控制: 對于慣性較大的過程可以簡單地采用輸出開關量控制的方法。這種方法通過比較給定值與被控參數的偏差來控制輸出的狀態:開關或者通斷,因此控制過程十分簡單,也容易實現。但由于輸出控制量只有兩種狀態,使被控參數在兩個方向上變化的速率均為最大,因此容易硬氣反饋回路產生振蕩,對自動控制系統會產生十分不利的影響,甚至會因為輸出開關的頻繁動作而不能滿足系統對控制精度的要求。因此,這種控制方案一般在大慣性系統對控制精度和動態特性要求不高的情況下采用。 (2)比例控制(P控制) 比例控制的特點是控制器的輸出與偏差成比例,輸出量的大小與偏差之間有對應關系。當負荷變化時,抗干擾能力強,過渡時間短,但過程終了存在余差。因此它適用于控制通道滯后較小、負荷變化不大、允許被控量在一定范圍內變化的系統。使用時還應注意經過一段時間后需將累積誤差消除。 a.比例積分控制(PI控制) 由于比例積分控制的特點是控制器的輸出與偏差的積分成比例,積分的作用使得過渡過程結束時無余差,但系統的穩定性降低。雖然加大比例度可以使穩定性提高,但又使過渡時間加長。因此,PI控制適用于滯后較小、負荷變化不大、被控量不允許有余差的控制系統,它是工程上使用最多、應用最廣的一種控制方法。 b.比例積分加微分控制(PID控制) 比例積分加微分控制的特點是微分的作用使控制器的輸出與偏差變化的速度成正比例,它對克服對象的容量滯后有顯著的效果。在比例基礎上加上微分作用,使穩定性提高,再加上積分作用,可以消除余差。因此,PID控制適用于負荷變化大、容量滯后較大、控制品質要求又很高的控制系統。
結合本例題設計任務與要求,由于水溫系統的傳遞函數事先難以精確獲得,因而很難判斷哪一種控制方法能夠滿足系統對控制品質的要求。但從以上對控制方法的分析來看,PID控制方法最適合本例采用。另一方面,由于可以采用單片機實現控制過程,無論采用上述哪一種控制方法都不會增加系統硬件成本,而只需對軟件作相應改變即可實現不同的控制方案。因此本系統可以采用PID的控制方式,以最大限度地滿足系統對諸如控制精度、調節時間和超調量等控制品質的要求。 2.1.2、.系統組成 就控制器本身而言,控制電路可以采用急經典控制理論和常規模擬控制系統實現水溫的自動團結。但隨著計算機與超大規模集成電路的迅速發展,以現代控制理論和計算機為基礎,采用數字控制、顯示、A/D與D/A轉換,配額后執行器與控制閥構成的計算機控制系統,在過程控制過程中得到越來越廣泛的應用。 由于本例是一個典型的檢測、控制型應用系統,它要求系統完成從水溫檢測、信號處理、輸入、運算到輸出控制電爐加熱功率以實現水溫控制的全過程。因此,應以單片微型計算機為核心組成一個專用計算機應用系統,以滿足檢測、控制應用類型的功能要求。另外,單片機的使用也為實現水溫的智能化控制以及提供完善的人機交互界面及多機通訊接口提供了可能,而這些功能在常規數字邏輯道路中往往是難以實現或無法實現的。所以,本例采用以單片機為核心的直接數字控制系統(DDC)。 2.1.3、.單片機系統選擇 AT89C2051、AT89C51單片機是最常用的單片機,是一種低損耗、高性能、CMOS八位微處理器。AT89C2051與MCS-51系列的單片機在指令系統和引腳上完全兼容,而且能使系統具有許多MCS-51系列產品沒有的功能,功能強、靈活性高而且價格低廉。AT89S51可構成真正的單片機最小應用系統,縮小系統體積,增加系統的可靠性,降低了系統成本。只要程序長度小于4K,四個I/O口全部提供給擁護。系統運行中需要存放的中間變量較少,可不必再擴充外部RAM。 1.1.4、溫度控制 鍵盤輸入一個需要控制的溫度,通過單片機2051的串口把數據傳送到AT89C51,AT89C51通過數據比較,PID分析,T0,T1產生PWM波來控制電爐是否繼續加熱還是停止加熱。 1.1.5、方案選擇 方案一:用熱敏電阻:通過電阻的變化來獲得電壓的變化,起價格雖然便宜但是精度不是很高。對于一個精度要求高的系統不宜采用 方案二:用A/D590:通過AD590溫度傳感器采集溫度,由于AD590是電流傳感器,經過電阻轉換為電壓。雖然價格較高但是精度高。 經比較,我們選擇方案二
第3節 系統硬件設計 3.1系統框圖
圖3-1 單片機控制系統原理框圖
3.1.2鍵盤顯示電路 本模塊以AT89C2051單片機為核心,利用138譯碼器對顯示器動態掃描及作為鍵盤的掃描線,采用此方法大大簡化了硬件,充分的利用了單片機的資源,這也是本設計的巧妙所在。可同過鍵盤來設置溫度,并顯示在數碼管上,并通過串口發送出去,另外檢測到溫度通過串口接收進來,并顯示在相應的數碼管上鍵盤的掃描輸入與顯示器的掃描輸出由單片機控制,但考慮到鍵盤與接口需要較多的I/O口線,如果直接由單片機控制,一方面必須擴充系統I/O口,另一方面,鍵盤與LED顯示的掃描處理占用大量機時,增加軟件編程負擔。為此在組成系統人機對話通道時采用了可編程的鍵盤。顯示接口芯片8051,由8051負責鍵盤掃描、消抖處理和顯示輸出工作。根據認為的要求,8051鍵盤被設計為2*8行,掃描線有SL0~SL8經譯碼輸出,接入鍵盤列線,查詢RL0~RL1提供,采用鍵盤掃描法對16個按鍵進行讀取狀態。使用行列式,把這16個按鍵分為8
633013282936031.jpg (512 Bytes, 下載次數: 67)
下載附件
2016-3-30 21:40 上傳
2,采用74LS138對8行鍵盤輪流掃描,再通過P3.2和P3.7這2列讀進來,從而判斷按鍵是否按下。電路如圖3所示。 鍵盤的系統框圖如下:
633013282977637.jpg (77.5 KB, 下載次數: 75)
下載附件
2016-3-30 21:40 上傳
鍵盤顯示圖一
633013282971540.jpg (6 KB, 下載次數: 68)
下載附件
2016-3-30 21:40 上傳
鍵盤顯示圖二 2系統溫度控制 前向通道: 以AT89C51單片機為控制核心,采集到溫度,經放大,AD轉換后送單片機處理,再通過串行口發送到顯示模塊因為考慮到PID運算時需要調用浮點數運算程序庫,程序需要占用很大的存儲空間,8051內部的能滿足此要求,所以不需要擴展外部ROM,系統中運行中需要存放的中間變量只有給定溫度和實測,PID運算中間結果及輸出結果等十幾個變量.因而8051片內的RAM能夠滿足要求,可不必再擴展。
633013282992925.jpg (257.5 KB, 下載次數: 78)
下載附件
2016-3-30 21:40 上傳
后向通道: 后向通道是實現控制型號輸出的通道,單片機系統產生的控制信號經過功率放大器的放大控制電爐的輸入功率,以實現水溫的控制的目的.根據系統的總誤差要求,后向通道的控制精度也要應控制在0.83%之內.
633013282977740.jpg (310.5 KB, 下載次數: 104)
下載附件
2016-3-30 21:40 上傳
633013292916210.jpg (246.5 KB, 下載次數: 80)
下載附件
2016-3-30 21:40 上傳
以上就是整個電路的框圖, 將前述各單元電路連接起來,就可構成完整的系統硬件電路圖。系統硬件電路中除了包含前、后向通道的輸入、輸出插座外,還應考慮增加苦干個插座,以方便主控板與各部件的連接。硬件電路制作包括印刷線路板制作、焊接和系統連接等幾個方面。印刷線路板的設汁一般都是在計算機上利用Protel 99 SE軟件進行輔助設計。 3.2 程序流程圖 系統軟件由主程序、鍵盤掃描、LED顯示、串行口中斷組成。由于本模塊就進行鍵盤與顯示任務,且鍵盤掃描與LED掃描是用同個74LS138來完成,可以將程序精簡,即把鍵盤和顯示的程序合在一起放在主程序里。 (1)初始化。設定可編程芯片的工作方式,對內存中的工作參數區進行初始化,顯示系統初始狀態。 (2)讀溫度程序. 通過DS18B20的側溫. (3)調用PID算法子程序通過鍵盤模塊發送過來的數據,即給定值,和測量值進行計算,輸出PWM波.對電爐的水溫度進行控制. (4)返回 (2)定時中斷服務程序: 采樣定時由定時器o的定時操作完成,定時器o的定時初值時間由PID的運算結果控制。程序流程如圖所示:
(3)脈寬調制輸出子程序:
第4節 參數計算 系統調試包括硬件調試和軟件調試。按+鍵設定溫度值加一;按-鍵設定溫度值減一;按設溫鍵,可任意設置溫度,輸入相應的數值,按確定鍵即可,按取消鍵則返回前一次設置的值;按初始鍵則返回剛一開機的狀態。軟件的調試府在仿真器提供的單步、斷點、跟蹤等功能的支持下對各子程序分別進行調試.將調試完的工程序連接起來再調試.逐步擴大調試范圍。 4.1 系統各模塊設計及參數計算 4.1.1、溫度采集部分及轉換部分 我們使用AD590來采集外界的溫度。AD590是美國模擬器件公司生產的單片集成兩端感溫電流源。
633013302937721.jpg (3.5 KB, 下載次數: 101)
下載附件
2016-3-30 21:40 上傳
它的主要特性如下: 1、流過器件的電流(mA)等于器件所處環境的熱力學溫度(開爾文)度數,即:mA/K式中: —流過器件(AD590)的電流,單位為mA; T—熱力學溫度,單位為K。 2、AD590的測溫范圍為-55℃~+150℃。 3、AD590的電源電壓范圍為4V~30V。電源電壓可在4V~6V范圍變化,電流 變化1mA,相當于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會被損壞。 4、輸出電阻為710MW。 5、精度高。AD590共有I、J、K、L、M五檔,其中M檔精度最高,在-55℃~+150℃范圍內,非線性誤差為±0.3℃。 由于AD590采集的輸出數據是模擬量—電流,而且很小,不易測量,所以我們要將電流量轉換成電壓量,這樣有利于后面的放大及D/A轉換。我們改用一個固定電阻(9.1k或10k)和一個電位器(1K)串接的方法,這樣可以通過調節電位器使得每路輸出電壓基本一致。如以0℃為參考值則應使其電壓輸出為2.73V;如以25℃為參考值,則應使其電壓輸出為2.98V. 4.1.2、傳感器輸出信號放大電路部分: 由于取得的電壓量很小,我們選用LM324做為運放,以為其內部帶有四個運放,可以使得運放部分在電路版上不占用太大的體積。我們用了其內部的三個運放。第一級運放我們做成射級跟隨器的形式,起到阻抗匹配的作用。第二級運放設計為反相比例求和電路,根據反相比例求和電路公式,我們設計了如下圖的電路,U=-((10/10)*U1+10/(20+R)),其中U為第二級輸出電壓,R為50k的電位器。可以通過調節電位器使得輸出電壓達到要求。設0℃時,第二級的輸出為2.73-2.73=0V,而25℃時,第二級的輸出為2.73-2.98= -0.25V(反相)(零位調整)。第三級運放設計為反相比例放大電路,我們設計為將第二級的輸出電壓放大5倍。所以我們選用了10k和50k的電阻來實現。 4.1.3、模數轉換電路部分: 這部分最初想用ADC0809的,但為了配合使用CD4051,我們最終選擇了ADC0804。ADC0804的規格及引腳圖 ·8位CMOS逐次逼近型的A/D轉換器 ·三態鎖定輸出 ·存取時間:135μs; ·分辨率:8位; ·轉換時間:100μs; ·總誤差:±1LSB; ·工作溫度:ADC0804LCN——0℃~+70℃; ·ADC0804LCD—— -40℃~+85℃; 引腳圖及說明如圖所示:
633013302958545.jpg (5 KB, 下載次數: 74)
下載附件
2016-3-30 21:40 上傳
/CS:芯片選擇信號。 /RD:外部讀取轉換結果的控制腳輸出信號。/RD為高時,DB0~DB7處于高阻抗;/RD為低時,數字數據才會輸出。 /WR:用來啟動轉換的控制輸入,相當于ADC的轉換開始(/CS=0時),當/WR由高變為低時,轉換器被清除;當/WR回到高時,轉換正式開始。 CLK IN, CLK R:時鐘輸入或接振蕩元件(R,C),頻率約限制在100kHz~1460kHz,如果使用RC電路則其振蕩頻率為1/(1.1RC). /INTR:中斷請求信號輸出,低電平動作。 VIN(+)、VIN(-):差動模擬電壓輸入。輸入單端正電壓時,VIN(-)接地;而差動輸入時,直接加入VIN(+)、VIN(-)。 AGND,DGND:模擬信號及數字信號的接地。 VREF:輔助參考電壓。 DB0~DB7:8位的數字輸出。 VCC:電源供應以及作為電路的參考電壓。 眾所周知, 精度是數據采集系統的重要指標, 模數轉換器的量化誤差是影響系統精度的主要因素,A/D轉換器的位數越多, 其量化誤差越小, 一個M 位的A/D 轉換器的量化誤差可表示為:
633013302946703.jpg (1 KB, 下載次數: 71)
下載附件
2016-3-30 21:40 上傳
式中V ref為模數轉換器的參考基準電壓。設A/D 轉換電路的模擬輸入電壓為Vi, 則經A/D 轉換后的相對誤差表示為:
633013302930869.jpg (1.5 KB, 下載次數: 70)
下載附件
2016-3-30 21:40 上傳
(2)上式表明, 當模數轉換器的位數選定后, 其相對誤差D與其模擬輸入電壓V i 成反比。因此只有將輸入信號V i 預放大到接近參考電壓V ref, 才能充分發揮A/D 轉換器位數的效能, 減小量化誤差, 提高系統數據采集精度。此即為引入前置放大器的目的之所在。
逐步逼近式A/D的轉換公式:
633013302924104.jpg (1 KB, 下載次數: 86)
下載附件
2016-3-30 21:40 上傳
,
633013302984238.jpg (1 KB, 下載次數: 76)
下載附件
2016-3-30 21:40 上傳
、Ux為輸入電壓、N為輸出值 (1-1)
633013302985301.jpg (1 KB, 下載次數: 93)
下載附件
2016-3-30 21:40 上傳
(1-2) 當選定參考電壓和A/D位數時,e為常數,由誤差傳遞公式得:
633013302950859.jpg (1 KB, 下載次數: 78)
下載附件
2016-3-30 21:40 上傳
,Ux是輸入絕對誤差 (1-3) 由式(1-3)知:當輸入電壓越大,A/D轉換的相對誤差越小,當然輸入電壓不能大于A/D最大轉換電壓。因此為了減少A/D轉換誤差,對輸入信號進行放大。 4.1.4、ADC0804芯片外圍電路的設計: a.19腳的CLKR端接一個10k的電阻和150PF的電容,根據公式f=1/(1.1RC),可算得時鐘輸入頻率為0.6兆左右。 b.9腳:選擇470k的電阻、5k的電位器和2.7伏的穩壓管來調節芯片的相對電壓。本電路中應調節電位器使得9腳電壓為2 .56伏。 c.1、7、8腳接地 d.6腳接運放的輸出端,采集收集到的信號,經過A/D轉換最后輸出8位2 進制數,這樣就可以送到單片機里進行處理了。 4.1.5、數值處理部分及顯示部分: 數值處理部分:我們采用8051芯片,其內部自帶程序存儲器。其外接12兆的晶振來給起供應震蕩頻率。9腳接一個10μF的電解電容再接地,來實現復位功能。/RD和/WR分別與ADC0804的/RD和/WR相連,實現數據的讀寫控制。P2.4腳與ADC0804的/INTR相接,可以通過編程來判斷該腳的高低來得知A/D轉換是否完成。P1.4~P1.7及P2.7口分別外接一個4.7k的電阻接至三極管的C端,來控制三極管的通斷,來控制5個數碼管的亮暗。P2.0~P2.2口分別與ADC0804的9、10、11腳來控制選擇的路數。 顯示部分:用7447芯片與8051的P1.0~P1.3口相連,7447芯片可將8051轉換好的8421BCD碼轉換成7段碼送到數碼管顯示。數碼管選用共陽的,因此在其Vcc端要外接一個三極管(9013),通過控制三極管給數碼管供電,來控制數碼管的通斷。 4.1.6、PID算法的介紹:
633013302959515.jpg (2.5 KB, 下載次數: 101)
下載附件
2016-3-30 21:40 上傳
在模擬系統中,PID算法的表達式:
(1)式中: P(t)——調節器的輸出信號: e(t)——調節器的偏差信號,它等于測量值與給定值之差; KP——調節器的比例系數; TI——調節器的積分時間; TD——調節器的微分時間。 4.1.7、A/D轉換模塊 由于系統對信號采集的速度要求不高,故可以采用價格低的8位逐次逼近式A/D轉換器ADC0804,該轉換器轉換速度為100us,轉換精度為0.39%,對應誤差為0.2340°C。故采用AD0804,ADC0804是8位模數轉化電路,它能把模擬電壓值轉化為8位二進制碼,其轉化公式如下:DX=VIN*256/VREF 我們這里設置VREF 等于5V(因為這里懸空沒接,查資料可知其為5V),則DX 所對應的值就是八位二進制碼的十進制值,具體轉化表如下: 溫度值 | ADCin(V) | DX | 十六進制編碼 | 溫度值 | ADCin(V) | DX | 十六進制編碼 | 0°C | 0 | 0 | 00H | 30°C | 2.344 | 8 | 78H | 2°C | 0.156 | 1 | 07H | 35°C | 2.734 | 9 | 8BH | 4°C | 0.313 | 2 | 0AH | 40°C | 3.125 | A | A0H | 8°C | 0.625 | 3 | 20H | 45°C | 3.516 | B | B4H | 10°C | 0.781 | 4 | 27H | 50°C | 3.906 | C | C7H | 15°C | 1.172 | 5 | 3CH | 55°C | 4.297 | D | DCH | 20°C | 1.560 | 6 | 4FH | 60°C | 4.688 | E | F0H | 25°C | 1.953 | 7 | 63H | 64°C | 5.000 | F | FFH |
A/D轉換器時鐘電路參數計算 ADC0804片內有時鐘電路,其振蕩頻率可按下式計算: fclk≈1/1.1RC 式中R和C分別是CLK_R和CLK_IN兩端外接一對地電阻、電容的阻容值。其典型應用參數為R=10KΩ,C=150PF。此時fclk≈640kHz,A/D轉換時間約為103≈μs。A/D轉換器的INTR與89C51的P1.0相連,單片機以查詢方式獲取A/D轉換器轉換完畢的信息。 4.1.8、控制模塊 由于用單片機來控制雙向晶閘管,而晶閘管陽極和陰極間所接的是220V的交流電壓,故本電路在中間加了一個光電耦合器件,使低壓區和高壓區隔離開。光電耦合器件采用的是MOC3041,其耐壓值為400V,可以滿足本設計的要求。而光電耦合器件的工作電流較大,因此前面需加放大電路,采用的是小功率硅三極管9012可滿足要求,另外為了保護光電耦合器件需在高壓側接一個大功率電阻。雙向晶閘管的選取:由于負載是1KW的電爐,用于控制負載輸入功率的雙向晶閘管應能滿足負載對工作電壓、電流的要求。 工作電壓峰值可按下式計算: Vp=220Χ1.414=313(V) 工作電流峰值可按下式計算: Ip=1000/220Χ1.414=6.43(A) 因此,為滿足應用要求并適當留有余地,雙向晶閘管可選用BAT12-600,該器件可承受的最大反向電壓為600V,最大電流為12A,為了保護雙向晶閘管還可在其旁邊加一保護電路(即緩沖電路),因為雙向晶閘管在開通和關斷的瞬間du/dt的變化率較大,開關損耗很大,因此加上阻容電路,利用儲能元件對能量進行緩沖,從而達到保護的目的,具體電路如圖2所示。 由于本電路采用PID控制,程序較長,約為2.8K左右,因此選用比較熟悉AT89C51單片機,其容量為4K,可以滿足設計的要求。 復位電路的參數選擇:本設計晶振用的是12M,則機器周期為1us,要使單片機復位需持續2個機器周期的高電平。可按下式計算: RC≧2us 為了使單片機能夠可靠地上電自動復位,選取R=8.2KΩ,C=10uF。 4.2 系統硬件調試 溫系統經溫度傳感器和信號放大器產生0~5V的模擬電壓信號送入A/D轉換器的輸入端,A/D轉換器將模擬量轉換為數字量通過系統總線送入單片機進行運算處理。 硬件電路的調試應依次對單片機基本系統、前向通道和后向通道分別進行調試。調試時可利用仿真器對各接口地址進行讀寫操作,靜態地測試電路各部分的連接是否正確;對于動態過程(如中斷響應、脈寬調制輸出等)可以編寫簡短的調試程序配合硬件電路的調試。 4.2.1、單片機基本系統調試 (a)晶振電路 將仿真器晶扳開關打到外部,如果仿真器出現死機現象,說明用戶系統晶振電路有問題,此時應用示波器觀察單片機時鐘信號,或輸入端是否振蕩信或檢查品振電路各器件參數。 (b)復位電路 按下復位按鈕應使系統處于復位狀態,否則用用表檢查復位電路各點信號和器件參數。 (2)LED顯示電路 本電路采用8個共陰的數碼管動態顯示,前4個為設定溫度,后4個為實測溫度。動態掃描時采用74LS138對這8個數碼管輪流掃描,進行位控,而P1口是進行段控信號的控制,為了增加數碼管的亮度,共陰端有三極管來驅動它的電流。電路如圖6所示。 (3)鍵盤接口電路 本電路采用鍵盤掃描法對16個按鍵進行讀取狀態。使用行列式,把這16個按鍵分為8
6330133029245.jpg (512 Bytes, 下載次數: 71)
下載附件
2016-3-30 21:40 上傳
2,采用74LS138對8行鍵盤輪流掃描,再通過P3.2和P3.7這2列讀進來,從而判斷按鍵是否按下
(4)前向通道調試比較簡單 (5)后向通道調試 (a)靜態調試 用仿真器在p0.0上輸出高電平,雙向可控硅導通.電爐開始加熱;在P0.0上輸出低電平.雙向可控硅截止,電爐停止加熱。如果輸出不正常,應按信號輸出順序分別撿查P0.0、光電耦合器輸入端、光電耦合器輸出端及雙向可控硅兩端的電壓情況。 (b)動態調試 編寫簡短調試程序,在P0.0上周期性地輸出一定占空比的脈寬調制波形,用示被器觀察電爐兩端電壓輸入波形和通斷比例。改變輸出波形占空比,電爐兩端電壓輸入的通斷比也應有相應改變。 (6) 傳感器電路部分 溫度傳感器種類較多。熱電偶由于熱電勢較小,因而靈敏度較低;熱敏電阻由于非線性而影響精度;鉑電阻溫度傳感器由于成本高,在一般小系統中很少使用。AD590是美國Analog Devices公司生產的二端式集成溫度傳感器,具有體積小、重量輕、線性度好、性能穩定等一系列優點。它的測溫范圍為-50~+155°C,滿刻度誤差為0.3°C,當電源電壓在5~10V之間,穩定度為1%,誤差只有0.01°C,完全適用于本設計對水溫測量的要求。另外AD590是溫度——電流傳感器,對于提高系統抗干擾能力也有很大幫助,因此本設計選用AD590作為溫度傳感器。其輸出電流I與溫度的關系可用下式表示:
633013302953994.jpg (1 KB, 下載次數: 88)
下載附件
2016-3-30 21:40 上傳
或
633013302914675.jpg (1.5 KB, 下載次數: 77)
下載附件
2016-3-30 21:40 上傳
式中:I—輸出電流,單位mA KT—標定因子,AD590的標定因子為1mA/°C; TK—開氏溫度。 TC—攝氏溫度。 可見,當溫度為攝氏0°C時,輸出電流為273.2mA。 放大器電阻計算:由于我的測量定為+°C~+64°C,根據這一測量范圍要求,信號轉換電路應將+°C~+64°C溫度轉換為0~5V的電壓信號,根據以上分析可知AD590在0°C和64°C時輸出電流分別為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部分都沒有問題后,就可以進行下一步了,即軟件調試。
(6)軟件調試: 軟件的調試府在仿真器提供的單步、斷點、跟蹤等功能的支持下對各子程序分別進行調試.將調試完的工程序連接起來再調試.逐步擴大調試范圍。調試的過程一般是: a測試程序輸入條件或設定程序輸入條件; b以單步、斷點或跟蹤方式運行程序; c檢查程序運行結果; d運行結果不正確時查找原因。修改程序,重復上述過程。 (7) 注意: A.輸入抗干擾 a、鍵盤 按鍵在按下與抬起時都會有10~20ms的抖動毛刺出現,在讀取鍵值時可先延時,再進行采樣,在本設計中我是調用了一段顯示子程序,和同學的電路相比,效果非常明顯。 b.AD轉換器 由于外界的干擾,AD采樣后的數據會有較大誤差,為了提高準確度,可采用輸入分區抗干擾法,對模擬信號進行初步的處理,降低外界干擾的破壞性,當然再配合多數平均法處理效果更加。 B.輸出抗干擾
633013302967688.jpg (512 Bytes, 下載次數: 74)
下載附件
2016-3-30 21:40 上傳
一般來說,單片機的低電平驅動能力遠高于高電平的驅動能力,可以用上拉電阻的方法來平衡單片機的端口驅動能力,以提高整體的抗干擾能力。因此本設計中只要涉及輸出控制都是采用低電平驅動。
第5節 CPU軟件抗干 5.1 看門狗設計 單片機最易受干擾的是內部計數器PC的值。在受強干擾的時,PC值改變,改變后的值又是隨機的,為一不確定值。因此,對系統內核CPU進行R軟件抗干擾顯得尤為重要,本設計采用的是看門狗設計。 這樣, 就可以進行總體調試了。把編寫好的程序放在電腦里,使用偉福仿真器來仿真,看看8個數碼管顯示的數據是否正確,按下按鍵后能否在數碼管上顯示設定的值,反復的調試、修改程序,使達到預期的效果。 看門狗(Watchdog)電路是嵌入式系統需要的抗干擾措施之一。本文用X25045芯片設計了一種新的看門狗電路,具有體積小、占用I/O口線少和編程方便的特點,可廣泛應用于儀器儀表和各種工控系統中。系統在運行時,通常都會遇到各種各樣的現場干擾,抗干擾能力是衡量工控系統性能的一個重要指標。看門狗(Watchdog)電路是自行監測系統運行的重要保證,幾乎所有的工控系統都包含看門狗電路。在8096系列單片機和增強型8051系列單片機中,該系統已經做在芯片內部,用戶只要用軟件開放它就可以,使用很方便。但目前工控系統仍在使用廉價的普通型8051系列單片機,則看門狗電路必須由用戶自己建立。 看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統需要出讓一個定時器資源,這在許多系統中很難辦到,而且若系統軟件運行不正常,可能導致看門狗系統也癱瘓。硬件看門狗是真正意義上的“程序運行監視器”,如計數型的看門狗電路通常由555多諧振蕩器、計數器以及一些電阻、電容等組成,分立元件組成的系統電路較為復雜,運行不夠可靠。 X25045芯片簡介 X25045是美國Xicor公司的生產的標準化8腳集成電路,它將EEPROM、看門狗定時器、電壓監控三種功能組合在單個芯片之內,大大簡化了硬件設計,提高了系統的可靠性,減少了對印制電路板的空間要求,降低了成本和系統功耗,是一種理想的單片機外圍芯片。X25045引腳如圖1所示。
633013302924293.jpg (6.5 KB, 下載次數: 94)
下載附件
2016-3-30 21:40 上傳
圖5-1 X25045引腳圖 其引腳功能如下。 CS:片選擇輸入;
SO:串行輸出,數據由此引腳逐位輸出;
SI:串行輸入,數據或命令由此引腳逐位寫入X25045;
SCK:串行時鐘輸入,其上升沿將數據或命令寫入,下降沿將數據輸出;
WP:寫保護輸入。當它低電平時,寫操作被禁止;
Vss:地;
Vcc:電源電壓;
RESET:復位輸出。
X25045在讀寫操作之前,需要先向它發出指令,指令名及指令格式如表1所示。
633013302915542.jpg (2.5 KB, 下載次數: 77)
下載附件
2016-3-30 21:40 上傳
表1 X25045指令及其含義 X25045看門狗電路設計及編程 X25045硬件連接圖如圖2所示。X25045芯片內包含有一個看門狗定時器,可通過軟件預置系統的監控時間。在看門狗定時器預置的時間內若沒有總線活動,則X25045將從RESET輸出一個高電平信號,經過微分電路C2、R3輸出一個正脈沖,使CPU復位。圖2電路中,CPU的復位信號共有3個:上電復位(C1、R2),人工復位(S、R1、R2)和Watchdog復位(C2、R3),通過或門綜合后加到RESET端。C2、R3的時間常數不必太大,有數百微秒即可,因為這時CPU的振蕩器已經在工作。
633013302915029.jpg (20 KB, 下載次數: 66)
下載附件
2016-3-30 21:40 上傳
圖5-2X25045看門狗電路硬件連接圖 看門狗定時器的預置時間是通過X25045的狀態寄存器的相應位來設定的。如表2所示,X25045狀態寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關,其余位和EEPROM的工作設置有關。
第6節 測試方法和測試結果 6.1 系統測試儀器及設備 雙路跟蹤穩壓穩流電源DH1718E-5 直流穩壓電源 數字示波器Tektronix TDS1002 偉福E6000/L 仿真器 多功能數字表GDM-8145 數字萬用表 0~100℃溫度計、調溫電熱杯、秒表 6.2 測試方法 由于系統不完善,我采用的是分步調試的方法,步驟如下: (1)在水杯中存放1L凈水,放置在1KW的電爐上,打開控制電源,系統進入準備工作狀態。 (2)先調零,先將OP07的2、3腳短路,然后調節滑動變阻器,使六腳輸出為0。 (3)在改變溫度使溫度為35℃時輸出為0V,溫度為95℃時輸出為5V。在65℃時為2.5V。 (4)在結合軟件進行水溫控制,假如設定溫度為88℃,而實際溫度為55℃,那么就加熱使水問到達88℃,此時水爐會自動斷電,當水溫低與88℃,水爐有會自動加熱實現控制的作用。 (5)然后在雙機通訊,用鍵盤設定溫度,結合軟件加以控制。 6.3 測試結果 (1)測量溫度與給定溫度的相應值如表1所示 表 1
| 給定溫度(℃) | 實測溫度(℃) | 相對誤差 |
| 給定溫度(℃) | 實測溫度(℃) | 相對誤差 | 1 | 35 | 35 | 0 | 4 | 65 | 63 | 2.52% | 2 | 45 | 43 | -3.22% | 5 | 75 | 73 | -2.33% | 3 | 55 | 53 | 2.82% | 6 | 85 | 83 | 2.18% |
上表用溫度計標定測溫系統。分別是水溫穩定在35℃、45℃、55℃、65℃、75℃、85℃,觀察系統測量溫度值和實際溫度值,盡量校準系統使測量誤差在1℃以內。記錄測量數據填入表1。 由上表可以看出,實測溫度和給定溫度之間的絕對溫度超出了±1℃之間,由于系統顯示數值沒有小數部分,所測結果只能以度來衡量,其實際誤差是稍大于±1℃的,測量結果不是很滿足系統誤差的要求。這也是這個系統設置不全的一方面。可以是調0的過程中由于調不到0,我把反饋電阻R18給換了,我第一次換的是20K的雖然能調到但波動很大,后來我又換了一個10K的,那波動就小了很多,也能調到要求的范圍了。但我覺得還是有問題,這個問題是我到現在還沒解決的,在設計的過程中有些電阻是自己去估計取出來的,有些還是很有問題的,我認為這是導致誤差的主要原因。因此我認為可以通過改變電路中一些電阻或電容的阻值來得到改善。 注意,在測量的過程中,也就是在使用AD590傳感器的時候,為了避免器件一被測液體的直接接觸,應將傳感器裝入保護套管中,或將器件用硬質乙烯樹脂等材料密封,以避免被測液體對傳感器的腐蝕和對測量精度產生影響。
結束語
根據設計要求,調試完成的系統應作全面的指標測試。測試過程如下: a.通過鍵盤輸人水溫給定值,輸入范圍能滿足40一90C區分度為1 C的要求。 b.運行水溫控制系統,觀察水溫變化情況.測量水溫靜態誤差,該誤差應能滿足要求。 c.在給定突變或環境溫度突變的情況下,觀察系統的調節時間和超調量,并能根據需要改變系統控制參數,實現不同的控制品質要求。 通過這次實驗, 了解了傳感器A/D590的特性和其應用。也收獲了很多關于單片機相互通信的知識。特別是對PID算法有了一定的了解。在整個系統的制作過程中,溫度的采樣遇到了很大的困難,電阻值沒有調準。還有在PCB板的制作過程中預先沒有設置好線條的粗細,在加220V電壓的線路中,線條應該加粗,防止相互之間的干擾。本系統溫度采樣,PWM波和通信都已經已經完成,但是由于PAB板不能加220V電壓,故而沒有最總完成電路系統。使我的動手能力提高了許多,能夠讓我在做電路時,自己來解決碰到的問題,學會了怎樣去分析電路,怎樣把所學到的知識和實際相起來。但是由于自己是第一次真正做系統,所以在很多方面都沒有經驗,故而并沒有完成老師的要求,今后將都作系統來加強自己這方面的不足。
參考文獻 電子系統設計 主編:何小艇 浙江大學出版社 8051單片機實踐與應用 編著:吳金戎,沈慶陽等 清華大學出版社 單片機應用系統設計 編著:韓志軍,王振波等 機械工業出版社
|