基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)報(bào)告_第1頁
基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)報(bào)告_第2頁
基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)報(bào)告_第3頁
基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)報(bào)告_第4頁
基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)的出現(xiàn)是近代計(jì)算機(jī)技術(shù)發(fā)展史上的重要里程碑。 單片機(jī)自 20世紀(jì) 70 年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、 發(fā)展很快。 近年來隨著電子技術(shù)和微型計(jì)算機(jī)技術(shù)的迅速發(fā)展,單片機(jī)的檔次不斷提高,其應(yīng)用領(lǐng)域也在不斷擴(kuò)大,在工業(yè)測(cè)控、尖端科學(xué)、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動(dòng)化設(shè)備、個(gè)人通信終端及通信產(chǎn)品中得到了廣泛應(yīng)用,已成為現(xiàn)代電子系統(tǒng)中最重要的智能化核心部件。 隨著人們生活水平的不斷提高 ,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活

2、、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本課程設(shè)計(jì)是在學(xué)習(xí)了單片機(jī)的基本原理的基礎(chǔ)上進(jìn)行的,綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并仿真實(shí)現(xiàn),從而加深對(duì)單片機(jī)軟硬知識(shí)的理解,獲得初步的應(yīng)用經(jīng)驗(yàn);進(jìn)一步熟悉和掌握單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,了解單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本方法和步驟。本設(shè)計(jì)的目標(biāo)是用單片機(jī)和溫度傳感器及相關(guān)部件實(shí)現(xiàn)溫度的測(cè)量和數(shù)字顯示,測(cè)量精度小于,可以設(shè)置溫度測(cè)量的上下限,超出測(cè)溫范圍可以由蜂鳴器報(bào)警。本設(shè)計(jì)首先是確定目標(biāo),接下來是各個(gè)功能模塊的設(shè)計(jì)和相應(yīng)程序的編寫。再在proteus軟件上進(jìn)行仿真,若結(jié)果滿足要求,則可以

3、焊接硬件,若不滿足繼續(xù)修改,最終完成數(shù)字溫度計(jì)的整個(gè)設(shè)計(jì)任務(wù)。經(jīng)過仿真,本設(shè)計(jì)達(dá)到了預(yù)期的目標(biāo)。目錄0011223459990211 設(shè)計(jì)概述設(shè)計(jì)目標(biāo)和要求1 .用所學(xué)的單片機(jī)知識(shí)設(shè)計(jì)制作數(shù)字溫度計(jì);2 .測(cè)溫范圍是-20 -70;3 . 誤差小于;4 .所測(cè)的溫度值可以由LCDR碼管直接顯示;5 . 可以任意設(shè)置上下限溫度的報(bào)警功能;6 . 進(jìn)一步熟悉proteus,protel,word 軟件的功能和使用方法;設(shè)計(jì)思路首先確定我們所設(shè)計(jì)的是一個(gè)數(shù)字溫度計(jì),由單片機(jī)、溫度傳感器以及其他電路共同實(shí)現(xiàn)。根據(jù)所要實(shí)現(xiàn)的功能,先在proteus 軟件上仿真。根據(jù)所選用的硬件可以將整個(gè)軟件設(shè)計(jì)分為若干

4、子程序,有初始化、查詢時(shí)間、發(fā)送指令、讀取數(shù)據(jù)、顯示溫度等構(gòu)成,可將以上子程序分別設(shè)計(jì),實(shí)現(xiàn)各自的功能,再在子程序中調(diào)用,就可以實(shí)現(xiàn)預(yù)期的目標(biāo)。在 proteus 軟件里畫出相應(yīng)的電路圖,將編寫好的程序的編譯后的文件下載到proteus 電路圖的單片機(jī)里, 進(jìn)行仿真, 對(duì)溫度傳感器設(shè)置不同的參數(shù), 看是否達(dá)到了 我們?cè)O(shè)計(jì)所要求的目標(biāo),如果不符合要求,需要檢查程序算法和硬件連接是否有誤。若仿真成功,就按照電路圖焊接硬件。2 系統(tǒng)方案及硬件設(shè)計(jì)設(shè)計(jì)方案采用數(shù)字溫度芯片DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。采用了單總線的數(shù)據(jù) 傳輸,由數(shù)字溫度計(jì)DS18B2和ATmega16單片機(jī)構(gòu)成的溫度測(cè)量裝

5、置,它直接輸出溫度 的數(shù)字信號(hào),也可直接與計(jì)算機(jī)連接。采用ATmega16單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。該系統(tǒng)利用ATmega16芯片控制溫度傳感器DS18B2進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng)。該測(cè)溫系統(tǒng)電路簡單、精確度較高、實(shí)現(xiàn)方便、軟件設(shè)計(jì)也比較簡單。方案的硬件總體方框圖基于增強(qiáng)的AVR RISC吉構(gòu)的低功耗8位CMO微控制器ATmega16 ,溫度傳感器采用 的DS18B20用四位數(shù)碼管顯示溫度。圖1溫度傳感器DS18B20®溫原理

6、DS18B20S度傳感器是美國DALLA芥導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20勺性能特點(diǎn)如下:(1)獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信,DS18B2猊與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B2的雙向通訊。(2) DS18B20£持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B2W以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)測(cè)溫;( 3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);( 4)可通過數(shù)據(jù)線供電,電壓范圍為;(

7、5)零待機(jī)功耗;( 6)溫度以9或12位數(shù)字,對(duì)應(yīng)的可分辨溫度分別為、和,可實(shí)現(xiàn)高精度測(cè)溫;( 7)用戶可定義報(bào)警設(shè)置;( 8)報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;( 9) 負(fù)電壓特性,電源極性接反時(shí), 溫度計(jì)不會(huì)因發(fā)熱而燒毀, 但不能正常工作;(10)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU同時(shí)可傳送CR版驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力I低溫度系數(shù)振蕩器II計(jì)數(shù)揩1Ti比較預(yù)置Tx,.1,力口 1v vDS呼晶百!麗叫裝或8腳SOC裝,其引而排列及與端菽腳UM耳2及圖3以及圖4日勺測(cè)溫原埋)如M示:一 L圖2 .腳排中 停止計(jì)數(shù)器2圖3內(nèi)”結(jié)構(gòu)U

8、fflT2圖4 DS18B20測(cè)溫原理圖64位ROM勺結(jié)構(gòu)開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC僉驗(yàn)碼,這也是多個(gè) DS18B2W以采用一線進(jìn) 行通信的原因。溫度報(bào)警觸發(fā)器 TH和TL,可通過軟件寫入戶報(bào)警上下限。DS18B2恥度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存 RAMF 口一個(gè)非易失性的可電 擦除的EERAM高速暫存RAM勺結(jié)才勾為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖4所示。頭2個(gè)字節(jié) 包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí) 被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18

9、B2g作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。 該字節(jié)各位的定義如圖5所示。低5位一直為1, TM是工作模式位,用于設(shè)置S18B20t工作模式還是在測(cè)試 模式,DS18B20B廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精 度位數(shù),來設(shè)置分辨率。溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTM R1 R0 1111圖5 DS18B20的字節(jié)定義DS18B20的分辨率定義如表2-1所示表2-1分辨率設(shè)置表R0R1分時(shí) 最大溫度轉(zhuǎn)移時(shí)間009位0110位1011位375ms1112位750ms由表1可見,DS18B2溫度轉(zhuǎn)換的時(shí)間比較長,而且分

10、辨率越高,所需要的溫度數(shù) 據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。主機(jī)控制DS18B20I成溫度轉(zhuǎn)換過程是:每一次讀寫之前都要對(duì)DS18B20S行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS18B20攵到信號(hào)后等待16-60us左右,之后發(fā) 出60-240us的存在低脈沖,主CPU攵到此此信號(hào)表示復(fù)位成功;復(fù)位成功后發(fā)送一條 ROM旨令,然后發(fā)送RAM旨令,這1¥才能對(duì)DS18B20®行預(yù)訂的讀寫操作。表2-2ROM指令集指令約定代碼功能讀ROM33H讀DS18B20H勺編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位RO端碼,訪問單線總線 上與

11、該編輯相對(duì)應(yīng)的DS18B20g之做出響應(yīng),為下一步 對(duì)1% DS18B20I勺讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上的 DS18B2階數(shù)和識(shí)別64位ROMft址,為操作各器件作準(zhǔn)備跳過ROM0CCH忽略64位ROMft址,直接向DS18B2改送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設(shè)定值上限或下限的片子才方旨做 出反應(yīng)表2-3RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動(dòng)DS18B208行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個(gè)字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH TL字節(jié)復(fù)制暫存器48H把暫存器的TH TL字節(jié)寫到E2RAW重調(diào)E2RAM0B8H把E2RAMf

12、r的TH TL字節(jié)寫暫存器TH TL字節(jié)讀供電方式0B4H啟動(dòng)DS18B20g送電源供電方式的信號(hào)給主 CPUDS18B20勺測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小, 用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1; 高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2 的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B2而對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將最低溫所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、 溫度寄存器中, 計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在最低溫所

13、對(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 重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0 時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。硬件設(shè)計(jì)主控制器 ATmega16ATmega16 是基于增強(qiáng)的 AVR RISC 結(jié)構(gòu)的低功耗8 位 CMOS 微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)

14、行時(shí)間, ATmega16 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz ,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 ATmega16 AVR 內(nèi)核具有豐富的指令集和 32 個(gè)通用工作寄存器。 所有的寄存器都直接與算邏單元 (ALU) 相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的 CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。復(fù)位電路在這里采用的是按鈕加上電復(fù)位,系統(tǒng)每次上電和每次按下復(fù)位按鈕,系統(tǒng)就會(huì)復(fù)位。時(shí)鐘振蕩電路采用的是1MHZ勺晶振頻率,它與單片機(jī)的硬件連接電路如圖7所示圖 7 晶振電路報(bào)警點(diǎn)調(diào)節(jié)電路可以通過微動(dòng)開關(guān),任意

15、調(diào)節(jié)報(bào)警點(diǎn)的上下限,電路如圖8所示圖8報(bào)警點(diǎn)調(diào)節(jié)電路顯示電路顯示電路采用集成的四位一體的數(shù)碼管,為共陰極結(jié)構(gòu),通過設(shè)置不同的段碼可 以顯示溫度。圖9顯示電路3軟件設(shè)計(jì)系統(tǒng)分析系統(tǒng)程序主要包括DS182M始化程序,向DS1820文字節(jié)程序,向DS1820W字節(jié) 程序,讀取溫度及轉(zhuǎn)換程序,溫度顯示程序,報(bào)警程序。圖10主程序流程圖各子程序及其流程圖設(shè)計(jì)初始化子程序令為高電平,延遲一段時(shí)間后令為低電平觸發(fā)DS1820 的初始化,低電平持續(xù)一段時(shí)間,然后讀取的狀態(tài),直到的狀態(tài)回到高電平時(shí)說明初始化完成。#include <>#define DQ P2_7#define dm P0sbit

16、w0=P2A3;sbit w1=P2A4;sbit w2=P2A5;sbit w3=P2A6;sbit jia=P2A0;sbit jian=P2A1;sbit xuan=P2A2;/sbit p2_7=P2A7;sbit speaker=P1A0;#define uint unsigned int#define uchar unsigned charuint mark;uint xiaoshu;int temp1=0;uint H_t=10,L_t=-5;uchar table_dm=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;ucha

17、r table_dm1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar table_fuhao=0x00,0x40;void delay(unsigned int i)while(i-); /初始化函數(shù)=1延時(shí)=0延時(shí)完成圖11初始化流程圖DS1820的讀寫字節(jié)子程序單片機(jī)向DS1820W寫字節(jié)都是從最低位開始的。Init_DS18B20(void)unsigned char x=0;DQ = 1;delay(8);DQ = 0;delay(80);DQ = 1;delay(14);x=DQ;/稍做延時(shí)后如果x=0則初始化成功x=

18、1則初始化失敗delay(20);讀一個(gè)字節(jié)圖13寫操作圖12讀操作溫度讀取及轉(zhuǎn)換子程序在讀取溫度值命令前,應(yīng)使用溫度轉(zhuǎn)換命令才能保證讀入的是當(dāng)前溫度值轉(zhuǎn)換過 程中DS182g拉低總線直至轉(zhuǎn)換完成,因此可以讀取溫度總線的狀態(tài)來判斷溫度轉(zhuǎn)換 是否完成。ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0;dat>>=1;DQ = 1;if(DQ)dat|=0x80;delay(4); return(dat);/寫一個(gè)字節(jié)圖14溫度讀取及轉(zhuǎn)換計(jì)算溫度子程序?qū)AW讀取值進(jìn)行B

19、C幽的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖14所示:WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;delay(4);/ 讀取15 溫度計(jì)算void delayms(uchar t)uint i;while(t-)for(i=0;i<100;i+);/ 顯示其流程圖如下所示:圖 16 溫度顯示其流程圖如下:ReadTemperature(void)unsigned char

20、a=0;unsigned char b=0;unsigned char i=0,t;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);a=ReadOneChar();b=ReadOneChar();i=b; /* 若 b 為 1 則為負(fù)溫*/i=(i>>4);if(i=0)mark=0;t=(a>>4)|(b<<4);a=(a&0x0f);xiaoshu=a;if (a>8)(t=(t+1);else(mark=1;a=a>>4;b=b<<4;t=(a|b);t=t;t=(t+1);EA=1;return(t);圖17報(bào)警4 proteus 軟件仿真系統(tǒng)仿真設(shè)計(jì)本設(shè)計(jì)是在Proteus環(huán)境下進(jìn)行仿真的,仿真所用到的器件有:單片機(jī) ATmega16, DS182姍度傳感器,蜂鳴器,液晶顯示器,一些電阻,電容等。仿真結(jié)果分析本設(shè)計(jì)在仿真的條件下可以正確的顯示溫度,并在溫度超過所設(shè)置的最高

溫馨提示

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

評(píng)論

0/150

提交評(píng)論