版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)的DS18B20數(shù)字溫度計(jì)設(shè)計(jì)內(nèi)容摘要:隨著現(xiàn)代信息化技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能獨(dú)立工作的溫度檢測系統(tǒng)已廣泛應(yīng)用于各種不同的領(lǐng)域。本文介紹了一個基于STC89C52單片機(jī)和數(shù)字溫度傳感器DS18B20的測溫系統(tǒng),并用LED數(shù)碼管顯示溫度值,易于讀數(shù)。系統(tǒng)電路簡單、操作簡便,能任意設(shè)定報(bào)警溫度并可查詢最近的10個溫度值,系統(tǒng)具有可靠性高、成本低、功耗小等優(yōu)點(diǎn)。關(guān)鍵詞:單片機(jī) 數(shù)字溫度傳感器 溫度計(jì)1 引言42 設(shè)計(jì)要求43 總體方案設(shè)計(jì)43.1 方案論證43.2 總體設(shè)計(jì)框圖54 硬件設(shè)計(jì)54.1 單片機(jī)系統(tǒng)54.2 數(shù)字溫度傳感器模塊64.2.1 DS18B20性能6
2、4.2.2 DS18B20外形及引腳說明74.2.3 DS18B20接線原理圖74.2.4 DS18B20時(shí)序圖74.2.5 數(shù)據(jù)處理94.3 顯示電路104.4 聲光報(bào)警電路104.5 鍵盤輸入電路115 軟件設(shè)計(jì)115.1 主程序模塊115.2 讀溫度值模塊125.3 中斷模塊145.4 溫度查詢模塊155.5 溫度設(shè)定、報(bào)警模塊165.6 數(shù)碼管驅(qū)動模塊186 源程序197 總結(jié)26參考文獻(xiàn):281 意義隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便是不可否定的,各種數(shù)字系統(tǒng)的應(yīng)用也使人們的生活更加舒適。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等
3、方面帶來方便。其中數(shù)字溫度計(jì)就是一個典型的例子。數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便、測溫范圍廣、測溫精確、功能多樣話等優(yōu)點(diǎn)。其主要用于對測溫要求準(zhǔn)確度比較高的場所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)使用STC89C52單片機(jī)作控制器,數(shù)字溫度傳感器DS18B20測量溫度,單片機(jī)接受傳感器輸出,經(jīng)處理用LED數(shù)碼管實(shí)現(xiàn)溫度值顯示。隨著現(xiàn)代信息化技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能獨(dú)立工作的溫度檢測系統(tǒng)已廣泛應(yīng)用于各種不同的領(lǐng)域。本文介紹了一個基于STC89C52單片機(jī)和數(shù)字溫度傳感器DS18B20的測溫系統(tǒng),并用LED數(shù)碼管顯示溫度值,易于讀數(shù)。系統(tǒng)電路簡單、操作簡便,能任意設(shè)定報(bào)警溫度并可
4、查詢最近的10個溫度值,系統(tǒng)具有可靠性高、成本低、功耗小等優(yōu)點(diǎn)。2 設(shè)計(jì)要求實(shí)現(xiàn)實(shí)時(shí)溫度顯示,溫度報(bào)警,能任意設(shè)定溫度范圍實(shí)現(xiàn)光警;每隔10分鐘記錄一次溫度數(shù)據(jù),至少能查詢過去10個時(shí)刻的溫度情況。3 總體方案設(shè)計(jì)考慮到在單片機(jī)屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機(jī)處理,即可實(shí)現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測溫范圍為-55+125攝氏度,測溫分辨率可達(dá)0.0625攝氏度,其測量范圍與精度都能符合設(shè)計(jì)要求。3.2 總體設(shè)計(jì)框圖本方案設(shè)計(jì)
5、的系統(tǒng)由單片機(jī)系統(tǒng)、數(shù)字溫度傳感器、LED顯示模塊、按鍵控制模塊、溫度報(bào)警模塊組成,其總體架構(gòu)如下圖1。單片機(jī)報(bào)警電路顯示電路驅(qū)動電路測溫電路按鍵輸入電路時(shí)鐘、復(fù)位電路圖1 系統(tǒng)總體方框圖4 硬件設(shè)計(jì)4.1 單片機(jī)系統(tǒng)1. 本設(shè)計(jì)采用STC89C52單片機(jī)作為控制器,完成所有功能的控制,包括:l DS18B20數(shù)字溫度傳感器的初始化和讀取溫度值l LED數(shù)碼管顯示驅(qū)動與控制l 按鍵識別和響應(yīng)控制l 溫度設(shè)置和報(bào)警l 溫度值的存儲和讀取2. 單片機(jī)系統(tǒng)電路原理圖:圖2 單片機(jī)系統(tǒng)原理圖4.2 數(shù)字溫度傳感器模塊4.2.1 DS18B20性能l 獨(dú)特的單線接口僅需一個端口引腳進(jìn)行通信l 簡單的多點(diǎn)
6、分布應(yīng)用l 無需外部器件l 可通過數(shù)據(jù)線供電l 零待機(jī)功耗l 測溫范圍-55+125,以0.5遞增l 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625l 溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms,12位分辨率時(shí)最多在750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字l 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計(jì)和任何熱感測系統(tǒng)l 負(fù)壓特性:電源極性接反時(shí),傳感器不會因發(fā)熱而燒毀,但不能正常工作4.2.2 DS18B20外形及引腳說明圖3 DS18B20外形及引腳l GND:地l DQ:單線運(yùn)用的數(shù)據(jù)輸入/輸出引腳l VD:可選的電源引腳4.2.3 DS18B20接線原理圖單總線通常要求
7、接一個約4.7K左右的上拉電阻,這樣,當(dāng)總線空閑時(shí),其狀態(tài)為高電平。圖4 DS18B20接線原理圖4.2.4 DS18B20時(shí)序圖主機(jī)使用時(shí)間隙來讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。1. 初始化時(shí)序如下圖:圖5 DS18B20初始化時(shí)序2. DS18B20讀寫時(shí)序:圖6 DS18B20讀寫時(shí)序4.2.5 數(shù)據(jù)處理高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在 高速暫存存儲器的第0和第1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。圖7 字節(jié)分配下表為12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比
8、特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際 溫度。 例如+125的數(shù)字輸出為07D0H,實(shí)際溫度=07D0H*0.0625=2000*0.0625=125。例如-55的數(shù)字輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作運(yùn)算),實(shí)際溫度=370H*0.0625=880*0.0625=55??梢娖渲械退奈粸樾?shù)位。圖8 DS18B20溫度數(shù)據(jù)表4.3 顯示電路LED數(shù)碼管顯示采用動態(tài)掃描方式,能簡化電路布
9、線,節(jié)約單片機(jī)I/O端口。段碼和位碼由單片機(jī)P0送出,分別用74HC673N鎖存。圖9 數(shù)碼管驅(qū)動顯示電路4.4 光報(bào)警電路當(dāng)溫度超過設(shè)定溫度值時(shí),實(shí)現(xiàn)聲光報(bào)警,發(fā)光二極管點(diǎn)亮。發(fā)光二極管接單片機(jī)P1口。圖10 聲光報(bào)警電路4.5 鍵盤輸入電路四個鍵分別連接單片機(jī)P34、P35、P36、P37構(gòu)成獨(dú)立式鍵盤,分別實(shí)現(xiàn)加、減、報(bào)警溫度設(shè)定功能鍵和溫度查詢功能鍵。圖11 鍵盤輸入電路5 軟件設(shè)計(jì)5.1 主程序模塊主程序需要調(diào)用3個子程序,分別為:l 實(shí)時(shí)溫度顯示子程序:驅(qū)動數(shù)碼管把實(shí)時(shí)溫度值送出在LED數(shù)碼管顯示l 查詢記錄溫度值子程序:查詢過去存儲的溫度值,最多可查詢10個值l 溫度設(shè)定、報(bào)警子
10、程序:設(shè)定報(bào)警溫度值,當(dāng)溫度超過該值時(shí)產(chǎn)生報(bào)警,即發(fā)光二極管發(fā)光開始主程序流程圖:定時(shí)器初始化、啟動顯示實(shí)時(shí)溫度溫度設(shè)定、報(bào)警查詢記錄溫度值圖12 主程序流程圖5.2 讀溫度值模塊讀溫度值模塊需要調(diào)用4個子程序,分別為:l DS18B20初始化子程序:讓單片機(jī)知道DS18B20在總線上且已準(zhǔn)備好操作l DS18B20寫字節(jié)子程序:對DS18B20發(fā)出命令l DS18B20讀字節(jié)子程序:讀取DS18B20存儲器的數(shù)據(jù)l 延時(shí)子程序:對DS18B20操作時(shí)的時(shí)序控制1. 讀溫度值模塊流程圖:數(shù)據(jù)轉(zhuǎn)換處理讀取溫度值高低位跳過讀序列號DS18B20初始化延時(shí)啟動溫度轉(zhuǎn)換入口DS18B20初始化跳過讀序
11、列號返回圖13 讀溫度值子程序流程圖 2. DS18B20初始化子程序流程圖:入口DQ為低電平?延時(shí)1560msDQ拉高電平延時(shí)>480msDQ復(fù)位0稍延時(shí)DQ置高電平N返回Y圖14 DS18B20初始化子程序流程圖3. DS18B20寫字節(jié)和讀字節(jié)子程序流程圖: 圖15 DS18B20寫字節(jié)子程序流程圖圖16 DS18B20讀字節(jié)子程序流程圖5.3 中斷模塊中斷采用T0方式1,初始值定時(shí)為50ms。中斷模塊需調(diào)用兩個子程序:l 讀溫度值子程序:定時(shí)讀取溫度值,實(shí)時(shí)更新溫度值l 記錄溫度值子程序:定時(shí)記錄溫度值,供查詢使用把這兩個子程序放在中斷的原因是,不會因?yàn)檎{(diào)整報(bào)警溫度或查詢歷史溫度
12、值而停止更新溫度值和記錄溫度值。中斷模塊流程圖:1秒?計(jì)數(shù)值加1定時(shí)器重置初值中斷入口讀溫度值Y中斷返回記錄溫度值 N圖17中斷模塊流程圖5.4 溫度查詢模塊溫度查詢模塊需要接受按鍵輸入,進(jìn)入查詢界面后,按加減鍵分別查詢上一個和下一個歷史溫度值,并驅(qū)動數(shù)碼管顯示需要查詢的溫度值。溫度查詢模塊流程圖如下:入口功能鍵按下? N確認(rèn)按下?延時(shí)消抖 YN顯示溫度值與位次 Y加鍵按下?N確認(rèn)按下?延時(shí)消抖 Y查詢下一個值Y減鍵按下? NN查詢上一個值確認(rèn)按下?延時(shí)消抖 YY退出功能鍵按下? NN返回 Y圖18 溫度查詢模塊流程圖5.5 溫度設(shè)定、報(bào)警模塊此模塊跟溫度查詢模塊類似,需要接受按鍵輸入,進(jìn)入模
13、塊界面后,按加減鍵分別上調(diào)和下調(diào)設(shè)定報(bào)警溫度值,當(dāng)實(shí)時(shí)溫度值超過設(shè)定值時(shí)點(diǎn)亮發(fā)光二極管,實(shí)現(xiàn)光報(bào)警。溫度設(shè)定、報(bào)警模塊流程圖如下:入口延時(shí)消抖減鍵按下?確認(rèn)按下?延時(shí)消抖加鍵按下?顯示設(shè)定溫度值確認(rèn)按下?延時(shí)消抖功能鍵按下?N YN YN Y上調(diào)設(shè)定值Y NN Y下調(diào)設(shè)定值確認(rèn)按下?Y N光報(bào)警溫度超出設(shè)定值?Y N取消報(bào)警判斷退出界面?N Y返回圖19 溫度設(shè)定、報(bào)警模塊流程圖5.6 數(shù)碼管驅(qū)動模塊本設(shè)計(jì)數(shù)碼管通過鎖存器接單片機(jī)P0口,采用動態(tài)掃描驅(qū)動7段LED數(shù)碼管進(jìn)行顯示,需調(diào)用延時(shí)子程序以穩(wěn)定顯示。模塊流程圖如下:P0清零關(guān)位選送位碼開位選P0置高關(guān)段選入口開段選延時(shí)關(guān)段選送段碼返回圖
14、20 數(shù)碼管驅(qū)動模塊流程圖6 仿真圖7 實(shí)物圖8 總結(jié)此次課程設(shè)計(jì)中,難點(diǎn)在于DS18B20的使用,即對它的時(shí)序控制、初始化以及字節(jié)讀寫方法,任何一個環(huán)節(jié)出錯或是時(shí)序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會了正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。軟件設(shè)計(jì)中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時(shí)畫流程圖能幫助理清思路,使問題簡單化。定義變量時(shí),盡量定義局部變量,在字符型變量能達(dá)到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時(shí)局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達(dá)不到設(shè)計(jì)的效
15、果。另一方面,取變量名時(shí)也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時(shí)加注釋確是非常必要的,否則隔一段時(shí)間后,想再改進(jìn)或做擴(kuò)展的話就比較困難了,因?yàn)榧词故亲约簩懙某绦蛞沧兊秒y讀難懂了。在做鍵盤消抖時(shí),延時(shí)的時(shí)間比較重要,一般為10ms左右,延時(shí)太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時(shí)過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個延時(shí)函數(shù)的入口參量則能很方便地調(diào)整延時(shí)時(shí)間,以達(dá)到比較好的效果。另外,如果對按鍵進(jìn)行釋放判斷的話就能解決長時(shí)間按鍵導(dǎo)致按鍵重復(fù)響應(yīng)的問題。此設(shè)計(jì)中沒有為溫度的單位(攝氏度)準(zhǔn)備專用的數(shù)碼管來顯示,若單獨(dú)用一個數(shù)碼管顯示“C”來代替“”的話,看起來感覺很別扭。偶然想起如若用一個數(shù)碼管的上半部顯“0”,即a、b、f、g段點(diǎn)亮,來代替“”左上角的“度”的話,效果應(yīng)該不錯,便作了一試,發(fā)現(xiàn)這是確是一個很好的主意,便在此次設(shè)計(jì)中采用了這個辦法來顯示溫度單位。另外此次設(shè)計(jì)也考慮了實(shí)時(shí)溫度顯示界面與報(bào)警溫度設(shè)置界面的區(qū)別,即在進(jìn)入報(bào)警溫度
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度出租車承包運(yùn)營人力資源配置合同3篇
- 2025年度智能電網(wǎng)建設(shè)與運(yùn)營管理協(xié)議4篇
- 2025年度數(shù)字化車間承包經(jīng)營合作協(xié)議4篇
- 方形母端快接式端子行業(yè)深度研究報(bào)告
- 2025年叉車電器項(xiàng)目可行性研究報(bào)告
- 2025年度個人股權(quán)分割與轉(zhuǎn)讓合同范本3篇
- 2025年度個人心理咨詢服務(wù)合同范本4篇
- 2025年度個人房源信息在線交易安全保障協(xié)議4篇
- 2025年江蘇國經(jīng)控股集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年福建中閩海上風(fēng)電有限公司招聘筆試參考題庫含答案解析
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年資格考試-WSET二級認(rèn)證考試近5年真題集錦(頻考類試題)帶答案
- 試卷中國電子學(xué)會青少年軟件編程等級考試標(biāo)準(zhǔn)python三級練習(xí)
- 公益慈善機(jī)構(gòu)數(shù)字化轉(zhuǎn)型行業(yè)三年發(fā)展洞察報(bào)告
- 飼料廠現(xiàn)場管理類隱患排查治理清單
- 2024年公需科目培訓(xùn)考試題及答案
- 【名著閱讀】《紅巖》30題(附答案解析)
- Starter Unit 2 同步練習(xí)人教版2024七年級英語上冊
- 分?jǐn)?shù)的加法、減法、乘法和除法運(yùn)算規(guī)律
- 2024年江蘇鑫財(cái)國有資產(chǎn)運(yùn)營有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
評論
0/150
提交評論