數(shù)字式溫度計(jì)的設(shè)計(jì)_第1頁
數(shù)字式溫度計(jì)的設(shè)計(jì)_第2頁
數(shù)字式溫度計(jì)的設(shè)計(jì)_第3頁
數(shù)字式溫度計(jì)的設(shè)計(jì)_第4頁
數(shù)字式溫度計(jì)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)課程設(shè)計(jì)——數(shù)字式溫度計(jì)的設(shè)計(jì)

答辯人:

同組人:主要內(nèi)容:設(shè)計(jì)意義與要求系統(tǒng)總體方案設(shè)計(jì)

硬件設(shè)計(jì)

軟件設(shè)計(jì)

程序調(diào)試與Proteus仿真

傳統(tǒng)的單片機(jī)溫度控制器用熱敏電阻測(cè)量溫度,須包含模擬測(cè)量電路及A/D轉(zhuǎn)換器,且占用單片機(jī)的口線多,必要時(shí)須增加I/O擴(kuò)展接口芯片,電路器件多,降低了可靠性。而采用新型的單線數(shù)字溫度傳感器DS18B20測(cè)量溫度則克服了上述缺點(diǎn)。DS18B20是美國(guó)DALLAS半導(dǎo)體公司近年推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度,并可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式,無需外加測(cè)量電路及A/D轉(zhuǎn)換器,簡(jiǎn)化了電路;而且從DS18B20讀出或?qū)懭胄畔H需一根口線,大大降低了單片機(jī)的硬件資源占用?;贒S18B20的單片機(jī)溫度控制器具有電路簡(jiǎn)單、可靠性高的優(yōu)點(diǎn)。本數(shù)字式溫度計(jì)對(duì)溫度進(jìn)行實(shí)時(shí)測(cè)量并顯示(華氏與攝氏溫度都可顯示,通過一按鍵顯示),用戶可設(shè)定最高限報(bào)警溫度值和最低限報(bào)警溫度值,有一定的溫度控制功能。設(shè)計(jì)意義設(shè)計(jì)要求①用DS18B20實(shí)時(shí)采集溫度信號(hào)并顯示②能夠通過切換按鈕可以切換華氏度和攝氏度顯示;③單片機(jī)對(duì)溫度信號(hào)能夠?qū)崟r(shí)監(jiān)控④能夠設(shè)置報(bào)警溫度上下限⑤當(dāng)溫度到達(dá)設(shè)定值,蜂鳴器能夠鳴叫報(bào)警,而且發(fā)光二極管LED發(fā)光警報(bào)。系統(tǒng)總體方案設(shè)計(jì)

在通過對(duì)數(shù)字式溫度計(jì)的特性的了解之后,我們采用模塊設(shè)計(jì)的方法來設(shè)計(jì)本系統(tǒng)。數(shù)字式溫度計(jì)系統(tǒng)主要由五部分組成:主控模塊,采集模塊,鍵盤模塊,顯示模塊和報(bào)警模塊。其中,主控模塊實(shí)現(xiàn)巡回監(jiān)視溫度信號(hào)的功能,采集模塊實(shí)現(xiàn)溫度信號(hào)的采集,鍵盤模塊改變報(bào)警溫度的上下限值以及來改變溫度的顯示方式,顯示模塊實(shí)現(xiàn)溫度值和報(bào)警點(diǎn)的顯示,報(bào)警模塊實(shí)現(xiàn)報(bào)警的功能。系統(tǒng)框圖如下所示:主控模塊顯示模塊報(bào)警模塊采集模塊鍵盤模塊硬件設(shè)計(jì)

主控模塊采用ATMEL公司生產(chǎn)的AT89C52,AT89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4K的可反復(fù)擦寫的FLASH只讀存儲(chǔ)器和128BYTES的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口。AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。

一、主控模塊:

單片機(jī)AT89C52是該模塊也是整個(gè)電路的核心器件。實(shí)現(xiàn)巡回監(jiān)視溫度信號(hào)。當(dāng)溫度超過給定的門限值時(shí)出現(xiàn)報(bào)警信號(hào)(液晶LCD顯示器顯示當(dāng)前溫度值和報(bào)警點(diǎn),蜂鳴器和發(fā)光二極管發(fā)出報(bào)警信號(hào))。其中:P0口連顯示模塊,P3.7連蜂鳴器,P2.5、P2.6連二極管(P2.5接LED-BLUE、P2.6LED-RED),P3.3連接DS18B20的DQ端。單片機(jī)采用12M的晶振,并由電解電容和電阻構(gòu)成上電復(fù)位電路。其電路圖如下:二、采集模塊

采集模塊采用DALLAS半導(dǎo)體公司生產(chǎn)的數(shù)字化溫度傳感器DS18B20。DS1820是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。它具有以下8種特性:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;在使用中不需要任何外圍元件;可用數(shù)據(jù)線供電,電壓范圍:+3.0V~+5.5V;測(cè)溫范圍:-55℃~+125℃。固有測(cè)溫分辨率為0.5℃;。通過編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式;用戶可自設(shè)定非易失性的報(bào)警上下限值;支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的;負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒。其管腳排列:

采集模塊主要由溫度傳感器DS18B20實(shí)現(xiàn)溫度信號(hào)的采集及A/D轉(zhuǎn)換,可以將檢測(cè)到的溫度直接顯示在數(shù)碼管上。其電路圖如下:三、鍵盤模塊

鍵盤模塊用于設(shè)置溫度的報(bào)警上下限以及改變溫度顯示的方式(攝氏度以及華氏度)。鍵盤模塊采用獨(dú)立按鍵方式,分別由單片機(jī)的四個(gè)接口驅(qū)動(dòng),四個(gè)按鍵分別代表不同作用。①按鍵K1用于溫度狀態(tài)切換,LCD顯示的默認(rèn)溫度為攝氏度,當(dāng)按一下K1鍵時(shí),顯示的溫度為華氏度。②按鍵K2用于顯示報(bào)警上下限溫度。③當(dāng)鎖住K2鍵,按一下K鍵,再使用K3鍵來提高報(bào)警上限溫度;當(dāng)鎖住K2鍵,鎖住K鍵,再使用K3鍵來降低報(bào)警上限溫度。④當(dāng)鎖住K2鍵,按一下K鍵,再使用K4鍵來提高報(bào)警下限溫度;當(dāng)鎖住K2鍵,鎖住K鍵,再使用K4鍵來降低報(bào)警下限溫度??紤]到系統(tǒng)要求并不高,所以采用獨(dú)立鍵盤,簡(jiǎn)單實(shí)用,降低了軟件的要求,并且硬件電路復(fù)雜度也降低,安全可靠。其電路圖如下:四、顯示模塊

顯示模塊采用液晶顯示(LCD)塊中的LCD1602模塊,LCD1602模塊為2*16字。LCD1602模塊由控制器HD44780、驅(qū)動(dòng)器HD44100和液晶板組成。HD44780是典型的液晶顯示控制器,她是集控制和驅(qū)動(dòng)于一體的。也就是說它是具有自己的驅(qū)動(dòng)器的,不去外加驅(qū)動(dòng)器。

LCD1602的主要管腳介紹:引腳01:Vss,接地引腳。引腳02:Vdd,接+5V電源引腳04:RS,數(shù)據(jù)/命令寄存器選擇端。高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇命令寄存器。引腳05:RW,讀/寫選擇端。高電平時(shí)讀操作,低電平時(shí)寫操作。引腳06:E,使能端。由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。引腳07~14:D0~D7,8位雙向數(shù)據(jù)總線。顯示模塊直接采用AT89C52單片機(jī)P0口外接LCD1602模塊,即LCD1602模塊得D0~D7端口連接到P0口上,而LCD1602模塊的RS、RW和E端口則連接到AT89C52單片機(jī)的P2.0、P2.1和P2.2端口。由于P0口用作通用I/O口時(shí),輸出應(yīng)外接上拉電阻,而為了方便連接,我們采用排阻RP1。其電路圖如下:五、報(bào)警模塊

報(bào)警模塊為單片機(jī)P3.7驅(qū)動(dòng)蜂鳴器,用于溫度到達(dá)上限溫度或達(dá)到下限溫度時(shí),由單片機(jī)驅(qū)動(dòng),蜂鳴器提供報(bào)警,同時(shí)單片機(jī)的端口P2.5以及P2.6分別連接LED-BLUE(藍(lán)色發(fā)光二極管)和LED-RED(紅色發(fā)光二級(jí))。當(dāng)當(dāng)前溫度超過上限溫度時(shí),LED-RED發(fā)出信號(hào)警報(bào);當(dāng)溫度低于下限溫度時(shí),LED-BLUE發(fā)出信號(hào)警報(bào)(在該系統(tǒng)中我們?cè)O(shè)置的默認(rèn)上限溫度是40℃,下限溫度是10℃)。蜂鳴器和發(fā)光二極管的成本低,效率高,反映直觀,易于工業(yè)級(jí)運(yùn)用。其電路圖如下:

設(shè)計(jì)完數(shù)字式溫度計(jì)的硬件部分之后,緊接著要完成的便是它的軟件設(shè)計(jì)。而通過分析數(shù)字式溫度計(jì)的工作過程以及各組件的工作原理,它的的軟件部分主要包括以下任務(wù):①溫度傳感器DS18B20的驅(qū)動(dòng),讀寫及溫度轉(zhuǎn)換程序的編寫。

②LCD模塊溫度顯示程序③報(bào)警程序的編寫。④更改溫度報(bào)警上下限值的程序。⑤單片機(jī)主程序的編寫(主要是調(diào)用以上編寫的子程序)。鑒于該系統(tǒng)的模塊化較強(qiáng),我們使用C語言來編程。軟件設(shè)計(jì)

一、主程序流程圖

程序流程圖如下:二、溫度傳感器DS18B20的軟件設(shè)計(jì)DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。故主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。程序主要函數(shù)部分如下:1、初始化程序設(shè)計(jì)

初始化子程序Init_DS18B20的功能:對(duì)DSl8820進(jìn)行一次復(fù)位,復(fù)位成功令X標(biāo)志置0,不成功令X為1.子程序流程圖如圖:初始化程序Init_DS18B20:/**********ds18b20初始化函數(shù)**********************/voidInit_DS18B20(void){unsignedcharx=0; DQ=1;//DQ復(fù)位

delay_18B20(8);//延時(shí)大約1us DQ=0;//單片機(jī)將DQ拉低

delay_18B20(80);//精確延時(shí)大于480us DQ=1;//拉高總線

delay_18B20(14); x=DQ;//稍做延時(shí)后如果x=0則初始化成功x=1則初始化失敗

delay_18B20(20);/}2、DS18B20讀寫程序設(shè)計(jì)

(1)DS18B20讀程序:使用FOR循環(huán)來實(shí)現(xiàn)8位數(shù)據(jù)的讀取。/***********ds18b20讀一個(gè)字節(jié)**************/ucharReadOneChar(void){uchari=0; uchardat=0; for(i=8;i>0;i--) {DQ=0;//給脈沖信號(hào)

dat>>=1; DQ=1;//給脈沖信號(hào)

if(DQ) dat|=0x80; delay_18B20(4); } return(dat);}(2)DS18B20寫程序:使用FOR循環(huán)來實(shí)現(xiàn)8位數(shù)據(jù)的寫入。/*************ds18b20寫一個(gè)字節(jié)****************/voidWriteOneChar(uchardat){unsignedchari=0; for(i=8;i>0;i--) {DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1;}}3、DS18B20溫度轉(zhuǎn)換程序

ReadTemp函數(shù)其實(shí)是讀取ds18b20當(dāng)前溫度的一個(gè)程序,其中引用了DS18B20讀程序ReadOneChar和DS18B20寫程序WriteOneChar,但主要是為了溫度的轉(zhuǎn)換。使用DS18B20來檢測(cè)溫度的優(yōu)點(diǎn)之一就是因?yàn)樗軌蛲ㄟ^編程自動(dòng)的進(jìn)行溫度轉(zhuǎn)換而無需再連接一個(gè)A/D轉(zhuǎn)換器來實(shí)現(xiàn)溫度的轉(zhuǎn)換。因?yàn)楸緮?shù)字溫度計(jì)的分辨率設(shè)置為0℃,所以轉(zhuǎn)換的數(shù)值少、轉(zhuǎn)換時(shí)間小。DS18B20溫度轉(zhuǎn)換程序:voidReadTemp(void){unsignedchara=0; unsignedcharb=0; unsignedchart=0; Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號(hào)列號(hào)的操作

WriteOneChar(0x44); //啟動(dòng)溫度轉(zhuǎn)換

delay_18B20(100);//thismessageisweryimportantInit_DS18B20(); WriteOneChar(0xCC); //跳過讀序號(hào)列號(hào)的操作

WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度

delay_18B

溫馨提示

  • 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)論