基于繼電器的水溫控制系統(tǒng)_第1頁
基于繼電器的水溫控制系統(tǒng)_第2頁
基于繼電器的水溫控制系統(tǒng)_第3頁
基于繼電器的水溫控制系統(tǒng)_第4頁
基于繼電器的水溫控制系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE18基于繼電器的水溫控制系統(tǒng)摘要:單片機(jī)在檢測(cè)和控制系統(tǒng)中得到廣泛的應(yīng)用,溫度則是系統(tǒng)常需要測(cè)量、控制和保持的一個(gè)量。本文從硬件和軟件兩方面介紹了基于繼電器的溫度控制系統(tǒng)的設(shè)計(jì),對(duì)硬件原理圖和程序框圖作了簡(jiǎn)潔的描述。關(guān)鍵詞:單片機(jī);溫度傳感器;溫度;測(cè)量設(shè)計(jì)要求:1.用51單片機(jī)控制水槽的加熱溫度。從現(xiàn)在的室溫加熱到目標(biāo)溫度40℃。2.加熱棒功率2KW,控制器為繼電器。3.要求在盡可能短的時(shí)間內(nèi)將水從室溫加熱到目標(biāo)溫度,并且能夠保持在目標(biāo)溫度附近的一定精度范圍內(nèi)。一工作原理該水溫控制系統(tǒng)主要由單片機(jī)控制系統(tǒng)、前向通道(溫度采樣轉(zhuǎn)換電路)、后向通道(溫度控制電路)、鍵盤顯示電路等四部分組成,其總體設(shè)計(jì)框圖如圖1所示。顯示電路顯示電路加熱裝置測(cè)試部分鍵盤輸入控制部分圖1單片機(jī)控制系統(tǒng)原理框圖單片機(jī)控制系統(tǒng)原理如圖1所示,其工作原理是單片機(jī)依次查詢各傳感器的輸出信號(hào)(水溫模擬傳感器輸出的模擬信號(hào)需要經(jīng)過溫度傳感器進(jìn)行模數(shù)轉(zhuǎn)換);然后對(duì)輸入信號(hào)進(jìn)行相應(yīng)處理后通過顯示模塊輸出。單片機(jī)控制系統(tǒng)是以單片機(jī)為核心,配合溫度傳感器,信號(hào)處理電路,顯示電路,輸出控制電路組成,軟件選用匯編語言編程。單片機(jī)可將溫度傳感器檢測(cè)到的水溫模擬量轉(zhuǎn)換成數(shù)字量,顯示于顯示器上。功能由硬件和軟件兩大部分協(xié)調(diào)完成,硬件部分主要完成各種傳感器信號(hào)的采集、轉(zhuǎn)換,各種信息的顯示;軟件主要完成信號(hào)的處理及控制功能等。前向通道是系統(tǒng)的溫度采樣轉(zhuǎn)換電路,它主要包括傳感器、信號(hào)調(diào)理系統(tǒng)、A/D轉(zhuǎn)換芯片。其中A/D轉(zhuǎn)換芯片是整個(gè)前向通道的核心。后向通道是系統(tǒng)的溫度控制電路,在單片機(jī)控制系統(tǒng)中,單片機(jī)總是要對(duì)被控制對(duì)象實(shí)現(xiàn)控制操作,因此,在這樣的系統(tǒng)中,需要有后向通道。后向通道是計(jì)算機(jī)實(shí)現(xiàn)控制運(yùn)算處理后,對(duì)被控對(duì)象的輸出通道接口。系統(tǒng)的后向通道是一個(gè)輸出通道,其特點(diǎn)是弱電控制強(qiáng)電,即小信號(hào)輸出實(shí)現(xiàn)大功率控制。鍵盤顯示電路既是用鍵盤輸入的方式來控制單片機(jī),以實(shí)現(xiàn)人們的需求。鍵盤功能主要有按鍵識(shí)別、去抖、重鍵處理、發(fā)送掃描碼、自動(dòng)重發(fā)、接收鍵盤命令、處理命令等。二系統(tǒng)設(shè)計(jì)基本方案確定單片機(jī)控制系統(tǒng)總體方案是進(jìn)行系統(tǒng)設(shè)計(jì)最關(guān)鍵一步,總體方案的好壞直接影響整個(gè)控制系統(tǒng)的性能及實(shí)施細(xì)則,其設(shè)計(jì)主要是根據(jù)被控對(duì)象的任務(wù)及工藝要求而確定。根據(jù)題目要求系統(tǒng)模塊可以劃分為:控制器模塊,加熱裝置模塊,溫度采集模塊,鍵盤與顯示模塊四個(gè)部分。2.1控制器模塊設(shè)計(jì)方案根據(jù)題目要求,控制器主要用于對(duì)溫度測(cè)量信號(hào)的接受和處理,控制電熱絲和風(fēng)扇使控制對(duì)象滿足設(shè)計(jì)要求,控制顯示電路對(duì)溫度值實(shí)時(shí)顯示以及控制鍵盤實(shí)現(xiàn)對(duì)溫度值的設(shè)定等??刂破髂K可以選擇以下方案:采用單片機(jī)89C51為核心。采用了溫度傳感器DS18B20采集溫度變化信號(hào),并通過單片機(jī)處理后去控制溫度,使其達(dá)到穩(wěn)定。使用單片機(jī)具有編程靈活,控制簡(jiǎn)單的優(yōu)點(diǎn),使系統(tǒng)能簡(jiǎn)單的實(shí)現(xiàn)溫度的控制及顯示,并且通過軟件編程能實(shí)現(xiàn)各種控制算法使系統(tǒng)還具有控制精度高的特點(diǎn)。89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。

1.主要特性:

與MCS-51兼容

4K字節(jié)可編程閃爍存儲(chǔ)器

壽命:1000寫/擦循環(huán)

數(shù)據(jù)保留時(shí)間:10年

全靜態(tài)工作:0Hz-24Hz

三級(jí)程序存儲(chǔ)器鎖定

128*8位內(nèi)部RAM

32可編程I/O線

兩個(gè)16位定時(shí)器/計(jì)數(shù)器

5個(gè)中斷源

可編程串行通道

低功耗的閑置和掉電模式

片內(nèi)振蕩器和時(shí)鐘電路

2.管腳說明:

VCC:供電電壓。

GND:接地。

P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。

P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。

P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3口也可作為AT89C51的一些特殊功能口,如下表所示:

口管腳備選功能

P3.0RXD(串行輸入口)

P3.1TXD(串行輸出口)

P3.2/INT0(外部中斷0)

P3.3/INT1(外部中斷1)

P3.4T0(記時(shí)器0外部輸入)

P3.5T1(記時(shí)器1外部輸入)

P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)

P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)

P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。

ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。

/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。

3.振蕩器特性:

XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。

4.芯片擦除:

整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。

此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。

5.結(jié)構(gòu)特點(diǎn):

8位CPU;

片內(nèi)振蕩器和時(shí)鐘電路;

32根I/O線;

外部存貯器尋址范圍ROM、RAM64K;

2個(gè)16位的定時(shí)器/計(jì)數(shù)器;

5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí);

全雙工串行口;

布爾處理器;

2.2加熱裝置模塊設(shè)計(jì)方案本設(shè)計(jì)使用功率2KW的加熱棒進(jìn)行加熱,控制加熱棒的功率即可以控制加熱的速度。對(duì)加熱裝置模塊可以選擇以下方案:采用繼電器控制。使用繼電器可以通過較高的電壓和電流,在正常條件下,工作十分可靠。繼電器無需外加光耦,自身即可實(shí)現(xiàn)電氣隔離。這種電路無法精確實(shí)現(xiàn)電熱絲功率控制,電熱絲只能工作在最大功率或零功率,對(duì)控制精度將造成影響。但可以由多路加熱絲組成功率控制,由單片機(jī)對(duì)溫差的處理實(shí)現(xiàn)分級(jí)功率控制,提高系統(tǒng)動(dòng)態(tài)性能。采用繼電器控制省去光耦和交流過零檢測(cè)電路,在軟件上選用適當(dāng)?shù)目刂扑惴?,同樣可以達(dá)到較好的效果。2.3溫度采集模塊設(shè)計(jì)方案本設(shè)計(jì)溫度信號(hào)為模擬信號(hào),要對(duì)溫度進(jìn)行控制和顯示,所以要把模擬量轉(zhuǎn)換為數(shù)字量。該溫度采集模塊可以選擇以下方案:采用數(shù)字溫度傳感器DS18B20。DS18B20為數(shù)字式溫度傳感器,無需其他外加電路,直接輸出數(shù)字量。可直接與單片機(jī)通信,讀取測(cè)溫?cái)?shù)據(jù),電路簡(jiǎn)單。DS18B20與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。它在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面帶來了令人滿意的效果。2.4鍵盤與顯示模塊設(shè)計(jì)方案為了方便的修改控制參數(shù),系統(tǒng)設(shè)計(jì)了鍵盤與顯示電路。顯示器的掃描方式一般有靜態(tài)顯示和動(dòng)態(tài)顯示,對(duì)于多位LED數(shù)碼顯示器,通常采用動(dòng)態(tài)掃描方法,即逐個(gè)地循環(huán)地點(diǎn)亮各位顯示器。這樣雖然在任一時(shí)刻只有1位顯示器被點(diǎn)亮,但是由于人眼具有視覺殘留效應(yīng),看起來與全部顯示器持續(xù)點(diǎn)亮的效果基本一樣(在亮度上要有差別)。靜態(tài)顯示顯示多位LED時(shí),硬件電路結(jié)構(gòu)比較復(fù)雜,為簡(jiǎn)化電路結(jié)構(gòu),電路中沒有采用譯碼器,直接用單片機(jī)程序進(jìn)行編碼輸出,這樣使硬件結(jié)構(gòu)清晰。圖2顯示電路此電路中的LED數(shù)碼顯示器是8段共陽極接法,所以顯示0、1、2、3、4、5、6、7、8、9時(shí)分別對(duì)應(yīng)編碼C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H,要顯示小數(shù)點(diǎn)時(shí),只需再將相應(yīng)的編碼的最高位置0。由于LED顯示器的段電流為8mA左右,所以不能由單片機(jī)直接驅(qū)動(dòng),因此接上驅(qū)動(dòng)器74LS245八雙向總線收發(fā)器,而LED顯示器的公共端的驅(qū)動(dòng)電流較大,8段全亮?xí)r需約40~60mA。因此在單片機(jī)與LED的公共端之間接上三極管做為電流驅(qū)動(dòng)器以提高驅(qū)動(dòng)能力。此三極管采用的是PNP型。表174LS245輸入與輸出鍵盤采用非編碼鍵盤結(jié)構(gòu),目的為了簡(jiǎn)化硬件電路,圖3和4表示了此4*4行列式鍵盤的結(jié)構(gòu)示意圖。4*4表示有4根行線和4根列線,在每根行線和列線的交叉點(diǎn)上均勻分布1個(gè)單觸點(diǎn)按鍵,共16個(gè)按鍵。其中定義0~9十個(gè)數(shù)字鍵,小數(shù)點(diǎn),開/關(guān)鍵,顯示參數(shù)鍵,設(shè)定值鍵。P1.4P1.5P1.6P1.7P1.0第一行P1.1第二行P1.2第三行P1.3第四行第1列第2列第3列第4列圖3鍵盤示意圖圖4鍵盤電路三系統(tǒng)各模塊的總體設(shè)計(jì)方案繼電器隨著設(shè)定的溫度,依據(jù)情況跳變。加1鍵Up鍵(P1.1),當(dāng)按下

Up,調(diào)節(jié)當(dāng)前溫度。減1鍵Down

鍵(P1.2),當(dāng)按下Down,調(diào)節(jié)當(dāng)前溫度。OutputOutputLCD數(shù)碼管繼電器DS18B20鍵盤輸入89C51Input圖5系統(tǒng)基本框圖系統(tǒng)的基本框圖如上圖5所示。CPU首先寫入命令給DS18B20,然后DS18B20開始轉(zhuǎn)換數(shù)據(jù),轉(zhuǎn)換后通過89C51來處理數(shù)據(jù)。數(shù)據(jù)處理后的結(jié)果就顯示到數(shù)碼管上。另外由鍵盤設(shè)定溫度值送到單片機(jī),單片機(jī)通過數(shù)據(jù)處理發(fā)出溫度控制信息到繼電器。DS18B20可以被編程,所以箭頭是雙向的。四硬件設(shè)計(jì)與實(shí)現(xiàn)該系統(tǒng)設(shè)計(jì)目的為一實(shí)驗(yàn)系統(tǒng),系統(tǒng)設(shè)計(jì)要求:用51單片機(jī)控制水槽的加熱溫度。從現(xiàn)在的室溫加熱到目標(biāo)溫度40℃。加熱棒功率2KW,控制器為繼電器。要求在盡可能短的時(shí)間內(nèi)將水從室溫加熱到目標(biāo)溫度,并且能夠保持在目標(biāo)溫度附近的一定精度范圍內(nèi)。單片機(jī)初始化模塊繼電器控制模塊鍵盤掃描模塊(掃描有無單片機(jī)初始化模塊繼電器控制模塊鍵盤掃描模塊(掃描有無Enter鍵按下)測(cè)到溫度值,存放到Buffer中處理溫度值,換算成BCD碼溫度顯示模塊圖6系統(tǒng)硬件模塊關(guān)系圖4.1溫度采集部分設(shè)計(jì)本系統(tǒng)采用半導(dǎo)體溫度傳感器作為敏感元件。傳感器我們采用了DS18B20單總線可編程溫度傳感器,來實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,直接輸出數(shù)字量,可以直接和單片機(jī)進(jìn)行通訊,大大簡(jiǎn)化了電路的復(fù)雜度。DS18B20應(yīng)用廣泛,性能可以滿足題目的設(shè)計(jì)要求。4.2DSI8B20的測(cè)溫功能的實(shí)現(xiàn)其實(shí)測(cè)溫電路的實(shí)現(xiàn)是依靠單片機(jī)軟件的編程上。當(dāng)DSI8B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.25℃/LSB形式表示。溫度值格式如表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做比較,若T>TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令做出響應(yīng)。4.3溫度轉(zhuǎn)換算法及分析溫度控制算法通常,溫控都采用偏差控制法。偏差控制的原理是先求出實(shí)測(cè)溫度對(duì)所需溫度的偏差值,然后對(duì)偏差值處理獲得控制信號(hào)去調(diào)節(jié)電阻的加熱功率,以實(shí)現(xiàn)對(duì)溫度的控制。在工業(yè)上,偏差控制又稱PID控制,這是工業(yè)控制過程中應(yīng)用最廣泛的一種控制形式,一般都能收到令人滿意的效果。溫度控制程序框圖溫度控制程序的設(shè)計(jì)應(yīng)考慮如下:1)鍵盤掃描、鍵碼識(shí)別和溫度顯示;2)溫度采樣、數(shù)字濾波;3)數(shù)據(jù)處理;4)PID計(jì)算、溫度標(biāo)度轉(zhuǎn)換主程序框圖(右圖)本程序包括設(shè)置有關(guān)標(biāo)志、暫存單元和顯示緩沖區(qū)清零、T0初始化、CPU開中斷、溫度顯示和鍵盤掃描等程序。4.4系統(tǒng)總體電路圖設(shè)計(jì)以熱電偶為檢測(cè)元件的單片機(jī)溫度控制系統(tǒng)電路原理圖如圖7所示圖7單片機(jī)溫度控制系統(tǒng)電路原理圖五系統(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)查詢方式,來顯示和控制溫度。本軟件設(shè)計(jì)采用循環(huán)查詢來處理各個(gè)模塊,溫度是緩慢變化量,所以可以滿足性能要求。主程序流程圖如圖8所示。5.1系統(tǒng)程序流程圖 系統(tǒng)程序流程圖如圖8所示。圖8系統(tǒng)程序流程圖5.2溫度部分軟件設(shè)計(jì)DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。故主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。程序主要函數(shù)部分如下:(1)初始化函數(shù)//讀一個(gè)字節(jié)函數(shù)ReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--)開始初始化啟動(dòng)DS18B20讀溫度計(jì)算溫度LED顯示{DQ=0;//給脈沖信號(hào)dat>>=1;DQ=1;//給脈沖信號(hào)if(DQ)dat|=0x80;delay(4);}return(dat);}//寫一個(gè)字節(jié)函數(shù)WriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}}(2)讀取溫度并計(jì)算函數(shù)ReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625;t=tt*10+0.5;//放大10倍輸出并四舍五入此行沒用(3)主程序部分見附錄結(jié)束語本文的溫度控制系統(tǒng)只是單片機(jī)廣泛應(yīng)用于各行各業(yè)中的一例,通過本次設(shè)計(jì),對(duì)單片機(jī)的應(yīng)用有了初步了解,對(duì)以前學(xué)過的模電數(shù)電知識(shí)又溫習(xí)了一遍。單片機(jī)的應(yīng)用越來越廣泛,由于單片機(jī)的運(yùn)算功能較差,往往需要借助計(jì)算機(jī)系統(tǒng),因此單片機(jī)和PC機(jī)進(jìn)行遠(yuǎn)程通信更具有實(shí)際意義。參考文獻(xiàn)[1]耿方志.溫度控制系統(tǒng)的設(shè)計(jì).電子世界,2003,12(5).37-38[2]張培仁.十六位單片微型處理器原理及應(yīng)用.清華大學(xué)出版社,2005[5]劉震,張宗勇,肖敬若.數(shù)字式自動(dòng)控溫?zé)崴鞯脑O(shè)計(jì)[J].科學(xué)技術(shù)與工程,2004附:程序代碼===============主程序===============ORG0000HLJMPMAINORG0003HLJMPINT0ORG0030HMAIN:MOVSP,#70H;置初值CLRP1.7MOVR0,#40HSETBPSW.4SETBPSW.3SETBIT0SETBEASETBEX0MOVTMOD,#20H;波特率9600MOVTH1,#0FDHMOVTL1,#0FDHSETBTR1MOVSCON,#50HSETBTICLR30HCLR01HSETBP1.7CLRP1.6CLRP1.5MOVDPTR,#0BFFFHMOVA,#00HMOV2EH,#0MOV2DH,#0MOV2CH,#0MOV2BH,#0MOV2AH,#0MOV29H,#0MOV62H,#0LOOP:MOVDPTR,#0BFFFHMOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換CLR00HWAIT:LCALLXUANCHAXUN:JNBP1.3,LOOP1;調(diào)整JNBP1.4,LOOP2MOVA,29HCJNEA,2CH,AALJMPXXX;正常AA:JNCERRO;上限低于下限,跳轉(zhuǎn)XXX:SETBEX0MOVA,@R0LCALLXUANLJMPWAITERRO:MOV63H,#0EH;顯示“ERRO“MOV62H,#15HMOV61H,#15HMOV60H,#0HSETB30HSETB01HEEEE:LCALLDELAYJNBP1.3,XX1;是否重新調(diào)整JNBP1.4,XX2LJMPEEEEXX1:LJMPLOOP1XX2:LJMPLOOP2;==========顯示數(shù)據(jù)轉(zhuǎn)換=========Xian:MOVA,@R0MOVB,#100MULABMOVR3,AMOVA,BMOVB,#10DIVABMOVR1,#62HMOV@R1,ADECR1MOV@R1,BMOVA,R3MOVB,#10MULABDECR1MOV@R1,BCLR30HACALLDELAYMOVA,2EHCJNEA,62H,E1MOVA,2DHCJNEA,61H,E1MOVA,2CHCJNEA,60H,E1LJMPE2E1:JCSHANG_BAOLJMPE2;======超上限溫度報(bào)警======SHANG_BAO:SETBP1.7SETBP1.6CLRP1.5LJMPX2E2:CLRP1.5CLRP1.6CLRP1.7X1:MOVA,2BHCJNEA,62H,E3MOVA,2AHCJNEA,61H,E3MOVA,29HCJNEA,60H,E3LJMPE4E3:JNCXIA_BAOLJMPE4;======低于下限溫度報(bào)警======XIA_BAO:SETBP1.7SETBP1.5CLRP1.6LJMPX2E4:CLRP1.5CLRP1.6CLRP1.7X2:CLR30HACALLDELAY;========串口通信=========MOVR3,#30H;轉(zhuǎn)ASCII碼MOVA,62HADDA,R3DAAMLP3:JBCTI,MLP2;當(dāng)TI為1時(shí)清0SJMPMLP3MLP2:MOVSBUF,AMOVA,61HADDA,R3DAAMLP5:JBCTI,MLP4SJMPMLP5MLP4:MOVSBUF,AMOVA,#46;小數(shù)點(diǎn)MLP8:JBCTI,MLP9SJMPMLP8MLP9:MOVSBUF,AMOVA,60HADDA,R3DAAMLP7:JBCTI,MLP6SJMPMLP7MLP6:MOVSBUF,AMOVA,#32MLP10:JBCTI,MLP11SJMPMLP10MLP11:MOVSBUF,ARET;==========延時(shí)加顯示=========DELAY:MOVR3,#0A0HD00:ACALLDISPLAYDJNZR3,D00RETDISPLAY:JNB30H,DDMOV30H,#40MOVDPTR,#TAB0MOVA,63HMOVCA,@A+DPTRMOVDPTR,#0F8FFHD0:MOVX@DPTR,ADJNZ30H,D0;千位DD:MOV30H,#40MOVDPTR,#TAB0MOVA,62HMOVCA,@A+DPTRMOVDPTR,#0F9FFHD1:MOVX@DPTR,ADJNZ30H,D1;百位MOV30H,#40MOVDPTR,#TAB0MOVA,61HMOVCA,@A+DPTRJB01H,TTADDA,#80HTT:

溫馨提示

  • 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. 人人文庫(kù)網(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)論