基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-李瑞卿-1306734005-通信工程-定稿版本_第1頁(yè)
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-李瑞卿-1306734005-通信工程-定稿版本_第2頁(yè)
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-李瑞卿-1306734005-通信工程-定稿版本_第3頁(yè)
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-李瑞卿-1306734005-通信工程-定稿版本_第4頁(yè)
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-李瑞卿-1306734005-通信工程-定稿版本_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于單片機(jī)的溫度控制系統(tǒng)南 陽(yáng) 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)Based on Single Chip Microcomputer Temperature Control System Design學(xué) 院(系): 計(jì)算機(jī)與信息工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 生 姓 名: 李瑞卿 學(xué) 號(hào): 1306734005 指 導(dǎo) 教 師(職稱):魯慶賓(副教授) 評(píng) 閱 教 師: 完 成 日 期: 2015年6月 南陽(yáng)理工學(xué)院Nanyang Institute of Technology基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì) 通信工程專業(yè) 李瑞卿【摘 要】溫度是

2、工業(yè)控制中主要的被控參數(shù)之一,在日常生活中也經(jīng)常要用到溫度的檢測(cè)及控制。本文介紹了一種以AT89C51單片機(jī)為核心的控制器,以DS18B20為溫度傳感器的溫度控制器。首先,通過對(duì)元器件的選擇,設(shè)計(jì)控制器的硬件電路;然后,設(shè)計(jì)相關(guān)應(yīng)用程序;最后,通過仿真,對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)試、分析。最終實(shí)現(xiàn)溫度采集、顯示、控制等功能。仿真結(jié)果表明,所設(shè)計(jì)的控制器能夠完成所需功能,并且具有測(cè)量精準(zhǔn)高、實(shí)時(shí)性好、使用方便等特點(diǎn)?!娟P(guān)鍵詞】:溫度控制;AT89C51;溫度顯示;DS18B20 Based on Single Chip Microcomputer Temperature Control System De

3、signCommunications Engineering Major Li RuiqingAbstract:Temperature control is charged with one of the main industrial parameters, in everyday life also often use to detect and control the temperature. This paper presents a AT89C51 microcontroller as the core to the controller to DS18B20 temperature

4、 sensor temperature controller. First, the choice of components, design of the controller hardware circuit; then, design-related applications; Finally, the simulation of the entire system for debugging and analysis. The ultimate realization of temperature acquisition, display and control functions.

5、Simulation results show that the designed controller to complete the required function, and has high measurement precision, real-time, user-friendly features.Key words: Temperature control; AT89C51; Temperature display; DS18B20目 錄1 緒 論11.1課題背景及意義11.2課題研究的內(nèi)容11.3.溫度控制器的選擇22. 溫度控制器的硬件電路設(shè)計(jì)32.1 溫度傳感

6、器的選擇32.1.1 數(shù)字溫度傳感器32.1.2 熱電阻溫度傳感器42.1.3 方案選擇42.2 溫度采集模塊電路的設(shè)計(jì)42.2.1 DS18B20介紹42.2.2 溫度傳感器工作原理52.2.3 DS18B20工作原理介紹72.2.4 DS18B20使用中的注意事項(xiàng)82.2.5 DS18B20和AT89C51單片機(jī)連接電路92.3 顯示模塊設(shè)計(jì)102.3.1 LCD液晶顯示器簡(jiǎn)介102.3.2 液晶模塊簡(jiǎn)介112.3.3 液晶顯示部分與STC89C51單片機(jī)的接口132.4 按鍵電路的設(shè)計(jì)142.4.1 單片機(jī)檢測(cè)按鍵的原理142.4.2 矩陣鍵盤的設(shè)計(jì)153. 系統(tǒng)軟件設(shè)計(jì)163.1 主程

7、序的設(shè)計(jì)163.2 DS18B20初始化程序173.3 LCD初始化程序的設(shè)計(jì)193.4 繼電器控制的程序204. 仿真結(jié)果及分析264.1 系統(tǒng)仿真264.2 仿真分析275. 總結(jié)28參考文獻(xiàn)29附 錄30致謝36基于單片機(jī)的溫度控制系統(tǒng)1 緒 論1.1課題背景及意義日常生活中溫度控制在各行各業(yè)中都起著重要的作用,因此能夠檢測(cè)溫度變化的溫度檢測(cè)設(shè)備出現(xiàn)在人們的視線中。它能使人們能及時(shí)看到溫度變化的第一手資料,提示溫度變化情況,協(xié)助人們及時(shí)調(diào)整,并有溫度報(bào)警作用,讓溫度控制更好的服務(wù)于整個(gè)社會(huì)和人們的生活。21世紀(jì)是電子技術(shù)飛速發(fā)展的時(shí)代,人類的生活發(fā)生了質(zhì)的變化,特別是隨著大規(guī)模集成電路的

8、出現(xiàn)微型計(jì)算機(jī)應(yīng)運(yùn)而生,讓人類社會(huì)進(jìn)入了一個(gè)新的時(shí)代。雖然微機(jī)可以完成各種各樣的工程控制,但是微機(jī)價(jià)格高,對(duì)于大多數(shù)的工業(yè)控制來說,并不是最佳選擇。于是單片機(jī)就出現(xiàn)在了人們的視野中。它是一個(gè)簡(jiǎn)化的微機(jī),將微機(jī)的中央處理器,存儲(chǔ)單元,I/O接口,定時(shí)器/計(jì)數(shù)器等集成在一片芯片上。和微機(jī)比較,單片機(jī)價(jià)格低廉,適合應(yīng)用在工業(yè)的控制場(chǎng)合以降低成本。另外,單片機(jī)可靠性高,性能穩(wěn)定??稍趶?fù)雜的工業(yè)環(huán)境下運(yùn)行。單片機(jī)依靠其高性價(jià)比,在工業(yè)控制,工業(yè)生產(chǎn),家用電器制造等方面得到了廣泛的應(yīng)用。溫度是表征物體冷熱程度的物理量,工農(nóng)業(yè)生產(chǎn)過程中溫度是一個(gè)重要的參數(shù)。溫度測(cè)量在產(chǎn)品生產(chǎn),工業(yè)設(shè)計(jì),能源節(jié)約中起到了關(guān)鍵

9、性的作用。隨著科學(xué)技術(shù)的進(jìn)步和生產(chǎn)的需要,溫度傳感器不斷更新豐富起來。溫度作為一個(gè)模擬量,如果采用合適的技術(shù)和元件,將模擬的溫度量轉(zhuǎn)化為數(shù)字量雖說不難,但電路也很復(fù)雜,成本也很高。溫度測(cè)量中測(cè)量溫度是重點(diǎn),本設(shè)計(jì)中單片機(jī)溫度測(cè)量同樣如此。1.2課題研究的內(nèi)容本設(shè)計(jì)研究的主要課題是基于單片機(jī)的水溫控制系統(tǒng),介紹了對(duì)爐內(nèi)溫度的顯示、控制和報(bào)警,實(shí)現(xiàn)了溫度的實(shí)時(shí)顯示及控制。其中爐內(nèi)溫度控制中,采用AT89C51單片機(jī)、DS18B20、和LCD的硬件電路檢測(cè)和顯示實(shí)時(shí)水溫,采用DS18B20與單片機(jī)相接再由硬件與軟件電路組合來實(shí)現(xiàn)對(duì)加熱電阻絲的控制和超出規(guī)定的上下限溫度的報(bào)警。1.3.溫度控制器的選擇

10、 溫度控制器選擇基于51單片機(jī)的溫度控制器,圖2-1是基于51單片機(jī)的溫度控制器框圖。該控制器由溫度采集模塊、控制模塊、顯示模塊、報(bào)警模塊以及電源模塊等組成。基于單片機(jī)的溫度控制器框圖如圖2-1所示。圖1-1 基于單片機(jī)溫度控制器框圖51單片機(jī)是控制器的控制核心,因此單片機(jī)的選擇,對(duì)所設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)以及功能的擴(kuò)展有著很大的影響。單片機(jī)種類很多,在眾多51系列單片機(jī)中,較為常用的是ATMEL 公司的AT89C51和AT89S52單片機(jī),AT89C51片內(nèi)4KROM是Flash工藝的,使用專用的編程器自己就可以隨時(shí)對(duì)單片機(jī)進(jìn)行電擦除和改寫,片內(nèi)有128字節(jié)的RAM。而AT89S52含有在系統(tǒng)可編程

11、的Flash存儲(chǔ)器,片內(nèi)有8K閃存,RAM的容量也較AT89C51大,為256字節(jié)。顯然這種單片機(jī)優(yōu)點(diǎn)更多,開發(fā)時(shí)間也大為縮短。2. 溫度控制器的硬件電路設(shè)計(jì)2.1 溫度傳感器的選擇溫度是表征物體冷熱程度的物理量,它可以通過物體隨溫度變化的某些特性(如電阻、電壓變化等特性)來間接測(cè)量,利用這種物理特性制成的傳感器稱為溫度傳感器。常用的溫度傳感器有熱電偶、熱敏電阻、熱電阻、集成溫度傳感器及數(shù)字式溫度傳感器等多種溫度傳感器。2.1.1 數(shù)字溫度傳感器典型的數(shù)字溫度傳感器如DS18B20,該傳感器主要特性如下:1.數(shù)據(jù)線供電是寄生電源方式下的供電方式,電壓適應(yīng)的范圍更寬,電壓范圍:3.05.5V;2

12、.DS18B20在和微處理器的連接僅僅需一條總線即就可以實(shí)現(xiàn)DS18B20和微處理器雙向的通信,它的單線接口方式十分特殊;3.DS18B20可以支持多個(gè)點(diǎn)的組網(wǎng)功能,多個(gè)DS18B20可并聯(lián)的在唯一的總線上,能夠?qū)崿F(xiàn)組網(wǎng)的多點(diǎn)測(cè)溫;4.轉(zhuǎn)換的電路及全部傳感器元件就像一只三極管集成在的集成電路內(nèi),DS18B20在使用的時(shí)候不需要任何的外圍元件;5.在-10+85時(shí)精度為±0.5,測(cè)溫范圍55+125;6.可分辨溫度依次為0.5、0.25、0.125和0.0625,相對(duì)應(yīng)的可以編程的分辨率是912位,可實(shí)現(xiàn)高精度測(cè)溫;7.12位分辨率時(shí)最多在750毫秒內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,在9位分辨率時(shí)

13、最多在 93.75毫秒內(nèi)把溫度轉(zhuǎn)換為數(shù)字,速度更快;8.直接輸出數(shù)字溫度信號(hào)的測(cè)量結(jié)果,可傳送CRC校驗(yàn)碼,同時(shí)以"單總線"串行方式傳送給CPU,有極強(qiáng)抗干擾和糾錯(cuò)能力;9.負(fù)壓特性:接反電源的極性時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。2.1.2 熱電阻溫度傳感器熱電阻的測(cè)量精度高,性能穩(wěn)定,使用方便,測(cè)量范圍寬,在高精度、低溫測(cè)量中占有重要的地位。熱電阻傳感器主要用于中低溫度(-200+650或850)范圍的溫度測(cè)量。常用的工業(yè)標(biāo)準(zhǔn)化熱電阻有鉑熱電阻和銅熱電阻。鉑電阻傳感器是利用金屬鉑(Pt)的電阻值隨溫度變化而變化的物理特性而制成的溫度傳感器。以鉑電阻作為測(cè)溫元件進(jìn)

14、行溫度測(cè)量的關(guān)鍵是要能準(zhǔn)確地測(cè)量出鉑電阻傳感器的電阻值。鉑電阻具有適用范圍廣、測(cè)量范圍大、穩(wěn)定性高、重復(fù)性好、價(jià)格低廉、使用方便等優(yōu)點(diǎn),成為目前工業(yè)和實(shí)驗(yàn)室中溫度測(cè)量應(yīng)用最廣泛普遍的傳感元件之一,工業(yè)中應(yīng)用較多的熱電阻傳感器如Pt100。2.1.3 方案選擇對(duì)比上述兩種方案,雖然Pt100的測(cè)量溫度范圍比較大,但是由于其測(cè)溫原理是電阻值隨著溫度的改變而改變,需要設(shè)計(jì)非常優(yōu)良的溫度采集電路,其中應(yīng)包括測(cè)溫部分,線性化部分,放大部分,A/D轉(zhuǎn)換部分,這就會(huì)使外圍的電路更加復(fù)雜。DS18B20是數(shù)字式溫度傳感器,只需一根總線就可以與單片機(jī)通信,是外圍的電路大大簡(jiǎn)化,測(cè)量的精度更準(zhǔn)確。因此本控制器的設(shè)

15、計(jì)中,溫度傳感器擬選擇DS18B20作為溫度采集傳感器。2.2 溫度采集模塊電路的設(shè)計(jì)2.2.1 DS18B20介紹DS18B20引腳圖如圖2-1所示。圖2-1 DS18B20引腳圖DALLAS 最新的單線數(shù)字溫度傳感器DS18B20是一種新型“一線器件”,它的體積更小、更適用于多種場(chǎng)合、而且適用電壓更寬、也更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司開發(fā)的數(shù)字化溫度傳感器DS18B20也是世界上第一片支持“一線總線”接口的數(shù)字溫度傳感器。溫度的測(cè)量范圍為-55+125 攝氏度,能編程為9位12 位轉(zhuǎn)換精度,0.0625攝氏度的測(cè)溫分辨率,分辨率的設(shè)定參數(shù)及用戶設(shè)定的報(bào)警溫度會(huì)存儲(chǔ)在EEPROM 中,掉電

16、后依然能保存。用符號(hào)擴(kuò)展的16位數(shù)字量方式串行的輸出被測(cè)溫度;采用寄生電源方式產(chǎn)生,其工作的電源既可以遠(yuǎn)端引入;3 根或2根線上可并聯(lián)多個(gè)DS18B20,CPU只需要一根端口線就能與諸多的DS18B20 通信,較少占用微處理器的端口,可以節(jié)省邏輯電路和大量的引線,因而用它來組成的測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可掛多個(gè)這樣的數(shù)字溫度計(jì),非常的方便。2.2.2 溫度傳感器工作原理DS18B20的讀寫時(shí)序及測(cè)溫原理與DS1820是相同的,得到的溫度值的位數(shù)卻會(huì)因?yàn)榉直媛实牟煌煌?,而且進(jìn)行溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間從2s 減為750ms。 DS18B20的測(cè)溫原理:低溫度系數(shù)的晶振,它是用以產(chǎn)生

17、固定頻率的脈沖信號(hào)給計(jì)數(shù)器1,它的振蕩頻率受到溫度的影響非常的小。高溫度系數(shù)的晶振,則它的振蕩率會(huì)隨著溫度的變化而明顯的改變,產(chǎn)生的信號(hào)就作為計(jì)數(shù)器2的脈沖輸入。溫度寄存器以及計(jì)數(shù)器1被預(yù)先設(shè)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。對(duì)從低溫度系數(shù)晶振產(chǎn)生的脈沖,將會(huì)通過計(jì)數(shù)器1來進(jìn)行減法的計(jì)數(shù),當(dāng)計(jì)數(shù)器1預(yù)置的值減到了0的時(shí)候,計(jì)數(shù)器1的預(yù)置值將重新裝入,這時(shí)候溫度寄存器的值就加1。計(jì)數(shù)器1也就重新開始進(jìn)行計(jì)數(shù),如此循環(huán),停止溫度寄存器值的累加時(shí)計(jì)數(shù)器2的計(jì)數(shù)值到0,所測(cè)溫度就為此時(shí)溫度寄存器中的數(shù)值。DS18B20功能特點(diǎn):1.采用了總線技術(shù),與單片機(jī)的通信只需要一根I/O線,在一根線上可以掛接多個(gè)的D

18、S18B20。2.每只DS18B20它是根據(jù)序列號(hào)來訪問相應(yīng)的器件,具有一個(gè)獨(dú)有的,不可更改的64位的序列號(hào)。3.低壓供電,電源范圍為3-5V,可本地供電,也能直接通過數(shù)據(jù)線提供電源(即寄生電源2方式)。4.在-10°C至+85°C范圍內(nèi)的可以達(dá)到精度為±0.5攝氏度,測(cè)溫的范圍為55+125攝氏度。5.溫度超過了的預(yù)定值的器件可以用報(bào)警搜索命令識(shí)別以及尋址。6.用戶可以自己設(shè)定報(bào)警上下限溫度。7.它轉(zhuǎn)換12位的溫度的最大時(shí)間為750毫秒,可編輯的數(shù)據(jù)位9-12位。8.DS18B20的分辨率由用戶通過EEPROM設(shè)置為9-12位。9.DS18B20可以將檢測(cè)到的溫

19、度值直接轉(zhuǎn)化為數(shù)字量,并且通過串行通信方式。DS18B20有4個(gè)主要數(shù)據(jù)部件:1. 光刻ROM中的64位序列號(hào)在出廠之前就已經(jīng)被光刻好了,它可看作該DS18B20的地址的序列碼。64位光刻ROM的排列為:開始的8位 (28H)是產(chǎn)品類型的標(biāo)號(hào),接著48位是該DS18B20的自身序列號(hào),最后的8位是前面的56位循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是讓每一個(gè)DS18B20都不相同,這樣的話就能夠一根總線上可掛接多個(gè)的DS18B20。2. DS18B20溫度傳感器能實(shí)現(xiàn)對(duì)溫度的測(cè)量,以12位的轉(zhuǎn)化為例:用16位的符號(hào)擴(kuò)展二進(jìn)制補(bǔ)碼讀數(shù)的形式提供,以0.0625/LSB的形

20、式表達(dá),其中S是符號(hào)位。3. DS18B20溫度傳感器它的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM以及一個(gè)非易失性的、可電擦除的EEPRAM,后者存放高溫度和低溫度的觸發(fā)器 TH、TL以及結(jié)構(gòu)寄存器。4.配置寄存器。DS18B20內(nèi)部結(jié)構(gòu)及功能:DS18B20內(nèi)部的結(jié)構(gòu)如圖3-7所示。主要包括以下部分:電源,溫度傳感器,64位的ROM單總線接口,用于存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲(chǔ)用戶設(shè)定溫度上下限的TH和TL觸發(fā)器,控制邏輯,8為循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等7部分。DS18B20內(nèi)部結(jié)構(gòu)如圖2-2所示。圖2-2 DS18B20內(nèi)部結(jié)構(gòu)2.2.3 DS18B20工作原理介紹溫度的讀?。篋S

21、18B20出廠時(shí)配置為12位,讀取溫度時(shí)共讀取16位,所以要把后11位的2進(jìn)制轉(zhuǎn)化為10進(jìn)制后再乘以0.0625就是所測(cè)的溫度,還需判斷正負(fù)。前5個(gè)的數(shù)字為符號(hào)位,若前5位為1時(shí),讀取的溫度就為負(fù)數(shù);若前5位為0時(shí),讀取的溫度就為正數(shù)。DS18B20寫操作:1.數(shù)據(jù)線首先置低電平“0”。2.延時(shí)的時(shí)間為15ms。3.再按從低位到高位的順序發(fā)送字節(jié)(一次只能發(fā)送一位)。4.延時(shí)的時(shí)間為45ms。5.把數(shù)據(jù)線拉到高電平。6.重復(fù)上(1)到(6)的操作,一直到所有的字節(jié)全部都發(fā)送完為止。7.最后把數(shù)據(jù)線拉高。DS18B20讀操作:1.把數(shù)據(jù)線拉高“1”。2.延時(shí)2ms。3.數(shù)據(jù)線拉低“0”。4.延時(shí)

22、15ms。5.將據(jù)線拉高“1”。6.延時(shí)15ms。7.讀數(shù)據(jù)線的狀態(tài)得到了1個(gè)狀態(tài)位,并且進(jìn)行數(shù)據(jù)處理。8.延時(shí)30ms。2.2.4 DS18B20使用中的注意事項(xiàng)DS18B20 雖具有連接方便、測(cè)溫系統(tǒng)簡(jiǎn)單、占用口線少、測(cè)溫的精度高等優(yōu)點(diǎn),然而在實(shí)際的應(yīng)用中也應(yīng)該注意以下幾方面問題:1.DS18B20 從測(cè)溫結(jié)束直到把溫度值轉(zhuǎn)換成為了數(shù)字量,需要一些轉(zhuǎn)換時(shí)間,這必須保證,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤現(xiàn)象,從而使溫度輸出總是顯示為85度。2.在實(shí)際的使用中,應(yīng)該使電源電壓保持在5V 左右的大小,若是電源的電壓過低了,就會(huì)降低所測(cè)得的溫度精度。3.較小的硬件開銷就需要比較復(fù)雜的軟件來進(jìn)行補(bǔ)償,因?yàn)镈S18

23、20和微處理器間數(shù)據(jù)是串行傳送的,所以,對(duì)DS1820進(jìn)行讀寫編程,就必須嚴(yán)格保證讀寫時(shí)序,否則就不能讀取測(cè)得的溫度值。4.DS18B20的有關(guān)資料由于未提及單總線上所掛DS18B20 數(shù)量,就使人誤認(rèn)為能夠掛任意多個(gè)的DS18B20,但在實(shí)際的應(yīng)用中并不是這樣的,如果在單總線上所掛載的DS18B20超過了8個(gè),就要解決微處理器的總線驅(qū)動(dòng)問題,在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)必須注意這一點(diǎn)。5.在DS18B20測(cè)溫程序的設(shè)計(jì)中,向DS18B20 發(fā)出了溫度轉(zhuǎn)換命令后,程序總是要等待DS18B20的返回信號(hào),若某個(gè)DS18B20 接觸不好或這斷線,當(dāng)程序讀該DS18B20 時(shí),將會(huì)沒有返回的信號(hào),程序就

24、進(jìn)入了死循環(huán),這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)的時(shí)候也要給予重視。2.2.5 DS18B20和AT89C51單片機(jī)連接電路DS18B20可以有兩種供電的方式,一種用的是電源供電的方式,此時(shí)DS18B20的1腳接地,3腳接電源,2腳是信號(hào)線。另一種是寄生電源供電的一種方式。如圖2-3 所示單片機(jī)端口接的是單總線,為了在DS18B20有效的時(shí)鐘周期之內(nèi)提供的電流足夠,對(duì)總線的上拉可用一個(gè)MOSFET管來完成。當(dāng)DS18B20處于溫度A/D轉(zhuǎn)換操作和寫存儲(chǔ)器操作時(shí),必須有強(qiáng)的上拉在總線上,上拉的最大開啟時(shí)間為10微秒。采用寄生電源供電的供電方式時(shí)VDD端接地,單線制由于只有一根線,因此發(fā)

25、送接口必須是三態(tài)的。DS18B20與單片機(jī)的接口電路如圖2-3所示。圖2-3 DS18B20與單片機(jī)的接口電路2.3 顯示模塊設(shè)計(jì)2.3.1 LCD液晶顯示器簡(jiǎn)介顯示器是人和機(jī)器交流信息的重要界面,早期的是以顯像管(CRT/Cathode Ray Tube)顯示器為主,但是隨著技術(shù)的不斷發(fā)展,各種各樣的顯示技術(shù)不斷誕生,而液晶(LCD)顯示器由于具有耗電量較低、短小輕薄、無輻射的危險(xiǎn),平面直角顯示,和穩(wěn)定不閃爍的影像等優(yōu)勢(shì),更是在近年來不斷下跌的價(jià)格吸引下,逐漸取代了主流的CRT之地位。液晶是一種既有液體的流動(dòng)性還具光學(xué)特性的有機(jī)化合物,它的透明程度和呈現(xiàn)顏色受外加電場(chǎng)影響,利用這個(gè)特點(diǎn)就可以

26、做成字符顯示器。液晶顯示器(LCD)英文為L(zhǎng)iquid Crystal Display,它是一種采用液晶控制透光度的技術(shù)來實(shí)現(xiàn)色彩的顯示器。和CRT顯示器比,LCD的優(yōu)點(diǎn)是十分明顯的。因?yàn)橥ㄟ^控制是否透光從而控制亮和暗,當(dāng)色彩不變化時(shí),液晶也就保持不變,這樣就不用考慮刷新率的問題。顯示接口用來顯示系統(tǒng)的狀態(tài),命令和采集的電壓數(shù)據(jù)。本系統(tǒng)的顯示部分用的是LCD液晶模塊,采用的是一個(gè)16×1字符型液晶的顯示模塊。 點(diǎn)陣圖形式的液晶顯示器是由 M 行×N 列個(gè)顯示單元組成的,若LCD 顯示屏有64行,每行有 128列,每 8列對(duì)應(yīng) 1 個(gè)字節(jié)的 8 個(gè)位,則每行有 16 字節(jié),共

27、有 16×8=128個(gè)點(diǎn)所組成,屏上 64×16 個(gè)顯示單元和顯示 RAM 區(qū) 1024 個(gè)的字節(jié)是相對(duì)應(yīng)的,屏上相應(yīng)位置的亮暗和每一個(gè)字節(jié)的內(nèi)容是對(duì)應(yīng)的。一個(gè)字符是由 6×8 或者 8×8一個(gè)點(diǎn)陣所組成的,所以要找到和屏上某幾個(gè)位置相對(duì)應(yīng)顯示 RAM區(qū)的 8 個(gè)字節(jié),而且應(yīng)該使每一個(gè)字節(jié)不的同位為1狀態(tài),其它的則為0,為1的點(diǎn)亮,為0的點(diǎn)為暗,這樣就組成了某一個(gè)字符。但是對(duì)內(nèi)部自帶字符發(fā)生器的控制器來說,字符顯示就會(huì)比較簡(jiǎn)單了,可以使控制器在文本方式下工作,根據(jù)在每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址和LCD開始顯示的行列號(hào),設(shè)立光標(biāo),在此送入該字符的對(duì)應(yīng)

28、代碼就可以了。2.3.2 液晶模塊簡(jiǎn)介L(zhǎng)M016L結(jié)構(gòu)及功能:LM016L液晶模塊采用了HD44780的控制器,hd44780是具有簡(jiǎn)單而功能較強(qiáng)的指令集,能實(shí)現(xiàn)字符移動(dòng),閃爍等一些功能,LM016L與單片機(jī)MCU通訊可以采用8位或者4位并行傳輸?shù)膬煞N方式,hd44780控制器是由兩個(gè)8位的寄存器,地址計(jì)數(shù)器RAM(AC),和字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),顯示數(shù)RAM(DDRAM),及指令寄存器(IR)以及數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF)。寄存指令碼用IR,只可以寫入不可以讀出,DR用以寄存數(shù)據(jù),數(shù)據(jù)是暫存從DDRAM和CGRAM讀出,或內(nèi)部操作自動(dòng)的寫入D

29、DRAM和CGRAM的數(shù)據(jù),當(dāng)BF為1時(shí),液晶模塊就會(huì)處于內(nèi)部模式,不響應(yīng)接受數(shù)據(jù)和外部操作指令,DDTAM用以存儲(chǔ)顯示字符,能夠存儲(chǔ)總共80個(gè)字符碼,CGROM是由5*10點(diǎn)陣字符32種和8位字符碼生成的5*7點(diǎn)陣字符160種.CGRAM是專門給用戶編寫特殊字符而留的,容量只有64個(gè)字節(jié),可以自定義4個(gè)5*10點(diǎn)陣字符或8個(gè)5*7點(diǎn)陣字符,AC可存儲(chǔ)CGRAM和DDRAM的地址,若是地址碼隨指令寫入了IR的話,那么IR就自動(dòng)把地址碼裝入AC,與此同時(shí),選擇DDRAM或者CGRAM5。LM016L晶模塊的引腳圖如圖2-4所示。圖2-4 1601引腳圖LM016L引腳介紹:Vss(1腳):一般的

30、會(huì)接地。Vdd(2腳):一般接電源。Vee(3腳):液晶顯示器的對(duì)比度調(diào)整端,接電源時(shí)它的對(duì)比度是最弱的,接地時(shí)它的對(duì)比度卻是最高的(如果對(duì)比度過高則會(huì)產(chǎn)生“鬼影”,使用時(shí)可通過一個(gè)10K電位器用來調(diào)整對(duì)比度)。RS(4腳):RS是選擇寄存器的引腳,低電平0時(shí)選擇的是指令寄存器、高電平1時(shí)就會(huì)選擇數(shù)據(jù)寄存器。R/W(5腳):R/W是讀寫的信號(hào)線,低電平(0)時(shí)則進(jìn)行的是寫操作,高電平(1)時(shí)進(jìn)行的是讀操作。E(6腳):E(或EN)端是使能(enable)端,也即下降沿使能。DB0(7腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的 0位(最低位)。DB1(8腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線 的1位。DB

31、2(9腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的 2位。DB3(10腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的 3位。DB4(11腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線 的4位。DB5(12腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線的 5位。DB6(13腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線的 6位。DB7(14腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線 的7位(最高位)(也是busy flag)。寄存器選擇控制如表2-5。表2-5寄存器選擇控制RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busy flag(DB7),及讀取位址計(jì)數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器中讀取數(shù)據(jù)2.3.

32、3 液晶顯示部分與STC89C51單片機(jī)的接口 如圖3-5所示。用89C51的P0口作數(shù)據(jù)線,用P1.2、P1.1、P1.0分別作LCD的E、R/W、RS。其中,E是下降沿觸發(fā)片選信號(hào),R/W是讀寫信號(hào),RS是寄存器選擇信號(hào),本模塊有如下設(shè)計(jì)要點(diǎn):顯示模塊的初始化:首先要清屏,然后再設(shè)置8位接口數(shù)據(jù)位,顯示的行數(shù)為1行,字型的為5×7點(diǎn)陣,然后再設(shè)置成整體顯示,取消光標(biāo)以及字體的閃爍,最后再設(shè)置成正向增量的方式且為不移位。送字符給LCD顯示緩沖區(qū),程序采用的是一個(gè)顯示的字符,2個(gè)字符數(shù)組,另一則顯示電壓數(shù)據(jù),相應(yīng)數(shù)組中被送入要顯示的字符或者數(shù)據(jù),完成之后再統(tǒng)一的顯示.LCD顯示的緩沖

33、區(qū)送人一個(gè)要顯示的字符或者數(shù)據(jù),通過軟件延時(shí)2.5毫秒后,再作個(gè)數(shù)是否夠顯示的判斷,若不足夠則地址加一,取下一個(gè)要顯示的字符或者數(shù)據(jù)。液晶與80C51單片機(jī)連接電路如圖2-6所示。圖2-6 液晶與89C51單片機(jī)的連接電路2.4 按鍵電路的設(shè)計(jì)2.4.1 單片機(jī)檢測(cè)按鍵的原理單片機(jī)的I/O口即可以作為輸出也可以作為輸入使用,當(dāng)該檢測(cè)按鍵使用的是它的輸入功能,我們把按鍵的其中一端接地,另一段與單片機(jī)的I/O口相連,開始時(shí)先給I/O口賦一個(gè)高電平,然后讓單片機(jī)一直不斷循環(huán)檢測(cè)該I/O口是已經(jīng)否變?yōu)榱说碗娖剑羰前存I閉合,就相當(dāng)于此I/O口通過按鍵接地了,變成低電平,程序如果檢測(cè)到I/O口變?yōu)榱说碗?/p>

34、平就說明該按鍵已被按下,然后就執(zhí)行相應(yīng)的指令和程序。2.4.2 矩陣鍵盤的設(shè)計(jì)鍵盤接口電路是單片機(jī)系統(tǒng)設(shè)計(jì)非常重要的一環(huán),作為人機(jī)交互界面里最常用的輸入設(shè)備。我們可以通過鍵盤輸入數(shù)據(jù)或命令來實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。通過4X4的矩陣鍵盤來可以對(duì)溫度方便的進(jìn)行設(shè)定,并通過液晶顯示器實(shí)時(shí)顯示溫度設(shè)置的情況。4×4 的矩陣式鍵盤由4 根列線和4 根行線交叉構(gòu)成,行列的交叉點(diǎn)上就是按鍵,這樣就有16個(gè)按鍵。其中交叉點(diǎn)的行線和列線不連接,當(dāng)按鍵按下,位于交叉點(diǎn)處的列線和行線導(dǎo)通。行線由上拉電阻連接VCC。若是無按鍵按下,行線為高電平;若是有鍵按下,行、列線在交點(diǎn)導(dǎo)通,此時(shí),行線電平狀態(tài)是與此行線相連

35、列線的電平狀態(tài)關(guān)聯(lián)。這是判斷按鍵是否按下的關(guān)鍵環(huán)節(jié)。但是,矩陣鍵盤的每一條行線均和4條列線相連接,位于交點(diǎn)處的按鍵是否按下均會(huì)影響該鍵所在列線和行線的電平狀態(tài),各個(gè)按鍵之間將會(huì)相互的影響,按鍵分析時(shí)必須把列線、行線的狀態(tài)信號(hào)配合處理,才能確定閉合鍵的位置。在本設(shè)計(jì)中,按鍵電路原理圖如圖2-7所示。圖2-7 按鍵電路原理圖3. 系統(tǒng)軟件設(shè)計(jì)3.1 主程序的設(shè)計(jì)整個(gè)設(shè)計(jì)系統(tǒng)功能由軟件配合硬件電路來實(shí)現(xiàn),若硬件已經(jīng)定型,軟件的功能也就基本上確定了。從軟件的不同功能可為兩大類:一類是主程序(監(jiān)控軟件),是整個(gè)控制系統(tǒng)的核心,專門用于協(xié)調(diào)操作者和各執(zhí)行模塊的關(guān)系。二類是子程序(執(zhí)行軟件),它用來實(shí)現(xiàn)各種

36、實(shí)質(zhì)性的功能,比如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)小的執(zhí)行軟件就是一個(gè)小功能執(zhí)行的模塊。在這里一一的列出各執(zhí)行模塊,并為每一個(gè)執(zhí)行模塊進(jìn)行接口和功能的定義。規(guī)劃好各個(gè)執(zhí)行模塊以后,就可以進(jìn)行監(jiān)控程序的規(guī)劃了。首先應(yīng)根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序的結(jié)構(gòu),然后再根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。主程序流程圖如圖3-1所示。圖3-1 主程序流程圖主程序的C語(yǔ)言程序如下:/* 主程序*/main() set(); /開始設(shè)置while(1) /設(shè)置好后進(jìn)入死循環(huán) lcd_init(); / 初始化LCDkey(); /鍵盤掃描error(); /檢查是否出錯(cuò)r

37、eadtemp(); /讀取溫度值lcd(); /顯示子函數(shù)relay(); /控制繼電器delay(500); /延時(shí)3.2 DS18B20初始化程序DS18B20初始化步驟如下:1、高電平“1”狀態(tài)必須先給數(shù)據(jù)線。2、然后延時(shí)(該時(shí)間的要求不嚴(yán)格,但盡可能短一點(diǎn))。3、把數(shù)據(jù)線拉低到電平“0”狀態(tài)。4、再延時(shí)750微秒(該時(shí)間的范圍為480-960ms)。5、把數(shù)據(jù)線拉高到電平“1”。6、延時(shí)等待(初始化已成功,在15-60ms時(shí)間之內(nèi)DS18B20返回一個(gè)低電平“0”。根據(jù)該狀態(tài)來確定它是否存在,但不可無限進(jìn)行等待,否則程序會(huì)進(jìn)入死循環(huán)狀態(tài),故要有超時(shí)控制的操作)。7、CPU如果讀到了數(shù)

38、據(jù)線上“0”狀態(tài)的低電平,還要再做延時(shí),延時(shí)時(shí)間由發(fā)出高電平開始算起(第(5)步的時(shí)間開始算),最少需480ms。8、再次把數(shù)據(jù)線拉高到高電平“1”后就結(jié)束。 DS18B20初始化的C語(yǔ)言程序如下:/* DS18B20初始化子程序*/void Init_DS18B20() unsigned char x=0; /定義字符型局域變量DS = 1; /總線拉高tmpDelay(8); /延時(shí),準(zhǔn)備與DS18B20通訊DS = 0; /總線拉低tmpDelay(80); /延時(shí),給DS18B20復(fù)位信號(hào)DS = 1; /總線拉高tmpDelay(14); /延時(shí),等待DS18B20響應(yīng)x=DS; /

39、讀DS18B20響應(yīng)狀態(tài)tmpDelay(20); /延時(shí)3.3 LCD初始化程序的設(shè)計(jì)LM016L的讀操作時(shí)序如圖3-2所示。LM016L的寫操作時(shí)序如圖3-3所示。LM016L的初始化的C語(yǔ)言程序如下:/* LCD初始化子程序*/lcd_init() lcd_wcmd(0x38); /設(shè)置8位字符顯示,5*10點(diǎn)陣字符delay(1); /延時(shí)lcd_wcmd(0x0c); /開顯示、光標(biāo)和閃爍關(guān)閉delay(1); /延時(shí)lcd_wcmd(0x06); /讀、寫操作后,AC增一、畫面不動(dòng)delay(1); /延時(shí)lcd_wcmd(0x01); /清除LCD的顯示內(nèi)容delay(1); /

40、延時(shí)3.4 繼電器控制的程序當(dāng)測(cè)量的環(huán)境溫度低于設(shè)定溫度時(shí),啟動(dòng)加熱繼電器,使系統(tǒng)自動(dòng)加熱,當(dāng)測(cè)量的溫度高于設(shè)定的溫度時(shí),啟動(dòng)降溫繼電器,使系統(tǒng)自動(dòng)降溫,從而使系統(tǒng)的溫度維持在設(shè)定的溫度。系統(tǒng)繼電器控制的C語(yǔ)言程序如下:/* 繼電器控制子程序*/void relay() if(an=0)flagn=0; /實(shí)際溫度為0度,實(shí)際溫度標(biāo)志位置0 if(as=0)flags=0; /設(shè)置溫度為0度,設(shè)置溫度標(biāo)志位置0 if(flagn=0) /實(shí)際溫度標(biāo)志位為0時(shí)循環(huán) if(flags=0) /設(shè)置溫度標(biāo)志位為0時(shí)循環(huán) if(an<as) /若實(shí)際溫度小于設(shè)置溫度循環(huán) up=0; /升溫繼電器

41、閉合 down=1; /降溫繼電器打開 if(an=as) /若實(shí)際溫度等于設(shè)置溫度循環(huán) up=1; /升溫繼電器打開 down=1; /降溫繼電器打開 if(an>as) /若實(shí)際溫度大于設(shè)置溫度循環(huán) down=0; /降溫繼電器閉合up=1; /升溫繼電器打開 if(flags=1) /設(shè)置溫度標(biāo)志位為1時(shí)循環(huán) up=1; /升溫繼電器打開 down=0; /降溫繼電器閉合 if(flagn=1) /實(shí)際溫度標(biāo)志位為1時(shí)循環(huán) if(flags=1) /設(shè)置溫度標(biāo)志位為1時(shí)循環(huán) if(an<as) /若實(shí)際溫度大于設(shè)置溫度循環(huán) up=1; /升溫繼電器打開 down=0; /降溫

42、繼電器閉合 if(an=as) /若實(shí)際溫度等于設(shè)置溫度循環(huán) up=1; /升溫繼電器打開 down=1; /降溫繼電器打開 if(an>as) /若實(shí)際溫度小于設(shè)置溫度循環(huán) down=1; /降溫繼電器打開 up=0; /升溫繼電器閉合if(flags=0) /設(shè)置溫度標(biāo)志位為0時(shí)循環(huán) up=0; /升溫繼電器閉合 down=1; /降溫繼電器打開3.5按鍵程序的設(shè)計(jì)由于實(shí)際波形與理想波形之間有區(qū)別,實(shí)際波形在按下和釋放的瞬間會(huì)有抖動(dòng)的現(xiàn)象,按鍵的抖動(dòng)時(shí)間和機(jī)械特性的長(zhǎng)短有關(guān),一般為5-10毫秒。我們通常手動(dòng)按下按鍵,然后就立即釋放掉按鍵,這個(gè)過程穩(wěn)定閉合的時(shí)間超過了20毫秒。因此,單

43、片機(jī)檢測(cè)按鍵是否按下必須要加上去掉抖動(dòng)的操作,可以通過去抖動(dòng)的電路去掉抖動(dòng),也可以通過專用的去抖動(dòng)芯片去抖動(dòng),但我們常用的是軟件延時(shí),能很容易解決抖動(dòng)問題,而沒有必要再添加多余的硬件電路。按鍵檢測(cè)流程圖如圖3-4所示。圖3-4 按鍵檢測(cè)流程圖按鍵掃描的C語(yǔ)言程序如下:/* 按鍵掃描子程序*/uchar keyscan() P2=0xf0; /行掃描為低電平,列線為高電平 LJC=P2&0xf0; /第一次讀列檢測(cè)狀態(tài) if(LJC!=0xf0) /若有鍵盤被按下 delay(2); /鍵盤消抖 LJC=P2&0xf0; /第二次讀取列檢測(cè)狀態(tài) if(LJC!=0xf0) /若有

44、閉合鍵,則逐行掃描 HSM=0xfe; /掃描碼為0xfe、0xfd、0xfb、0xf7 while(HSM&0x10)!=0) /若掃描碼為0xef,則結(jié)束掃描 P2=HSM; /輸出行掃描碼 LJC=P2&0xf0; /讀列檢測(cè):0xe0、0xd0、0xb0、0x70 if(LJC!=0xf0) /如果有按鍵閉合 keyvalue=(HSM)+(LJC|0x0f); /計(jì)算鍵盤值 P2=0xf0; /測(cè)試按鍵是否松開 while(P2!=0xf0); /進(jìn)入死循環(huán)直至按鍵松開 return(keyvalue); /返回鍵值 else HSM=(HSM<<1)|0x01; /行掃描左移1位 P2=0xf0; /測(cè)試按鍵是否松開 while(P2!=0xf0); /進(jìn)入死循環(huán)直至按鍵松開 return(0x00); /沒有按鍵按下則返回0x004. 仿真結(jié)果及分析4.1 系統(tǒng)仿真1仿真實(shí)驗(yàn)一: 設(shè)定的溫度為-21.00攝氏

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論