基于單片機的太陽能熱水器水溫監(jiān)控系統(tǒng)_第1頁
基于單片機的太陽能熱水器水溫監(jiān)控系統(tǒng)_第2頁
基于單片機的太陽能熱水器水溫監(jiān)控系統(tǒng)_第3頁
基于單片機的太陽能熱水器水溫監(jiān)控系統(tǒng)_第4頁
基于單片機的太陽能熱水器水溫監(jiān)控系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要1ABSTRACT2第1章 緒 論11.1 課題來源11.2 課題背景11.3 研究意義2第二章 系統(tǒng)的總體設(shè)計32.1 溫度控制系統(tǒng)完成的功能32.2系統(tǒng)的控制原理圖32.3 系統(tǒng)整體工作流程:4第三章 硬件電路設(shè)計63.1時鐘電路設(shè)計63.2系統(tǒng)復位電路63.3報警與控制電路設(shè)計73.4 LED顯示電路設(shè)計83.5溫度檢測電路設(shè)計103.6按鍵電路設(shè)計123.7 繼電器控制電路13第四章 軟件設(shè)計134.1 主程序方案144.2 各個模塊子程序設(shè)計154.2.1主程序154.2.2讀出溫度子程序164.2.3數(shù)碼管顯示模塊174.2.3溫度處理程序18第五章 系統(tǒng)仿真195.1測試環(huán)

2、境及工具195.2測試方法195.3測試結(jié)果分析19結(jié) 論20致 謝21參考文獻22附錄一:系統(tǒng)原理圖23附錄二: 程序代碼23摘 要隨著單片機應(yīng)用技術(shù)的成熟和傳感技術(shù)的進步,有關(guān)單片機的應(yīng)用系統(tǒng)趨向:小型化和功能多樣化。所以通常應(yīng)用在工業(yè)生產(chǎn)領(lǐng)域的單片機系統(tǒng)開始走進人們的日常生活,并給人們的日常生活帶來很大的便利。熱水器的水溫監(jiān)控系統(tǒng)以”水溫“這一生活中比常見的變量為研究對象,比較詳細的論述了怎樣利用AT889S52這一芯片為核心,來實現(xiàn):水溫的采集,以及在水溫過載的情況下報警并通過電磁閥來結(jié)束輸出等功能的。關(guān)鍵詞 單片機;水溫;AT89S52;報警;電磁閥 ABSTRACTFollowin

3、g the microcomputer of applied technology becoming maturity and sensing technology improving. The single-chip microcomputer of application system trending to miniaturization and function diversity. So normally used in industrial production areas of single-chip microcomputer system began to enter Peo

4、ple's Daily life, and to People's Daily life a lot of convenienceThe water temperature monitoring system to water heater "water temperature" the life of the common variables than as the research object, more detailed discusses about how to use AT889S52 this chip as the core, to ach

5、ieve the collection, as well as the water temperature: in water temperature under the condition of the overload police and through the electromagnetic valve to end the function such as output.Keywords: Single-chip Microcomputer; The Temperature of Water; AT89S52; Alerting;Electromagnetic valve 第1章 緒

6、 論CPU的工作是接收來自于傳感裝置的溫度信號,并判斷輸入是否合理再根據(jù)輸入的情況來控制輸出。在整個系工作過程中起著無可替代的作用。CPU功能,總的來說是以不同的方式,執(zhí)行各種指令。不同的指令其功自略異。有的指令涉及到枷各寄存器之間的關(guān)系;有的指令涉及到單片機核心電路內(nèi)部各功能部件的關(guān)系;有的則與外部器件如外部程序存儲器發(fā)生聯(lián)系。事實上,CPU是通過復雜的時序電路完成不同的指令功能。所謂CPU的時序是指控制器控照指今功能發(fā)出一系列在時間上有一定次序的信號,控制和啟動一部分邏輯電路,完成某種操作。1.1 課題來源該題目為自選課題。1.2 課題背景單片機以其集成度高、運算速度快、體積小、運行可靠、

7、價格低廉等優(yōu)勢,在過程控制、數(shù)據(jù)采集、機電一體化、智能化儀表、家用電器以及網(wǎng)絡(luò)技術(shù)等方面得到了廣泛的應(yīng)用,特別是單片機技術(shù)的開發(fā)與應(yīng)用,標志著計算機發(fā)展史上又一個新的里程碑。作為計算機兩大發(fā)展方向之一的單片機,以面向?qū)ο蟮膶崟r控制為己任,嵌入到如家用電器、汽車、機器人、儀器儀表等設(shè)備中,使其智能化。目前國內(nèi)外各大電氣公司,大的半導體廠商正在不斷的開發(fā)、使用單片機,使其無論在控制能力,減小體積,降低成本,還是開發(fā)環(huán)境的改善等方面,都得到空前迅速的發(fā)展。溫度檢測控制系統(tǒng)在工業(yè)生產(chǎn)、科學研究和人們的生活領(lǐng)域中,得到了廣泛應(yīng)用。在工業(yè)生產(chǎn)過程中,很多時候都需要對溫度進行嚴格的監(jiān)控,以使得生產(chǎn)能夠順利的

8、進行,產(chǎn)品的質(zhì)量才能夠得到充分的保證。使用自動溫度控制系統(tǒng)可以對生產(chǎn)環(huán)境的溫度進行自動控制,保證生產(chǎn)的自動化、智能化能夠順利、安全進行,從而提高企業(yè)的生產(chǎn)效率。溫度檢測系統(tǒng)應(yīng)用十分廣闊隨著該項技術(shù)的日益成熟和現(xiàn)代生活對方便快捷的要求越來越高,水溫控制系統(tǒng)開始應(yīng)用到生活領(lǐng)域,特別是在2009年美國IBM公司提出的“智慧地球”標志著單片機由工業(yè)生產(chǎn)到日常生活應(yīng)用的轉(zhuǎn)變的標志。單片機的運用已經(jīng)越來越靠近生活,而且通過單片機的運用還能夠更好的節(jié)約有限的社會資源,這也正符合中國要建立“資源節(jié)約型社會”的發(fā)展要求。隨著時代的發(fā)展,科技的進步,單片機在智能儀器儀表、家用電器中、工業(yè)控制、計算機網(wǎng)絡(luò)和通信領(lǐng)域

9、、醫(yī)用設(shè)備等領(lǐng)域的應(yīng)用越來越廣泛。溫度是日常生活中無時不在的物理量,溫度的控制在各個領(lǐng)域都有積極的意義。很多行業(yè)中都有大量的用電加熱設(shè)備,如用于熱處理的加熱爐,用于融化金屬的坩鍋電阻爐及各種不同用途的溫度箱等,采用單片機對它們進行控制不僅具有控制方便、簡單、靈活性大等特點,而且還可以大幅度提高被控溫度的技術(shù)指標,從而能夠大大提高產(chǎn)品的質(zhì)量。因此,智能化溫度控制技術(shù)正被廣泛地采用工業(yè)生產(chǎn)過程當中。1.3 研究意義由于單片機應(yīng)用在這幾年得到空前發(fā)展,有關(guān)單片機的產(chǎn)品也大量運用到生產(chǎn)生活的各個方面。目前在中國單片機市場上,一些家用太陽能熱水器和中小型的洗浴場所,在調(diào)節(jié)溫度時仍然采用手動模式 ,這樣很

10、容易因為手 動誤差而造成水溫輸出地過高或過低,從而給使用者造成不便,甚至嚴重時會將使用者燙傷,本設(shè)計就說是為了著手研究和解決這一問題的。水溫不宜過高過低:洗澡水的溫度超過正常的體溫,即37,稱為熱水??;低于人體溫度,高于皮膚的溫度,即33,叫做溫水浴。水溫在34-36,利于去垢止癢;37-39,利于消除疲勞;40-45能舒筋活血,發(fā)汗鎮(zhèn)痛。洗澡水的溫度可因時制宜,例如冬天可選擇熱水浴,夏天可選用溫水浴。如果浴水過燙,溫度太高,不僅會損傷皮膚,還會使皮膚表面血管擴張,體表血流量驟增,心臟和大腦的血液供應(yīng)減少,常有缺氧和昏倒的危險。不僅是在熱水器方面,生活中其他有關(guān)水溫這一變量的方面也可以運用。可

11、以說水溫監(jiān)測系統(tǒng)的運用正好填補了我國熱水器用戶中低端市場。第二章 系統(tǒng)的總體設(shè)計系統(tǒng)的總體設(shè)計是從系統(tǒng)的整體出發(fā),具體的實現(xiàn):描述該系統(tǒng)是一個怎樣的系統(tǒng),要實現(xiàn)哪些功能,是什么樣的控制原理以及工作流程等方面大體的闡述一下,來為后續(xù)工作思路的展開奠定基礎(chǔ)。單片機與其他的可編譯微處理器,如PLC相比具有組塊靈活,功能強大,價格便宜等優(yōu)點,因此單片機在生活應(yīng)用方向擁有廣大的發(fā)展前景。2.1 溫度控制系統(tǒng)完成的功能本器件以AT89S52單片機系統(tǒng)進行溫度采集與控制 溫度信號由模擬溫度傳感器DS18B20采集輸入AT89S52,主控器能對各溫度檢測器通過LED進行顯示。本機實現(xiàn)的功能:1、利用溫度傳感器

12、采集到當前的溫度,通過AT89S52單片機進行控制,最后通過LED數(shù)碼管以串行口傳送數(shù)據(jù)實現(xiàn)溫度顯示。2、可以通過按鍵任意設(shè)定一個恒定的溫度。3、將水環(huán)境數(shù)據(jù)與所設(shè)置的數(shù)據(jù)進行比較,當水溫低于設(shè)定值時,開啟;當水溫高于設(shè)定溫度時,停止,從而實現(xiàn)對水溫的自動控制。4、當系統(tǒng)出現(xiàn)故障,超出控制溫度范圍時,自動蜂鳴報警。2.2 系統(tǒng)的控制原理圖在系統(tǒng)中,利用傳感器測得熱水器出水管道實際溫度并轉(zhuǎn)換成毫伏級電壓信號,該電壓信號經(jīng)過溫度檢測電路轉(zhuǎn)換成與水溫相對應(yīng)的數(shù)字信號進入單片機,單片機進行數(shù)據(jù)處理后,通過LED顯示器顯示溫度,同時將溫度與設(shè)定溫度比較,以此來判別是否為合理輸出。圖1-1 系統(tǒng)硬件結(jié)構(gòu)示

13、意圖2.3 系統(tǒng)整體工作流程:首先,進行總線的初始化,將報警及繼電器裝置至于關(guān)閉狀態(tài)。其次,從18B20數(shù)字溫度傳感器里讀取水溫的數(shù)字變化量。接著,判定讀取的溫度是否達到輸出要求,超過設(shè)定值時,開啟報警裝置,并打開繼電器切斷水源。另外簡易鍵盤還可以修改溫度的設(shè)定值。 開 始 總線初始化 關(guān)閉繼電器讀18B20水溫數(shù)據(jù) 發(fā)出報警信息是否超出設(shè)定值?是否 顯示當前溫度是設(shè)置新溫度上下限是否有新輸入否 結(jié)束本次進程圖1.2系統(tǒng)工作流程圖第3章 硬件電路設(shè)計該章主要介紹怎樣來實現(xiàn)具體電路的接法問題。電路圖是單片機應(yīng)用的基本,高效簡潔的電路圖才能更好的描述系統(tǒng)的功能。3.1 時鐘電路設(shè)計時鐘電路是用來產(chǎn)

14、生AT89S52單片機工作時所必須的時鐘信號,AT89S52本身就是一個復雜的同步時序電路,為保證工作方式的實現(xiàn),AT89S52在唯一的時鐘信號的控制下嚴格的按時序執(zhí)行指令進行工作 ,時鐘的頻率影響單片機的速度和穩(wěn)定性。通常時鐘由于兩種形式:內(nèi)部時鐘和外部時鐘。我們系統(tǒng)采用內(nèi)部時鐘方式來為系統(tǒng)提供時鐘信號。AT89S52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調(diào)的電容,便構(gòu)成了一個自激勵振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會影響振蕩的頻率、穩(wěn)定性和快速性。晶振頻率為在1.2MHZ12MHZ之間

15、,頻率越高單片機的速度就越快,但對存儲器速度要求就高。為了提高穩(wěn)定性我們采用溫度穩(wěn)定性好的NPO電容,采用的晶振頻率為12MHZ。本次系統(tǒng)的時鐘電路設(shè)計如圖3.2所示。圖3-1 時鐘電路圖3.2 系統(tǒng)復位電路AT89S52的復位輸入引腳RST為單片機提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在AT89S52的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周期以上的高電平時,即可產(chǎn)生復位的操作,只要RST保持高電平,則AT89S52循環(huán)復位,只有當RET由高電平變成低電平以后,AT89S52才從0000H地址開始執(zhí)行程序,本系統(tǒng)采用按鍵復位方式的復位電路。圖3-2 復位電路圖3.3 報警

16、與控制電路設(shè)計 在微型計算機控制系統(tǒng)中,為了安全生產(chǎn),對于一些重要的參數(shù)或系統(tǒng)部位,都設(shè)有緊急狀態(tài)報警系統(tǒng),以便提醒操作人員注意,或采取緊急措施。其方法就是把計算機采集的數(shù)據(jù)或記過計算機進行數(shù)據(jù)處理、數(shù)字濾波,標度變換之后,與該參數(shù)設(shè)定值進行比較,如果高于設(shè)置值1度(或低于設(shè)置數(shù)1度)則進行報警,否則就作為采樣的正常值,進行顯示和控制。同樣熱水器的溫度超出低高設(shè)定的溫度范圍內(nèi)時當P1.4輸出高電平“0”時,晶體管導通,壓電蜂鳴器兩端獲得約+5V電壓而鳴叫,出報警聲音;單片機的P1.1輸出低電平,此時紅色指示燈亮,直到低于設(shè)定的最低溫度時,P1.4輸出高時,三極管截止,蜂鳴器停止發(fā)聲,P1.1輸

17、出電平高電平,發(fā)光二極管滅,報警和控制電路而下圖3-4所示:圖3-3 報警與控制電路與單片機的連接3.4 LED顯示電路設(shè)計LED數(shù)碼管是一種半導體發(fā)光器件,其基本單元是發(fā)光二極管,通過對其不同的管腳輸入相對的電流,會使其發(fā)亮,從而顯示出數(shù)字??梢燥@示:時間、日期、溫度等可以用數(shù)字代替的參數(shù)。 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽極數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽極數(shù)碼管

18、在應(yīng)用時應(yīng)將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當某一字段的陰極為高電平時,相應(yīng)字段就不亮。動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,通過由各自獨立的I/O線控制,當單片機的P0口輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管

19、輪流受控顯示,這就是動態(tài)驅(qū)動。在本設(shè)計中采用了四位八段數(shù)碼管,用動態(tài)驅(qū)動來顯示溫度的值,如圖3.5所示。圖3-4 顯示電路原理圖具體的電路仿真圖設(shè)定AT89S52的P0口接LED數(shù)碼顯示器的8個段顯示,具體的P0.1P0.7分別接LED數(shù)碼顯示器的a.b.c.d.e.f.g.dp端。其中dp端為小數(shù)點標志位,有單片機的P2口中的P2.0p2.3接4位的LED位數(shù)控制端。具體如下圖所示:圖 3-5 數(shù)碼顯示器的具體電路接法3.5 溫度檢測電路設(shè)計本次設(shè)計所采用的溫度傳感器為Dallas半導體公司的數(shù)字化溫度傳感器DS18B20,它是世界上第一片支持“一線總線”接口的溫度傳感器。“一線器件”體積更

20、小、適用電壓更寬、更經(jīng)濟。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。DS18B20可以程序設(shè)定912位的分辨率,精度為±0.5??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20與AT89S52單片機接口電路的設(shè)計DSl8B20數(shù)字溫度計提供9位(二進制)溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DSl8B20或從DSl8B20送出,因此從主機CPU到DSl8B20僅需一條線,當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存

21、存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)。圖3-6 DS18B20與AT89S52單片機的連接DS18B20支持“一線總線”接口,測量溫度范圍為 -55°C-+125°C,在-10-+85°C范圍內(nèi),精度為±0.5°C?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗

22、干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。1.DS18B20產(chǎn)品的特點 (1)只要求一個端口即可實現(xiàn)通信。 (2)在DS18B20中的每個器件上都有獨一無二的序列號。 (3)實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。 (4)測量溫度范圍在-55°C+125°C之間。 (5)數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。 (6)內(nèi)部有溫度上、下限設(shè)置。 2.DS18B20的引腳介紹 TO92封裝的DS18B20引腳功能描述見表1。 表1DS18B20詳細引腳功能描述序 號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。

23、開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。因為一線通信接口,必須在先完成ROM設(shè)定,否則記憶和控制功能將無法使用。主要首先DS18B20提供以下功能命令之一:讀ROM, ROM匹配,搜索ROM,跳過ROM,報警檢查。若指令成功地使DS18B20完成溫度測量,數(shù)據(jù)存儲在DS18B20的存儲器。一個控制功能指揮指示DS18B20的演出測溫。測量結(jié)果將被放置在DS18B20內(nèi)存中,并可以讓閱讀發(fā)出記憶功能的指揮,閱讀內(nèi)容的片上存儲器。溫度報警觸發(fā)器TH和TL都有一字節(jié)EEPROM 的數(shù)據(jù)。如果DS18B20不使用報

24、警檢查指令,這些寄存器可作為一般的用戶記憶用途。在片上還載有配置字節(jié)以理想的解決溫度數(shù)字轉(zhuǎn)換。寫TH,TL指令以及配置字節(jié)利用一個記憶功能的指令完成。所有的數(shù)據(jù)的讀、寫都是從最低位開始。3.6按鍵電路設(shè)計鍵盤共有三個鍵,判斷K2K4鍵是否按下,可采用軟件查詢和中斷的方法,當某個鍵按下時,低電平有效。3個鍵K2K4的功能定義如表所示。K2K4鍵的定義按鍵鍵名功能K2功能轉(zhuǎn)換鍵此鍵按下,顯示溫度設(shè)定值,按鍵松開,顯示當前溫度K3加1鍵設(shè)定溫度值加1K4減1鍵設(shè)定溫度值減1圖3-7 按鍵電路3.7 繼電器控制電路 控制P1.0的高低電平來控制繼電器的斷開和閉合,當P1.0口為低電平時,三極管Q1導通

25、,控制繼電器開始關(guān)閉閥門,當P1.0為高電平時,三極管截止,繼電器開啟閥門。圖3-8 控制電路示意圖第四章 軟件設(shè)計4.1 主程序方案首先要根據(jù)系統(tǒng)的總體功能和鍵盤設(shè)置選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。本部分詳細介紹了基于AT89S52單片機的多路溫度采集控制系統(tǒng)的軟件設(shè)計。根據(jù)系統(tǒng)功能,可以將系統(tǒng)設(shè)計分為若干個子程序進行設(shè)計,如溫度采集子程序,數(shù)據(jù)處理子程序、顯示子程序、執(zhí)行子程序。采用Kiel uVision3集成編譯環(huán)境和匯編語言來進行系統(tǒng)軟件的設(shè)計。本章從設(shè)計思路、軟件系統(tǒng)框圖出發(fā),先介紹整體的思路后,再逐一分析各模塊程序

26、算法的實現(xiàn),最終編寫出滿足任務(wù)需求的程序。并對溫度進行實時顯示。采用C語言編寫代碼, 鑒于篇幅限制及DS18B20 的應(yīng)用已經(jīng)規(guī)范和成熟, 本文僅就主程序流程圖和顯示子程序流程圖及其代碼進行說明。通過定時器T0 P3.4口的定時來實現(xiàn), 在此不再贅述。主程序流程圖主程序通過調(diào)用溫度采集子程序完成溫度數(shù)據(jù)采集, 然后調(diào)用溫度轉(zhuǎn)換子程序轉(zhuǎn)換讀取溫度數(shù)據(jù),調(diào)用顯示子程序進行溫度顯示和判斷溫度數(shù)據(jù)。主程序(見附錄2)調(diào)用四個子程序,分別是溫度采集程序、數(shù)碼管顯示程序、溫度處理程序和數(shù)據(jù)存儲程序。溫度采集程序:對溫度芯片送過來的數(shù)據(jù)進行處理,進行判斷和顯示。數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯

27、示部分。溫度處理程序:對采集到的溫度和設(shè)置的上、下限進行比較,做出判斷,向繼電器輸出。數(shù)據(jù)存儲程序:對鍵盤的設(shè)置的數(shù)據(jù)進行存儲。顯示當前溫度判斷當前溫度值超過設(shè)定溫度1度紅燈亮設(shè)定溫度值是否低于設(shè)定溫度1度是紅燈亮否圖 4-1 系統(tǒng)總流程圖4.2 各個模塊子程序設(shè)計各個模塊子程序包括主程序,讀出溫度子程序,數(shù)碼管顯示模塊程序,溫度處理程序等4.2.1主程序主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖19所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單

28、元中,然后通過調(diào)用顯示子程序顯示出來。 開 始調(diào)用度溫度子程序 數(shù)字變換程序報警并關(guān)閉閥門顯示子程序溫度判別與報警子程序是否符合要求?結(jié)束本次循環(huán)圖4-2 主程序流程圖4.2.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。DS18B20復位、應(yīng)答子程序讀溫度命令子程序?qū)懭胱映绦蛱^ROM匹配命令DS18B20復位、應(yīng)答子程序顯示子程序(延時)寫入子程序?qū)懭胱映绦蛱^ROM匹配命令 溫度轉(zhuǎn)換命令 圖4-3 讀出溫度子程序DS18B20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預期的目的,同時,要注意

29、讀進來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。4.2.3數(shù)碼管顯示模塊本系統(tǒng)采用共陽極數(shù)碼管,用模擬串口的動態(tài)顯示數(shù)據(jù)。其流程圖如圖4.3所示: 取百位數(shù) 查表選段代碼 否 送百位數(shù)輸出是否完成?是 取送十位循環(huán) 取送個位循環(huán)滅LED 返回 點亮LED取送十分位循環(huán)圖4-4 LED顯示子程序4.2.3溫度處理程序系統(tǒng)通過DS18B20采集到溫度和設(shè)置的上、下限進行比較得出結(jié)果,進行報警。第五章 系統(tǒng)仿真5.1 測試不同溫度值下的系統(tǒng)生成結(jié)果系統(tǒng)預設(shè)測量溫度范圍:0-100攝氏度;系統(tǒng)預設(shè)上下限報警溫度:10-30攝氏度;報警蜂鳴器的接口位置:P14口;繼電器開關(guān)

30、控制接口位置:P1.0口;環(huán)境實際溫度超出系統(tǒng)測量范圍的仿真5.1.1.1結(jié)果預測 LED顯示亂碼; 蜂鳴報警器發(fā)出報警;5.1.1.2仿真結(jié)果LED數(shù)碼管顯示器顯示非正常數(shù)字(該顯示為1.8.0而實測溫度為128.0攝氏度);蜂鳴報警器處于高電平狀態(tài);繼電器處于關(guān)閉狀態(tài)5.1.2 溫度處于預設(shè)上下限外5.1.2.1結(jié)果預測 數(shù)碼管顯示當前溫度; 蜂鳴器發(fā)出報警信息:5.1.2.2仿真結(jié)果蜂鳴報警器處于閃爍報警狀態(tài),繼電器處于關(guān)閉狀態(tài),LED數(shù)碼管顯示正常的當前溫度5.1.3 溫度在正常水溫內(nèi)5.1.3.1結(jié)果預測 LED正常顯示當前溫度; 繼電器處于開啟狀態(tài); 蜂鳴報警裝置處于關(guān)閉狀態(tài);5.

31、1.3.2仿真結(jié)果LED數(shù)碼顯示器顯示當前水溫,但數(shù)碼管閃爍處于不穩(wěn)定狀態(tài),蜂鳴報警器處于關(guān)閉狀態(tài),繼電器處于開啟狀態(tài)5.2 測試方法使系統(tǒng)運行,觀察系統(tǒng)硬件檢測是否正常(包括單片機控制系統(tǒng),鍵盤電路,顯示電路,溫度測試電路等)。系統(tǒng)自帶測試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。采用溫度傳感器和溫度計同時測量水溫變化情況,目測顯示電路是否正常。并記錄溫度值,與實際溫度值比較,得出系統(tǒng)的溫度指標。5.3 測試結(jié)果分析自檢正常,溫度顯示正常。因為芯片是塑料封裝,所以對溫度的感應(yīng)靈敏度不是相當高,需要一個很短的時間才能達到穩(wěn)定。在測試低溫度是數(shù)碼管閃爍嚴重,造成數(shù)據(jù)不穩(wěn)定。結(jié) 論通過對熱水器水溫監(jiān)控

32、系統(tǒng)的設(shè)計,使我認識到自己在單片機設(shè)計方面還存在很多的不足與缺陷,特別是在實踐動手方面缺少經(jīng)驗,不能夠更好的將所學知識應(yīng)用到實際開發(fā)中去,因此耽誤大量的時間。經(jīng)過設(shè)計和實踐,本設(shè)計已經(jīng)完成了一個比較完整的溫度檢測預與報警系統(tǒng)。它可以通過鍵盤輸入溫度上限、下限值,然后計算其上限和下限的中間值作為最適溫度值。不斷的采集溫度值,顯示溫度值,如果發(fā)現(xiàn)采集的溫度值高于上限值就通過相應(yīng)的提示燈亮。如果采集的溫度值低于下限值,那么也有相應(yīng)的燈提示操作人員。如果并沒有超過上下限則不會報警。致此本人設(shè)計基本完成了預期的目標,系統(tǒng)在溫度采集、溫度處理和鍵盤處理方面做的比較好,而在數(shù)據(jù)的存儲和數(shù)碼管的顯示方面不夠理

33、想。主要存在以下幾個方面:(1) 程序的代碼不夠精練,浪費AT89S52內(nèi)的FLASH ROM;(2) 未對以前的溫度數(shù)值進行存儲,使以后不能利用這些數(shù)據(jù);(3) 對數(shù)碼管的控制考慮不周,以致出現(xiàn)閃爍現(xiàn)象;參考文獻1 李國勇 過程控制系統(tǒng) 電子工業(yè)出版社 20092 何立民.單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù)M.北京:北京航空航天大學,1990.3 李曉荃.單片機原理與應(yīng)用M. 北京:電子工業(yè)出版社,2000.4謝自美.電子線路設(shè)計.實驗.測試(第二版) M.武漢:華中科技大學出版社,2000.5 馬忠梅,劉濱,戚軍,馬巖.單片機C語言Windows環(huán)境編程寶典M.北京:北京航空航天大學出版

34、社,20036 Richard c.Dorf.modern conctrol systermM.BEIJING:Science Publishing House,2002.附錄一:系統(tǒng)原理圖附錄二: 程序代碼#include <reg52.h> /52系列頭文件#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit ds=P34;sbit dula=P26;sbit beep=P14; /定義蜂鳴器sbit led=P11;sbit jdq=P10;uint temp,t,w;

35、 /定義整型的溫度數(shù)據(jù)uchar flag;float f_temp; /定義浮點型的溫度數(shù)據(jù)uint low; /定義溫度下限值 是溫度乘以10后的結(jié)果uint high; /定義溫度的上限值sbit led1=P10; /控制發(fā)光二極管sbit led2=P11; /控制發(fā)光二極管sbit s1=P35;sbit s2=P36;sbit s3=P37;uchar flag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,

36、0xc6 ;/共陽數(shù)碼管段碼表uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/帶小數(shù)點的編碼 void delay(uchar z) /延時函數(shù) uchar a,b; for(a=z;a>0;a-) for(b=100;b>0;b-);void init() EA=1; ET1=1; TR1=1; TMOD=0x10; TH1=(65536-4000)/256; TL1=(65536-4000)%256; flag=0; high=100; jdq=1;void didi() beep=0;

37、led=0; delay(500); beep=1; led=1; delay(500);void dsreset(void) /DS18b20復位, 初始化函數(shù) uint i; ds=0; i=103; /延時最短480us while(i>0) i-; ds=1; /等待16-60us,收到低電平一個約60-240us則復位成功 i=4; while(i>0) i-;bit tempreadbit(void) /讀1位數(shù)據(jù)函數(shù) uint i; bit dat; ds=0;i+; ds=1;i+;i+;/i+起到延時作用 dat=ds; i=8; while(i>0)i-;

38、 return(dat);uchar tempread(void)/讀1字節(jié)的數(shù)據(jù)函數(shù) uint i,j,dat; dat=0; for(i=1;i<=8;i+) j=tempreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat里 return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個字節(jié)的數(shù)據(jù)函數(shù) uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /寫1 ds=0;i+;i+;ds=1;i=8;while(i>0)i-; else /寫0 ds=0;i=8;while(i>0) i-;ds=1;i+;i+; void tempchange(void) /DS18B20開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwriteb

溫馨提示

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

最新文檔

評論

0/150

提交評論