電子設(shè)計大賽 基于單片機的可調(diào)電子時鐘 溫度計_第1頁
電子設(shè)計大賽 基于單片機的可調(diào)電子時鐘 溫度計_第2頁
電子設(shè)計大賽 基于單片機的可調(diào)電子時鐘 溫度計_第3頁
電子設(shè)計大賽 基于單片機的可調(diào)電子時鐘 溫度計_第4頁
電子設(shè)計大賽 基于單片機的可調(diào)電子時鐘 溫度計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南鐵道職業(yè)技術(shù)學(xué)院騰飛電子設(shè)計大賽基于單片機的可調(diào)電子時鐘 溫度計班級 鐵通102班姓名 花良勝基于單片機的電子時鐘及溫度計設(shè)計設(shè)計背景設(shè)計背景設(shè)計背景設(shè)計背景:1957年,ventura發(fā)明了世界上第一個電子表,而奠定了電子時鐘的基礎(chǔ),電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分時進一,滿二十四小時小時清零。從而達到計時的功能,是人民日常生活不可缺少的工具。數(shù)字式電子鐘用集成電路計時,譯碼代替機械式傳動,用led顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、

2、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。在這里我們將已學(xué)過的比較零散的數(shù)字電路的知識有機的、系統(tǒng)的聯(lián)系起來用于實際,來培養(yǎng)我們的綜合分析和設(shè)計電路,寫程序、調(diào)試電路的能力。 方案一 采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫?zé)崤?,熱電偶由兩個焊接在一起的異金屬導(dǎo)線所組成(熱電偶的構(gòu)成如圖 3.1),熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫差電勢組成。通過將參考結(jié)點保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點的溫度。數(shù)據(jù)采集部分則使用帶有a/d 通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行a/d 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路

3、上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點,并且這種設(shè)計需要用到a/d 轉(zhuǎn)換電路,感溫電路比較麻煩。 圖 3.1熱電偶電路圖 系統(tǒng)主要包括對a/d0809 的數(shù)據(jù)采集,自動手動工作方式檢測,溫度的顯示等,這幾項功能的信號通過輸入輸出電路經(jīng)單片機處理。此外還有復(fù)位電路,晶振電路,啟動電路等。故現(xiàn)場輸入硬件有手動復(fù)位鍵、a/d 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機構(gòu)有4 位數(shù)碼管、方案二采用數(shù)字溫度芯片ds18b20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很

4、多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。ds18b20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計ds18b20和微控制器at89s51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多ds18b20 控制工作,還可以與pc 機通信上傳數(shù)據(jù),另外at89s51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功

5、能電路的配合使用都很成熟。 該系統(tǒng)利用at89s51芯片控制溫度傳感器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ù)。 ds18b20溫度測溫系統(tǒng)框圖 從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二

6、的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單,故本次設(shè)計采用了方案二 設(shè)計目的設(shè)計目的設(shè)計目的設(shè)計目的:應(yīng)用單片機控制技術(shù),設(shè)計出以89c51單片機為核心的電子時鐘,電子時鐘能夠顯示時、分、秒顯示時間的功能,還可以進行時和分的校對,而且其片選的靈活性強。 設(shè)計目標(biāo)設(shè)計目標(biāo):在1602液晶上顯示相應(yīng)的時間,并通過一個控制鍵來實現(xiàn)時間的調(diào)整和是否進入省電模式的轉(zhuǎn)換。 單片機;電子時鐘;鍵盤控制 3321 單片機的型號選擇 通過對多種單片機性能的分析,最終認(rèn)為89c51是最理想的電子時鐘開發(fā)芯片。89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能cmos8位微處理器

7、,器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的89c51是一種高效微控制器,而且它與mcs-51兼容,且具有4k字節(jié)可編程閃爍存儲器和1000寫/擦循環(huán),數(shù)據(jù)保留時間為10年等特點,是最好的選擇。單片機的選擇對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部ram,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不適用。at89s51 是美國 atmel 公司生產(chǎn)的低功耗,高性能 cmos8 位單片機,片內(nèi)含 4kbytes 的可編程的 flash 只讀程序存儲器,兼容

8、標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 flash 程序存儲器既可在線編程(isp),也可用傳統(tǒng)方法進行編程,所以低價位 at89s51單片機可為提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,對于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機at89s51 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。主要特性如下 與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0hz-24hz 三級程序存儲器鎖定 128*8位內(nèi)部ram 32可編程i/o線 兩個16位定時器/

9、計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 圖 4.1 at89s51單片機引腳圖 189s51 引腳功能介紹 at89s51 單片機為40 引腳雙列直插式封裝。其引腳排列和邏輯符號如圖4.1 所示。 各引腳功能簡單介紹如下: vcc:供電電壓 gnd:接地 p0口:p0口為一個8位漏級開路雙向i/o口,每個管腳可吸收8ttl門電流。當(dāng)p1口的管腳寫“1”時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在flash編程時,p0口作為原碼輸入口,當(dāng)flash進行校驗時,p0輸出原碼此時p0外部電位必須被拉高。 p1口:

10、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門電流,當(dāng)p2口被寫“1”時,其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時,p2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時

11、,它利用內(nèi)部上拉的優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個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) p3.4 t0(記時器0外部輸入) p3

12、.5 t1(記時器1外部輸入) p3.6 wr (外部數(shù)據(jù)存儲器寫選通) p3.7 rd (外部數(shù)據(jù)存儲器讀選通) 同時p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale / prog :當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr

13、8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令時ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 psen:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期psen兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的psen信號將不出現(xiàn)。 ea/vpp:當(dāng)ea保持低電平時,訪問外部rom;注意加密方式1時,ea將內(nèi)部鎖定為reset;當(dāng)ea端保持高電平時,訪問內(nèi)部rom。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的

14、輸出。 溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對較高。這里采用dallas公司的數(shù)字溫度傳感器ds18b20作為測溫元件。 ds18b20 簡單介紹dallas 最新單線數(shù)字溫度傳感器ds18b20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,分辨率設(shè)定參數(shù)以及

15、用戶設(shè)定的報警溫度存儲在eeprom 中,掉電后依然保存。被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個ds18b20可以并聯(lián)到3 根或2 根線上,cpu只需一根端口線就能與諸多ds18b20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。 ds18b20 的性能特點如下: 獨特的單線接口方式,ds18b20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊 ds18b20支持多點組網(wǎng)功能,多個ds18b2

16、0可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫 ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電 溫范圍55125,在-10+85時精度為0.5 零待機功耗 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫 在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 用戶可定義報警設(shè)置 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件 測量結(jié)果直接輸

17、出數(shù)字溫度信號,以一線總線串行傳送給cpu,同時可傳送crc校驗碼,具有極強的抗干擾糾錯能力 負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作 以上特點使ds18b20非常適用與多點、遠(yuǎn)距離溫度檢測系統(tǒng)。 ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列、各種封裝形式如圖 4.2 所示,dq 為數(shù)據(jù)輸入/輸出引腳開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;gnd為地信號;vdd為可選擇的vdd引腳。當(dāng)工作于寄生電源時,此引腳必須接地。 ds18b20 使用中的注意事

18、項ds18b20 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題: ds18b20 從測溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時間,這是必須保證的,不然會出現(xiàn)轉(zhuǎn)換錯誤的現(xiàn)象,使溫度輸出總是顯示85。 在實際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v 左右,若電源電壓過低,會使所測得的溫度精度降低。 較小的硬件開銷需要相對復(fù)雜的軟件進行補償,由于ds1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對ds1820進行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用pl/m、c等高級語言進行系統(tǒng)程序設(shè)計時,對ds1820操作部分最好采

19、用匯編語言實現(xiàn)。 在ds18b20的有關(guān)資料中均未提及單總線上所掛ds18b20 數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個ds18b20,在實際應(yīng)用中并非如此,當(dāng)單總線上所掛ds18b20 超過8 個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。 在ds18b20測溫程序設(shè)計中,向ds18b20 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號,一旦某個ds18b20 接觸不好或斷線,當(dāng)程序讀該ds18b20 時,將沒有返回信號,程序進入死循環(huán),這一點在進行ds18b20硬件連接和軟件設(shè)計時也要給予一定的重視。 圖為ds1820的內(nèi)部框圖,它主要包括寄生

20、電源、溫度傳感器、64位激光rom單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式ram),用于存儲用戶設(shè)定的溫度上下限值的th和tl觸發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗碼(crc)發(fā)生器等七部分。 閃速rom的結(jié)構(gòu)如下: 開始位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48 位,最后位是前面56 位的crc 檢驗碼,這也是多個ds18b20 可以采用一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。主機操作rom的命令有五種,如表所列ds18b20 溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的可電擦除的eeram。高速暫存ram 的結(jié)構(gòu)為字節(jié)的存儲器。高速

21、暫存ram結(jié)構(gòu)圖 前個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時被刷新。第個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。 溫度低位 溫度高位 th tl 配置 保留 保留 保留 8位crc lsb msb 指令 說 明 讀rom(33h) 讀ds1820的序列號 匹配rom(55h) 繼讀完64位序列號的一個命令,用于跳過rom(cch) 此命令執(zhí)行后的存儲器操作將針對搜rom(f0h) 識別總線上各器件的編碼,為操作各報警搜索(ech) 僅溫度越限的器件對此命令作出響當(dāng)ds18b20接收到

22、溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù)。這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8比特的ram中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度,如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。圖中,表示位。對應(yīng)的溫度計算:當(dāng)符號位s=0時,表示測得的溫度植為正值,直接將二進制位轉(zhuǎn)換為十進制;當(dāng)s=1時,表示測得的溫度植為負(fù)值,先將補碼變換為原碼,再計算十進制值。例如

23、+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為fc90h。 ds18b20溫度傳感器主要用于對溫度進行測量,數(shù)據(jù)可用16位符號擴展的二進制補碼讀數(shù)形式提供,并以0.0625lsb形式表示。表2是部分溫度值對應(yīng)的二進制溫度表示數(shù)據(jù)。 表2 部分溫度值 ds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較,若tth或ttl,則將該器件內(nèi)的告警標(biāo)志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時測量溫度并進行告警搜索。 在64位rom的最高有效字節(jié)中存儲有循環(huán)冗

24、余校驗碼(crc)。主機根據(jù)rom的前 56位來計算crc值,并和存入ds18b20中的crc值做比較,以判斷主機收到的rom數(shù) 據(jù)是否正確。ds18b20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄

25、存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。 減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達到被測溫度值,這就是ds18b20的測溫原理。 另外,由于ds18b20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫

26、時 序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化ds18b20 (發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。 圖(2) ds18b20測溫原理圖 在正常測溫情況下,ds1820的測溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用ds1820提供的讀暫存器指令(beh)讀出以0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb),得到所測實際溫度的整數(shù)部分tz,然后再用beh指令取計數(shù)器1的計數(shù)剩余值cs和每度計數(shù)值cd??紤]到ds1820測量溫度的整數(shù)部分以0.25、0.75為進位界限的關(guān)系,實際溫度ts可用下式計算:

27、 ts=(tz-0.25)+(cd-cs)/cd (1)、ds1820高精度測溫的理論依據(jù) ds1820正常使用時的測溫分辨率為0.5,這對于水輪發(fā)電機組軸瓦溫度監(jiān)測來講略顯不足,在對ds1820測溫原理詳細(xì)分析的基礎(chǔ)上,我們采取直接讀取ds1820內(nèi)部暫存寄存器的方法,將ds1820的測溫分辨率提高到0.10.01 ds1820內(nèi)部暫存寄存器的分布如表1所示,其中第7字節(jié)存放的是當(dāng)溫度寄存器停止增值時計數(shù)器1的計數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。首先用ds1820提供的讀暫存寄存器指令(beh)讀出以0.5為分辨率的溫度測

28、量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb),得到所測實際溫度整數(shù)部分t整數(shù),然后再用beh指令讀取計數(shù)器1的計數(shù)剩余值m剩余和每度計數(shù)值m每度,考慮到ds1820測量溫度的整數(shù)部分以0.25、0.75為進位界限的關(guān)系,實際溫度t實際可用下式計算得到:t實際=(t整數(shù)0.25)+(m每度m剩余)/m每度。 表1 ds18b20暫存寄存器分布 該字節(jié)各位的定義如下:低5位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時該位被設(shè)置為0,用戶不要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表1所示(ds18b20出廠時被設(shè)置為

29、12位)。 r1 r0 分辨率 溫度最大轉(zhuǎn)換時/mm1 1 12位 750.00 表1 r1和r2模式表 由表1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實際應(yīng)用中要在分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存存儲器除了配置寄存器外,還有其他8個字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、th和tl值第3,4字節(jié)、第68字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。 根據(jù)ds18b20的通訊協(xié)議,主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對ds18b20進行復(fù)位,復(fù)位成功后發(fā)送一條rom指令,最后

30、發(fā)送ram指令,這樣才能對ds18b20進行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號表示復(fù)位成功。 (2)、 測量數(shù)據(jù)比較 表2為采用直接讀取測溫結(jié)果方法和采用計算方法得到的測溫數(shù)據(jù)比較,通過比較可以看出,計算方法在ds1820測溫中不僅是可行的,也可以大大的提高ds1820的測溫分辨率。 表2 ds18b20 直度測溫結(jié)果與計算測溫結(jié)果數(shù)據(jù)比較 tm r1 r0 1 )、顯示及報警模塊器件選擇顯示及報警模塊器件選擇顯示及報警模塊器件選擇顯示及報警模塊器件選擇 在本設(shè)計中溫度

31、測量范圍為0125,精度為0.5,因此只需要液晶就可以完成相關(guān)的顯示功能,報警器可以用有源蜂鳴器配合三極管來代替。 溫度計電路設(shè)計原理圖如圖5.1所示,控制器使用單片機at89c2051,溫度計傳感器使用ds18b20,用液晶實現(xiàn)溫度顯示。 本溫度計大體分三個工作過程。首先,由ds18820溫度傳感器芯片測量當(dāng)前的溫度,并將結(jié)果送入單片機。然后,通過89c205i單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊。最后,smc1602a芯片將送來的值顯示于顯示屏上。 由圖1可看到,本電路主要由dsl8820溫度傳感器芯片、smcl602a液晶顯示模塊芯片和89c2051單

32、片機芯片組成。其中,dsi8b20溫度傳感器芯片采用“一線制”與單片機相連,它獨立地完成溫度測量以及將溫度測量結(jié)果送到單片機的工作。單片機at89c2051具有低電壓供電和小體積等特點,兩個端口剛好滿足電路系統(tǒng)的設(shè)計需要,很合適攜手特式產(chǎn)品的使用。主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:初始化、rom操作指令、存儲器操作指令。必須先啟動ds18b20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。 顯示電路顯示電路 顯示電路采用smci602a液晶顯示模塊芯片該芯片可顯示162個字符,比以前的七段數(shù)碼管led顯示器在顯示字符的數(shù)量上要多得多。另外,由于smcl602芯片編程比較簡單,界面直觀,因此更加

33、易于使用者操作和觀測。smcl602a芯片的接口信號說明如表1所列。 表1 smcl602a芯片的接口信號說明 )、 溫度檢測電路ds18b20 最大的特點是單總線數(shù)據(jù)傳輸方式,ds18b20 的數(shù)據(jù)i/o 均由同一條線來完成。ds18b20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, vdd 和gnd 均接地, 他在需要遠(yuǎn)程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 w ire 總線的信號線dq 為高電平時, 竊取信號能量給ds18b20 供電, 同時一部分能量給內(nèi)部電容充電, 當(dāng)dq為低電平時釋放能量為ds18b20 供電。但寄生電源方式需要強上拉電路

34、, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到e2prom 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,i/o口線要接5k左右的上拉電。在這里采用前者方式供電。ds18b20與芯片連接電路 圖 5.2 ds18b20與單片機的連接 外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根vcc引線。在外接電源方式下,可以充分發(fā)揮ds18b20寬電源電壓范圍的優(yōu)點,即使電

35、源電壓vcc 降到3v 時,依然能夠保證溫度量精度。 由于ds18b20 只有一根數(shù)據(jù)線,因此它和主機(單片機)通信是需要串行通信,而at89s51 有兩個串行端口,所以可以不用軟件來模擬實現(xiàn)。經(jīng)過單線接口訪問dc18b20 必須遵循如下協(xié)議:初始化、rom 操作命令、存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時序。 主機發(fā)送(tx)-復(fù)位脈沖(最短為480s 的低電平信號)。接著主機便釋放此線并進入接收方式(rx)。總線經(jīng)過4.7k的上拉電阻被拉至高電平狀態(tài)。在檢測到i/o 引腳上的上升沿之后,ds18b20 等待1560s,并且接著發(fā)送脈沖(60240s 的低電平信號)。

36、然后以存在復(fù)位脈沖表示ds18b20 已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的rom 命令和存儲操作命令的數(shù)據(jù)。ds18b20 通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于處理數(shù)據(jù)位和進行何種指定操作的命令。它有寫時間片和讀時間片兩種: 寫時間片:當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時,產(chǎn)生寫時間片。有兩種類型的寫時間片:寫1 時間片和寫0 時間片。所有時間片必須有60 微秒的持續(xù)期,在各寫周期之間必須有最短為1微秒的恢復(fù)時間. 讀時間片:從ds18b20 讀數(shù)據(jù)時,使用讀時間片。當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時產(chǎn)生讀時間片。數(shù)據(jù)線在邏輯低電平必須保持至少1 微秒;來自ds18b20

37、的輸出數(shù)據(jù)在時間下降沿之后的15 微秒內(nèi)有效。為了讀出從讀時間片開始算起15微秒的狀態(tài),主機必須停止把引腳驅(qū)動拉至低電平。在時間片結(jié)束時,i/o 引腳經(jīng)過外部的上電阻拉回高電平,所有讀時間片的最短持續(xù)期為60 微秒,包括兩個讀周期間至少1s 的恢復(fù)時間。 一旦主機檢測到ds18b20 的存在,它便可以發(fā)送一個器件rom 操作命令。所有rom 操作命令均為8位長。 所有的串行通訊,讀寫每一個bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的ds18b20 芯片來說,訪問每個器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行rom 命令;最后就是執(zhí)行功能命令(r

38、om 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機。當(dāng)然,搜索rom命令和報警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化。基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機發(fā)出的復(fù)位脈沖和從機響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機知道,總線上有從機,且準(zhǔn)備就緒。 在主機檢測到應(yīng)答脈沖后,就可以發(fā)出rom 命令。這些命令與各個從機設(shè)備的唯一64 位rom 代碼相關(guān)。在主機發(fā)出rom命令,以訪問某個指定的ds18b20,接著就可以發(fā)出ds18b20支持的某個功能命令。這些命令允許主機寫入或讀出ds18b20便箋式ram、啟動溫度轉(zhuǎn)換。軟件實現(xiàn)ds

39、18b20的工作嚴(yán)格遵守單總線協(xié)議: (1)主機首先發(fā)出一個復(fù)位脈沖,信號線上的ds18b20 器件被復(fù)位。 (2)接著主機發(fā)送rom命令,程序開始讀取單個在線的芯片rom編碼并保存在單片機數(shù)據(jù)存儲器中,把用到的ds18b20 的rom 編碼離線讀出,最后用一個二維數(shù)組保存rom 編碼,數(shù)據(jù)保存在x25043中。 (3)系統(tǒng)工作時,把讀取了編碼的ds18b20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。 (4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對應(yīng)的度值了。 在主機初始化過程,主機通過拉低單總線至少480us,來產(chǎn)生復(fù)位脈沖。接著,主機釋放總線,并進入接

40、收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時1560us,接著通過拉低總線60240us,以產(chǎn)生應(yīng)答脈沖。 寫時序均起始于主機拉低總線,產(chǎn)生寫1 時序的方式:主機在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫0 時序的方式:在主機拉低總線后,只需在整個時序期間保持低電平即可(至少60us)。在寫字節(jié)程序中的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把兩者結(jié)合起來,當(dāng)主機拉低總線后在15us 之內(nèi)將要寫的位c 給do:如果c 是高電平滿足15us 內(nèi)釋放總線的要求,如果c是低電平,則doc這條語句仍然是把總線拉在低電平,最后都通過

41、延時58us 完成一個寫時序(寫時序0或?qū)憰r序1)過程。時間。i/o線電平變低后,ds18b20 在一個15s 到60s 的窗口內(nèi)對i/o 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s 內(nèi)允許數(shù)據(jù)線拉到高電平。主機要生成一個寫0 時間隙,必須把數(shù)據(jù)線拉到低電平并保存60s。 每個讀時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。寫時間時序:當(dāng)主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時

42、間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期至少1s 的恢復(fù)系統(tǒng)硬件電路的設(shè)計系統(tǒng)硬件電路的設(shè)計系統(tǒng)硬件電路的設(shè)計 總體硬件原理圖如圖1所示 at89c51因為其含一個可擦除的rom,以及其存儲數(shù)據(jù)的時間長度可達10年之久所以選其作為該設(shè)計的核心控制部件。 3.1鍵盤電路設(shè)計 該設(shè)計只用了一個鍵盤,但實現(xiàn)的功能卻是比較完善,減少了硬件資源的損耗,該鍵盤可以實現(xiàn)小時和分鐘的調(diào)節(jié)以及控制是否進入省電模式。當(dāng)按鍵按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。達到時間調(diào)節(jié)的目的。選擇的多功能按鍵如圖2所示。 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計#include #include #define uchar unsigned char#define u

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論