基于單片機(jī)的雙路溫控裝置論文.doc_第1頁
基于單片機(jī)的雙路溫控裝置論文.doc_第2頁
基于單片機(jī)的雙路溫控裝置論文.doc_第3頁
基于單片機(jī)的雙路溫控裝置論文.doc_第4頁
基于單片機(jī)的雙路溫控裝置論文.doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余51頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

本科畢業(yè)設(shè)計(jì)說明書(論文) 第 56 頁 共 56 頁1 緒論本文系統(tǒng)地介紹了基于DS18B20的雙路溫度測(cè)控系統(tǒng)的組成、設(shè)計(jì)方案、電路原理、程序設(shè)計(jì)以及系統(tǒng)仿真過程。DS18B20雙路溫度控制系統(tǒng)是以AT89C52單片機(jī)作為控制核心,智能溫度傳感器DS18B20,時(shí)鐘芯片DS1302和存儲(chǔ)器24C32為控制對(duì)象,用LM032L液晶顯示,運(yùn)用C語言實(shí)現(xiàn)系統(tǒng)的各種功能。設(shè)計(jì)完成了讀DS18B20的ROM序列號(hào)電路和雙路溫度選擇檢測(cè)及分屏顯示電路。借助仿真工具Proteus和單片機(jī)編程軟件Keil實(shí)現(xiàn)了系統(tǒng)軟、硬件的交互仿真,并結(jié)合液晶顯示器LM032L、DS18B20、DS1302、24C32等進(jìn)行了調(diào)試,實(shí)現(xiàn)了課題設(shè)計(jì)目的。單片機(jī)系統(tǒng)通過配置顯示模塊,可以實(shí)時(shí)顯示雙路溫度和時(shí)間日期,通過鍵盤調(diào)出存儲(chǔ)在24C32A的時(shí)間及與其對(duì)應(yīng)的當(dāng)時(shí)的溫度信息,該設(shè)計(jì)可為溫度用戶提供實(shí)時(shí)可靠的采集及控制系統(tǒng),實(shí)現(xiàn)溫度和通風(fēng)的控制,并有高溫報(bào)警功能。1.1 課題背景及意義近年來,溫度測(cè)控領(lǐng)域發(fā)展迅速,并隨著數(shù)字技術(shù)的發(fā)展,溫度的測(cè)控芯片也相應(yīng)的登上了歷史的舞臺(tái),能夠在工業(yè)、農(nóng)業(yè)等各個(gè)領(lǐng)域中得到廣泛使用。在人類的生活環(huán)境中,溫度扮演了極其重要的角色。無論你生活在哪里,無論從事什么工作,無時(shí)無刻不在與溫度打著交道?,F(xiàn)代社會(huì)隨著電子技術(shù)的發(fā)展,特別是隨著大規(guī)模集成電路的出現(xiàn),給我們的生活帶來了根本性的變化,如果說微型計(jì)算機(jī)的出現(xiàn)使現(xiàn)代的科學(xué)研究得到了質(zhì)的飛躍,那么可編程控制器的出現(xiàn)則給現(xiàn)代工業(yè)監(jiān)測(cè)控制領(lǐng)域帶來了一次新的技術(shù)革命。在現(xiàn)代社會(huì)中,溫度控制不僅僅應(yīng)用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個(gè)方方面面。本課題主要涉及傳感器技術(shù)、單片機(jī)系統(tǒng)以及LCD這三方面的應(yīng)用,下面就這三方面的概念、發(fā)展和應(yīng)用分別進(jìn)行介紹1。21世紀(jì)科學(xué)技術(shù)的發(fā)展日新月異,科技的不斷進(jìn)步帶動(dòng)了測(cè)量技術(shù)的發(fā)展,現(xiàn)代控制設(shè)備的性能和結(jié)構(gòu)也發(fā)生了巨大的變化,我們已經(jīng)進(jìn)入了飛速發(fā)展的信息時(shí)代,測(cè)控技術(shù)也成為當(dāng)今科技的主流之一,被廣泛地應(yīng)用于生產(chǎn)、生活的各個(gè)領(lǐng)域。對(duì)于本次設(shè)計(jì),其目的在于: (1)本課題綜合了現(xiàn)代測(cè)控、電子信息、計(jì)算機(jī)技術(shù)專業(yè)領(lǐng)域方方面面的知識(shí),具有綜合性、科學(xué)性、代表性,可全面檢驗(yàn)和促進(jìn)學(xué)生的理論素養(yǎng)和工作能力。(2)本課題的研究可以使學(xué)生更好地掌握基于單片機(jī)應(yīng)用系統(tǒng)的分析與設(shè)計(jì)方法,培養(yǎng)創(chuàng)新意識(shí)、協(xié)作精神和理論聯(lián)系實(shí)際的學(xué)風(fēng),提高電子產(chǎn)品研發(fā)素質(zhì)、增強(qiáng)針對(duì)實(shí)際應(yīng)用進(jìn)行控制系統(tǒng)設(shè)計(jì)制作的能力。(3)掌握一個(gè)顯示屏和一個(gè)溫度傳感器的原理、性能、使用特點(diǎn)和方法,利用單片機(jī)對(duì)系統(tǒng)進(jìn)行編程。1.2 溫度傳感器國內(nèi)外現(xiàn)狀及水平傳感器屬于信息技術(shù)前沿的尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工業(yè)生產(chǎn)究和生活領(lǐng)域,數(shù)量高居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng)歷了一下三個(gè)階段:傳統(tǒng)的分離式溫度傳感器(含敏感元件)、模擬集成溫度傳感器/控制器和數(shù)字溫度傳感器。目前,國際上新型溫度傳感器正由模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展,同時(shí)具有抑制串模干擾能力強(qiáng)、分辨力高、線性度好、成本低等優(yōu)點(diǎn)。數(shù)字式溫度傳感器就是能把溫度物理量,通過溫度敏感元件和相應(yīng)電路轉(zhuǎn)換成方便計(jì)算機(jī)、PLC、智能儀表等數(shù)據(jù)采集設(shè)備直接讀取得數(shù)字量的傳感器。數(shù)字式溫度傳感器的接口形式有RS232數(shù)據(jù)格式接口;RS485數(shù)據(jù)格式接口、一總線數(shù)據(jù)格式接口、CAN總線數(shù)據(jù)格式接口、ZIGBEE數(shù)據(jù)格式接口、TCP/IP數(shù)據(jù)格式接口等。在信息化數(shù)字化程度越來越高的今天,擔(dān)當(dāng)信息處理與交換重任的機(jī)房是整個(gè)信息網(wǎng)絡(luò)工程的數(shù)據(jù)傳輸中心、數(shù)據(jù)處理中心和數(shù)據(jù)交換中心2。為保證機(jī)房設(shè)備正常運(yùn)行及工作人員有一個(gè)良好的工作環(huán)境,對(duì)機(jī)房溫度的監(jiān)測(cè)是必不可少的,合理正常的溫度環(huán)境是機(jī)房設(shè)備正常運(yùn)行的重要保障。溫度監(jiān)測(cè)除用于機(jī)房監(jiān)測(cè)外,還可以廣泛應(yīng)用于其他方面,如生物制藥、無菌室、潔凈廠房、電信銀行、圖書館、檔案館、文物館、智能樓宇等各行各業(yè)需要溫度監(jiān)測(cè)的場(chǎng)所和領(lǐng)域。伴隨著我國經(jīng)濟(jì)的高速發(fā)展,國內(nèi)在科技和生產(chǎn)各領(lǐng)域都取得了飛速的發(fā)展和進(jìn)步,發(fā)展以溫度傳感器為載體的溫度測(cè)量技術(shù)具有重大意義3。1.3 課題設(shè)計(jì)任務(wù)(1)本設(shè)計(jì)要求系統(tǒng)測(cè)量雙路的溫度同時(shí)顯示時(shí)間及日期,測(cè)量精度1測(cè)量范圍為-55100。采用液晶顯示溫度值,顯示格式為:第一行顯示兩個(gè)溫度的整數(shù)部分,溫度符號(hào)顯示;第二行顯示時(shí)間數(shù)據(jù),數(shù)據(jù)不斷刷新。(2)本設(shè)計(jì)溫度控制作用:當(dāng)溫度超過上限時(shí)系統(tǒng)自動(dòng)通風(fēng),當(dāng)溫度超過下限時(shí)加熱裝置加熱,當(dāng)溫度超過報(bào)警溫度時(shí)蜂鳴器自動(dòng)響,設(shè)計(jì)中用綠燈亮表示通風(fēng),用紅燈亮表示正在加熱。(3)本設(shè)計(jì)要求系統(tǒng)仿真,程序調(diào)試使用的是Keil軟件,仿真用的是ISIS仿真軟件。本設(shè)計(jì)的難點(diǎn)主要是軟件方面,其中軟件開發(fā)的難點(diǎn)在于DS18B20的序列號(hào)讀出和液晶溫度符號(hào)的顯示以及溫度的精度顯示如何實(shí)現(xiàn),如果DS18B20的序列號(hào)讀出不正確,將無法正確的匹配和讀出的溫度值;溫度符號(hào)的顯示需要對(duì)LM032L的CGROM進(jìn)行讀寫。溫度顯示的精度的實(shí)現(xiàn)需要編程人員對(duì)程序熟悉。要完成這個(gè)課題要做以下幾點(diǎn)工作:(1)熟悉單片機(jī)系統(tǒng)包括外圍電路,單片機(jī)的引腳定義及作用,知道各引腳的使用方法。熟悉各個(gè)硬件的原理及功能,并知道怎么和單片機(jī)連接,比如DS18B20、24C32和DS1302。(2)由于設(shè)計(jì)要求仿真,必須學(xué)會(huì)軟件編程和仿真調(diào)試,熟練使用Keil軟件,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件。并且必須在Proteus中完成仿真,完成電路圖的連接,加載程序最后仿真出結(jié)果。單片機(jī)選用市場(chǎng)上常見的美國ATMEL公司的AT89C52作為控制元件,溫度傳感器選用DS18B20數(shù)字溫度傳感器,它的輸入/輸山采用數(shù)字量,以單總線技術(shù),接收單片機(jī)發(fā)送的命令,根據(jù)DSl8B20內(nèi)部的協(xié)議進(jìn)行相應(yīng)的處理,將轉(zhuǎn)換的溫度以串口發(fā)送給單片機(jī)。主機(jī)按照通信協(xié)議用一個(gè)I/O口模擬DS18B20的時(shí)序,發(fā)送命令(初始化命令、ROM命令、RAM命令)給DS18B20,轉(zhuǎn)換完成之后讀取溫度值,在內(nèi)部進(jìn)行相應(yīng)的數(shù)值處理,用液晶顯示屏LM032L顯示各點(diǎn)的溫度,液晶顯示雙路的實(shí)時(shí)溫度值和時(shí)間日期顯示,從而實(shí)現(xiàn)了對(duì)雙路溫度的實(shí)時(shí)監(jiān)控??紤]到DS18B20溫度傳感器已廣泛地應(yīng)用在單片機(jī)電路設(shè)計(jì)中,可以很容易直接讀取被測(cè)溫度值,電路簡(jiǎn)單,精度高,軟硬件都易實(shí)現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足設(shè)計(jì)要求。2 總體方案論證本章從系統(tǒng)方案等一些方面來進(jìn)行論證。使用單片機(jī)作為控制核心,采用兩個(gè)溫度傳感器對(duì)雙路溫度進(jìn)行檢測(cè),以液晶顯示屏顯示檢測(cè)溫度,通過44矩陣鍵盤模塊選擇時(shí)間對(duì)與其對(duì)應(yīng)的溫度進(jìn)行顯示。設(shè)計(jì)完成了雙路溫度測(cè)量及顯示,時(shí)間的顯示,以及自動(dòng)溫度控制和報(bào)警,并存儲(chǔ)溫度信息??傮w方案如圖2.1所示。AT89C52時(shí)鐘電路DS18B20存儲(chǔ)器繼電器1繼電器2鍵盤電路報(bào)警電路DS18B20溫度調(diào)節(jié)裝置通風(fēng)裝置圖2.1 總體方案2.1 設(shè)計(jì)方案論證溫度監(jiān)控系統(tǒng)可以根據(jù)采用的溫度傳感器的不同進(jìn)行如下分類。(1)熱敏電阻以溫度變化導(dǎo)致阻值的變化為工作原理的熱敏電阻,因其具有成本低、體積小、簡(jiǎn)單、可靠、響應(yīng)速度快、容易使用等特點(diǎn)。熱敏電阻的電阻溫度系數(shù)較高,室溫通常也較高,因此其自身發(fā)熱較小,信號(hào)調(diào)節(jié)較為簡(jiǎn)單。但熱敏電阻也存在缺點(diǎn),如互換性差、溫度與輸出阻值之間呈非線性關(guān)系。(2)數(shù)字式溫度傳感器數(shù)字式溫度傳感器的種類也不少,但用于測(cè)控系統(tǒng)的溫度傳感器主要是Dallas的DS18X20系列溫度傳感器,其溫度檢測(cè)范圍為-55125,檢測(cè)精度為0.5。DS18X20采用1-WireTM接口,封裝形式有PR-35和SSOP-16兩種,測(cè)控系統(tǒng)中采用的是PR-35封裝。DS18X20采用9個(gè)位表示測(cè)溫點(diǎn)的溫度值,每個(gè)DS18X20內(nèi)部都設(shè)置有一個(gè)單一的序列號(hào),因此可以使多個(gè)DS18X20共存于同一根數(shù)據(jù)傳輸線上。DS18X20內(nèi)部分為4個(gè)部分:64位序列號(hào);保存臨時(shí)數(shù)據(jù)的8字節(jié)片內(nèi)RAM;保存永久數(shù)據(jù)的2字節(jié)EEPROM;溫度傳感器4。采用數(shù)字式溫度傳感器的測(cè)控系統(tǒng)的結(jié)構(gòu)與采用熱敏電阻的測(cè)控系統(tǒng)的結(jié)構(gòu)大致相同,只是用測(cè)控單元替代了智能分機(jī)、擴(kuò)充接線器替代了溫度分線器。測(cè)控單元與智能分機(jī)的區(qū)別在于沒有使用將溫度信號(hào)數(shù)字化的A/D轉(zhuǎn)換電路,取而代之的是1-WireTM總線與上層通信總線之間的通信轉(zhuǎn)換電路,如果系統(tǒng)選用了數(shù)字式溫度傳感器則測(cè)控單元將完全由數(shù)字電路組成,而智能分機(jī)是由數(shù)字電路和模擬電路兩部分構(gòu)成的,這將使測(cè)控單元電路的設(shè)計(jì)更為容易。采用DS18X20溫度傳感器的測(cè)控系統(tǒng)的測(cè)溫電纜與熱敏電阻測(cè)溫電纜大不相同,該測(cè)溫電纜最多只需3根導(dǎo)線即可連接多個(gè)DS18X20溫度傳感器。最為簡(jiǎn)潔的結(jié)構(gòu)是利用DS18X20可以通過數(shù)據(jù)線供電的特點(diǎn),在測(cè)溫電纜中只放置兩根平行的細(xì)鋼絲繩即可連接多個(gè)DS18X20溫度傳感器,這樣不僅使測(cè)溫電纜的制造簡(jiǎn)便、制造成本下降,而且提高了測(cè)溫電纜的抗拉強(qiáng)度、便于溫度傳感器的更換。正是這些特點(diǎn)使得采用DS18X20溫度傳感器的測(cè)控系統(tǒng)更適用于復(fù)雜的多點(diǎn)測(cè)溫的應(yīng)用環(huán)境,可以解決在不需重新安裝測(cè)溫電纜的情況下更換測(cè)溫電纜內(nèi)部的溫度傳感器以及改變溫度傳感器相對(duì)位置。由于這種溫度傳感器的性價(jià)比高出熱敏電阻許多,所以DS18X20溫度傳感器測(cè)控系統(tǒng)在應(yīng)用時(shí)比熱敏電阻測(cè)控系統(tǒng)更具有性能價(jià)格比的優(yōu)勢(shì)5。(3)光纖傳感器光纖溫度傳感器是近幾年發(fā)展的新技術(shù),也是工業(yè)中用的最多的光纖傳感器之一。目前研究的光纖溫度傳感器主要有輻射式溫度傳感器、半導(dǎo)體吸收式溫度傳感器、光纖熱色傳感器等。光纖溫度傳感器的精度更高,但成本太貴。2.2 方案設(shè)計(jì)方案一:該方案由單片機(jī)、模擬溫度傳感器AD590、運(yùn)算放大器、A/D轉(zhuǎn)換器、LCD顯示電路、集成功率放大器、報(bào)警器組成。該方案采用模擬溫度傳感器AD590作為測(cè)溫元件,傳感器測(cè)量的溫度變化轉(zhuǎn)換成電流的變化,再通過電路轉(zhuǎn)換成電壓的變化,使用運(yùn)算放大器交給信號(hào)進(jìn)行適當(dāng)?shù)姆糯螅詈笸ㄟ^模數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換成數(shù)據(jù)信號(hào),傳給單片機(jī),單片機(jī)將溫度值進(jìn)行處理之后用LCD顯示,當(dāng)溫度值超過設(shè)定值時(shí)開始報(bào)警。方案二:該方案使用了AT89C52單片機(jī)作為控制核心,以智能溫度傳感器DS18B20為溫度測(cè)量元件,采用2個(gè)溫度傳感器對(duì)雙路溫度進(jìn)行檢測(cè),通過鍵盤模塊對(duì)所需要調(diào)出的時(shí)間進(jìn)行設(shè)置,并通過設(shè)定報(bào)警溫度,超過其溫度值就報(bào)警。顯示電路采用LM032L模塊,使用單片機(jī)直接驅(qū)動(dòng)蜂鳴器構(gòu)成報(bào)警電路。方案一采用模擬溫度傳感器,轉(zhuǎn)換結(jié)果需要經(jīng)過運(yùn)算放大器傳給處理器。它控制雖然簡(jiǎn)單,但電路復(fù)雜,不容易實(shí)現(xiàn)對(duì)多點(diǎn)溫度測(cè)量和監(jiān)控。由于采用了多個(gè)分立元件和模數(shù)轉(zhuǎn)換器,容易出現(xiàn)誤差,測(cè)量結(jié)果不是很準(zhǔn)確,因此本方案并不可取。方案二采用智能溫度傳感器DS18B20,它直接輸入數(shù)字量,精度高,電路簡(jiǎn)單,只需要模擬DS18B20的讀寫時(shí)序,根據(jù)DS18B20的協(xié)議讀取轉(zhuǎn)換的溫度。此方案雖然程序設(shè)計(jì)復(fù)雜一些,但硬件電路簡(jiǎn)單,并且在課題外對(duì)DS18B20,字符型液晶顯示有所了解,曾經(jīng)在網(wǎng)上看過此類程序設(shè)計(jì),而且我們已經(jīng)使用開發(fā)工具Keil用C語言對(duì)系統(tǒng)進(jìn)行了程序設(shè)計(jì),用仿真軟件Proteus對(duì)系統(tǒng)進(jìn)行了仿真,達(dá)到了預(yù)期的效果。由此可見,此方案的可行性,體現(xiàn)了技術(shù)的先進(jìn)性,經(jīng)濟(jì)上也沒有任何問題。另外,因?yàn)镈S18B20單線通信功能是分時(shí)完成的,它有非常嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序就很重要了。系統(tǒng)對(duì)DS18B20的各種操作必須按照協(xié)議進(jìn)行。操作協(xié)議為:首先開始初始化DS18B20(發(fā)復(fù)位脈沖),接著發(fā)ROM功能指令,再發(fā)存儲(chǔ)器操作指令,最后處理數(shù)據(jù)。各種操作的時(shí)序圖與DS18B20相同。根據(jù)DS18B20的電氣特性,我們可以采取以下方法使用DS18B20進(jìn)行雙路測(cè)溫。單端口單總線的雙路測(cè)溫法:所有的DS18B20相互并聯(lián)后其數(shù)據(jù)線連接到微處理器的某個(gè)I/O端口線上,其顯著的特點(diǎn)是只占用微處理器的一個(gè)端口。因?yàn)槊總€(gè)DS18B20內(nèi)部均有且只有一個(gè)唯一的64位序列號(hào),在系統(tǒng)安裝工作之前先將主機(jī)與DS18B20逐個(gè)掛接,分別讀出其序列號(hào)并存儲(chǔ)在主機(jī)的EEPORM中,微處理器根據(jù)序列號(hào)就可以對(duì)同一條總線上的2支DS18B20進(jìn)行識(shí)別與控制,分別讀取它們的溫度。DS18B20與單片機(jī)的連接如圖2.2所示。MCUP2.6T1DS18B20T2DS18B20圖2.2 DS18B20與單片機(jī)的連接單片機(jī)選用市場(chǎng)上常見的美國ATMEL公司的AT89C52作為控制元件,溫度傳感器選用DS18B20數(shù)字溫度傳感器,它的輸入/輸山采用數(shù)字量,以單總線技術(shù),接收單片機(jī)發(fā)送的命令,根據(jù)DS18B20內(nèi)部的協(xié)議進(jìn)行相應(yīng)的處理,將轉(zhuǎn)換的溫度以串口發(fā)送給單片機(jī)。主機(jī)按照通信協(xié)議用一個(gè)I/O口模擬DS18B20的時(shí)序,發(fā)送命令包括初始化命令、ROM命令、RAM命令給DS18B20,轉(zhuǎn)換完成之后讀取溫度值,在內(nèi)部進(jìn)行相應(yīng)的數(shù)值處理,用液晶顯示屏LM032L顯示雙路的溫度,液晶顯示完雙路測(cè)量溫度,時(shí)間,以及自動(dòng)溫度控制和報(bào)警,并存儲(chǔ)溫度信息。考慮到DS18B20溫度傳感器已廣泛地應(yīng)用于單片機(jī)系統(tǒng)設(shè)計(jì)中,可以很簡(jiǎn)單直接讀取被測(cè)溫度值,電路相對(duì)簡(jiǎn)單,精度高,軟硬件都容易實(shí)現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足了設(shè)計(jì)要求。由以上兩種方案,很容易就可以看出,采用方案二,電路比較簡(jiǎn)單,費(fèi)用較低,可靠性高,軟件的設(shè)計(jì)也比較簡(jiǎn)單。DS18B20的測(cè)溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,其中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55所對(duì)應(yīng)的一個(gè)基數(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í),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。其中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理6。3 硬件電路設(shè)計(jì)硬件電路分為三部分:信號(hào)采集電路,控制電路和顯示電路。3.1 單片機(jī)系統(tǒng)簡(jiǎn)介3.1.1 單片機(jī)系統(tǒng)設(shè)計(jì)AT89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory),其低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器的制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C52是一種高效的微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高并且價(jià)廉的方案7。AT89C52管腳說明如下: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口也可作為AT89C52的一些特殊功能口如下所示: P3.0口管腳的備選功能:RXD(串行輸入口); P3.1口管腳的備選功能:TXD(串行輸出口); P3.2口管腳的備選功能:INT0(外部中斷0); P3.3口管腳的備選功能:INT1(外部中斷1); 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)。3.2 DS18B20溫度傳感器和單片機(jī)接口技術(shù)3.2.1 DSl8B20簡(jiǎn)介及原理DS18B20簡(jiǎn)介:DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司繼DS18B20之后最新推出的只用改進(jìn)型智能溫度傳感器。DS18B20采用3腳PR35封裝或8SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如3.1所示。存儲(chǔ)器和控制器緩存存儲(chǔ)器8位CRC生成器溫度靈敏元件低溫觸發(fā)器TL高溫觸發(fā)器TH配置寄存器64位ROM單線接口電源檢測(cè)圖3.1 DS18B20的內(nèi)部結(jié)構(gòu)圖與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可根據(jù)要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9位12位的數(shù)字直讀方式??梢苑謩e存93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于DS18B20數(shù)據(jù)總線,總線本身也可以向所掛接DS18B20供電,而無需額外電源。因而使用可使系統(tǒng)結(jié)構(gòu)趨簡(jiǎn)單,可靠性高。它在測(cè)溫精度,轉(zhuǎn)換時(shí)時(shí)間,傳輸距離,分辨率幾方面較DS1820有了很大的改進(jìn),給用戶帶來了更加方便的使用和更令人滿意的效果。DS18B20其內(nèi)部結(jié)構(gòu)主要有4部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖3.2所示。底視引腳排列 圖3.2 DS18B20的管腳DS18B20的引腳說明如下:GND :地。 DQ :數(shù)據(jù)I/O。 VDD :電源。 NC :空腳。Proteus中的DS18B20如圖3.3所示。圖3.3 Proteus中的DS18B2064位激光ROM開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào)共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。64位激光ROM的結(jié)構(gòu)組成如下所示:8位CRC編號(hào);48位序列號(hào);8位產(chǎn)品系列編碼。當(dāng)DS18B20在接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的值就以16位帶符號(hào)擴(kuò)展到二進(jìn)制補(bǔ)碼形式儲(chǔ)存在高速暫存存儲(chǔ)器的第l,2字節(jié)。單片機(jī)通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前面,高位在后,數(shù)據(jù)的格式以0.0625/LSB形式表示。對(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)制值。部分溫度轉(zhuǎn)換如表3.1所示。 表3.1 部分溫度轉(zhuǎn)換值溫度輸入(2進(jìn)制)輸出(16進(jìn)制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1111 0101 1110EE6FH-551110 1110 0110 1111FE90H在DS18B20完成溫度變換之后,溫度值與貯存TH和TL內(nèi)的觸發(fā)值相比較因?yàn)檫@些寄存器僅僅是8位,所以0.5位在比較時(shí)被忽略。TH或TL的最高有較位直接對(duì)應(yīng)于16位溫度奇存器的符號(hào)位。如果溫度測(cè)量的結(jié)果高于TH或者低于TL,那么器件內(nèi)報(bào)警標(biāo)志將置位。每次溫度測(cè)量更新此標(biāo)志。只要報(bào)警標(biāo)志置位,DS18B20將對(duì)報(bào)警搜索命令做出響應(yīng)。這允許并聯(lián)連接許多DS18B20,同時(shí)進(jìn)行溫度測(cè)量。如果某處溫度超過極限,那么可以識(shí)別出正在報(bào)警的器件并立即將其讀出而不必讀出非報(bào)警的器件8。3.2.2 DS18B20與單片機(jī)接口電路如圖3.4所示,為單片機(jī)與DS18B20的接口電路。DS18B20只有三個(gè)引腳,一個(gè)接地,一個(gè)接電源,一個(gè)數(shù)字輸入輸出引腳接單片機(jī)的P2.6口。+5V+5V 圖3.4 DS18B20與單片機(jī)接口電路 DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高、連接方便、占用I/O 口線少等優(yōu)點(diǎn),但實(shí)際應(yīng)用中也應(yīng)注意以下2個(gè)問題:(1)在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5V左右,如果電壓過低,會(huì)使測(cè)得的溫度與實(shí)際溫度出現(xiàn)偏高現(xiàn)象,使溫度輸出定格在85。(2)連接DS18B20的總線電纜長(zhǎng)度是有限制的。當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度又超過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è)斐傻?。因此,進(jìn)行長(zhǎng)距離測(cè)量時(shí)要充分考慮總線分布電容及阻抗匹配問題。3.3 液晶顯示器和單片機(jī)接口技術(shù)3.3.1 LM032L顯示器簡(jiǎn)介L(zhǎng)M032L字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣LCD,目前常用161,162,202和402行等的模塊。顯示字符時(shí),由于LM032L內(nèi)帶字符發(fā)生器的控制器,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。3.3.2 LM032L的基本參數(shù)及引腳功能LM032L分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖3.5所示。 圖3.5 LM032L結(jié)構(gòu)圖LM032L主要技術(shù)參數(shù):容量:202個(gè)字符。芯片工作電壓:4.5V5.5V。工作電流:2.0mA(5.0V)。模塊最佳工作電壓:5.0V。字符尺寸:2.95 mm4.35 mm (WH)。引腳功能說明:LM032L采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3.2所示。 表3.2 引腳接口說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生鬼影,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。3.3.3 控制指令說明LM032L液晶模塊內(nèi)部的控制器共有11條控制指令,如表3.3所示。表3.3 控制命令表指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標(biāo)返回000000001*置輸入模式00000001I/DS顯示開/關(guān)控制0000001DCB光標(biāo)或字符移位000001S/CR/L*置功能00001DLNF*置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址寫數(shù)到CGRAM或DDRAM10要寫的數(shù)據(jù)內(nèi)容從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容LM032L液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。 指令3:光標(biāo)和顯示模式設(shè)置。I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移。S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)。B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位。S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。 指令6:功能設(shè)置命令。DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線。N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示。F: 低電平時(shí)顯示57的點(diǎn)陣字符,高電平時(shí)顯示510的點(diǎn)陣字符。 指令7:字符發(fā)生器RAM地址設(shè)置。 指令8:DDRAM地址設(shè)置。 指令9:讀忙信號(hào)和光標(biāo)地址。BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù)。 指令11:讀數(shù)據(jù)9。3.3.4 LM032L與單片機(jī)接口電路本系統(tǒng)的顯示部分采用LM032L字符顯示模塊,與采用數(shù)碼管相比,硬件連接和軟件調(diào)試上都由優(yōu)勢(shì)。只要把要顯示的內(nèi)容放進(jìn)液晶模塊的顯示存儲(chǔ)器里面就可以直觀的顯示出指定的內(nèi)容,操作方便。系統(tǒng)顯示電路由單片機(jī)AT89C52、字符液晶顯示器LM032L和1k8的排組構(gòu)成。單片機(jī)實(shí)現(xiàn)對(duì)LCD命令和顯示數(shù)據(jù)的讀寫控制功能,P1口作數(shù)據(jù)口,與LM032L的D0D7相接,在P1口與D0D7數(shù)據(jù)線之間分別接8個(gè)上拉電阻,以確保電路能夠正常顯示。AT89C52的P1口作為L(zhǎng)CD的控制線,P2.0P2.2分別接LM032L的RS、RW和E端;LM032L的其它三個(gè)控制端V和V、V分別接電源和地。系統(tǒng)顯示電路組成如圖3.6所示。LCDU1R1+5V圖3.6 LM032L與單片機(jī)的連接3.4 時(shí)鐘芯片DS1302簡(jiǎn)介DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5 V5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄,因此廣泛應(yīng)用于測(cè)量系統(tǒng)中。DS1302的引腳如圖3.7所示。圖3.7 DS1302的引腳DS1302各引腳的功能為: Vcc1:主電源;Vcc2:備份電源。當(dāng)Vcc2Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2 Vcc1時(shí),由Vcc1向DS1302供電。 SCLK:串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出。 I/O:三線接口時(shí)的雙向數(shù)據(jù)線。RST:輸入信號(hào),在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,RST開始控制字訪問移位寄存器的控制邏輯;其次,RST提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒āS1302與單片機(jī)的連接如圖3.8所示。C2C1X1B1U23V+5V圖3.8 DS1302與單片機(jī)的連接DS1302的工作原理:DS1302工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(SCLK)的上升沿串行輸入,前8位指定訪問地址,命令字裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù)據(jù),寫操作時(shí)輸出數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達(dá)248的數(shù)據(jù)10。DS1302內(nèi)部的RAM分為兩類,一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元為一個(gè)8位的字節(jié),其命令控制字為COHFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)11。 我們現(xiàn)在已經(jīng)知道了控制寄存器和RAM的邏輯地址,接著就需要知道如何通過外部接口來訪問這些資源。單片機(jī)是通過簡(jiǎn)單的同步串行通訊與DS1302通訊的,每次通訊都必須由單片機(jī)發(fā)起,無論是讀還是寫操作,單片機(jī)都必須先向DS1302寫入一個(gè)命令幀,這個(gè)幀的格式如表1所示,最高位BIT7固定為1,BIT6決定操作是針對(duì)RAM還是時(shí)鐘寄存器,接著的5個(gè)BIT是RAM或時(shí)鐘寄存器在DS1302的內(nèi)部地址,最后一個(gè)BIT表示這次操作是讀操作抑或是寫操作。 物理上,DS1302的通訊接口由3個(gè)口線組成,即RST,SCLK,I/O。其中RST從低電平變成高電平啟動(dòng)一次數(shù)據(jù)傳輸過程,SCLK是時(shí)鐘線,I/O是數(shù)據(jù)線。具體的讀寫時(shí)序參考時(shí)序圖,但是請(qǐng)注意,無論是哪種同步通訊類型的串行接口,都是對(duì)時(shí)鐘信號(hào)敏感的,而且一般數(shù)據(jù)寫入有效是在上升沿,讀出有效是在下降沿(DS1302正是如此的,但是在芯片手冊(cè)里沒有明確說明),如果不是特別確定,則把程序設(shè)計(jì)成這樣:平時(shí)SCLK保持低電平,在時(shí)鐘變動(dòng)前設(shè)置數(shù)據(jù),在時(shí)鐘變動(dòng)后讀取數(shù)據(jù),即數(shù)據(jù)操作總是在SCLK保持為低電平的時(shí)候,相鄰的操作之間間隔有一個(gè)上升沿和一個(gè)下降沿12。DS1302的命令字結(jié)構(gòu)如圖3.9所示。圖3.9 DS1302的命令字結(jié)構(gòu)3.5 24C32簡(jiǎn)介概述:24C32是一個(gè)32K位串行CMOS E2PROM 內(nèi)部含有4096個(gè)字節(jié),每字節(jié)為8位,其先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗,24C32有一個(gè)32字節(jié)頁寫緩沖器,該器件通過 I2C 總線接口進(jìn)行操作。以下是對(duì)各個(gè)管腳的名稱簡(jiǎn)單描述13。 A0 ,A1 ,A2:器件地址選擇。 SDA:串行數(shù)據(jù)/地址。 SCK:串行時(shí)鐘。 WP:寫保護(hù)。 Vcc:1.8V6.0V 工作電壓。 Vss:地。 24C32的引腳圖如圖3.10所示。圖3.10 24C32的引腳圖以下是對(duì)各個(gè)管腳的功能簡(jiǎn)單描述:SCK:串行時(shí)鐘。 24C32串行時(shí)鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,這是一個(gè)輸入管腳。 SDA:串行數(shù)據(jù)/地址。 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA是一個(gè)開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進(jìn)行線或Wire-OR。 A0 ,A1 ,A2:器件地址輸入端。 這些管腳為硬連線或者不連接,在硬件上與24C16兼容,對(duì)于單總線系統(tǒng)最多可尋址8個(gè),24C32器件參閱器件尋址,當(dāng)這些引腳沒有連接時(shí)其默認(rèn)值為0。 WP:寫保護(hù)。 當(dāng)WP腳連接到Vcc所有內(nèi)存變成寫保護(hù),只能讀,當(dāng)WP引腳連接到Vss或懸空,允許器件進(jìn)行讀/寫操作。 I2C總線協(xié)議的描述及定義如下: (1) 只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送。 (2) 在數(shù)據(jù)傳送過程中當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線必須保持穩(wěn)定狀態(tài),不允許有跳變。時(shí)鐘線為高電平時(shí),數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào)。 起始信號(hào):時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低的跳變作為I2C總線的起始信號(hào)。停止信號(hào):時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高的跳變作為I2C總線的停止信號(hào)14。24C32與單片機(jī)連接如圖3.11所示。圖3.11 24C32與單片機(jī)連接3.6 鍵盤電路設(shè)計(jì)根據(jù)本設(shè)計(jì)需要,本系統(tǒng)采用44鍵盤實(shí)現(xiàn)對(duì)功能和數(shù)字鍵的設(shè)定。自定義鍵盤定義如下:0到9之間的10個(gè)數(shù)字鍵定義為普通的數(shù)字鍵,鍵定義為時(shí)間調(diào)整打開鍵,即按鍵進(jìn)入時(shí)間調(diào)整設(shè)定。鍵定義為時(shí)間位切換鍵,并且按年、月、日、時(shí)、分、秒,依次向右移位,比如當(dāng)對(duì)年調(diào)整結(jié)束要對(duì)月進(jìn)行調(diào)整時(shí),按一下鍵就對(duì)月開始調(diào)整,再按一下鍵則對(duì)日進(jìn)行調(diào)整,依此類推。+鍵定義為時(shí)間調(diào)整結(jié)束后,顯示當(dāng)前時(shí)間記錄下的兩個(gè)溫度值。=鍵定義為返回到原來的狀態(tài),即時(shí)間和兩個(gè)溫度值同時(shí)顯示的狀態(tài)。鍵盤與單片機(jī)接口電路如圖3.12所示。RPU7圖3.12 鍵盤與單片機(jī)接口電路3.7 報(bào)警電路設(shè)計(jì)本系統(tǒng)采用單片機(jī)與蜂鳴器相連來顯示當(dāng)前系統(tǒng)所處的狀態(tài)來報(bào)警。P3.5口與蜂鳴器相連,在P3.5與蜂鳴器中間接一個(gè)5.1k的電阻起到防止電流過大,進(jìn)而保護(hù)器件的作用。報(bào)警電路說明:當(dāng)DS18B20所測(cè)得的溫度超過報(bào)警上限時(shí),這里即超過50,蜂鳴器報(bào)警,否則蜂鳴器不報(bào)警。報(bào)警電路如圖3.13所示。LSQ3R2+5V圖3.13 報(bào)警電路3.8 控制部分硬件電路中單片機(jī)起控制作用,它相當(dāng)于人的大腦;DS18B20進(jìn)行溫度采集,把采集到的室內(nèi)溫度送到單片機(jī)中,單片機(jī)進(jìn)行判斷,根據(jù)判斷的結(jié)果控制相應(yīng)引腳輸出高電平或低電平,從而控制繼電器線圈中能否有電流經(jīng)過,達(dá)到控制電風(fēng)扇轉(zhuǎn)動(dòng)或停止的目的,繼電器用來實(shí)現(xiàn)對(duì)電風(fēng)扇和加熱裝置的自動(dòng)控制。在系統(tǒng)中,單片機(jī)通過檢測(cè)DS18B20采集的溫度來作出相應(yīng)處理,當(dāng)溫度高于某一設(shè)定值時(shí),P3.0輸出低電平,繼電器線圈得電,其對(duì)應(yīng)常開觸點(diǎn)閉合,電風(fēng)扇電路導(dǎo)通,電風(fēng)扇轉(zhuǎn)動(dòng);當(dāng)溫度低于設(shè)定溫度值時(shí),單片機(jī)P3.0引腳輸出高電平,繼電器線圈中沒有電流通過,常開觸點(diǎn)保持?jǐn)嚅_,電風(fēng)扇電路不通電,電風(fēng)扇不能運(yùn)行,從而實(shí)現(xiàn)了電風(fēng)扇的自動(dòng)起停。為了仿真的便利考慮,本設(shè)計(jì)用LED綠燈表示風(fēng)扇,LED綠燈亮表示風(fēng)扇通電轉(zhuǎn)動(dòng),LED綠燈不亮表示風(fēng)扇電路不通電,風(fēng)扇不能運(yùn)行。單片機(jī)控制的通風(fēng)電路如圖3.14所示。D2RL2D4R6Q2R5+5V+12V圖3.14 單片機(jī)控制的通風(fēng)電路同樣當(dāng)溫度低于某一設(shè)定值時(shí),P3.1輸出低電平,繼電器線圈得電,其對(duì)應(yīng)常開觸點(diǎn)閉合,加熱電路通電,開始工作加熱。當(dāng)溫度高于設(shè)定溫度值時(shí),單片機(jī)P3.1引腳輸出高電平,繼電器線圈中沒有電流通過,常開觸點(diǎn)保持?jǐn)嚅_,加熱電路沒通電,加熱電路不工作。同樣處于便利考慮,用LED紅燈表示加熱電路。單片機(jī)控制的加熱電路如圖3.15所示。RL1D1D3R4Q1R3+5V+12V圖3.15 單片機(jī)控制的加熱電路4 系統(tǒng)軟件設(shè)計(jì)這部分主要對(duì)主程序和各子程序做介紹。4.1 讀DS18B20的序列號(hào)程序中主要對(duì)DS18B20的初始化子程序,然后讀出DS18B20的64位序列號(hào)存入到40H47H中,然后將40H內(nèi)容送入P0口,顯示出40H中的二進(jìn)制數(shù),記錄下來后分別把41H47H的內(nèi)容送入P0口顯示并記錄。2個(gè)DS18B20的序列號(hào)分別為:(1)28H 30H C5H B8H 00H 00H 00H 8EH(2)28H 31H C5H B8H 00H 00H 00H B9H4.2 主程序設(shè)計(jì)系統(tǒng)主流程圖如圖4.1所示,整個(gè)軟件包括溫度采集和數(shù)據(jù)傳輸兩個(gè)主要部分組成。主要完成LCD、中斷、DS1302和DS18B20的初始化,并對(duì)測(cè)溫精度設(shè)置。初始化鍵盤顯示掃描鍵處理開始有鍵?采樣時(shí)間到?采集及顯示YYNN結(jié)束圖4.1 系統(tǒng)主程序流程圖 4.3 DS18B20子程序的設(shè)計(jì)先對(duì)DS18B20初始化,再進(jìn)行DS18B20的匹配操作,然后跳過所有的DS18B20,對(duì)所有的DS18B20進(jìn)行溫度轉(zhuǎn)換,延時(shí)1s,初始化DS18B20,此后發(fā)出匹配命令,寫入64位的ROM序列號(hào),總線上只有與此序列號(hào)相同的DS18B20才會(huì)作出反應(yīng),選中次DS18B20,然后對(duì)該DS18B20進(jìn)行讀操作,把溫度值存放在指定的兩個(gè)地址中,接下來寫入第二個(gè)DS18B20的序列號(hào),把其溫度值發(fā)在指定的地址。DS18B20 子程序流程圖如圖4.2所示。開始初始化發(fā)跳過ROM命令發(fā)讀取溫度命令輸入校驗(yàn)碼匹配?轉(zhuǎn)換溫度顯示YN圖4.2 DS18B20 子程序流程圖DS18B20子程序:sbit ds=P26;/傳感器IO口uchar code num1=0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e;uchar code num2=0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9;void jisuan(int i) /數(shù)據(jù)計(jì)算函數(shù) int a,b,c,k; uchar x; if(wdxz=0)x=0;if(wdxz=1)x=8;if(i0) i=(i)+1;a=(i%1000)%100)%10);b=(i+a)/10)%100)%10);c=(i+a+b*10)/100)%10);k=10; elsea=(i%1000)%100)%10);b=(i-a)/10)%100)%10);c=(i-a-b*10)/100)%10);k=(i-a-b*10-c*100)/1000; show(k,0+x); show(c,1+x);show(b,2+x); show(12,3+x);show(a,4+x); void yaoqiu1()/傳感器設(shè)置,讀取溫度值 uchar i;reset();delays(200); fasong(0x55);if(wdxz=0) for(i=0;i8;i+) fasong(num1i); if(wdxz=1) for(i=0;i8;i+) fasong(num2i); fasong(0xbe); int zhi() /對(duì)獲取值進(jìn)行處理 發(fā)送至計(jì)算函數(shù) unsigned char i,j;int k,f,c,d; yaoqiu1();i=dedao();j=dedao(); f=j;f=8;f|=i;k=f;k=k*0.625; jisuan(k); if(wdxz=0)wdxz=1;else wdxz=0; return(k); 4.4 24C32子程序的設(shè)計(jì) I2C驅(qū)動(dòng),從地址A0,輸入存地址高八位,輸入存地址低八位,寫入數(shù)據(jù)。從地址A1,輸入讀取地址高八位,讀取地址第八位,輸出數(shù)據(jù)。24C32子程序流程圖如圖4.3所示。I2C驅(qū)動(dòng)輸入數(shù)據(jù)開始輸出數(shù)據(jù)圖4.3 24C32子程序流程圖24C32子程序:sbit sda=P36;sbit scl=P37;uchar readbyte() /讀取一個(gè)字節(jié)uchar i,dat;for(i=0;i8;i+) scl=1;dat=1;if(sda=1)dat|=0x01;scl=

溫馨提示

  • 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)論