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

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)單片機(jī)課程設(shè)計(jì)數(shù)字式溫度計(jì)的設(shè)計(jì)數(shù)字式溫度計(jì)的設(shè)計(jì) 答辯人: 同組人:主要內(nèi)容: 設(shè)計(jì)意義與要求設(shè)計(jì)意義與要求 系統(tǒng)總體方案設(shè)計(jì)系統(tǒng)總體方案設(shè)計(jì) 硬件設(shè)計(jì)硬件設(shè)計(jì) 軟件設(shè)計(jì)軟件設(shè)計(jì) 程序調(diào)試與程序調(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í)

2、際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式,無(wú)需外加測(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è)量并顯示(華氏與攝氏溫度都可顯示,通過(guò)一按鍵顯示),用戶可設(shè)定最高限報(bào)警溫度值和最低限報(bào)警溫度值,有一定的溫度控制功能。設(shè)計(jì)意義設(shè)計(jì)意義設(shè)計(jì)要求設(shè)計(jì)要求用DS18B20實(shí)時(shí)采集溫度信號(hào)并顯示能夠通過(guò)切換按鈕可以切換華氏度和攝氏度顯示;單片機(jī)對(duì)溫度信號(hào)能夠?qū)崟r(shí)監(jiān)控能夠設(shè)置報(bào)警溫度上下限當(dāng)溫度到達(dá)設(shè)定值,蜂鳴器能夠鳴叫報(bào)警,而且

3、發(fā)光二極管LED發(fā)光警報(bào)。系統(tǒng)總體方案設(shè)計(jì)系統(tǒng)總體方案設(shè)計(jì) 在通過(guò)對(duì)數(shù)字式溫度計(jì)的特性的了解之后,我們采用模塊設(shè)計(jì)的方法來(lái)設(shè)計(jì)本系統(tǒng)。數(shù)字式溫度計(jì)系統(tǒng)主要由五部分組成:主控模塊,采集模塊,鍵盤(pán)模塊,顯示模塊和報(bào)警模塊。 其中,主控模塊實(shí)現(xiàn)巡回監(jiān)視溫度信號(hào)的功能,采集模塊實(shí)現(xiàn)溫度信號(hào)的采集,鍵盤(pán)模塊改變報(bào)警溫度的上下限值以及來(lái)改變溫度的顯示方式,顯示模塊實(shí)現(xiàn)溫度值和報(bào)警點(diǎn)的顯示,報(bào)警模塊實(shí)現(xiàn)報(bào)警的功能。系統(tǒng)框圖如下所示:主 控 模 塊顯 示 模 塊報(bào) 警 模 塊采 集 模 塊鍵盤(pán)模塊硬件設(shè)計(jì)硬件設(shè)計(jì) 主控模塊采用ATMEL公司生產(chǎn)的AT89C52,AT89C52是一個(gè)低電壓,高性能CMOS 8位

4、單片機(jī),片內(nèi)含4K的可反復(fù)擦寫(xiě)的FLASH只讀存儲(chǔ)器和128 BYTES的隨機(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ù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。 一、主控模塊:一、主控模

5、塊: 單片機(jī)AT89C52是該模塊也是整個(gè)電路的核心器件。實(shí)現(xiàn)巡回監(jiān)視溫度信號(hào)。當(dāng)溫度超過(guò)給定的門(mén)限值時(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.6 LED-RED),P3.3連接DS18B20的DQ端。單片機(jī)采用12M的晶振,并由電解電容和電阻構(gòu)成上電復(fù)位電路。其電路圖如下:二、采集模塊二、采集模塊 采集模塊采用DALLAS 半導(dǎo)體公司生產(chǎn)的數(shù)字化溫度傳感器DS18B20。DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總

6、線獨(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.5 V;測(cè)溫范圍: - 55+125。固有測(cè)溫分辨率為0.5;。通過(guò)編程可實(shí)現(xiàn)912位的數(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)換,可以將

7、檢測(cè)到的溫度直接顯示在數(shù)碼管上。其電路圖如下:三、鍵盤(pán)模塊三、鍵盤(pán)模塊 鍵盤(pán)模塊用于設(shè)置溫度的報(bào)警上下限以及改變溫度顯示的方式(攝氏度以及華氏度)。鍵盤(pán)模塊采用獨(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鍵來(lái)提高報(bào)警上限溫度;當(dāng)鎖住K2鍵,鎖住K鍵,再使用K3鍵來(lái)降低報(bào)警上限溫度。當(dāng)鎖住K2鍵,按一下K鍵,再使用K4鍵來(lái)提高報(bào)警下限溫度;當(dāng)鎖住K2鍵,鎖住K鍵,再使用K4鍵來(lái)降低報(bào)警下限溫度??紤]到系統(tǒng)要求并不

8、高,所以采用獨(dú)立鍵盤(pán),簡(jiǎn)單實(shí)用,降低了軟件的要求,并且硬件電路復(fù)雜度也降低,安全可靠。其電路圖如下:四、顯示模塊四、顯示模塊 顯示模塊采用液晶顯示(LCD)塊中的LCD1602模塊,LCD1602模塊為2*16字。LCD1602模塊由控制器HD44780、驅(qū)動(dòng)器HD44100和液晶板組成。HD44780是典型的液晶顯示控制器,她是集控制和驅(qū)動(dòng)于一體的。也就是說(shuō)它是具有自己的驅(qū)動(dòng)器的,不去外加驅(qū)動(dòng)器。 LCD1602的主要管腳介紹: 引腳01:Vss,接地引腳。 引腳02:Vdd,接+5V電源 引腳04:RS,數(shù)據(jù)/命令寄存器選擇端。高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇命令寄存器。 引腳05:R

9、W,讀/寫(xiě)選擇端。高電平時(shí)讀操作,低電平時(shí)寫(xiě)操作。 引腳06:E,使能端。由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 引腳0714:D0D7,8位雙向數(shù)據(jù)總線。 顯示模塊直接采用AT89C52單片機(jī)P0口外接LCD1602模塊,即LCD1602模塊得D0D7端口連接到P0口上,而LCD1602模塊的RS、RW和E端口則連接到AT89C52單片機(jī)的P2.0、P2.1和P2.2端口。由于P0口用作通用I/O口時(shí),輸出應(yīng)外接上拉電阻,而為了方便連接,我們采用排阻RP1。 其電路圖如下:五、報(bào)警模塊五、報(bào)警模塊 報(bào)警模塊為單片機(jī)P3.7驅(qū)動(dòng)蜂鳴器,用于溫度到達(dá)上限溫度或達(dá)到下限溫度時(shí),由單片機(jī)驅(qū)動(dòng),蜂

10、鳴器提供報(bào)警,同時(shí)單片機(jī)的端口P2.5以及P2.6分別連接LED-BLUE(藍(lán)色發(fā)光二極管)和LED-RED(紅色發(fā)光二級(jí))。當(dāng)當(dāng)前溫度超過(guò)上限溫度時(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ì)。而通過(guò)分析數(shù)字式溫度計(jì)的工作過(guò)程以及各組件的工作原理,它的的軟件部分主要包括以下任務(wù): 溫度傳感器DS18B20的驅(qū)動(dòng),讀寫(xiě)及溫度轉(zhuǎn)換程序的編寫(xiě)。 LCD模塊溫

11、度顯示程序 報(bào)警程序的編寫(xiě)。 更改溫度報(bào)警上下限值的程序。 單片機(jī)主程序的編寫(xiě)(主要是調(diào)用以上編寫(xiě)的子程序)。 鑒于該系統(tǒng)的模塊化較強(qiáng),我們使用C語(yǔ)言來(lái)編程。軟件設(shè)計(jì)軟件設(shè)計(jì) 一、主程序流程圖一、主程序流程圖 程序流程圖如下:二、溫度傳感器二、溫度傳感器DS18B20的軟件設(shè)計(jì)的軟件設(shè)計(jì) DS18B20 的一線工作協(xié)議流程是: 初始化ROM操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序。 故主機(jī)控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟: 每一次讀寫(xiě)之前都要對(duì) DS18B20 進(jìn)行復(fù)位, 復(fù)位成功后發(fā)送一條 ROM指令, 最后發(fā)送 RAM指令, 這樣才能對(duì) D

12、S18B20進(jìn)行預(yù)定的操作。復(fù)位要求主 CPU將數(shù)據(jù)線下拉 500 微秒, 然后釋放, DS18B20 收到信號(hào)后等待 16 60 微秒左右, 后發(fā)出 60 240微秒的存在低脈沖, 主 CPU收到此信號(hào)表示復(fù)位成功。程序主要函數(shù)部分如下:1、初始化程序設(shè)計(jì)初始化程序設(shè)計(jì) 初始化子程序Init_DS18B20的功能:對(duì)DSl8820進(jìn)行一次復(fù)位,復(fù)位成功令X標(biāo)志置0,不成功令X為1 子程序流程圖如圖:初始化程序初始化程序Init_DS18B20:/*ds18b20初始化函數(shù)*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 de

13、lay_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讀寫(xiě)程序設(shè)計(jì)讀寫(xiě)程序設(shè)計(jì) (1)DS18B20讀程序:使用FOR循環(huán)來(lái)實(shí)現(xiàn)8位數(shù)據(jù)的讀取。/*ds18b20讀一個(gè)字節(jié)*/ uchar ReadOneChar(void) uchar i=0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; /

14、 給脈沖信號(hào) dat=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0 x80; delay_18B20(4); return(dat);(2)DS18B20寫(xiě)程序:使用FOR循環(huán)來(lái)實(shí)現(xiàn)8位數(shù)據(jù)的寫(xiě)入。/*ds18b20寫(xiě)一個(gè)字節(jié)*/ void WriteOneChar(uchar dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; delay_18B20(5);DQ = 1; dat=1; 3、DS18B20溫度轉(zhuǎn)換程序溫度轉(zhuǎn)換程序 ReadTemp函數(shù)其實(shí)是讀取ds18b20當(dāng)前溫度的一

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

16、列號(hào)的操作WriteOneChar(0 x44); / 啟動(dòng)溫度轉(zhuǎn)換delay_18B20(100); / this message is wery importantInit_DS18B20();WriteOneChar(0 xCC); /跳過(guò)讀序號(hào)列號(hào)的操作WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度delay_18B20(100);a=ReadOneChar(); /讀取溫度值低aaaaaaaaaaaaaaaaaaaab=ReadOneChar(); /讀取溫度值高位 bbbbbbbbbb b.a temp_value= b4; /te

17、mp_value 就是所要的值 DS18B20完成溫度轉(zhuǎn)換后, 就把測(cè)得的溫度值與上限報(bào)警溫度gw, 下限溫度報(bào)警溫度dw作比較, 若Tgw或Tdw, 則將該器件內(nèi)的告警標(biāo)志置位, 并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。三、三、LCD模塊溫度顯示程序設(shè)計(jì)模塊溫度顯示程序設(shè)計(jì) LCD1602模塊為一個(gè)216字的液晶顯示屏,它是由控制器HD44780、驅(qū)動(dòng)器HD44100和液晶板組成。其中包含在HD44100中的CGRAM為一個(gè)可由用戶定義的8個(gè)57個(gè)字形的自定義字符發(fā)生器。DDRAM有80個(gè)單位,其中第一行用00H0FH,第二行則使用40H4FH單位,DDRAM單位存放的是要顯示字符的編碼,控制器

18、以該編碼為索引,到CGROM或CGRAM中取點(diǎn)陣字形送液晶板顯示。 在使用LCD時(shí),要首先對(duì)LCD模塊進(jìn)行初始化。又由于我們?cè)O(shè)計(jì)的數(shù)字式溫度計(jì)是一個(gè)動(dòng)態(tài)的系統(tǒng),所以每次顯示一次溫度時(shí)都需要初始化。四、報(bào)警程序的編寫(xiě)四、報(bào)警程序的編寫(xiě) 本溫度計(jì)使用的溫度報(bào)警系統(tǒng)包含兩的LED燈和一個(gè)蜂鳴器。當(dāng)溫度超過(guò)上限溫度dw時(shí),LED-RED和蜂鳴器同時(shí)發(fā)出信號(hào)警報(bào),;當(dāng)溫度低于下限溫度dw時(shí),LED-BLUE和蜂鳴器同時(shí)發(fā)出信號(hào)警報(bào)。五、更改溫度報(bào)警上下限值的程序五、更改溫度報(bào)警上下限值的程序 通過(guò)按鍵K、K2、K3、K4可以改變溫度報(bào)警上下限值(gw以及dw),具體方法見(jiàn)硬件設(shè)計(jì),其程序包含在主函數(shù)中其

19、程序包含在主函數(shù)中。六、單片機(jī)主程序的編寫(xiě)六、單片機(jī)主程序的編寫(xiě) 在幾個(gè)主要的程序中,主函數(shù)是最重要的一個(gè)程序,它包含的對(duì)所有子程序的的調(diào)用,通過(guò)對(duì)子程序的調(diào)用來(lái)實(shí)現(xiàn)數(shù)字式溫度計(jì)的功能。除了調(diào)用子程序外,我們還要編寫(xiě)更改溫度報(bào)警上下限值的程序,以及報(bào)警程序等等。程序調(diào)試與程序調(diào)試與Proteus仿真仿真 數(shù)字式溫度計(jì)的源程序編寫(xiě)完之后,我們需要使用KEIL軟件和Proteus共同來(lái)調(diào)試調(diào)試源程序的爭(zhēng)取與否。首先,我們先使用KEIL軟件來(lái)驗(yàn)證源程序是否含有邏輯和語(yǔ)法上的錯(cuò)誤,如圖4-1。點(diǎn)擊菜單欄中的Proget來(lái)建立名為wendu的Proget。一、程序調(diào)試一、程序調(diào)試 在剛調(diào)試時(shí),發(fā)現(xiàn)一些語(yǔ)

20、法上的錯(cuò)誤,進(jìn)過(guò)幾次改正再調(diào)試后,終于正確了。以下幾幅圖分別為最后編譯、連接正確時(shí)的截圖。二、二、Proteus仿真仿真 硬件設(shè)計(jì)的內(nèi)容使用Proteus軟件,來(lái)畫(huà)出主控模塊,采集模塊,鍵盤(pán)模塊,顯示模塊和報(bào)警模塊五個(gè)模塊來(lái)組成完整的Proteus的仿真圖。如下圖所示:1、顯示攝氏溫度、顯示攝氏溫度 如圖所示,點(diǎn)擊仿真按鍵,LCD顯示DS18B20的當(dāng)前溫度16。 2、顯示華氏溫度、顯示華氏溫度 點(diǎn)擊K1鍵,LCD顯示60F(華氏度與攝氏度轉(zhuǎn)換關(guān)系:F=9/5+32),如下圖所示。經(jīng)驗(yàn)證,60.8 F=9/516+32,較精確。3、顯示報(bào)警溫度上下限值、顯示報(bào)警溫度上下限值 當(dāng)點(diǎn)擊K2鍵時(shí),LCD顯示顯示報(bào)警溫度上下限值,其中報(bào)警上限

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論