基于-單片機(jī)數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)論文_第1頁(yè)
基于-單片機(jī)數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)論文_第2頁(yè)
基于-單片機(jī)數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)論文_第3頁(yè)
基于-單片機(jī)數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)論文_第4頁(yè)
基于-單片機(jī)數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-PAGE . z大學(xué)畢業(yè)設(shè)計(jì) 指導(dǎo)教師 肖興達(dá)09電氣一班葉彬彬2021/12/272021061111目 錄1 設(shè)計(jì)容及性能指標(biāo)32系統(tǒng)框架43系統(tǒng)器件選擇53.1 單片機(jī)的選擇53.2 89S51引腳介紹53.3溫度傳感器的選擇64 硬件設(shè)計(jì)電路134.1顯示電路144.2 溫度檢測(cè)電路144.3 溫度報(bào)警電路165軟件設(shè)計(jì)175.1 概述 175.2主程序模塊 175.3各模塊流程設(shè)計(jì) 186.源程序22附錄1:參考文獻(xiàn)34附錄2:元件清單35附錄3: 電氣原理圖36摘要隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否認(rèn)的,其中數(shù)字溫度計(jì)就是

2、一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向開(kāi)展。隨著時(shí)代的進(jìn)步和開(kāi)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比擬成熟的技術(shù),單片機(jī)已經(jīng)在測(cè)控領(lǐng)域中獲得了廣泛的應(yīng)用本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,該設(shè)計(jì)控制器使用單片機(jī)AT89S51,測(cè)溫傳感器使用DS18B20,用LCD數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確到達(dá)以上要求。關(guān)鍵詞AT89S51 單片機(jī) 傳感器 DS18B201 設(shè)計(jì)容及性能

3、指標(biāo)本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測(cè)系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:利用溫度傳感器DS18B20測(cè)量*一點(diǎn)環(huán)境溫度測(cè)量圍為-50150,精度為0.5用液晶進(jìn)展實(shí)際溫度值顯示能夠根據(jù)需要方便設(shè)定上下限報(bào)警溫度2系統(tǒng)框架采用數(shù)字溫度芯片DS18B20 測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線(xiàn)形較好。在0100 攝氏度時(shí),最大線(xiàn)形偏差小于1 攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線(xiàn)的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器

4、AT89S51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的構(gòu)造就比擬簡(jiǎn)單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20進(jìn)展實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中參加時(shí)鐘芯片DS13

5、02以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用AT24C16芯片作為存儲(chǔ)器件,以此來(lái)對(duì)*些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)展存儲(chǔ),利用鍵盤(pán)來(lái)進(jìn)展調(diào)時(shí)和溫度查詢(xún),獲得的數(shù)據(jù)可以通過(guò)MA*232芯片與計(jì)算機(jī)的RS232接口進(jìn)展串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。圖3.3系統(tǒng)框圖 3系統(tǒng)器件選擇3.1 單片機(jī)的選擇AT89S51 是CMOS8 位單片機(jī),它集Flash 程序存儲(chǔ)器既可在線(xiàn)編程ISP,也可用傳統(tǒng)方法進(jìn)展編程,所以低價(jià)位AT89S51單片機(jī)可為提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡(jiǎn)單的測(cè)溫系統(tǒng)已經(jīng)足夠。單片機(jī)AT89S51 具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要

6、兩個(gè)口就能滿(mǎn)足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。主要特性如下與MCS-51 兼容4K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫(xiě)/擦循環(huán)數(shù)據(jù)保存時(shí)間:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128*8位部RAM32可編程I/O線(xiàn)兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 圖4.1 AT89S51單片機(jī)引腳圖可編程串行通道低功耗的閑置和掉電模式片振蕩器和時(shí)鐘電路 3.2 89S51 引腳功能介紹AT89S51 單片機(jī)為40 引腳雙列直插式封裝。 其引腳排列和邏輯符號(hào)如圖4.1 所示。各引腳功能簡(jiǎn)單介紹如下:VCC:供電電壓 GND:接地 P0口:P0口為一個(gè)8位

7、漏級(jí)開(kāi)路雙向I/O口,每個(gè)管腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)展校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高。P1口:P1口是一個(gè)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,電位被部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)

8、TTL門(mén)電流,當(dāng)P2口被寫(xiě)1時(shí),其管腳電位被部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)展存取時(shí),P2口輸出地址的高八位。在給出地址1時(shí),它利用部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)展讀寫(xiě)時(shí),P2口輸出其特殊功能存放器的容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入1后,它們被部上拉為高電平,并用作輸入。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高

9、電平時(shí)間。ALE / PROG:當(dāng)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期PSEN兩次有效。但在外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)EA保持低電平時(shí),外部ROM;注意加密方式1時(shí),EA將部鎖定為RESET;當(dāng)EA端保持高電平時(shí),部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。*T

10、AL1:反向振蕩放大器的輸入及部時(shí)鐘工作電路的輸入。*TAL2:來(lái)自反向振蕩器的輸出。3.3溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測(cè)溫元件測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比擬多的外部元件支持,且硬件電路復(fù)雜,制作本錢(qián)相對(duì)較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測(cè)溫元件。3.3.1DS18B20的介紹DALLAS 最新單線(xiàn)數(shù)字溫度傳感器DS18B20是一種新型的一線(xiàn)器件,其體積更小、更適用于多種場(chǎng)合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持一線(xiàn)總線(xiàn)接口的溫度傳感器。溫度測(cè)量圍為-50+150攝氏度,可編程

11、為9位12 位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶(hù)設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM 中,掉電后依然保存。被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3 根或2 根線(xiàn)上,CPU只需一根端口線(xiàn)就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線(xiàn)和邏輯電路。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線(xiàn)路簡(jiǎn)單,在一根通信線(xiàn),可以?huà)旌芏噙@樣的數(shù)字溫度計(jì),十分方便。DS18B20 的性能特點(diǎn)如下:獨(dú)特的單線(xiàn)接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與D

12、S18B20的雙向通訊DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線(xiàn)上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路適應(yīng)電壓圍更寬,電壓圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線(xiàn)供電溫圍-50150 零待機(jī)功耗可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫在9位分辨率時(shí)最多在93.75ms把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms把溫度值轉(zhuǎn)換為數(shù)字,速度更快 用戶(hù)可定義報(bào)警設(shè)置 報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度溫度報(bào)警條件的器件

13、測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線(xiàn)總線(xiàn)串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作3.3.2 DS18B20 使用中的考前須知DS18B20 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線(xiàn)少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:DS18B20 從測(cè)溫完畢到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5V 左右,假設(shè)電源電壓過(guò)低,會(huì)使所測(cè)得的溫度精度降低。在對(duì)DS1820進(jìn)展讀寫(xiě)編程時(shí),必須嚴(yán)

14、格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)展系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作局部最好采用匯編語(yǔ)言實(shí)現(xiàn)。在DS18B20的有關(guān)資料中均未提及單總線(xiàn)上所掛DS18B20 數(shù)量問(wèn)題,容易使人誤認(rèn)為可以?huà)烊我舛鄠€(gè)DS18B20,在實(shí)際應(yīng)用中并非如此,當(dāng)單總線(xiàn)上所掛DS18B20 超過(guò)8 個(gè)時(shí),就需要解決微處理器的總線(xiàn)驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)展多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào),一旦*個(gè)DS18B20 接觸不好或斷線(xiàn),當(dāng)程序讀該DS18B20 時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循

15、環(huán),這一點(diǎn)在進(jìn)展DS18B20硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。3.3.3 DS18B20 部構(gòu)造圖為DS1820的部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線(xiàn)接口、存放中間數(shù)據(jù)的高速暫存器含便箋式RAM,用于存儲(chǔ)用戶(hù)設(shè)定的溫度上下限值的TH和TL觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼CRC發(fā)生器等七局部。DS18B20采用腳PR35 封裝或腳SOIC封裝,其部構(gòu)造框圖如圖4.4所示圖4.4 DS18B20部構(gòu)造框圖64 b閃速ROM的構(gòu)造如下:開(kāi)場(chǎng)位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48 位,最后位是前面56 位的CRC 檢驗(yàn)碼,這也是多個(gè)DS18B2

16、0 可以采用一線(xiàn)進(jìn)展通信的原因。溫度報(bào)警觸發(fā)器和,可通過(guò)軟件寫(xiě)入戶(hù)報(bào)警上下限。主機(jī)操作ROM的命令有五種,如表所列指 令說(shuō) 明讀ROM33H讀DS1820的序列號(hào)匹配ROM55H繼讀完64位序列號(hào)的一個(gè)命令,用于多個(gè)DS1820時(shí)定位跳過(guò)ROMCCH此命令執(zhí)行后的存儲(chǔ)器操作將針對(duì)在線(xiàn)的所有DS1820搜ROMF0H識(shí)別總線(xiàn)上各器件的編碼,為操作各器件作好準(zhǔn)備報(bào)警搜索ECH僅溫度越限的器件對(duì)此命令作出響應(yīng)DS18B20 溫度傳感器的部存儲(chǔ)器還包括一個(gè)高速暫存和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM 的構(gòu)造為字節(jié)的存儲(chǔ)器,構(gòu)造如圖4.5所示。 圖4.5 高速暫存RAM構(gòu)造圖前個(gè)字節(jié)包含

17、測(cè)得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第個(gè)字節(jié),為配置存放器,它的容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)存放器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。溫度低位溫度高位THTL配置保存保存保存8位CRCLSB MSB當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)場(chǎng)啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1,2字節(jié)。單片機(jī)可通過(guò)單線(xiàn)接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.062 5 /LSB形式表示。溫度值格式如下:這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的

18、前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。圖中,S表示位。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度植為正值,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),表示測(cè)得的溫度植為負(fù)值,先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)容作比擬,假設(shè)TTH

19、或TTL,則將該器件的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)展告警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼CRC。主機(jī)根據(jù)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20中的CRC值做比擬,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。3.3.4 DS18B20測(cè)溫原理DS18B20的測(cè)溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)翻開(kāi)時(shí),DS18B20就對(duì)

20、低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)展計(jì)數(shù),進(jìn)而完成溫度測(cè)量.計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將50 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度存放器中,減法計(jì)數(shù)器1和溫度存放器被預(yù)置在50 所對(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重新開(kāi)場(chǎng)對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)展計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停頓溫度存放器值的累加,此時(shí)溫度存放器中的數(shù)值即為所測(cè)溫圖2中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線(xiàn)性其輸出用,于修正減法計(jì)數(shù)器

21、的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度存放器值到達(dá)被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。另外,由于DS18B20單線(xiàn)通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)展。操作協(xié)議為:初始化DS18B20發(fā)復(fù)位脈沖發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。圖2 DS18B20測(cè)溫原理圖3.3.5 提高DS1820測(cè)溫精度的途徑1 .DS1820高精度測(cè)溫的理論依據(jù)DS1820正常使用時(shí)的測(cè)溫分辨率為0.5,這對(duì)于水輪發(fā)電機(jī)組軸瓦溫度監(jiān)測(cè)來(lái)講略顯缺乏,在對(duì)DS1820測(cè)溫原理詳細(xì)分析的根底上,我們采取直接讀取DS1820部暫

22、存存放器的方法,將DS1820的測(cè)溫分辨率提高到0.10.01DS1820部暫存存放器的分布如表1所示,其中第7字節(jié)存放的是當(dāng)溫度存放器停頓增值時(shí)計(jì)數(shù)器1的計(jì)數(shù)剩余值,第8字節(jié)存放的是每度所對(duì)應(yīng)的計(jì)數(shù)值,這樣,我們就可以通過(guò)下面的方法獲得高分辨率的溫度測(cè)量結(jié)果。首先用DS1820提供的讀暫存存放器指令(BEH)讀出以0.5為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度整數(shù)局部T整數(shù),然后再用BEH指令讀取計(jì)數(shù)器1的計(jì)數(shù)剩余值M剩余和每度計(jì)數(shù)值M每度,考慮到DS1820測(cè)量溫度的整數(shù)局部以0.25、0.75為進(jìn)位界限的關(guān)系,實(shí)際溫度T實(shí)際可用下式計(jì)算得到:T實(shí)

23、際=(T整數(shù)0.25)+(M每度M剩余)/M每度。表1 DS18B20暫存存放器分布該字節(jié)各位的定義如下:TM R1 R0 1 1 1 1 1低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠(chǎng)時(shí)該位被設(shè)置為0,用戶(hù)不要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即是來(lái)設(shè)置分辨率,如表1所示DS18B20出廠(chǎng)時(shí)被設(shè)置為12位。 表2 R1和R2模式表R1R0分辨率溫度最大轉(zhuǎn)換時(shí)/mm009位93.750110位187.751011位275.001112位750.00由表1可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中

24、要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置存放器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。其中溫度信息第1,2字節(jié)、TH和TL值第3,4字節(jié)、第68字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來(lái)保證通信正確。根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)展復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)展預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線(xiàn)下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CP

25、U收到此信號(hào)表示復(fù)位成功。2 .測(cè)量數(shù)據(jù)比擬表2為采用直接讀取測(cè)溫結(jié)果方法和采用計(jì)算方法得到的測(cè)溫?cái)?shù)據(jù)比擬,通過(guò)比擬可以看出,計(jì)算方法在DS1820測(cè)溫中不僅是可行的,也可以大大的提高DS1820的測(cè)溫分率。表3 DS18B20 直度測(cè)溫結(jié)果與計(jì)算測(cè)溫結(jié)果數(shù)據(jù)比擬4 硬件設(shè)計(jì)電路溫度計(jì)電路設(shè)計(jì)原理圖如圖5.1所示,控制器使用單片機(jī)AT89C2051,溫度計(jì)傳感器使用DS18B20,用液晶實(shí)現(xiàn)溫度顯示。本溫度計(jì)大體分三個(gè)工作過(guò)程。首先,由DS18820溫度傳感器芯片測(cè)量當(dāng)前的溫度,并將結(jié)果送入單片機(jī)。然后,通過(guò)AT89S51單片機(jī)芯片對(duì)送來(lái)的測(cè)量溫度讀數(shù)進(jìn)展計(jì)算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊

26、。最后,SMC1602A芯片將送來(lái)的值顯示于顯示屏上。由圖1可看到,本電路主要由DSl8820溫度傳感器芯片、SMCl602A液晶顯示模塊芯片和AT89S51單片機(jī)芯片組成。其中,DSI8B20溫度傳感器芯片采用一線(xiàn)制與單片機(jī)相連,它獨(dú)立地完成溫度測(cè)量以及將溫度測(cè)量結(jié)果送到單片機(jī)的工作。4.1 顯示電路顯示電路采用SMCI602A液晶顯示模塊芯片該芯片可顯示162個(gè)字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。另外,由于SMCl602芯片編程比擬簡(jiǎn)單,界面直觀(guān),因此更加易于使用者操作和觀(guān)測(cè)。SMCl602A芯片的接口信號(hào)說(shuō)明如表1所列。表1 SMCl602A芯片的接口信號(hào)說(shuō)明

27、4.2溫度檢測(cè)電路DS18B20 最大的特點(diǎn)是單總線(xiàn)數(shù)據(jù)傳輸方式,DS18B20 的數(shù)據(jù)I/O 均由同一條線(xiàn)來(lái)完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時(shí), VDD和GND 均接地, 他在需要遠(yuǎn)程溫度探測(cè)和空間受限的場(chǎng)合特別有用, 原理是當(dāng)1 W ire 總線(xiàn)的信號(hào)線(xiàn)DQ 為高電平時(shí), 竊取信號(hào)能量給DS18B20 供電, 同時(shí)一局部能量給部電容充電, 當(dāng)DQ為低電平時(shí)釋放能量為DS18B20 供電。但寄生電源方式需要強(qiáng)上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時(shí)) , 同時(shí)芯片的性能也有所降低。因此, 在條

28、件允許的場(chǎng)合, 盡量采用外供電方式。無(wú)論是部寄生電源還是外部供電,I/O口線(xiàn)要接5K左右的上拉電。在這里采用前者方式供電。DS18B20與芯片連接電路如圖5.2所示:圖5.2 DS18B20與單片機(jī)的連接外部電源供電方式是DS18B20最正確的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比擬簡(jiǎn)單,可以開(kāi)發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。使用外部電源供電方式,畢竟比寄生電源方式只多接一根VCC引線(xiàn)。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓圍的優(yōu)點(diǎn),即使電源電壓VCC 降到3V 時(shí),依然能夠保證溫度量精度。由于DS18B20 只有一根數(shù)據(jù)線(xiàn),因此它和主機(jī)單片機(jī)通信是需要串行通信,而

29、AT89S51 有兩個(gè)串行端口,所以可以不用軟件來(lái)模擬實(shí)現(xiàn)。經(jīng)過(guò)單線(xiàn)接口DC18B20 必須遵循如下協(xié)議:初始化、ROM 操作命令、存儲(chǔ)器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時(shí)序。主機(jī)發(fā)送T*-復(fù)位脈沖最短為480s 的低電平信號(hào)。接著主機(jī)便釋放此線(xiàn)并進(jìn)入接收方式R*??偩€(xiàn)經(jīng)過(guò)4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測(cè)到I/O 引腳上的上升沿之后,DS18B20 等待1560s,并且接著發(fā)送脈沖60240s 的低電平信號(hào)。然后以存在復(fù)位脈沖表示DS18B20 已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM 命令和存儲(chǔ)操作命令的數(shù)據(jù)。DS18B20 通過(guò)使用時(shí)間片來(lái)讀出和寫(xiě)入數(shù)據(jù),

30、時(shí)間片用于處理數(shù)據(jù)位和進(jìn)展何種指定操作的命令。它有寫(xiě)時(shí)間片和讀時(shí)間片兩種:寫(xiě)時(shí)間片:當(dāng)主機(jī)把數(shù)據(jù)線(xiàn)從邏輯高電平拉至邏輯低電平時(shí),產(chǎn)生寫(xiě)時(shí)間片。有兩種類(lèi)型的寫(xiě)時(shí)間片:寫(xiě)1 時(shí)間片和寫(xiě)0 時(shí)間片。所有時(shí)間片必須有60 微秒的持續(xù)期,在各寫(xiě)周期之間必須有最短為1微秒的恢復(fù)時(shí)間.讀時(shí)間片:從DS18B20 讀數(shù)據(jù)時(shí),使用讀時(shí)間片。當(dāng)主機(jī)把數(shù)據(jù)線(xiàn)從邏輯高電平拉至邏輯低電平時(shí)產(chǎn)生讀時(shí)間片。數(shù)據(jù)線(xiàn)在邏輯低電平必須保持至少1 微秒;來(lái)自DS18B20 的輸出數(shù)據(jù)在時(shí)間下降沿之后的15 微秒有效。為了讀出從讀時(shí)間片開(kāi)場(chǎng)算起15微秒的狀態(tài),主機(jī)必須停頓把引腳驅(qū)動(dòng)拉至低電平。在時(shí)間片完畢時(shí),I/O 引腳經(jīng)過(guò)外部的上

31、拉電阻拉回高電平,所有讀時(shí)間片的最短持續(xù)期為60 微秒,包括兩個(gè)讀周期間至少1s 的恢復(fù)時(shí)間。一旦主機(jī)檢測(cè)到DS18B20 的存在,它便可以發(fā)送一個(gè)器件ROM 操作命令。所有ROM 操作命令均為8位長(zhǎng)。所有的串行通訊,讀寫(xiě)每一個(gè)bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來(lái)編程,同時(shí)還必須遵守總線(xiàn)命令序列,對(duì)單總線(xiàn)的DS18B20 芯片來(lái)說(shuō),每個(gè)器件都要遵守以下命令序列:首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(ROM 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線(xiàn)器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索ROM命令和報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;?/p>

32、于單總線(xiàn)上的所有傳輸過(guò)程都是以初始化開(kāi)場(chǎng)的,初始化過(guò)程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線(xiàn)上有從機(jī),且準(zhǔn)備就緒。在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM 命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64 位ROM 代碼相關(guān)。在主機(jī)發(fā)出ROM命令,以*個(gè)指定的DS18B20,接著就可以發(fā)出DS18B20支持的*個(gè)功能命令。這些命令允許主機(jī)寫(xiě)入或讀出DS18B20便箋式RAM、啟動(dòng)溫度轉(zhuǎn)換。軟件實(shí)現(xiàn)DS18B20的工作嚴(yán)格遵守單總線(xiàn)協(xié)議:(1)主機(jī)首先發(fā)出一個(gè)復(fù)位脈沖,信號(hào)線(xiàn)上的DS18B20 器件被復(fù)位。(2)接著主機(jī)發(fā)送ROM命令,程序開(kāi)場(chǎng)讀取單個(gè)在線(xiàn)的芯片ROM編碼并

33、保存在單片機(jī)數(shù)據(jù)存儲(chǔ)器中,把用到的DS18B20 的ROM 編碼離線(xiàn)讀出,最后用一個(gè)二維數(shù)組保存ROM 編碼,數(shù)據(jù)保存在*25043中。(3)系統(tǒng)工作時(shí),把讀取了編碼的DS18B20 掛在總線(xiàn)上。發(fā)溫度轉(zhuǎn)換命令,再總線(xiàn)復(fù)位。(4)然后就可以從剛剛的二維數(shù)組匹配在線(xiàn)的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對(duì)應(yīng)的度值了。在主機(jī)初始化過(guò)程,主機(jī)通過(guò)拉低單總線(xiàn)至少480us,來(lái)產(chǎn)生復(fù)位脈沖。接著,主機(jī)釋放總線(xiàn),并進(jìn)入接收模式。當(dāng)總線(xiàn)被釋放后,上拉電阻將單總線(xiàn)拉高。在單總線(xiàn)器件檢測(cè)到上升沿后,延時(shí)1560us,接著通過(guò)拉低總線(xiàn)60240us,以產(chǎn)生應(yīng)答脈沖。寫(xiě)時(shí)序均起始于主機(jī)拉低總線(xiàn),產(chǎn)生寫(xiě)1 時(shí)序的

34、方式:主機(jī)在拉低總線(xiàn)后,接著必須在15us之釋放總線(xiàn)。產(chǎn)生寫(xiě)0 時(shí)序的方式:在主機(jī)拉低總線(xiàn)后,只需在整個(gè)時(shí)序期間保持低電平即可(至少60us)。在寫(xiě)字節(jié)程序中的寫(xiě)一個(gè)bit 位的時(shí)候,沒(méi)有按照通常的分別寫(xiě)0時(shí)序和寫(xiě)1 時(shí)序,而是把兩者結(jié)合起來(lái),當(dāng)主機(jī)拉低總線(xiàn)后在15us 之將要寫(xiě)的位c 給DO:如果c 是高電平滿(mǎn)足15us 釋放總線(xiàn)的要求,如果c是低電平,則DOc這條語(yǔ)句仍然是把總線(xiàn)拉在低電平,最后都通過(guò)延時(shí)58us 完成一個(gè)寫(xiě)時(shí)序(寫(xiě)時(shí)序0或?qū)憰r(shí)序1)過(guò)程。寫(xiě)時(shí)間時(shí)序:當(dāng)主機(jī)把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時(shí)候,寫(xiě)時(shí)間隙開(kāi)場(chǎng)。有兩種寫(xiě)時(shí)間隙,寫(xiě)1 時(shí)間隙和寫(xiě)0 時(shí)間隙。所有寫(xiě)時(shí)間隙必須最少

35、持續(xù)60s,包括兩個(gè)寫(xiě)周期至少1s 的恢復(fù)時(shí)間。I/O線(xiàn)電平變低后,DS18B20 在一個(gè)15s 到60s 的窗口對(duì)I/O 線(xiàn)采樣。如果線(xiàn)上事高電平,就是寫(xiě)1,如果是低電平,就是寫(xiě)0。主機(jī)要生成一個(gè)寫(xiě)時(shí)間隙,必須把數(shù)據(jù)線(xiàn)拉到低電平然后釋放,在寫(xiě)時(shí)間隙開(kāi)場(chǎng)后的15s 允許數(shù)據(jù)線(xiàn)拉到高電平。主機(jī)要生成一個(gè)寫(xiě)0 時(shí)間隙,必須把數(shù)據(jù)線(xiàn)拉到低電平并保存60s。每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線(xiàn)1us,在主機(jī)發(fā)起讀時(shí)序之后,單總線(xiàn)器件才開(kāi)場(chǎng)在總線(xiàn)上發(fā)送0 或1。所有讀時(shí)序至少需要60us。4.3溫度報(bào)警電路本此設(shè)計(jì)可以采用發(fā)光二級(jí)管報(bào)警電路,如過(guò)需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模

36、型單元ALARM 的容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警。但本次設(shè)計(jì)采軟件處理報(bào)警,利用有源蜂鳴器進(jìn)展報(bào)警輸出,采用直流供電。當(dāng)所測(cè)溫度超過(guò)獲低于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。報(bào)警電路硬件連接見(jiàn)圖5.10。圖5.10蜂鳴器電路連接圖5 軟件設(shè)計(jì)5.1 概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,當(dāng)硬件根本定型后,軟件的功能也就根本定下來(lái)了。從軟件的功能不同可分為兩大類(lèi):一是監(jiān)控軟件主程序,它是整個(gè)控制系統(tǒng)的核心,專(zhuān)門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件子程序,它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將

37、各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)展功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最適宜的監(jiān)控程序構(gòu)造,然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。5.2主程序模塊主程序需要調(diào)用4 個(gè)子程序,分別為數(shù)碼管顯示程序,溫度測(cè)試及處理子程序,報(bào)警子程序,中斷設(shè)定子程序。各模塊程序功能如下:數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示局部。溫度測(cè)試及處理程序:對(duì)溫度芯片送過(guò)來(lái)的數(shù)據(jù)進(jìn)展處理,進(jìn)展判斷和顯示。報(bào)警子程序:進(jìn)展溫度上下限判斷及報(bào)警輸出。中斷設(shè)定程序:實(shí)現(xiàn)設(shè)定上下限報(bào)警功能。圖6.1主程序圖6.2 DS18B2

38、0初始化流程圖5.3各模塊流程設(shè)計(jì)下面對(duì)主要子程序的流程圖做介紹溫度檢測(cè)流程DS18B20在單片機(jī)控制下分三個(gè)階段:18B20 初始化:初始化流程圖見(jiàn)讀18B20時(shí)序:讀DS18B20流程見(jiàn)圖6.3:寫(xiě)18B20時(shí)序:寫(xiě)18B20 流程見(jiàn)圖6.4圖6.3讀DS18B20流程圖 圖6.4寫(xiě)DS18B20流程圖中斷設(shè)定流程中斷模塊采用了外中斷和中斷套用方法。當(dāng)設(shè)計(jì)需要實(shí)現(xiàn)上下限報(bào)警時(shí),利用INT0口進(jìn)展中斷,set 鍵進(jìn)展上下限報(bào)警溫度設(shè)定,進(jìn)入溫度設(shè)定狀態(tài)后按一下溫度設(shè)定鍵,首先會(huì)提示顯示UP字母,表示要用戶(hù)設(shè)定高溫報(bào)警溫度,按S3 鍵,表示本位數(shù)字+1,按S4 表示移向下一位,如果4 位高溫設(shè)

39、定完畢,則顯示DO,表示要用戶(hù)設(shè)定低溫報(bào)警溫度。4位低溫設(shè)定完畢,如果用戶(hù)設(shè)置的高溫比設(shè)定的低溫高的話(huà)則顯示ERRO表示錯(cuò)誤提示,同時(shí)會(huì)有蜂鳴器及時(shí)報(bào)警提示,然后自動(dòng)顯示UP,讓用戶(hù)重新進(jìn)展溫度設(shè)定。中斷設(shè)定子程序流程圖見(jiàn)以下圖圖6.6 中斷設(shè)定子程序流程圖源程序TIMEL EQU 0E0HTIMEH EQU 0B1HTEMPHEAD EQU 36H;BITST DATA 20HTIME1SOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H;TEMPDIN B

40、IT P3.7; ORG 0000H LJMP START ORG 00BH LJMP T0IT; ORG 100HSTART: MOV SP,*60HCLSMEM: MOV R0,*20H MOV R1,*60HCLSMEM1: MOV R0,*00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,*00100001BMOV TH0,*TIMEL MOV TL0,*TIMEH SJMP INITERROR: NOP LJMP START NOPINIT: NOP SETB ET0 SETB TR0SETB EA MOV PSW,*00H CLR TEMPONEOKLJMP

41、MAIN;TOIT: PUSH PSW MOV PSW,*10H MOV TH0,*TIMEH MOV TL0,*TIMELINC R7 CJNE R7,*32H,T0IT1MOV R7,*00H SETB TIME1SOKT0IT1: POP PSW RETI;MAIN: LCALL DISP1 JNB TIME1SOK,MIAN CLR TIME1SOK JNB TEMPONEOK,MAIN2 LCALL READTEMP1 LCALL CONVTEMP LCALL DISPBCD LCALL DISP1MIAN: LCALL READTEMP SETB TEMPONEOK;INITDS1

42、820: SETB TEMPDIN NOP NOP CLR TEMPDINMOV R6,*0A0H DJNZ R6,$ MOV R6,*0A0H DJNZ R6,$ SETB TEMPDIN MOV R6,*32H DJNZ R6,$MOV R6,*3CHLOOP1820: MOV C,TEMPDINJC INITDS1820OUT DJNZ R6,LOOP1820 MOV R6,*064HDJNZ R6,$ SJMP INITDS1820 RETINITDS1820OUT: SETB TEMPDIN RET;READDS1820: MOV R7,*08H SETB TEMPDIN NOP N

43、OPREADDS1820LOOP: CLR TEMPDIN NOP NOPNOP SETB TEMPDIN MOV R6,*07H DJNZ R6,$ MOV C,TEMPDIN MOV R6,*3CH DJNZ R6,$ RRC A SETB TEMPDIN DJNZ R7,READDS1820LOOP MOV R6,*3CH DJNZ R6,$ RET;WRITEDS1820: MOV R7,*08HSETB TEMPDIN NOP NOPWRITEDS1820LOP: CLR TEMPDINMOV R6,*07H DJNZ R6,$ RRC A MOV TEMPDIN,C MOV R6,

44、*34HDJNZ R6,$ SETB TEMPDIN DJNZ R7,WRITEDS1820LOP RET;READTEMP: LCALL INITDS1820 MOV A,*FoH LCALL WRITEDS1820 MOV R6,*34HDJNZ R6,$ MOV A,*44H LCALL WRITEDS1820 MOV R6,*34HDJNZ R6,$ RETREADTEMP1: LCALL INITDS1820 MOV A,*0CCH LCALL WRITEDS1820 MOV R6,*34H DJNZ R6,$ MOV A,*0BEH LCALL WRITEDS1820MOV R6,

45、*34H DJNZ R6,$ MOV R5,*09H MOV R0,*TEMPHEADMOV B,*00HREADTEMP2: LCALL READDS1820 MOV R0,A INC R0READTEMP21: LCALL CRC8CALDJNZ R5,READTEMP2 MOV A,BJNZ READTEMPOUT MOV A,TEMPHEAD+0 MOV TEMPL,A MOV A,TEMPHEAD+1 MOV TEMPH,AREADTEMPOUT: RET;CONVTEMP: MOV A,TEMPHANL A,*80H JZ TEMPC1 CLR C MOV A,TEMPL CPL

46、A ADD A,*01H MOV TEMPL,A MOV A,TEMPH CPL A ADDC A,*00HMOV TEMPH,A MOV TEMPHC,*0BH SJMP TEMPC11TEMPC1: MOV TEMPHC,*0AHTEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A,TEMPL ANL A,*0FH MOV DPTR,*TEMPDOTTAB MOVC A,A+DPTRMOV TEMPLC,A MOV A,TEMPL ANL A,*0F0HSWAP A MOV TEMPL,A MOV A,TEMPH ANL A,*0FH SWAP A ORL A,TEMPL LCALL HE*2BCD1MOV TEMPL,A ANL A,*0F0HSWAP A ORL A,TEMPHC MOV TEMPHC,AMOV A,TEMPL ANL A,*0FH SWAP A ORL A,TEMPLC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論