版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要 本溫度設(shè)計(jì)采用現(xiàn)常見的89C51單片機(jī),配以DS18B20數(shù)字溫度傳感器,該溫度傳感器可自行設(shè)置溫度上下限。單片機(jī)將檢測(cè)到的溫度信號(hào)與輸入的溫度上、下限進(jìn)行比較,由此作出判斷是否啟動(dòng)繼電器以開啟設(shè)備。系統(tǒng)包括單片機(jī)模塊、溫度檢測(cè)模塊、水位檢測(cè)模塊和驅(qū)動(dòng)電路設(shè)計(jì)四個(gè)部分。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。關(guān)鍵詞: DS18B20數(shù)字溫度傳感器 89C51 水溫水位 目錄一概述11.1課題研究的目的及意義11.2技術(shù)指標(biāo)1二總體設(shè)計(jì)方案1三詳細(xì)設(shè)計(jì)方案21.1溫度檢測(cè)系統(tǒng)21.2水位檢測(cè)系統(tǒng)4四元件說(shuō)明51.1 工作原理51.2單片機(jī)的選擇51.3溫度傳感器81.4水位傳感器111
2、.5 顯示元件12五硬件模塊設(shè)計(jì)131.1單片機(jī)模塊設(shè)計(jì)131.2溫度檢測(cè)模塊141.3水位檢測(cè)模塊151.4 控制模塊171.5 驅(qū)動(dòng)電路設(shè)計(jì)17六軟件設(shè)計(jì)181.2 溫度檢測(cè)系統(tǒng)181.3 水位檢測(cè)系統(tǒng)201.4 DS18B20主程序23七結(jié)論24八參考文獻(xiàn)24附 錄25單片機(jī)與顯示器件連接圖25系統(tǒng)軟件源代碼26一概述1.1課題研究的目的及意義 目前市場(chǎng)上太陽(yáng)能熱水器的控制系統(tǒng)大多存在功能單一、操作復(fù)雜、控制不方便登問題,很多控制器只具有溫度和水位顯示功能,不具有溫度控制功能。即使熱水器具有輔助加熱功能,也可能由于加熱時(shí)間不能控制而產(chǎn)生過(guò)燒,從而浪費(fèi)電能。鑒于此,我以89C51單片機(jī)為檢
3、測(cè)控制核心,采用LED12864顯示溫度和時(shí)間,設(shè)計(jì)了一種太陽(yáng)能熱水器微控制器,不僅實(shí)現(xiàn)了時(shí)間、溫度和水位參數(shù)的實(shí)時(shí)顯示,而且具有時(shí)間設(shè)定、溫度設(shè)定、水位設(shè)定與控制功能,停電后再來(lái)電時(shí)也不用重新設(shè)定。1.2技術(shù)指標(biāo)設(shè)計(jì)并制作一個(gè)基于單片機(jī)的溫度控制系統(tǒng),能夠?qū)t溫進(jìn)行控制。爐溫可以在一定范圍內(nèi)由人工設(shè)定,并能在爐溫變化時(shí)實(shí)現(xiàn)自動(dòng)控制。若測(cè)量值高于溫度設(shè)定范圍,由單片機(jī)發(fā)出控制信號(hào),經(jīng)過(guò)驅(qū)動(dòng)電路使加熱器停止工作。當(dāng)溫度低于設(shè)定值時(shí),單片機(jī)發(fā)出一個(gè)控制信號(hào),啟動(dòng)加熱器。通過(guò)繼電器的反復(fù)開啟和關(guān)閉,使?fàn)t溫保持在設(shè)定的溫度范圍內(nèi)。溫度設(shè)定范圍為099,最小區(qū)分度為1,溫度控制的誤差1能夠用數(shù)碼管精確顯
4、示當(dāng)前實(shí)際溫度值按鍵控制:設(shè)置復(fù)位鍵、加一鍵、減一鍵 二總體設(shè)計(jì)方案 以89C51為主控制芯片,溫度采集采用DS18B20溫度傳感器,通過(guò)外圍電路來(lái)采集水位,用液晶LED 12864顯示當(dāng)前的水位、水溫和時(shí)間,并且通過(guò)鍵盤來(lái)輸入日期數(shù)據(jù)以及所需控制的水位水溫。并且當(dāng)水溫水位超于限制時(shí)啟動(dòng)報(bào)警系統(tǒng)。如圖2.1總體設(shè)計(jì)方案圖所示。圖2.1 總體設(shè)計(jì)方案圖三詳細(xì)設(shè)計(jì)方案3.1 總體結(jié)構(gòu)設(shè)計(jì)方案一:測(cè)溫電路的設(shè)計(jì),可以使用DS18B20溫度傳感器利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集后,把采樣得到的模擬信號(hào)送入ADC0809進(jìn)行A/D轉(zhuǎn)換讀入單片機(jī)進(jìn)行A/D轉(zhuǎn)換后,通過(guò)串行口輸入,就可以用
5、單片機(jī)進(jìn)行數(shù)據(jù)的處理,同時(shí)在顯示電路上,就可以將被測(cè)溫度顯示出來(lái)。方案二:考慮使用溫度傳感器,結(jié)合單片機(jī)電路設(shè)計(jì),采用一只DS18B20溫度傳感器,直接讀取被測(cè)溫度值,之后進(jìn)行A/D轉(zhuǎn)換,依次完成設(shè)計(jì)要求。比較以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,軟件設(shè)計(jì)容易實(shí)現(xiàn),故實(shí)際設(shè)計(jì)中擬采用方案二。在本系統(tǒng)的電路設(shè)計(jì)方框圖如圖3.1.1.2所示,它由三部分組成:主控芯片89C51;數(shù)據(jù)顯示部分;傳感器部分。加熱繼電器單 片 機(jī)DS18B20LED顯示指示燈圖3.1.1 溫度計(jì)電路總體設(shè)計(jì)方案(1)控制部分采用傳統(tǒng)的數(shù)字模似電路,功能可以實(shí)現(xiàn),但電路復(fù)雜,溫度誤差大,成本高,可靠性也比較差
6、;于是我選擇采用單片機(jī)89C51控制,它結(jié)構(gòu)簡(jiǎn)單,可以減少外圍電路的搭接,并且89C51使用方便,成本比較低,性能穩(wěn)定,還可以控制各模塊輸入輸出。但是由于其不能直接進(jìn)行模數(shù)轉(zhuǎn)換,因此要做外圍電路設(shè)計(jì)中加AD0809芯片。(2)顯示部分TC1602的液晶字符性顯示器也適合運(yùn)用于此控制系統(tǒng)當(dāng)中的,并且功能特性也適用于此設(shè)計(jì)系統(tǒng)的功能要求。但我還希望此顯示系統(tǒng)中能同時(shí)顯示時(shí)間(年月日),所以1602可能就顯得力不從心了,于是我選擇了液晶LED 12864,它的顯示特性很適用此設(shè)計(jì)系統(tǒng)的功能要求,也不會(huì)造成資源浪費(fèi)。(3)傳感器部分DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)
7、型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫。這一部分主要完成對(duì)溫度信號(hào)的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器DS18B20把采集到的溫度經(jīng)數(shù)模轉(zhuǎn)換后通過(guò)數(shù)據(jù)引腳傳到單片機(jī)的P1口,單片機(jī)接受溫度并存儲(chǔ)。此部分只用到DS18B20、AD0809和單片機(jī),硬件很簡(jiǎn)單。3.2水位檢測(cè)系統(tǒng) 對(duì)于水位進(jìn)行控制的方式有很多,而應(yīng)用較多的主要有3種,三種方式的實(shí)現(xiàn)如下:方案一:簡(jiǎn)單的機(jī)械式控制方式。其常用形式有浮標(biāo)式、電極式等,這種控制形式的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,成本低廉。存在問題是精度不高,不能進(jìn)行數(shù)值顯示,另外很容易引起誤動(dòng)作,且只
8、能單獨(dú)控制,與計(jì)算機(jī)進(jìn)行通信較難實(shí)現(xiàn)。方案二:利用單片機(jī)進(jìn)行水位檢測(cè)和控制,基于數(shù)字電路的全自動(dòng)控制,其工作過(guò)程是被測(cè)水位經(jīng)過(guò)模擬信號(hào)采集模塊進(jìn)行采樣,然后把采樣得到的模擬信號(hào)送入ADC0809進(jìn)行A/D轉(zhuǎn)換讀入單片機(jī),再由單片機(jī)進(jìn)行處理,得出結(jié)果是否啟動(dòng)/停止控制電路A/D轉(zhuǎn)換輸出控制單片機(jī)控制水位水位傳感器執(zhí)行信號(hào)以達(dá)到水位的控制,具體硬件流程框圖入圖3.2.1所示。圖3.2.1 方案二具體流程框圖方案三:采用89C51單片機(jī)為核心控制器的電路。因?yàn)閱纹瑱C(jī)電路結(jié)構(gòu)簡(jiǎn)單成本低廉、可靠性高,便于實(shí)現(xiàn)各個(gè)控制功能能很好的完成設(shè)計(jì)任務(wù)。水位檢測(cè)由本設(shè)計(jì)使用的RC充放電水位傳感器通過(guò)檢測(cè)來(lái)實(shí)現(xiàn)水位的
9、改變。然后通過(guò)A/D轉(zhuǎn)換把信號(hào)輸入到單片機(jī),獲得當(dāng)前水位顯示。綜合以上三種方案,方案一和方案二由于缺少溫度檢測(cè)模塊,而水溫也是影響太陽(yáng)能熱水器很重要的一方面:比如說(shuō)水箱中水溫度過(guò)高導(dǎo)致水沸騰這時(shí)候雖然水所在刻度不是滿的,實(shí)際上已經(jīng)溢出,這樣說(shuō)來(lái)方案一和方案二的設(shè)計(jì)算不上智能。方案三是在方案二的基礎(chǔ)上完善和加強(qiáng)的,采用單片機(jī)鍵的雙邊通信,比起方案二更加方便,也更加合理。四元件說(shuō)明4.1 工作原理本文闡述了基于單片機(jī)的水溫水位控制系統(tǒng)的設(shè)計(jì)方法,此種方法是以89C51單片機(jī)為主控制單元,對(duì)水溫水位參數(shù)進(jìn)行控制,從而提高了電器的工作穩(wěn)定性。以DS18B20為溫度傳感器的對(duì)水溫進(jìn)行數(shù)據(jù)采集并實(shí)現(xiàn)溫度控
10、制。該控制系統(tǒng)還可以實(shí)時(shí)存儲(chǔ)相關(guān)的溫度數(shù)據(jù)以及水位高度并能記錄當(dāng)前的時(shí)間。為了實(shí)現(xiàn)功能本系統(tǒng)設(shè)計(jì)了相關(guān)的硬件電路和相關(guān)應(yīng)用程序。硬件電路主要包括89C51單片機(jī)最小系統(tǒng),測(cè)溫電路、測(cè)水位電路、LCD12864液晶顯示電路以及報(bào)警電路、鍵盤輸入?yún)?shù)等。系統(tǒng)程序主要包括主程序,讀出溫度子程序,計(jì)算溫度子程序、水位顯示子程序、按鍵處理程序、12864液晶顯示程序以及數(shù)據(jù)存儲(chǔ)程序以及時(shí)間顯示程序等 4.2單片機(jī)的選擇單片機(jī)的選擇在整個(gè)系統(tǒng)設(shè)計(jì)中至關(guān)重要,要滿足大內(nèi)存、高速率、通用性、價(jià)格便宜等要求,本課題選擇89C51作為主控芯片。89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能C
11、MOS8位微處理器,俗稱單片機(jī)。它是美國(guó)ATMEL公司的低電壓,高性能CMOS8位單片機(jī)。89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的89C51是一種高效微控制器,89C2051是它的一種精簡(jiǎn)版本。89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 實(shí)物圖如圖4.1.2所示。 圖4.1.2所示實(shí)物圖1.2.1主要特性: 與MCS-51 兼容 4K字
12、節(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í)鐘電路 1.2.2管腳說(shuō)明: 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外部必
13、須被拉高。 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口輸出地址的高八位。在給出
14、地址“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.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1)
15、 P3.4 T0(記時(shí)器0外部輸入) P3.5 T1(記時(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í),將跳過(guò)一個(gè)ALE脈
16、沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。引腳圖如下圖4.1.2.2所示 圖4.1.2.2 引腳圖 1.3溫度傳感器美國(guó)Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持 "一線總線"接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。1.3.1 DS18B20性能及結(jié)構(gòu)DS18B20原理與特性本系統(tǒng)采用了DS18B20單總線可編程溫度傳感器,來(lái)實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,大大簡(jiǎn)化了電路的復(fù)雜度,以
17、及算法的要求。首先先來(lái)介紹一下DS18B20這塊傳感器的特性及其功能: DSl8B20的管腳及特點(diǎn) DS18B20可編程溫度傳感器有3個(gè)管腳。內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖4.1.3.1圖4.1.3.1 DS18B20的外形及管腳圖GND為接地線,DQ為數(shù)據(jù)輸入輸出接口,通過(guò)一個(gè)較弱的上拉電阻與單片機(jī)相連。VDD為電源接口,既可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3O55 V。本文使用外部電源供電。主要特點(diǎn)有: 1. 用戶可自設(shè)定報(bào)警上下限溫度值。 2. 不需要外部組件,能測(cè)量55
18、+125 范圍內(nèi)的溫度。 3. 10 +85 范圍內(nèi)的測(cè)溫準(zhǔn)確度為±05 。 4. 通過(guò)編程可實(shí)現(xiàn)9l2位的數(shù)字讀數(shù)方式,可在至多750 ms內(nèi)將溫度轉(zhuǎn)換成12 位的數(shù)字,測(cè)溫分辨率可達(dá)00625 。 5. 獨(dú)特的單總線接口方式,與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)與微處理器雙向通訊。6. 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。7. 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。8. DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫
19、。DS18B20的內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部功能模塊如圖4.1.3.2所示, 圖4.1.3.2 DS18B20內(nèi)部功能模塊1.3.2 DS18B20工作原理DS18B20的讀寫時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同DS18B20 為9位12位A/D轉(zhuǎn)換精度,而DS1820為9位A/D轉(zhuǎn)換,雖然我們采用了高精度的芯片,但在實(shí)際情況上由于技術(shù)問題比較難實(shí)現(xiàn),而實(shí)際精度此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。如下圖的測(cè)溫原理圖不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原
20、理如圖4.1.3.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。則高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值時(shí)。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值。 圖4.1.3.3 DS18B20原理圖1.3.3 DS18B20使用中注意事項(xiàng) DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)
21、溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題: 較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS18B20操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 在DS18B20的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過(guò)8個(gè)時(shí),就需要解決微處理器的
22、總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。 連接DS18B20的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DS18B20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。 在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序要等待DS18B20的返回信號(hào),
23、一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時(shí),將沒有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。 測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。1.4水位傳感器ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。目前僅在單片機(jī)初學(xué)應(yīng)用設(shè)計(jì)中較為常見。 1.4.1 主要特性1)8路輸入通道,8位A/D轉(zhuǎn)換器
24、,即分辨率為8位。2)具有轉(zhuǎn)換起??刂贫恕?)轉(zhuǎn)換時(shí)間為100s(時(shí)鐘為640kHz時(shí)),130s(時(shí)鐘為500kHz時(shí))4)單個(gè)+5V電源供電5)模擬輸入電壓范圍0+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。6)工作溫度范圍為-40+85攝氏度7)低功耗,約15mW。1.4.2 內(nèi)部結(jié)構(gòu)ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、邏輯控制和定時(shí)電路組成。外部特性(引腳功能)ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說(shuō)明各引腳功能。IN0IN7:8路模擬量輸入端。2-12
25、-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路ALE:地址鎖存允許信號(hào),輸入,高電平有效。START: A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。EOC: A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單
26、一+5V。GND:地。1.5 顯示元件TC1602的液晶字符性顯示器也適合運(yùn)用于此控制系統(tǒng)當(dāng)中的,并且功能特性也適用于此設(shè)計(jì)系統(tǒng)的功能要求。但我還希望此顯示系統(tǒng)中能同時(shí)顯示時(shí)間(年月日),所以1602可能就顯得力不從心了,于是我選擇了液晶LED 12864,它的顯示特性很適用此設(shè)計(jì)系統(tǒng)的功能要求,也不會(huì)造成資源浪費(fèi)。其管腳說(shuō)明如下表4.1.6所示。表4.1.6 液晶12864管腳說(shuō)明管腳符號(hào)功能123 ,16,184567891011GNDVDDNCRSEDB0DB7PSBRSTLED+LED-接地接入+5V電源電壓空高:數(shù)據(jù)(低:指令)高:讀(低:寫)使能端數(shù)據(jù)線控制模式系統(tǒng)復(fù)位背光電源,
27、+5V背光電源, 0V12864液晶的具體指令介紹DR為數(shù)據(jù)寄存器:簡(jiǎn)稱DR,它們負(fù)責(zé)存儲(chǔ)微機(jī)要寫到CGRAM或DDRAM的數(shù)據(jù),或者存儲(chǔ)MCU要從CGRAM或DDRAM讀出的數(shù)據(jù)。因此,可將DR視為一個(gè)數(shù)據(jù)緩沖區(qū),當(dāng)RS及RW引腳信號(hào)為1且Enable引腳信號(hào)由1變?yōu)?時(shí),讀取數(shù)據(jù);當(dāng)RS引腳信號(hào)為1,RW引腳信號(hào)為0且Enable引腳信號(hào)由1變?yōu)?時(shí),存入數(shù)據(jù)。AC為地址計(jì)數(shù)器:簡(jiǎn)稱AC,負(fù)責(zé)計(jì)數(shù)寫讀CGRAM或DDRAM的數(shù)據(jù)地址,AC依照MCU對(duì)LCD的設(shè)置值而自動(dòng)修改它本身的內(nèi)容。IR為指令寄存器:簡(jiǎn)稱IR,負(fù)責(zé)存儲(chǔ)MCU要寫給LCD的指令碼,當(dāng)RS及RW引腳信號(hào)為0且Enable引
28、腳信號(hào)由1變?yōu)?時(shí),D0D7引腳上的數(shù)據(jù)便會(huì)存入到IR寄存器中。BF為忙碌信號(hào):簡(jiǎn)稱BF,當(dāng)BF為1時(shí),不接收微機(jī)送來(lái)的數(shù)據(jù)或指令;當(dāng)BR為0時(shí),接收外部數(shù)據(jù)或指令,所以,在寫數(shù)據(jù)或指令到LCD之前,必須查看BF是否為0。只要把數(shù)據(jù)寫到文本顯示RAM中,就能顯示文本內(nèi)容,具體流程如下:先設(shè)定工作模式,接著信號(hào)的檢測(cè),再數(shù)據(jù)的傳送。ST7920的顯示RAM中提供了8個(gè)乘以4行的漢字空間, 當(dāng)RAM進(jìn)行寫入顯示在文本時(shí),CGROM、HCGROM與CGRAM的字型就會(huì)顯示出。ST7920A可以顯示三種字型,分別是顯示半寬的HC-GROM字型、中文CGRAM字型和CGRAM字型,在DDRAM中寫入編碼
29、來(lái)進(jìn)行設(shè)定選擇哪種字型,各個(gè)字型的詳細(xì)編碼如下:半寬字型顯示 :只將一位字節(jié)寫入DDRAM中,編碼范圍為02-7FH。顯示中文字形:將兩字節(jié)編碼寫入DDRAM,編碼范圍為A1A0HF7FEHGB或編碼為A140H-D75FH BIG5的碼。顯示CGRAM字型:需兩個(gè)字節(jié)的編碼寫入DDRAM中來(lái)實(shí)現(xiàn)這種字型,總共有四種編碼方式它們分別是0000H、0002H、0004H、0006H。液晶顯示器與單片機(jī)連接基本要注意以下三點(diǎn):1.若以CMOS芯片為單片機(jī)時(shí)不需要電平轉(zhuǎn)換電路來(lái)轉(zhuǎn)換;若其單片機(jī)為TTL芯片則必須配備電平轉(zhuǎn)換電路。2.模塊讀或者寫控制線為單選,必須加讀或者寫信號(hào)轉(zhuǎn)換電路(對(duì)讀、寫控制線
30、分開的單片機(jī))。3.對(duì)于模塊確定的編碼地址,應(yīng)選擇相對(duì)應(yīng)的譯碼電路。本設(shè)計(jì)用的液晶4行漢字第一行為溫度,第二行為水位,第三行、第四行空缺,在GB2312編碼中查詢“溫度”和“水位”的四個(gè)字得到的16位編碼分別為:#CEC2、#B6C8、#CBAE、#CEBB,每個(gè)字的編碼分為高8位和低8位,寫入時(shí)先寫入高8位,再寫入低8位即可。五硬件模塊設(shè)計(jì)1.1單片機(jī)模塊設(shè)計(jì)控制模塊是整個(gè)設(shè)計(jì)方案的核心,它控制了溫度的采集、處理與顯示、溫度值的設(shè)定與溫度越限時(shí)控制電路的啟動(dòng)。本控制模塊由單片機(jī)89C51及其外圍電成,電路如圖5.1.1所示。圖5.1.1 單片機(jī)控制模塊電路該電路采用按鍵加上電復(fù)位,S2為復(fù)位
31、按鍵,復(fù)位按鍵按下后,復(fù)位端通過(guò)51的小電阻與電源接通,迅速放電,使RST引腳為高電平,復(fù)位按鍵彈起后,電源通過(guò)8.2K的電阻對(duì)10KF的電容C5重新充電,RST引腳端出現(xiàn)復(fù)位正脈沖.AT89S51內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器,但要形成時(shí)鐘脈沖,外部還需附加電路,本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和XTAL2兩端跨接晶體振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路,C6和C7的值通常選擇為30pF左右,晶振Y1選擇12MHz.為了減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器電容應(yīng)盡可能安裝得與單片機(jī)引腳XTAL1和XT
32、AL2靠近。單片機(jī)的31腳(EA)接+5V電源,表示允許使用片內(nèi)ROM。1.2溫度檢測(cè)模塊溫度由DALLAS 公司生產(chǎn)的一線式數(shù)字溫度傳感器DS18B20 采集。DS18B20 測(cè)溫范圍為-55°C+125°C,測(cè)溫分辨率可達(dá)0.0625°C,被測(cè)溫度用符號(hào)擴(kuò)展的16 位補(bǔ)碼形式串行輸出。CPU 只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。本設(shè)計(jì)采用三引腳PR-35封裝的DS18B20,其引腳圖見圖5.1.2。Vcc接外部+5V電源,GND接地,I/O與單片機(jī)的P3.4(T0)引腳相連。 圖5.1.2 溫度傳感
33、器電路引腳圖 1.3水位檢測(cè)模塊1.3.1 傳感器電路 系統(tǒng)選用B2119壓阻式壓力傳感器,壓阻式壓力傳感器是利用單晶硅的壓阻效應(yīng)制成的器件。這種傳感器精度高、工作可靠,容易實(shí)現(xiàn)數(shù)字化,比應(yīng)變式壓力傳感器體積小而輸出信號(hào)大。它是目前壓力測(cè)試中使用最多的一種傳感器。壓阻式壓力傳感器使用集成電路工藝技術(shù),在硅片上制造出四個(gè)等值的薄膜電阻,并組成電橋電路,當(dāng)不受到壓力作用時(shí),電橋處于平衡狀態(tài),無(wú)電壓輸出;當(dāng)受到壓力作用時(shí),電橋失去平衡,電橋輸出電壓。電橋輸出的電壓與壓力成正比例。其工作原理圖如5.1.3.1所示圖5.1.3.1壓阻式壓力傳感器原理圖1.3.2 時(shí)鐘電路與復(fù)位電路要使單片機(jī)按照設(shè)計(jì)要求
34、正常工作,完整單片機(jī)最基本的工作要求,考慮到系統(tǒng)無(wú)需精確地定時(shí)功能,且為了方便串口通信波特率的計(jì)算,采用11.0592MHz的晶振提供系統(tǒng)時(shí)鐘。并附加復(fù)位電路,組成單片機(jī)最小系統(tǒng)。復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。我們采用上電自動(dòng)復(fù)位,其是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。其電路圖如圖2-16(a)所示。這樣,只要電源的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就完成了系統(tǒng)的復(fù)位初始化。關(guān)于參數(shù)的選定,在振蕩穩(wěn)定后應(yīng)保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。當(dāng)采用的晶體頻率為6 MHz時(shí),可采用C=22µF,R=1k;當(dāng)采用的晶體頻率為12 MHz時(shí),可
35、采用C=10µF,R=8.2k。圖2-16復(fù)位電路如果上述電路復(fù)位不僅要使單片機(jī)復(fù)位,而且還要使單片機(jī)的一些外圍芯片也同時(shí)復(fù)位,那么上述電阻、電容參考值應(yīng)作少許調(diào)整。對(duì)于CMOS型的89C51,由于在RST端內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至1µF。1.3.3 AD采集轉(zhuǎn)換電路本系統(tǒng)A/D芯片所選用的是ADC0809,該大規(guī)模集成電路芯片是一種由單一+5V電源供電,采用逐次逼近轉(zhuǎn)換原理,能夠?qū)?路0+5V輸入模擬電壓進(jìn)行分時(shí)轉(zhuǎn)換的八位并行通用型可編程模數(shù)轉(zhuǎn)換器。ADC0809由單片機(jī)控制驅(qū)動(dòng),對(duì)傳感器進(jìn)行定式循環(huán)采集,然后單片機(jī)將各測(cè)量參數(shù)傳至PC機(jī),
36、進(jìn)行后臺(tái)數(shù)據(jù)處理。電路連接如圖5.1.3.3。 圖5.1.3.3 A/D轉(zhuǎn)換電路圖 1.3.4 按鍵設(shè)計(jì)鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)很關(guān)鍵的部件,它能實(shí)現(xiàn)向單片機(jī)系統(tǒng)輸入數(shù)據(jù)、發(fā)送命令等功能,是人工干預(yù)單片機(jī)的主要手段??紤]到本設(shè)計(jì)實(shí)際需要的按鍵較少,故采用獨(dú)立式鍵盤接口電路。在程序查詢方式下,通過(guò)I/O端口讀入按鍵狀態(tài),當(dāng)有按鍵按下時(shí),相應(yīng)的I/O端口變?yōu)榈碗娖?,而未被按下的按鍵在上拉電阻作用下為高電平,這樣通過(guò)讀I/O口的狀態(tài)判斷是否有按鍵按下。圖5.1.3.4 系統(tǒng)按鍵電路1.4 控制模塊 控制電路與單片機(jī)的P0.2口相連,由于單片機(jī)輸出控制信號(hào)非常微弱,需要用三極管來(lái)驅(qū)動(dòng)外圍電路,三極
37、管選用NPN型的 9014,當(dāng)檢測(cè)溫度低于設(shè)定溫度時(shí),在單片機(jī)的P0.2口輸出高電平控制信號(hào),使三極管9014導(dǎo)通,使繼電器兩控制端產(chǎn)生壓差,從而使繼電器吸合,常開觸點(diǎn)接通,控制外部電路對(duì)鍋爐進(jìn)行加熱??刂齐娐冯娐穲D如圖5.1.4所示。圖5.1.4 控制電路1.5 驅(qū)動(dòng)電路設(shè)計(jì) 在單片機(jī)控制系統(tǒng)中,需要用開關(guān)量去控制和驅(qū)動(dòng)一些執(zhí)行元件,如發(fā)光二極管、繼電器等。但89C51單片機(jī)驅(qū)動(dòng)能力有限,且高電平比低電平驅(qū)動(dòng)低。一般情況下,需要加驅(qū)動(dòng)接口電路,且用低電平驅(qū)動(dòng)。如圖5.1.5所示開 始初始化DS18B20顯示當(dāng)前溫度判斷當(dāng)前溫度值超過(guò)設(shè)定溫度上限啟動(dòng)風(fēng)扇降低溫度紅燈亮設(shè)定溫度上、下限啟動(dòng)電熱爐
38、升高溫度是否低于設(shè)定溫度下限是綠燈亮否圖5.1.5驅(qū)動(dòng)電路六軟件設(shè)計(jì)1.1 系統(tǒng)軟件設(shè)計(jì)整體思路程序設(shè)計(jì)語(yǔ)言有三種:機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言是機(jī)器唯一能“懂”的語(yǔ)言,用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語(yǔ)言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。高級(jí)語(yǔ)言是面向問題和計(jì)算過(guò)程的語(yǔ)言,它可通過(guò)于各種不同的計(jì)算機(jī),用戶編程時(shí)不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語(yǔ)句的功能強(qiáng),常常一個(gè)語(yǔ)句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級(jí)語(yǔ)言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語(yǔ)言。原因在于,本系統(tǒng)是編制程序工作量不大
39、、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語(yǔ)言可以不用像高級(jí)語(yǔ)言那樣占用較多的存儲(chǔ)空間,適合于存儲(chǔ)容量較小的系統(tǒng)。同時(shí),本系統(tǒng)對(duì)位處理要求很高,需要解決大量的邏輯控制問題。1.2 溫度檢測(cè)系統(tǒng)1.2.1 系統(tǒng)流程圖開始CPU初始化參數(shù)設(shè)定是否有按鍵采樣子程序顯示實(shí)時(shí)液位數(shù)據(jù)處理子程序控制電機(jī)啟停按鍵處理是否圖6.1.2.1 系統(tǒng)流程圖1.2.2 程序編寫程序的功能是:?jiǎn)?dòng)DS18B20測(cè)量溫度,將測(cè)量值與給定值進(jìn)行比較,若測(cè)得溫度小于設(shè)定值,則進(jìn)入加熱階段,置P1.1為低電平,這期間繼續(xù)對(duì)溫度進(jìn)行監(jiān)測(cè),直到溫度在設(shè)定范圍內(nèi),置P1.1為高電平斷開可控硅, 關(guān)閉加熱器,等待下一次的啟動(dòng)命令。當(dāng)測(cè)得溫
40、度大于設(shè)定值,則進(jìn)入降溫階段,則置P1.2為低電平,這期間繼續(xù)對(duì)溫度進(jìn)行監(jiān)測(cè),直到溫度在設(shè)定范圍內(nèi),置P1.2為高電平斷開,關(guān)閉風(fēng)扇,等待下一次的啟動(dòng)命令。WR1:CLR P1.0MOV R3,#6DJNZ R3,$RRC AMOV P1.0,CMOV R3,#23DJNZ R3,$SETB P1.0NOPDJNZ R2,WR1RET; 讀DS18B21.3 水位檢測(cè)系統(tǒng)1.3.1系統(tǒng)主程序流程圖系統(tǒng)主程序的功能主要是完成對(duì)單片機(jī)的初始化,設(shè)置警戒液位的上下限,實(shí)時(shí)顯示液位值以及鍵盤掃描如圖6.1.3.1所示圖6.1.3.1 主程序流程圖1.3.2 顯示與A/D轉(zhuǎn)換的數(shù)據(jù)處理系統(tǒng)中,顯示輸出的
41、要求為壓縮BCD碼,而A/D轉(zhuǎn)換輸入的數(shù)據(jù)是8位16進(jìn)制碼,因此在實(shí)現(xiàn)顯示之前需要編碼的轉(zhuǎn)換。對(duì)8位A/D轉(zhuǎn)換器而言,其十六進(jìn)制、相對(duì)滿偏電壓比率、相對(duì)電壓幅值的關(guān)系對(duì)應(yīng)如表6.1.3.2:十六進(jìn)制二進(jìn)制滿刻度比率相對(duì)電壓幅值Vref=2.5V高四位低四位高四位電壓低四位電壓F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019
42、/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.000 表6.1.3.2 A/D轉(zhuǎn)換幅值數(shù)據(jù)關(guān)系對(duì)照表顯示轉(zhuǎn)換部分程序簡(jiǎn)略如下:uchar dis_transform(uchar num
43、)uchar ac, quotient, play, mid ;ac = num%5;quotient = (num-ac)/5;if(ac>2)quotient+;ac=quotient%10;mid=(quotient-ac)/10;play=ac+mid*16;return play;1.3.3 系統(tǒng)主程序ORG 0000HAJMP MAINORG 0060HMAIN: MOV P1, #FFH ; P1 P3口初始化置1MOV P3,#FFHJNB P1.3 , AVT ; 若手動(dòng)在自動(dòng)位置,跳到自動(dòng)模式程序AJMP MEN ; 否則轉(zhuǎn)到手動(dòng)模式子程序ENDAUT: NOP(空命
44、令)JNB P1.2 , LG ; 水位高LGJB P1.1 LD , ; 水位沒低-LDCLR P3.1 ; 水位低報(bào)警JB P1.0, LDD ; 水位未低低-LDDCLR P3.0 ; 水位低低報(bào)警JNB 3.1 P1.6, Y1 ; M1已啟動(dòng)Y1CLR P1.4 ; 否則啟動(dòng)M1Y1:JNB P1.7 ,Y2 ; M2已啟動(dòng)-Y2 CLR P1.5 ; 否則啟動(dòng)M2Y2:ACALL DELAY ; 延時(shí)1分鐘 AJMP AUT ; 返回自動(dòng)模式LDD: JNB P1.6 ,Y3 ; 單獨(dú)運(yùn)行M1(LDD水位LD)CLR P1.4Y3: JB P1.7 Y2 SETB P1.5 AJM
45、P Y2 LG:CLR P3.2 ; 水位高報(bào)警 LD: AJMP MAIN ; 返回主程序 1.4 DS18B20主程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20與單片機(jī)連接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char code str1=" "unsigned char code str2=" "uchar fCode8;uchar data dis
46、data5;uint tvalue;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志七結(jié)論本文詳細(xì)介紹了基于單片機(jī)89C51的溫度控制系統(tǒng)的設(shè)計(jì)方案與軟硬件實(shí)現(xiàn)。系統(tǒng)包括數(shù)據(jù)采集模塊,單片機(jī)控制模塊,顯示模塊和溫度設(shè)置模塊,驅(qū)動(dòng)電路五個(gè)部分。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。完成了課題既定的任務(wù),達(dá)到了預(yù)期的目標(biāo)。系統(tǒng)具有如下特點(diǎn):.采用智能溫度傳感器DS18B20采集溫度數(shù)據(jù),簡(jiǎn)化了硬件電路設(shè)計(jì),溫度采集數(shù)據(jù)更加精準(zhǔn);.89C51單片機(jī)的采用,有利于功能擴(kuò)展;.電路設(shè)計(jì)充分考慮了系統(tǒng)可靠性和安全性。本課題軟件和硬件相結(jié)合,有相當(dāng)?shù)碾y度,同時(shí)也有很大的實(shí)用性。八參考文獻(xiàn)1 馬忠梅.單片機(jī)
47、的C語(yǔ)言應(yīng)用程序設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社,1998 2 李曉荃.單片機(jī)原理與應(yīng)用M.北京:電子工業(yè)出版社,2000年8月3 何立民 AVR單片機(jī)原理與接口技術(shù)M.北京:北京航空航天大學(xué)出版社,20024 楊幫文 新型繼電器實(shí)用手冊(cè)M.北京:北京人民郵電出版社.2004附 錄單片機(jī)與顯示器件連接圖 系統(tǒng)軟件源代碼#include <reg52.h>#include <intrins.h>#define uchar unsigned charuchar hostmark;uchar idata sec,min,hr,date,mon,day,year;uchar
48、 idata uplq,downlq,numm,prelq,xdat,key;uchar xdata * idata numtab;uchar xdata * idata xmark;uchar idata num1,num2;int tab;uchar bdata iodat;uchar bdata ddat;sbit iodat7=iodat7;sbit ddat0=ddat0;sbit SCLK=P10;sbit IO_DATA=P11;sbit RST=P12;sbit adRD=P13;sbit adWR=P14;sbit E=P15;sbit DIS=P16;sbit RELAY=
49、P17;/*延遲子程序*yanshi()int i,j;for(i=0;i<120;i+)for(j=0;j<120;j+);/顯示轉(zhuǎn)換*uchar dis_transform(uchar num)uchar ac,quotient,play,mid;ac=num%5;quotient=(num-ac)/5;if(ac>2)quotient+;ac=quotient%10;mid=(quotient-ac)/10;play=ac+mid*16;return play;/液位顯示*display()DIS=0;_nop_();_nop_();_nop_();_nop_();_n
50、op_();P0=dis_transform(prelq);_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DIS=1;/*/DS1302讀寫*ds_read()uchar j;iodat=0x00;for(j=8;j>0;j-)iodat=iodat>>1;iodat7=IO_DATA;_nop_();SCLK=1;_nop_();SCLK=0;ds_write(uchar ad)uchar i;ddat=ad;for(i=8;i>0;i-)IO_DATA=ddat0;_nop_();SCLK=1;_nop_();ddat=ddat>>1;SCLK=0;/讀取時(shí)間*uchar ds_gettime(uchar gadd) RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(gadd);IO_DATA=1;ds_read();RST=0;return iodat; /設(shè)置時(shí)間*ds_settime(uchar sadd,uchar sdat)RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(sadd);ds_write(sdat);RST=0;/*/*ad
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 揚(yáng)塵治理委托協(xié)議模板
- 2025年度文化創(chuàng)意產(chǎn)品開發(fā)合作協(xié)議范本3篇
- 2025版外債借款合同法律框架與政策背景分析3篇
- 2025年銷售薪資與銷售團(tuán)隊(duì)建設(shè)合同2篇
- 2025版押一付三車位租賃合同模板參考9篇
- 2025年高端住宅產(chǎn)權(quán)轉(zhuǎn)讓合同范本3篇
- 2025-2030全球熔鹽儲(chǔ)熱設(shè)備行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)實(shí)驗(yàn)室渦旋混合器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025版投票權(quán)委托合同:股東權(quán)益保護(hù)專項(xiàng)3篇
- 2025年度綠色有機(jī)農(nóng)產(chǎn)品個(gè)人果園承包經(jīng)營(yíng)合同書4篇
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024年考研政治試題及答案
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 2024中國(guó)汽車后市場(chǎng)年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 《人工智能基礎(chǔ)》全套英語(yǔ)教學(xué)課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評(píng)價(jià)紙和紙制品
評(píng)論
0/150
提交評(píng)論