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

下載本文檔

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

文檔簡介

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

評論

0/150

提交評論