水溫自動(dòng)控制系統(tǒng) 電子大賽報(bào)告書1_第1頁
水溫自動(dòng)控制系統(tǒng) 電子大賽報(bào)告書1_第2頁
水溫自動(dòng)控制系統(tǒng) 電子大賽報(bào)告書1_第3頁
水溫自動(dòng)控制系統(tǒng) 電子大賽報(bào)告書1_第4頁
水溫自動(dòng)控制系統(tǒng) 電子大賽報(bào)告書1_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 電子設(shè)計(jì)大賽題目:水溫控制系統(tǒng)學(xué)校:吉林大學(xué)院系:儀器科學(xué)與電氣工程學(xué)院測(cè)控技術(shù)與儀器系參賽隊(duì)員:水溫控制系統(tǒng)摘要: 該水溫控制系統(tǒng)采用單片機(jī)進(jìn)行溫度實(shí)時(shí)采集與控制。溫度信號(hào)由“一線總線”數(shù)字化溫度傳感器ds18b20提供,ds18b20在-10+85c范圍內(nèi), 固有測(cè)溫分辨率為0.5 。水溫實(shí)時(shí)控制采用繼電器控制熱得快進(jìn)行升溫控制。系統(tǒng)具備較高的測(cè)量精度和控制精度,能完成升溫控制。目 錄1. 系統(tǒng)方案選擇和論證21.1 題目要求21.1.1基本要求21.1.2發(fā)揮部分21.1.3說明21.2系統(tǒng)基本方案21.2.1各模塊電路的方案選擇及論證21.2.2系統(tǒng)各模塊的最終方案52. 硬件設(shè)計(jì)與

2、實(shí)現(xiàn)62.1系統(tǒng)硬件模塊關(guān)系62.2主要單元電路的設(shè)計(jì)62.2.1溫度采集部分設(shè)計(jì)62.2.2加熱控制部分82.2.3鍵盤、顯示、控制器部分83. 系統(tǒng)軟件設(shè)計(jì)103.1 讀取ds18b20溫度模塊子程序103.2數(shù)據(jù)處理子程序103.3鍵盤掃描子程序123.4主程序流程圖134. 系統(tǒng)測(cè)試144.1 靜態(tài)溫度測(cè)試144.2動(dòng)態(tài)溫控測(cè)量144.3結(jié)果分析14附錄1:產(chǎn)品使用說明15附錄2:元件清單15附錄3:系統(tǒng)硬件原理圖16附錄4:軟件程序清單17參考文獻(xiàn)261.系統(tǒng)方案選擇和論證1.1 題目要求設(shè)計(jì)并制作一個(gè)水溫自動(dòng)控制系統(tǒng),控制對(duì)象為1l凈水,容器為搪瓷器皿。水溫可以在一定范圍內(nèi)由人工設(shè)

3、定,并能在環(huán)境溫度降低時(shí)實(shí)現(xiàn)自動(dòng)控制,以保持設(shè)定的溫度基本不變。1.1.1基本要求(1)溫度設(shè)定范圍為4090,最小區(qū)分度為1,標(biāo)定溫度1。(2)環(huán)境溫度降低時(shí)(例如用電風(fēng)扇降溫)溫度控制的靜態(tài)誤差1。(3)用十進(jìn)制數(shù)碼管顯示水的實(shí)際溫度。1.1.2發(fā)揮部分(1)采用適當(dāng)?shù)目刂品椒?,?dāng)設(shè)定溫度突變(由40提高到60)時(shí),減小系統(tǒng)的調(diào)節(jié)時(shí)間和超調(diào)量。(2)溫度控制的靜態(tài)誤差0.2。1.1.3說明(1)加熱器用一千瓦熱得快。(2)如果采用單片機(jī)控制,允許使用已有的單片機(jī)最小系統(tǒng)板。(3)數(shù)碼顯示部分可以使用數(shù)碼顯示模塊。(4)測(cè)量水溫時(shí)只要求在容器內(nèi)任意設(shè)置一個(gè)測(cè)量點(diǎn)。1.2系統(tǒng)基本方案根據(jù)題目要

4、求系統(tǒng)模塊分可以劃分為:溫度測(cè)量模塊,顯示電路模塊,加熱模塊,控制模塊,系統(tǒng)的框圖如圖1.2.1所示。為實(shí)現(xiàn)各模塊的功能,分別做了幾種不同的設(shè)計(jì)方案并進(jìn)行了論證。1.2.1各模塊電路的方案選擇及論證(1)控制器模塊根據(jù)題目要求,控制器主要用于對(duì)溫度測(cè)量信號(hào)的接受和處理、控制電熱絲使控制對(duì)象滿足設(shè)計(jì)要求、控制顯示電路對(duì)溫度值實(shí)時(shí)顯示以及控制鍵盤實(shí)現(xiàn)對(duì)溫度值的設(shè)定等。對(duì)控制器的選擇有以下三種方案:方案一:采用fpga作為系統(tǒng)控制器。fpga功能強(qiáng)大,可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,它將所有器件集成在一塊芯片上,減少了體積,提高了穩(wěn)定性,并且可應(yīng)用eda軟件仿真、調(diào)試,易于進(jìn)行功能擴(kuò)展。

5、fpga采用并行的i/o口方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)控制核心。由溫度傳感器送來的溫度信號(hào),經(jīng)fpga程序?qū)ζ溥M(jìn)行處理,控制加熱裝置動(dòng)作。但由于本設(shè)計(jì)對(duì)數(shù)據(jù)處理的速度要求不高,fpga的高速處理的優(yōu)勢(shì)得不到充分體現(xiàn),并且其成本偏高,引腳較多,硬件電路布線復(fù)雜。output顯示電路加熱裝置測(cè)溫部分鍵盤輸入控制部分input圖1.2.1 系統(tǒng)基本模塊方框圖方案二:采用模擬運(yùn)算放大器組成pid控制系統(tǒng)。對(duì)于水溫控制是足夠的。但要附加顯示、溫度設(shè)定等功能,要附加許多電路,稍顯麻煩。方案三:采用atmel公司的at89c52作為系統(tǒng)控制器。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度

6、大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點(diǎn)。基于以上分析擬訂方案三,由at89c52作為控制核心,對(duì)溫度采集和實(shí)時(shí)顯示以及加熱裝置進(jìn)行控制。(2)加熱裝置有效功率控制模塊根據(jù)題目,可以使用熱得快進(jìn)行加熱,控制電熱爐的功率即可以控制加熱的速度。當(dāng)水溫過高時(shí),關(guān)掉熱得快進(jìn)行降溫處理,讓其自然冷卻。在制作中,當(dāng)需要加熱時(shí)開啟熱得快。由于加熱的功率較大,考慮到簡化電路的設(shè)計(jì),我們直接采用220v電源。對(duì)加熱裝置控制模塊有以下兩種方案:方案一:采用可控硅來控制加熱器有效功率??煽毓枋且环N半控器件,應(yīng)用于交流電的功率控制有兩種形式:控制導(dǎo)通的交流周期數(shù)達(dá)到控制功率

7、的目的;控制導(dǎo)通角的方式控制交流功率。由交流過零檢測(cè)電路輸出方波經(jīng)適當(dāng)延時(shí)控制雙向可控硅的導(dǎo)通角,延時(shí)時(shí)間即移相偏移量由溫度誤差計(jì)算得到??梢詫?shí)現(xiàn)對(duì)交流電單個(gè)周期有效值周期性控制,保證系統(tǒng)的動(dòng)態(tài)性能指標(biāo)。該方案電路稍復(fù)雜,需使用光耦合驅(qū)動(dòng)芯片以及變壓器等器件。但該方案可以實(shí)現(xiàn)功率的連續(xù)調(diào)節(jié),因此響應(yīng)速度快,控制精度也高。方案二:采用繼電器控制。使用繼電器可以很容易實(shí)現(xiàn)地通過較高的電壓和電流,在正常條件下,工作十分可靠。繼電器無需外加光耦,自身即可實(shí)現(xiàn)電氣隔離。這種電路無法精確實(shí)現(xiàn)電熱絲功率控制,電熱絲只能工作在最大功率或零功率,對(duì)控制精度將造成影響。但可以由多路加熱絲組成功率控制,由單片機(jī)對(duì)溫

8、差的處理實(shí)現(xiàn)分級(jí)功率控制提高系統(tǒng)動(dòng)態(tài)性能?;谝陨戏治鲆约艾F(xiàn)有器件限制選擇方案二,采用繼電器控制省去光耦和交流過零檢測(cè)電路,在軟件上選用適當(dāng)?shù)目刂扑惴?,同樣可以達(dá)到較好的效果。(3)溫度采集模塊題目要求溫度靜態(tài)誤差小于等于0.2,溫度信號(hào)為模擬信號(hào),本設(shè)計(jì)要對(duì)溫度進(jìn)行控制和顯示,所以要把模擬量轉(zhuǎn)換為數(shù)字量。該溫度采集模塊有以下三種方案:方案一:利用熱電阻傳感器作為感溫元件,熱電阻隨溫度變化而變化,用儀表測(cè)量出熱電阻的阻值變化,從而得到與電阻值相應(yīng)的溫度值。最常用的的是鉑電阻傳感器,鉑電阻在氧化介質(zhì)中,甚至在高溫的條件下其物理,化學(xué)性質(zhì)不變。由鉑電阻阻值的變化經(jīng)小信號(hào)變送器xtr101將鉑電阻隨

9、溫度變化的轉(zhuǎn)換為420ma線形變化電路,再將電流信號(hào)轉(zhuǎn)化為電壓信號(hào),送到a/d轉(zhuǎn)換器adc0809.即將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。該方案線性度優(yōu)于0.01。方案二:采用溫度傳感器ad590k。ad590k具有較高精度和重復(fù)性,良好的非線性保證0.1的測(cè)量精度。加上軟件非線性補(bǔ)償可以實(shí)現(xiàn)高精度測(cè)量。ad590將溫度轉(zhuǎn)化為電流信號(hào),因此要加相應(yīng)的調(diào)理電路,將電流信號(hào)轉(zhuǎn)化為電壓信號(hào)。送入8為a/d轉(zhuǎn)換器,可以獲得255級(jí)的精度,基本滿足題目要求。 方案三:采用數(shù)字溫度傳感器ds18b20。ds18b20為數(shù)字式溫度傳感器,無需其他外加電路,直接輸出數(shù)字量。可直接與單片機(jī)通信,讀取測(cè)溫?cái)?shù)據(jù),電路簡單。如

10、圖1.2.2 所示 。圖1.2.2 ds18b20測(cè)溫電路基于以上分析和現(xiàn)有器件所限,溫度采集模塊選用方案三。ds18b20與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。并且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅需要一根口線(單線接口)讀寫,因而使用ds18b20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面帶來了令人滿意的效果。(4)鍵盤與顯示模塊根據(jù)題目要求,水溫要由人工設(shè)定,并能實(shí)時(shí)顯示溫度值。對(duì)鍵盤和顯示模塊有下面兩種方案: 方案一:采用液晶顯示屏和通用矩陣鍵盤。液晶顯示屏(l

11、cd)具有功耗小、輕薄短小無輻射危險(xiǎn),平面直角顯示以及影象穩(wěn)定不閃爍,可視面積大,畫面效果好,抗干擾能力強(qiáng)等特點(diǎn)。但由于只需顯示三位溫度值,信息量比較少,且由于液晶是以點(diǎn)陣的模式顯示各種符號(hào),需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器資源占用較多,其成本也偏高。方案二:采用三位led七段數(shù)碼管分別顯示溫度的十位、個(gè)位和小數(shù)位。按鍵采用單列3按鍵進(jìn)行溫度設(shè)定。數(shù)碼管具有:低能耗、低損耗、低壓、壽命長、耐老化,對(duì)外界環(huán)境要求較低。同時(shí)數(shù)碼管采用bcd編碼顯示數(shù)字,程序編譯容易,資源占用較少。根據(jù)以上論述,采用方案二。本系統(tǒng)中,采用了數(shù)碼管的動(dòng)態(tài)顯示,節(jié)省單片機(jī)的內(nèi)部資源。1.2.2系統(tǒng)各模塊

12、的最終方案根據(jù)以上分析,結(jié)合器件和設(shè)備等因素,確定如下方案: 1. 采用at89c52單片機(jī)作為控制器,分別對(duì)溫度采集、led顯示、溫度設(shè)定、加熱裝置功率控制。2. 溫度測(cè)量模塊采用數(shù)字溫度傳感器ds18b20。此器件經(jīng)軟件設(shè)置可以實(shí)現(xiàn)高分辨率測(cè)量。 3. 熱得快有效功率控制采用繼電器控制,實(shí)現(xiàn)電路簡單實(shí)用,加上溫度變化緩慢可以滿足設(shè)計(jì)要求。4. 顯示用led數(shù)碼管顯示實(shí)時(shí)溫度值,用enter、up、down三個(gè)單鍵實(shí)現(xiàn)溫度值的設(shè)定。 outputled數(shù)碼管繼電器ds18b20鍵盤輸入at89c52input圖1.2.3 系統(tǒng)基本框圖系統(tǒng)的基本框圖如圖1.2.3 所示。cpu(at 89c5

13、2)首先寫入命令給ds18b20,然后ds18b20開始轉(zhuǎn)換數(shù)據(jù),轉(zhuǎn)換后通過89s52來處理數(shù)據(jù)。數(shù)據(jù)處理后的結(jié)果就顯示到數(shù)碼管上。另外由鍵盤設(shè)定溫度值送到單片機(jī),單片機(jī)通過數(shù)據(jù)處理發(fā)出溫度控制信息到繼電器。ds18b20可以被編程,所以箭頭是雙向的。2.硬件設(shè)計(jì)與實(shí)現(xiàn)2.1 系統(tǒng)硬件模塊關(guān)系本系統(tǒng)的執(zhí)行方法是循環(huán)查詢執(zhí)行的,鍵盤掃描也是用循環(huán)查詢的辦法,由于本系統(tǒng)對(duì)實(shí)時(shí)性要求不是很高,所以沒有用到中斷方式來處理。各模塊關(guān)系圖如圖2.1.1所示。單片機(jī)初始話模塊繼電器控制模塊鍵盤掃描模塊(掃描有無enter鍵按下)ds18b20得到溫度值,存放到buffer中處理溫度值,換算成bcd碼溫度顯示

14、模塊圖2.1.1 統(tǒng)硬件模塊關(guān)系圖2.2主要單元電路的設(shè)計(jì)2.2.1溫度采集部分設(shè)計(jì)本系統(tǒng)采用半導(dǎo)體溫度傳感器作為敏感元件。傳感器我們采用了ds18b20單總線可編程溫度傳感器,來實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,直接輸出數(shù)字量,可以直接和單片機(jī)進(jìn)行通訊,大大簡化了電路的復(fù)雜度。ds18b20應(yīng)用廣泛,性能可以滿足題目的設(shè)計(jì)要求。ds18b20的測(cè)溫電路如圖2.2.1所示。圖2.2.1 ds18b20測(cè)溫電路(1)dsi8b20的測(cè)溫功能的實(shí)現(xiàn):其測(cè)溫電路的實(shí)現(xiàn)是依靠單片機(jī)軟件的編程上。 當(dāng)dsi8b20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速

15、暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0062 5lsb形式表示。溫度值格式如表2.2.1所示,其中“s”為標(biāo)志位,對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位s=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)s=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。dsi8b20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與 th做比較,若tth或t rom操作命令 - 存儲(chǔ)器操作命令- 處理數(shù)據(jù) 初始化 單總線上的所有處理均從初始化開始 rom操作命令 總線主機(jī)檢測(cè)到dsl820的存在便可以發(fā)出rom操作命令之一這些命令如表2.2.2所示表2.2.2 rom操作命令表指令代碼read ro

16、m(讀rom)33hmatch rom(匹配rom)55hskip rom(跳過romcchsearch rom(搜索rom)f0halarm search(告警搜索)ech 存儲(chǔ)器操作命令如表2.2.3所示表2.2.3 存儲(chǔ)器操作命令表指令代碼write scratchpad(寫暫存存儲(chǔ)器)4ehread scratchpad(讀暫存存儲(chǔ)器)behcopy scratchpad(復(fù)制暫存存儲(chǔ)器)48hconvert temperature(溫度變換)44hrecall eprom(重新調(diào)出)b8hread power supply(讀電源)b4h(3)溫度轉(zhuǎn)換算法及分析由于ds18b20轉(zhuǎn)換

17、后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行計(jì)算轉(zhuǎn)換。溫度高字節(jié)(ms byte)高5位是用來保存溫度的正負(fù)(標(biāo)志為s的bit11bit15),高字節(jié)(ms byte)低3位和低字節(jié)來保存溫度值(bit0 bit10)。其中低字節(jié)(ls byte)的低4位來保存溫度的小數(shù)位(bit0 bit 3)。由于本程序采用的是0.0625的精度,小數(shù)部分的值,可以用后四位代表的實(shí)際數(shù)值乘以0.0625,得到真正的數(shù)值,數(shù)值可能帶幾個(gè)小數(shù)位,所以采取小數(shù)舍入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了0.1度。算法核心:首先程序判斷溫度是否是零下,如果是,則ds18b20保存的是溫度的補(bǔ)碼值,需要對(duì)其低8位

18、(ls byte)取反加一變成原碼。處理過后把ds18b20的溫度copy到單片機(jī)的ram中,里面已經(jīng)是溫度值的hex碼了,然后轉(zhuǎn)換hex碼到bcd碼,分別把小數(shù)位,個(gè)位,十位的bcd碼存入ram中。2.2.2加熱控制部分由于本系統(tǒng)要控制熱得快加熱,功率較大,因此要借助功率電路。在器件選擇上留足余量,增加安全性。加熱部分采用繼電器控制,電路簡單可靠。電路如圖2.2.2所示。當(dāng)實(shí)測(cè)溫度低于設(shè)定值時(shí),由單片機(jī)輸出高電平信號(hào)。三極管9014導(dǎo)通,繼電器開始工作對(duì)水加溫。為了防止繼電器頻繁動(dòng)作。在軟件中對(duì)水溫測(cè)量精確到0.1,而在溫度設(shè)定時(shí)只取整數(shù)??梢杂?的余量。當(dāng)設(shè)定溫度低于實(shí)測(cè)溫度時(shí)為了加快系統(tǒng)

19、動(dòng)態(tài)響應(yīng)速度,設(shè)置一個(gè)小功率電扇,加速水溫的降低。使系統(tǒng)整體性能得以提高。原理圖如圖2.2.3所示。2.2.3鍵盤、顯示、控制器部分本設(shè)計(jì)中采用動(dòng)態(tài)顯示方式驅(qū)動(dòng)3個(gè)七段數(shù)碼管,分別顯示溫度的十位、個(gè)位和小數(shù)位。數(shù)碼管采用共陰極,由于at89c52單片機(jī)每個(gè)i/o的拉電流只有12ma。所以在位碼和段碼都加上了同相驅(qū)動(dòng)器。鍵盤采用按鍵開關(guān)經(jīng)上拉電阻分別接p1.0、p1.1、p1.2口上,起到控制、上調(diào)和下調(diào)作用。每按上調(diào)和下調(diào)鍵,設(shè)定溫度值增1減1。單片機(jī)xtal2、xtal1接12mhzj晶振,提供系統(tǒng)時(shí)鐘基值。另reset接復(fù)位按鍵。原理圖如圖2.2.4所示。圖2.2.2 繼電器控制圖2.2.

20、3 鍵盤、顯示、控制器部分原理圖3.系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)采用匯編語言,對(duì)單片機(jī)進(jìn)行變成實(shí)現(xiàn)各項(xiàng)功能。主程序?qū)δK進(jìn)行初始化,而后調(diào)用讀溫度、處理溫度、顯示、鍵盤、和繼電器各模塊。用的是循環(huán)查詢方式,來顯示和控制溫度。3.1 讀取ds18b20溫度模塊子程序每次對(duì)da18b20操作時(shí)多要按造ds18b20工作過程中的協(xié)議進(jìn)行。初始化- rom操作命令- 存儲(chǔ)器操作命令- 處理數(shù)據(jù) 程序流程圖如圖3.1.1所示。3.2數(shù)據(jù)處理子程序由于ds18b20轉(zhuǎn)換后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行數(shù)據(jù)處理。由于本程序采用的是0.0625的精度,小數(shù)部分的值,可以用后四位代表的實(shí)際數(shù)值乘以0.062

21、5,得到真正的數(shù)值,數(shù)值可能帶幾個(gè)小數(shù)位,所以采取四舍五入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了0.1度。首先程序判斷溫度是否是零下,如果是,則ds18b20保存的是溫度的補(bǔ)碼值,需要對(duì)其低8位(ls byte)取反加一變成原碼。處理過后把ds18b20的溫度copy到單片機(jī)的ram中,里面已經(jīng)是溫度值的hex碼了,然后轉(zhuǎn)換hex碼到bcd碼,分別把小數(shù)位,個(gè)位,十位的bcd碼存入ram中。數(shù)據(jù)處理子程序流程圖如圖3.2.1所示。開始開始初始化ds18b20存在?rom操作命令存儲(chǔ)操作命令讀取溫度值返回是否圖3.1.1讀取ds18b20溫度子程序流程圖返回?cái)?shù)據(jù)傳遞溫度是否為負(fù)?bcd

22、碼轉(zhuǎn)換求補(bǔ)運(yùn)算圖3.2.1數(shù)據(jù)處理子程序流程圖3.3鍵盤掃描子程序按鍵功能: 1. enter p1.0(k2)控制鍵2.up p1.1(k3)加1鍵3. down p1.2(k4)減1鍵鍵盤子程序流程圖如圖3.3.1所示。開始enter_flag為1?enter鍵是否按下?是否有enter鍵按下?是否有up鍵按下?是否有down鍵按下?display顯示返回主程序enter子程序flag=1up子程序down子程序是是是是是否否否否否圖3.3.1鍵盤子程序流程圖3.4主程序流程圖總模塊流程圖如圖3.1.1所示。本軟件設(shè)計(jì)采用循環(huán)查詢來處理各個(gè)模塊,溫度是緩慢變化量所以可以滿足性能要求。圖3.

23、1.1所示為系統(tǒng)主程序流程圖否初始化開始調(diào)用a/d轉(zhuǎn)換子程序ds18b20存在?數(shù)據(jù)處理子程序顯示子程序鍵盤掃描子程序繼電器控制子程序錯(cuò)誤處理顯示888是圖3.1.1主程序流程圖4. 系統(tǒng)測(cè)試4.1 靜態(tài)溫度測(cè)試測(cè)試方式:由于種種條件的限制,采用模擬加熱方式進(jìn)行測(cè)試。利用繼電器的指示燈來顯示繼電器的動(dòng)作。紅燈表示加熱,綠燈表示降溫。測(cè)量儀器:空調(diào)溫度顯示屏測(cè)試結(jié)果如表4.1.1所示:表4.1.1 測(cè)試結(jié)果數(shù)據(jù)標(biāo)準(zhǔn)溫度/2022252728測(cè)量溫度/19.822.124.726.827.6誤差/0.20.10.30.20.44.2動(dòng)態(tài)溫控測(cè)量測(cè)試方式:加熱方式用體溫對(duì)傳感器ds18b20進(jìn)行加熱

24、。設(shè)定控制溫度,記錄超調(diào)溫度,穩(wěn)態(tài)誤差。超調(diào)溫度與加熱的功率有關(guān),這里不再測(cè)量。測(cè)量儀器:空調(diào)溫度顯示屏測(cè)量結(jié)果如表4.2.1所示:表4.2.1 測(cè)試結(jié)果數(shù)據(jù)設(shè)定溫度/29303335超調(diào)溫度/1.30.91.10.6穩(wěn)態(tài)誤差/0.20.40.20.44.3結(jié)果分析有以上的測(cè)量結(jié)果可見,系統(tǒng)基本上達(dá)到了所要求的指標(biāo),靜態(tài)測(cè)溫的精度主要由ds18b20來決定。在控溫指標(biāo)中,影響系統(tǒng)的性能的因素很多。最關(guān)鍵的是加熱系統(tǒng)本身的物理性質(zhì)及控制算法。由于條件的限制,在本設(shè)計(jì)中采用體溫進(jìn)行測(cè)試。 附錄1: 產(chǎn)品使用說明本水溫控制系統(tǒng)能在099范圍內(nèi)設(shè)定任意溫度值,超出此范圍將有出錯(cuò)顯示888,之后返回到9

25、9或0。通過按enter鍵確認(rèn)開始溫度設(shè)定;p1.1的up鍵為加1鍵,每按一次使設(shè)定溫度值加1p1.2的down鍵為減1鍵,每按下一次設(shè)定溫度值減1。設(shè)置完溫度要在按erter鍵確認(rèn)溫度設(shè)定完成,之后顯示實(shí)測(cè)溫度值。當(dāng)溫度傳感器沒有接入時(shí)也將有出錯(cuò)提示顯示888。附錄2: 元件清單 元 件 數(shù) 量(個(gè)) at89s52 1 12mhz晶振 1.2 1 繼電器 1數(shù)碼管 3按鍵開關(guān) 4發(fā)光二極管 21k8排阻 1100電阻 33k 44.5k 1500 1200 1 電解電容10f 130pf 2插槽4面包板2 24附錄3 : 系統(tǒng)硬件原理圖 附錄4:軟件程序清單timel equ 0e0hti

26、meh equ 0b1htemphead equ 36h bitst data 20h time1sok bit bitst.1 temponeok bit bitst.2 templ data 26h temph data 27h temphc data 28h templc data 29h tempdin bit p3.7 org 0000h ljmp start org 0003h reti org 000bh ljmp toit org 0013h reti org 0100h start: mov sp , #60h clsmem: mov r0,#20h mov r1,#60h

27、clsmem1: mov r0,#00h inc r0 djnz r1,clsmem1 mov tmod,#00000001b mov th0,#timel mov tl0,#timeh sjmp init error : nop ljmp start nop init : nop setb et0 setb tr0 setb ea mov psw ,#00h clr temponeok main: lcall disp1 jnb time1sok, main clr time1sok jnb temponeok,main2 lcall readtemp1 lcall convtemp lca

28、ll dispbcd lcall disp1 main2: lcall readtemp setb temponeok ljmp main toit: push psw mov psw,#10h mov th0,#timeh mov tl0,#timel inc r7 cjne r7,#32h,t0it1 mov r7,#00h setb time1sok t0it1: pop psw reti initds1820:setb tempdin nop nop clr tempdin mov r6,#0a0h djnz r6,$ mov r6,#0a0h djnz r6,$ setb tempd

29、in mov r6,#32h djnz r6,$ mov r6,#3ch loop1820: mov c,tempdin jc initds1820out djnz r6,loop1820 mov r6,#64h djnz r6,$ sjmp initds1820 ret initds1820out: setb tempdin ret readds1820: mov r7,#08h setb tempdin nop nop readloop: clr tempdin nop nop nop setb tempdin mov r6,#07h djnz r6,$ mov c,tempdin mov

30、 r6,#3ch djnz r6,$ rrc a setb tempdin djnz r7,readloop mov r6,#3ch djnz r6,$ ret writeds1820: mov r7,#08h setb tempdin nop nop writelop: clr tempdin mov r6,#07h djnz r6,$ rrc a ; 延時(shí)104微秒 mov tempdin,c mov r6,#34h djnz r6,$ setb tempdin djnz r7,writelop ret readtemp: lcall initds1820 mov a,#0cch lcal

31、l writeds1820 ;跳過rom mov r6,#34h ;延時(shí)104微秒 djnz r6,$ mov a,#44h lcall writeds1820 ;開始轉(zhuǎn)換 mov r6,34h ; 延時(shí)104微秒 djnz r6,$ ret readtemp1: lcall initds1820 mov a,#0cch lcall writeds1820 mov r6, #34h djnz r6,$ mov a, #0beh lcall writeds1820 mov r6,#34h djnz r6,$ mov r5,#09h mov r0,#temphead mov b,#00h read

32、temp2: lcall readds1820 mov r0,a inc r0 readtemp21: lcall crc8cal djnz r5,readtemp2 mov a,b jnz readtempout mov a,temphead+0 mov templ,a mov a,temphead+1 mov temph,a readtempout: ret convtemp: mov a,temph anl a,#80h jz tempc1 clr c mov a,templ cpl a add a,#01h mov templ,a mov a,temph cpl a addc a,#0

33、0h mov temph,a mov temphc,#0bh sjmp tempc11 tempc1: mov temphc,#0ah tempc11: mov a,temphc swap a mov temphc,a mov a,templ anl a,#0fh mov dptr,#tempdottab movc a,a+dptr mov templc,a mov a,templ anl a,#0f0h swap a mov templ,a mov a,temph anl a,#0fh swap a orl a,templ lcall hex2bcd1 mov templ,a anl a,#0f0h swap a orl a,temphc mov temphc,a mov a,templ anl a,#0fh swap a orl a,templc mov templc,a mov a,r7 jz tempc12 anl a,#0fh swap a mov r7,a mov a,temphc anl a,#0fh orl a,r7 mov temphc,a tempc12: ret tempdottab: db 00h,01h,01h,02h,0

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論