版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目 錄一、引言2二、設(shè)計內(nèi)容及性能指標(biāo)3三、系統(tǒng)方案論證與比較33.1 方案一33.2、方案二4四、系統(tǒng)器件選擇54.1. 單片機的選擇54. 2 溫度傳感器的選擇54.2.1. DS18B20的性能特點64.2.2.DS18B20使用中的注意事項64.2.3. DS18B20的內(nèi)部結(jié)構(gòu)74.2.4.DS18B20測溫原理84.3顯示及報警模塊器件選擇9五、硬件設(shè)計電路951 主控制器:1052顯示電路1053溫度檢測電路1154溫度報警電路18六軟件設(shè)計186.1.主程序模塊186.2. 軟件功能組成模塊:19七、系統(tǒng)調(diào)試197.1硬件調(diào)試197.1.1排除邏輯故障197.1.2排除元器件失
2、效197.1.3排除電源故障207.2軟件調(diào)試207.3軟硬調(diào)試20八、總結(jié)與體會20九、致謝21數(shù)字溫度計摘要:溫度的檢測與控制是工業(yè)生產(chǎn)過程中比較典型的應(yīng)用之一,隨著傳感器在生活中的更加廣泛的應(yīng)用,利用新型數(shù)字溫度傳感器實現(xiàn)對溫度的測試與控制得到更快的開發(fā),本文設(shè)計了一種基于AT89C51的溫度檢測及報警系統(tǒng)。該系統(tǒng)可以方便的實現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。該系統(tǒng)設(shè)計和布線簡單,結(jié)構(gòu)緊湊
3、,抗干擾能力強,在大型倉庫、工廠、智能化建筑等領(lǐng)域的溫度檢測中有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機;溫度傳感器;AT89C51;DS18B20;報警信號一、引言當(dāng)今社會,溫度檢測系統(tǒng)被廣泛的社會生產(chǎn)、生活的各個領(lǐng)域。在工業(yè)、環(huán)境檢測、醫(yī)療、家庭等多方面都有應(yīng)用。同時單片機在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛。隨著溫度檢測理論與技術(shù)的不斷更新,溫度傳感器的種類也越來越多,在微機系統(tǒng)中使用的傳感器,必須是能夠?qū)⒎请娏哭D(zhuǎn)換成電量的傳感器,目前常用的有熱電偶傳感器、熱電阻傳感器和單導(dǎo)體傳感器等,每種傳感器根據(jù)其自身特性,都有它自己的應(yīng)用領(lǐng)域。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便、測溫范圍廣
4、、測溫準(zhǔn)確、其輸出溫度采用數(shù)字顯示等優(yōu)點,主要用于對溫度比較準(zhǔn)確的場所,或科研實驗室使用。該設(shè)計控制器使用單片機AT89C51,溫度傳感器使用DS18B20,用液晶來實現(xiàn)溫度顯示。二、設(shè)計內(nèi)容及性能指標(biāo)該系統(tǒng)本設(shè)計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細介紹了其硬件和軟件設(shè)計,并對其各功能模塊做了詳細介紹,其主要功能和指標(biāo)如下:利用溫度傳感器(DS18B20)測量某一點環(huán)境溫度測量范圍為-5599,精度為±0.5用液晶進行溫度值顯示能夠根據(jù)需要方便設(shè)定上下限報警溫度三、系統(tǒng)方案論證與比較該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實現(xiàn)的方法有很多種,下面將列出兩種在日常生活中和
5、工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實現(xiàn)方案。3.1 方案一采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫?zé)崤?,熱電偶由兩個焊接在一起的異金屬導(dǎo)線所組成(熱電偶的構(gòu)成如圖 2.1),熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫差電勢組成。通過將參考結(jié)點保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點的溫度。數(shù)據(jù)采集部分則使用帶有A/D 通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行A/D 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點,并
6、且這種設(shè)計需要用到A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。圖 2.1熱電偶電路圖3.2、方案二采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89C51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣
7、的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。該系統(tǒng)利用AT89C51芯片控制溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設(shè)計中加入時鐘芯片DS1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數(shù)據(jù)進行存儲,利用鍵盤來進行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。系統(tǒng)框圖如圖 3.3所示圖 3.3 DS18B20溫度測溫系統(tǒng)框圖從以上兩種方案,容易看出方
8、案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單,故本次設(shè)計采用了方案二。四、系統(tǒng)器件選擇4.1. 單片機的選擇 對于單片機的選擇,可以考慮8051系列。 AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失
9、存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,4. 2 溫度傳感器的選擇DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報警溫度存儲在EEPROM 中,掉電后依然保
10、存。被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。4.2.1. DS18B20的性能特點DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種集成溫度傳感器。與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接輸出二進制溫敏信號,并通過串行輸出方式與單片機通信。DS18B20的性能特點如下:.適應(yīng)
11、電壓范圍3.0-5.5 V,在寄生電源方式下可由數(shù)據(jù)線供電;;. 獨特的單線接口僅需要一個端口引腳進行通信;.多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網(wǎng)功能;.不需要外部器件;.測溫范圍-55+125 攝氏度,在10+85攝氏度時精度為±0.5攝氏度;.零待機功耗;.溫度以912位數(shù)字量讀出;.用戶可定義的非易失性溫度報警設(shè)置;.報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;. 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,只是不能正常工作。4.2.2.DS18B20使用中的注意事項DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高,連接方便、占用口線少
12、等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題:1較小的硬件開銷需要相對復(fù)雜的軟件進行補償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進行讀寫編程時,必須嚴(yán)格地保證讀寫程序,否則將無法讀取測量結(jié)果。在使用VC等高級語言進行系統(tǒng)程序設(shè)計時,對DS18B20操作部分仍要采用匯編語言實現(xiàn)。2.連接DS18B20的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測量數(shù)據(jù)將發(fā)生錯誤;當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通信距離進一步加長,這種情況主要有總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在使用DS18B20進行長距離測溫系統(tǒng)設(shè)計時,
13、要充分考慮總線分布電容和阻抗匹配問題。3.在DS18B20測溫程序設(shè)計中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時,將沒有返回信號,程序?qū)⑦M入死循環(huán),這一點在進行DS18B20硬件連接和軟件設(shè)計時也要給予一定的重視。4.2.3. DS18B20的內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖4.2所示,DQ為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用作在寄生電源下,也可以向器件提供電源
14、;GND為地信號;VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。其電路圖4.3所示。 圖4.2外部封裝形式 圖4.3傳感器電路圖DS18B20采用3腳PR-35封裝,其內(nèi)部結(jié)構(gòu)框圖如圖4.4所示。圖4.4DS18B20內(nèi)部結(jié)構(gòu)框圖64位R光刻ROM的排列結(jié)構(gòu)如圖4.3所示。開始8位是產(chǎn)品類型的編號;接著的48位是DS18B20自身的序列號,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用單線進行通信的原因。通過非易失性溫度報警觸發(fā)器TH和TL的比較,DS18B20內(nèi)的報警位置對主機發(fā)出的報警搜索命令作出響應(yīng)。圖4.3 64位ROM結(jié)構(gòu)框圖4.2.4.DS1
15、8B20測溫原理圖4.4所示,圖中低溫度系數(shù)振蕩器的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)振蕩器隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸人。圖4.4 DS18B20的測溫原理圖圖中還隱含著計數(shù)門,當(dāng)計數(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ù),當(dāng)減法計數(shù)
16、器1的預(yù)置值減到。時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置值將重新被裝人,并重新開始對低溫度系數(shù)振蕩器產(chǎn)生的脈沖信號進行計數(shù)。如此循環(huán),直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。圖4.8中的斜率累加器用于補償和修正測溫過程中的非線形性,其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值達到被測溫度值。另外 ,由 于DS18B20單線通信功能是分時完成的,有嚴(yán)格的時隙概念,因此讀/寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操
17、作命令處理數(shù)據(jù)。4.3顯示及報警模塊器件選擇在本設(shè)計測量范圍為0125,精度為±0.5,因此只需要用液晶就可以完成相關(guān)的顯示功能,報警器可以用有源蜂鳴器配合三極管來代替。五、硬件設(shè)計電路溫度計電路設(shè)計原理圖如圖4.1所示,溫度計的控制器使用單片機AT89C2051,溫度傳感器使用DS18B20,用液晶實現(xiàn)溫度顯示。本溫度計大體分為三個工作過程。首先,由DS18B20溫度傳感器芯片測量當(dāng)前溫度,并將結(jié)果送入單片機。然后,通過AT89C2051單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,并將此結(jié)果送入液晶顯示模塊。最后,SMC1602A芯片將送來的值顯示與顯示屏上。其中,DS18B20
18、溫度傳感器芯片采用“一線制”與單片機相連,它獨立完成溫度測量以及將溫度測量結(jié)果送到單片機工作。圖中有3個獨立式按鍵可以分別調(diào)整溫度的上下限報警設(shè)置,圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時液晶模塊將被測溫度顯示,這時可以調(diào)整上下限,從而測出被測的溫度值。51 主控制器: 單片機AT89C2051具有低電壓供電和小體積等特點,兩個端口剛好滿足電路系統(tǒng)的設(shè)計需要。主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:初始化、ROM操作指令、存儲器操作指令。必須先啟動DS18B20開始轉(zhuǎn)換,在讀出溫度轉(zhuǎn)換值。52顯示電路顯示電路采用4位共陽極LED數(shù)碼管,從P0口輸出段碼,列
19、掃描用P2.0P2.3口來實現(xiàn),列驅(qū)動用9012三極管。53溫度檢測電路DS18B20最大的特點是單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線來完成。DS18B20的電源供電方式由兩種:外部供電方式和寄生電源方式。工作于寄生電源方式時,VDD和GND均接地,它在需要遠程溫度檢測和空間受限的場合特別有用,原理是當(dāng)1 wire總線的信號線DQ為高電平是,竊取信號能量給DS18B20供電,同時一部分能量給內(nèi)部電容充電,當(dāng)DQ為低電平時釋放能量為DS18B20供電。但寄生電源方式需要強上拉電路,軟件變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到ROM時),同時芯片的性能也有所降低。因此,在條
20、件允許的場合,盡量采用外供電方式。無論是內(nèi)部寄生源還是外部供電,I/O口線要接5K左右的上拉電。在這里采用外部供電方式。DS18B20與芯片連接電路如圖所示。外部電源供電方式是DS18B20最佳工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點,即使電源電壓VCC降到3V時,依然能夠保證溫度量精度。由于DS18B20只有一根數(shù)據(jù)線,因此它和主機(單片機)通信時需要串行通信,而AT89C51有兩個串行端口,所以可以不用軟件來模擬實現(xiàn)。經(jīng)過單線接口訪問DS18B20必須遵循如下協(xié)議:初始化
21、、ROM操作指令、存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時序。主機發(fā)送(Tx)復(fù)位脈沖(最短為480us的低電平信號)。接著主機便釋放此線并進入接收方式(Rx)??偩€經(jīng)過4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測到I/O引腳上的上升沿之后,DS18B20等待1560s,并且接著發(fā)送脈沖(60240s的低電平信號)。然后以存在復(fù)位脈沖表示DS18B20已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM命令和存儲操作命令的數(shù)據(jù)。DS18B20通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于處理數(shù)據(jù)位和進行指定操作的命令。它有寫時間片和讀時間片兩種:l 寫時間片:當(dāng)有主機把數(shù)據(jù)線從邏輯高電平
22、拉至邏輯低電平時,產(chǎn)生寫時間片。有兩種類型的寫時間片:寫1時間片和寫0時間片。所有時間片必須有60微妙的持續(xù)期,在各寫周期之間必須有最短為1微妙的恢復(fù)時間。l 讀時間片:從DS18B20讀數(shù)據(jù)時,使用讀時間片。當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時產(chǎn)生讀時間片。數(shù)據(jù)線在邏輯低電平必須保持至少1微妙;來自DS18B20的輸出數(shù)據(jù)在時間下降沿之后的15微妙內(nèi)有效。為了讀出從讀時間片開始算起15微妙的狀態(tài),主機必須停止把引腳驅(qū)動拉至低電平。在時間片結(jié)束時,I/O引腳經(jīng)過外部的上拉電阻拉回高電平,所有讀時間片的最短持續(xù)期為60微妙,包括兩個讀周期間至少1us的恢復(fù)時間。一旦主機檢測到DS18B20
23、的存在,它便可以發(fā)送一個器件ROM操作命令。所有ROM操作命令均為8位長。所有的串行通訊,讀寫每一個bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的DS18B20 芯片來說,訪問每個器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(ROM 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機。當(dāng)然,搜索ROM命令和報警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機發(fā)出的復(fù)位脈沖和從機響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機知道,總線
24、上有從機,且準(zhǔn)備就緒。在主機檢測到應(yīng)答脈沖后,就可以發(fā)出ROM 命令。這些命令與各個從機設(shè)備的唯一64 位ROM 代碼相關(guān)。在主機發(fā)出ROM命令,以訪問某個指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個功能命令。這些命令允許主機寫入或讀出DS18B20便箋式RAM、啟動溫度轉(zhuǎn)換。軟件實現(xiàn)DS18B20的工作嚴(yán)格遵守單總線協(xié)議:(1)主機首先發(fā)出一個復(fù)位脈沖,信號線上的DS18B20 器件被復(fù)位。(2)接著主機發(fā)送ROM命令,程序開始讀取單個在線的芯片ROM編碼并保存在單片機數(shù)據(jù)存儲器中,把用到的DS18B20 的ROM 編碼離線讀出,最后用一個二維數(shù)組保存ROM 編碼,數(shù)據(jù)保存在
25、X25043中。(3)系統(tǒng)工作時,把讀取了編碼的DS18B20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。(4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對應(yīng)的度值了。在主機初始化過程,主機通過拉低單總線至少480s,來產(chǎn)生復(fù)位脈沖。接著,主機釋放總線,并進入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時1560s,接著通過拉低總線60240s,以產(chǎn)生應(yīng)答脈沖。寫時序均起始于主機拉低總線,產(chǎn)生寫1 時序的方式:主機在拉低總線后,接著必須在15s之內(nèi)釋放總線。產(chǎn)生寫0 時序的方式:在主機拉低總線后,只需在整個時序期間保持低電平即可
26、(至少60s)。在寫字節(jié)程序中的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把兩者結(jié)合起來,當(dāng)主機拉低總線后在15s 之內(nèi)將要寫的位c 給DO:如果c 是高電平滿足15s 內(nèi)釋放總線的要求,如果c是低電平,則DOc這條語句仍然是把總線拉在低電平,最后都通過延時58s 完成一個寫時序(寫時序0或?qū)憰r序1)過程。寫時間時序:當(dāng)主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期至少1s 的恢復(fù)時間。I/O線電平變低后,DS18B20 在一個15s 到60s 的窗口內(nèi)對I/O 線采
27、樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s 內(nèi)允許數(shù)據(jù)線拉到高電平。主機要生成一個寫0 時間隙,必須把數(shù)據(jù)線拉到低電平并保存60s。每個讀時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。源程序: 假設(shè)要寫1 B 的數(shù)據(jù), 且數(shù)據(jù)放在A 中。SETBTEM PDNNOPNOPWRITEDS1820LOP: CLRTEM PD INMOV R6, # 08H ; 延時15 LsDJN ZR6, RRCA ; 將要寫數(shù)據(jù)存入CMO
28、V TEM PD IN , C ; 將數(shù)據(jù)寫入總線MOV R6, # 14H ; 延時40 LsDJN ZR6, SETBTEM PD IN ; 釋放總線DJN ZR7,WR ITEDS1820LO P ; 寫8 位RET讀時間時序:當(dāng)從DS18B20 讀數(shù)據(jù)時,主機生成讀時間隙。當(dāng)主機把數(shù)據(jù)從高電平拉到低電平時,寫時間隙開始,數(shù)據(jù)線必須保持至少1s;從DS18B20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15s 內(nèi)有效。因此,主機在讀時間隙開始后必須把I/O 腳驅(qū)動拉為的電平保持15s,以讀取I/O 腳狀態(tài)。在讀時間隙的結(jié)尾,I/O 引腳將被外部上拉電阻拉到高電平。所有讀時間隙必須最少60s,包括
29、兩個讀周期至少1s的恢復(fù)時間。源程序: 假設(shè)要讀1B 的數(shù)據(jù), 且數(shù)據(jù)放在A 中。SETBTEM PDNNOPNOPWRITEDS1820LOP: CLRTEM PD INMOV R6, # 08H ; 延時15 LsDJN ZR6, RRCA ; 將要寫數(shù)據(jù)存入CMOV TEM PD IN , C ; 將數(shù)據(jù)寫入總線MOV R6, # 14H ; 延時40 LsDJN ZR6, SETBTEM PD IN ; 釋放總線DJN ZR7,WR ITEDS1820LO P ; 寫8 位RET讀時間時序:當(dāng)從DS18B20 讀數(shù)據(jù)時,主機生成讀時間隙。當(dāng)主機把數(shù)據(jù)從高電平拉到低電平時,寫時間隙開始,
30、數(shù)據(jù)線必須保持至少1s;從DS18B20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15s 內(nèi)有效。因此,主機在讀時間隙開始后必須把I/O 腳驅(qū)動拉為的電平保持15s,以讀取I/O 腳狀態(tài)。在讀時間隙的結(jié)尾,I/O 引腳將被外部上拉電阻拉到高電平。所有讀時間隙必須最少60s,包括兩個讀周期至少1s的恢復(fù)時間。源程序: 假設(shè)要讀1B 的數(shù)據(jù), 且數(shù)據(jù)放在A 中。READDS1820:MOV R7, # 08H ; 1 個字節(jié)8 位SETBTEM PD INNO PNO PREADDS1820LOO P: CLRTEM PD INNO P SETBTEM PD IN ; 釋放總線MOV R6, # 05H
31、; 延時10 LsDJN ZR6, MOV C, TEM PD N ; 采樣總線數(shù)據(jù)MOV R6, # 14H ; 延時40 LsDJN ZR6, RRCA ; 采樣數(shù)據(jù)存入ASETBTEM PD IN ; 釋放總線DJN ZR7, READDS1820LOO P ; 采樣下一位MOV R6, # 14H ; 延時40 LsDJN ZR6, RET讀/寫時序如圖 5.3如下:圖 5.3 DS18B20的讀寫時序圖復(fù)位時序:復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1660 微秒左右,后發(fā)出60240 微秒的存在低脈沖,主CPU 收到此信號表示復(fù)位成功。源程序
32、: 其中TEM PD IN 定義為DS18B20 的數(shù)據(jù)管腳, 主機為A T89C2051。N ITDS1820: SETBTEM PD NNO PNO PCLRTEM PD NMOV R6, # 0A 0H ; 延時640 LsDJN ZR6, MOV R6, # 0A 0HDJN ZR6, SETBTEM PD N ; 釋放總線MOV R6, # 32H ; 延時100 Ls, 等待回應(yīng)DJN ZR6, MOV R6, # 3CHLOO P1820: MOV C, TEM PD N ; 采樣總線信號JCN ITDS1820OU TDJN ZR6,LOO P1820MOV R6, # 064
33、HDJN ZR6, SJM PN ITDS1820RETIN ITDS1820OU T: SETBTEM PD NRET復(fù)位時序如圖 5.3所示:54溫度報警電路本設(shè)計采用軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。當(dāng)所測溫度超過或低于所設(shè)溫度時,數(shù)據(jù)口相應(yīng)拉高電平,報警輸出。報警電路硬件連接如圖所示。六軟件設(shè)計整個系統(tǒng)的功能是由硬件配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、
34、通訊等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和執(zhí)行模塊之間的調(diào)度關(guān)系。6.1.主程序模塊主程序需要調(diào)用4個子程序,分別為數(shù)碼管顯示程序,溫度測試及處理子程序,報警子程序,中斷設(shè)定子程序。數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。溫度測試及處理程序:對溫度芯片送過來的數(shù)據(jù)進行處理,進行判斷和顯示。報警子程序:進行溫度上下限判斷及報警輸出。中斷設(shè)定程序:實現(xiàn)設(shè)定上下限報警功能6.
35、2. 軟件功能組成模塊:系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和顯示數(shù)據(jù)刷新子程序等。主程序:主要功能是負責(zé)溫度的實時顯示、讀出并處理DS18B20的測量溫度值。溫度測量每1 s 進行一次。讀出溫度子程序:主要功能是讀出RAM中的9字節(jié)。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。溫度轉(zhuǎn)換命令子程序:主要是發(fā)溫度轉(zhuǎn)換開始命令。計算溫度子程序:將RAM中讀取值進行BCD碼的轉(zhuǎn)換運行,并進行溫度值正負的判定。顯示數(shù)據(jù)刷新子程序:主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。七、系統(tǒng)調(diào)試根據(jù)方案設(shè)計的要求
36、,調(diào)試過程共分3大部分:硬件調(diào)試、軟件調(diào)試和軟硬聯(lián)調(diào)。單片機的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,在和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布恼{(diào)試是基礎(chǔ)。如果硬件調(diào)試不通過,軟件設(shè)計就是無從說起。7.1硬件調(diào)試硬件調(diào)試比較簡單首先檢查電路的焊接是否正確,然后可用萬用表測試或通電檢測。7.1.1排除邏輯故障 這類故障往往由于設(shè)計和加工制板過程中工藝性錯誤所造成的。只要包括錯線、開路、短路。排除的方法是首先將加工的印制板認真對照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其他信號線短路。必要時利用數(shù)字萬用表的短路測試功能,可以縮短排錯時間。7.1.2排
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效的采購合同解讀
- 陶瓷杯采購合同
- 項目申報合作服務(wù)合同
- 永州市房產(chǎn)買賣合同
- 城市回遷房合同范本樣本
- 家庭花卉訂購合同
- 新版房屋買賣合同版版
- 中介公司服務(wù)協(xié)議
- 現(xiàn)金贖樓服務(wù)合同還款還款優(yōu)惠政策
- 土地擔(dān)保合同協(xié)議范例
- 簡單的個人包工合同
- 北京開放大學(xué)《自動控制技術(shù)及應(yīng)用》終結(jié)性考試復(fù)習(xí)題庫(附答案)
- 高中高一級部拔河比賽活動實施方案
- 每日食品安全檢查記錄
- 航空機務(wù)專業(yè)職業(yè)生涯規(guī)劃書
- 八年級英語上學(xué)期期末考試(深圳卷)-2023-2024學(xué)年八年級英語上冊單元重難點易錯題精練(牛津深圳版)
- 項目成本節(jié)約措施總結(jié)報告
- 迎元旦趣味活動及知識競賽試題及答案
- SH/T 3543-2007 石油化工建設(shè)工程項目施工過程技術(shù)文件規(guī)定
- 減鹽控油控制體重規(guī)章制度
- 建筑之歌課件PPT
評論
0/150
提交評論