基于單片機(jī)的水浴溫度檢測系統(tǒng)的軟件設(shè)計
基于單片機(jī)的水浴溫度檢測系統(tǒng)的軟件設(shè)計,基于,單片機(jī),水浴,溫度,檢測,系統(tǒng),軟件設(shè)計
南昌航空大學(xué)科技學(xué)院學(xué)士學(xué)位論文基于單片機(jī)的水浴溫度檢測系統(tǒng)的軟件設(shè)計1 前 言當(dāng)今社會是一個高速發(fā)展的信息社會。單片機(jī)具有集成度高,通用性好,功能強(qiáng),特別是體積小,重量輕,耗能低,可靠性高,抗干擾能力強(qiáng)和使用方便等獨特優(yōu)點,在數(shù)字、智能化方面有廣泛的用途。單片機(jī)主要應(yīng)用于各檢測領(lǐng)域,用來實現(xiàn)對信號的檢測、數(shù)據(jù)的采集以及對應(yīng)用對象的檢測。由于單片機(jī)擴(kuò)展了各種檢測功能,如A/D、PWM、計數(shù)器的捕獲/比較邏輯、高速I/O口、WDT等,已突破了微型計算機(jī)傳統(tǒng)的內(nèi)容,所以對水浴溫度能更好的檢測。 溫度、壓力,流量和液位是四種最常見的過程變量。其中溫度是一個非常重要的過程變量,因為它直接影響燃燒、化學(xué)反應(yīng)、發(fā)酵、烘烤、煅燒、蒸餾、濃度、擠壓成形,結(jié)晶以及空氣流動等物理和化學(xué)過程。尤其本設(shè)計,溫度是用戶沐浴時最關(guān)心的,水浴溫度高了用戶受不了,低了容易感冒。溫度檢測不好就可能引起生產(chǎn)安全,產(chǎn)品質(zhì)量和產(chǎn)量等一系列問題。目前,在很多場合下,水浴溫度檢測已成為非常關(guān)鍵的因素,許多物理特性的變化都直接反映在溫度的升降上,因此對水浴溫度的監(jiān)測的意義越來越大。隨著社會的發(fā)展,水浴溫度檢測系統(tǒng)對各設(shè)備的要求越來越高,水浴溫度檢測設(shè)備受到人們的重視,其可靠性、穩(wěn)定性受到用戶的關(guān)注。 水浴作為一種溫度校核設(shè)備,廣泛地應(yīng)用在溫度傳感器、溫度測量器具的檢測及校核中,是化工、航天、生產(chǎn)等領(lǐng)域中有關(guān)計量單位的主要設(shè)備。國產(chǎn)的水浴一般采用傳統(tǒng)的PID 檢測方法,存在以下主要缺陷:一是達(dá)到設(shè)定溫度并且進(jìn)入穩(wěn)定狀態(tài)所需的時間長,一般情況下,從開機(jī)到進(jìn)入穩(wěn)定狀態(tài)需要1-2小時,環(huán)境條件有變化時過渡過程時間會更長。造成了時間和能源的浪費,降低了工作效率。二是檢測精度低,往往不能滿足高精度檢測的要求。三是由于沒有制冷設(shè)備,所以不能進(jìn)行0至室溫范圍內(nèi)的溫度校核。目前國外的同類設(shè)備,性能較好,但價格十分昂貴,不能滿足廣大用戶的需求。針對上述存在的問題,應(yīng)該采用STC89C52單片機(jī)作為核心部件,實現(xiàn)對水浴溫度的檢測。 2 系統(tǒng)的組成及功能2.1 系統(tǒng)的組成 本系統(tǒng)是基于單片機(jī)的水浴溫度檢測系統(tǒng)的研究,主要實現(xiàn)的系統(tǒng)功能和技術(shù)指標(biāo)有:能實時檢測顯示水浴溫度;測溫范圍25100,精度為 1;檢測檢測的同時能實現(xiàn)自動聲光報警。本次設(shè)計的水浴溫度檢測系統(tǒng)由單片機(jī)檢測模塊、溫度采集模塊、溫度檢測模塊、聲光報警模塊以及鍵盤顯示模塊構(gòu)成,其總的水浴溫度檢測系統(tǒng)原理圖如圖2.1所示。2.2 系統(tǒng)的功能本系統(tǒng)的主要功能是通過單片機(jī)檢測實現(xiàn)了溫度的顯示,從而完成了對溫度的采集,實現(xiàn)了水浴溫度的檢測。各部分功能如下:1)單片機(jī)檢測電路:是整個系統(tǒng)的核心部分。通過中央處理器CPU及本身接口,能夠?qū)崿F(xiàn)對外部數(shù)據(jù)的讀出、處理、寫入。2)溫度采集電路:利用ICL7650把鉑熱電阻的電壓進(jìn)行放大,然后通過AD0804進(jìn)行采樣,再采集到的數(shù)據(jù)進(jìn)行處理。3)溫度檢測電路:主要是由升溫裝置、降溫裝置,通過單片機(jī)檢測構(gòu)成。4)鍵盤顯示電路:由HD7279來驅(qū)動8個數(shù)碼管和16個鍵盤。5)聲光報警電路:由發(fā)光二極管和蜂鳴器來完成聲光報警的。圖2.1 水浴溫度檢測系統(tǒng)原理圖3 硬件電路設(shè)計本次研究的是一種以STC89C52芯片為核心的水浴溫度檢測裝置,該裝置不但能對水浴溫度進(jìn)行測量,根據(jù)其溫度值與設(shè)定值進(jìn)行對比給出調(diào)節(jié)量,實現(xiàn)水浴溫度檢測的目的,而且能夠?qū)λ囟冗M(jìn)行監(jiān)控,水浴溫度過高時就會聲光報警。在研究過程中采用STC89C52單片機(jī),完成水浴溫度檢測系統(tǒng)的檢測,實現(xiàn)設(shè)定溫度的上限值,下限值,并對水浴溫度進(jìn)行實時采集。測溫系統(tǒng)中鉑熱電阻輸出的電壓信號由運放器ICL7650進(jìn)行放大。本系統(tǒng)借助于電橋電路、放大電路、A/D轉(zhuǎn)換電路、單片機(jī)。在溫度檢測中,過程的實時參數(shù)由電橋電路、ILC7650運算放大器和A/D轉(zhuǎn)換器實時采集,并由微型計算機(jī)記錄在內(nèi)存單元,然后再通過D/A轉(zhuǎn)換器輸出檢測信號,檢測執(zhí)行機(jī)構(gòu)動作,進(jìn)行調(diào)節(jié)和檢測。并通過7279對溫度值進(jìn)行設(shè)定和LED顯示,這樣能更清楚的看到當(dāng)水浴溫度發(fā)生的變化。硬件部分主要包括單片機(jī)檢測模塊、溫度采集模塊、溫度檢測模塊、聲光報警模塊以及鍵盤顯示模塊。3.1 單片機(jī)模塊單片機(jī)模塊是以STC89C52為核心的水浴溫度檢測裝置,STC89C52單片機(jī)屬8051系列的FLASH型單片機(jī)。內(nèi)有面向檢測的8位CPU;4K字節(jié)的ROM程序存儲器;128字節(jié)的內(nèi)部RAM數(shù)據(jù)存儲器;2個16位定時器/計數(shù)器;1個全雙工的異步串行口;5個中斷源、2個中斷優(yōu)先級的中斷檢測器;時鐘電路,時鐘頻率在1.2MHz12MHz。STC89C52單片機(jī)引腳圖如圖3.1所示。 圖3.1 STC89C52引腳圖3.2 溫度采集模塊溫度采集電路的工作原理:由鉑熱電阻組成的電橋輸出的較小的電壓信號經(jīng)過ICL7650芯片進(jìn)行放大后傳到AD0804進(jìn)行模數(shù)轉(zhuǎn)換,最終傳入到單片機(jī)。其中ICL7650是高精度運算放大器,它具有輸入偏置電流小、失調(diào)小、增益高、共模抑制能力強(qiáng)、響應(yīng)快、漂移低、性能穩(wěn)定及價格低廉等優(yōu)點。溫度采集電路的原理圖如圖3.2所示。 圖3.2 溫度采集電路原理圖3.3 溫度檢測模塊系統(tǒng)所要檢測的電路,主要是當(dāng)采集的水溫不等于設(shè)定的溫度時,單片機(jī)檢測被控對象去執(zhí)行相應(yīng)的處理。此部分電路主要由STC89C52單片機(jī)來檢測加熱水閥和加冷水閥。系統(tǒng)用單片機(jī)STC89C52的P1.6和P1.7做為檢測口,P1.6檢測加冷水的加水電磁閥,P1.7檢測加熱水的加水電磁閥。采集的溫度與設(shè)定的溫度相比較,當(dāng)采溫大于設(shè)定溫度時,這時通過軟件編程來檢測P1.6,給予其低電平,經(jīng)反向驅(qū)動后光敏二極管截止,三極管導(dǎo)通繼電器吸合,繼電器接通降溫設(shè)備,將溫度檢測在規(guī)定的范圍內(nèi),達(dá)到了檢測加冷水閥的目的。同理,P1.7是檢測加熱水的加水電磁閥的,不再熬述。本系統(tǒng)的溫度檢測模塊電路如圖3.3所示。圖3.3 溫度檢測電路原理圖3.4 鍵盤顯示模塊系統(tǒng)需要將用戶想要達(dá)到的溫度和采樣的溫度同時顯示出來,通過分析可由8個數(shù)碼管來完成。前四個數(shù)碼管是用來顯示采集的溫度,其中第三個顯示個位而且為小數(shù)點位,后四個數(shù)碼管是用來顯示設(shè)定的溫度。另外還要設(shè)定6個按鍵,其具體功能如下:KEY1、KEY2:設(shè)定 ;KEY3: 確認(rèn);KEY4:啟動;KEY5:清除;KEY6:結(jié)束。當(dāng)按下設(shè)定鍵時,人工可以在默認(rèn)的25(軟件編程一上電就顯示25)基礎(chǔ)上設(shè)定溫度值,KEY1為加1鍵,KEY2為減1鍵;當(dāng)按下確認(rèn)鍵時,設(shè)定溫度可以保存(在斷電后仍將其設(shè)定的值存在存貯器中不會丟失);當(dāng)按下啟動鍵時,AD0804開始進(jìn)行采樣;當(dāng)按下清除鍵時,會將設(shè)定的溫度值清除掉,以便重新設(shè)定溫度值;當(dāng)按下結(jié)束鍵時,整個系統(tǒng)全部停止工作。本設(shè)計所需的數(shù)碼管和鍵盤不多,這些功能的實現(xiàn)完全可由HD7279來驅(qū)動完成。HD7279是一片具有串行接口的,可同時驅(qū)動8個共陰極的數(shù)碼管(或64只獨立的LED)智能顯示驅(qū)動芯片,該芯片還可以同時連接多達(dá)64鍵的鍵盤矩陣,單片即可完成LED顯示、鍵盤接口的全部功能。HD7279具有片選信號,可方便地實現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口。如圖3.4所示。圖3.4 鍵盤顯示電路3.5 聲光報警模塊根據(jù)系統(tǒng)所要達(dá)到的要求,在檢測溫度的同時,當(dāng)溫度超標(biāo)時要警報。經(jīng)過從硬件電路的總體來考慮,采用一個7407來驅(qū)動一個發(fā)光二極管和蜂鳴器實現(xiàn),以減少硬件電路。目的主要是靜態(tài)顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮度大,系統(tǒng)在運行過程中,僅僅在需要更新顯示內(nèi)容時,CPU才執(zhí)行一次顯示更新子程序,這樣大大節(jié)省了CPU的時間,提高了CPU的工作效率。聲光報警模擬電路如圖3.5所示。圖3.5 聲光報警模擬電路用P1口來檢測這部分電路,當(dāng)選中的P1口為低電平時,經(jīng)過7407正向驅(qū)動,發(fā)光二極管正向?qū)ǎ鄳?yīng)的二極管點亮,實現(xiàn)了光報警;同時蜂鳴器這一路導(dǎo)通,蜂鳴器中有電流流過就會發(fā)出蜂鳴聲,實現(xiàn)了聲音報警。4 系統(tǒng)軟件設(shè)計4.1 軟件系統(tǒng)概述整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個檢測系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、顯示等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。本課題是基于STC89C52單片機(jī)為核心的水浴溫度檢測系統(tǒng),采用溫度采集。對于溫度的測量,顯示電路都已經(jīng)是很成熟的技術(shù)。在設(shè)計時,有以下需要加以說明:(1)入口地址0000H,顯緩區(qū)地址50H54H。(2)內(nèi)存單元定義,如表4.1所示:表4.1 內(nèi)存單元分配表地址內(nèi)存單元功能說明50H存放顯示溫度位(個位)51H 存放顯示溫度位(十位)52H存放顯示溫度位(百位)53H存放顯示存儲單元54H存放顯示存儲單元58H鍵值暫存單元5AH存放數(shù)字濾波后的存儲單元40H存放采樣數(shù)據(jù)首地41H十進(jìn)制轉(zhuǎn)換的百位42H十進(jìn)制轉(zhuǎn)換的十位43H十進(jìn)制轉(zhuǎn)換的個位34H存放溫度限的單元03H按鍵按下標(biāo)志位4.2 系統(tǒng)軟件設(shè)計系統(tǒng)主要負(fù)責(zé)對水浴溫度的采集和顯示,并把所測得的溫度數(shù)據(jù)通過HD7279驅(qū)動數(shù)碼管顯示。在具體設(shè)計中,主要實現(xiàn)溫度的顯示、溫度的采集和溫度的檢測。因此程序應(yīng)由主程序、顯示子程序、溫度采集子程序和溫度檢測子程序組成。各個程序完成各自的功能。4.2.1 主程序流程圖主程序作為軟件設(shè)計的核心,其主要作用是能及時的響應(yīng)來自系統(tǒng)或儀器內(nèi)部的各種服務(wù)請求,有效的管理自身軟硬件及人-機(jī)聯(lián)系設(shè)備等。在編主程序時,考慮到系統(tǒng)功能中有設(shè)置溫度(默認(rèn)值為25存在34單元中)和確認(rèn)設(shè)置值的需要,所以主程序中應(yīng)有鍵掃部分,當(dāng)有鍵按下時,先調(diào)讀鍵子程序,再根據(jù)不同的鍵值,去執(zhí)行各功能模塊,實現(xiàn)系統(tǒng)功能和要求。主程序入口地址為0000H,它的主要功能是設(shè)置溫度和檢測水溫:設(shè)置溫度有兩個鍵,對34H單元加一的溫度加1鍵(鍵值為00H),還有對34H單元減一的溫度減1鍵(鍵值01H),一個水溫檢測鍵也即確認(rèn)鍵(鍵值為02H)。主程序主要的功能是完成溫度采集和顯示。把鉑熱電阻組成的電橋采集到的電壓信號通過ICL7650放大傳到ADC0804進(jìn)行模數(shù)轉(zhuǎn)換,把數(shù)字化的溫度在數(shù)碼管上顯示,并與設(shè)定的溫度值比較,從而決定升溫或降溫。水浴溫度檢測系統(tǒng)的主程序流程圖如圖4.1所示。圖4.1 主程序流程圖4.2.2 溫度采樣流程圖在設(shè)計采樣程序時,考慮到系統(tǒng)對精度和穩(wěn)定性的要求,所以要對采樣值進(jìn)行濾波處理,本設(shè)計采用中位值平均濾波,先連續(xù)采樣十次,去掉最大值和最小值,然后求平均值,這個濾波值就是采樣值。R6為采樣次數(shù)計數(shù)器,在啟動采樣后,延時100 us。再存放到十個固定40H-4A單元中,再加以濾波。ADC0804的入口地址是7FFFH。溫度采樣流程圖如圖4.2所示。圖4.2 溫度采樣流程圖4.2.3 A/D轉(zhuǎn)換子程序流程圖 ADC0804芯片是一塊將模擬量轉(zhuǎn)換為數(shù)字量的芯片,它的CS引腳接到單片機(jī)STC89C52發(fā)過來的“0”信號后開始工作,A/D轉(zhuǎn)換后把數(shù)據(jù)進(jìn)行使十進(jìn)制調(diào)整后送到單片機(jī)的存儲單元進(jìn)行顯示。 A/D轉(zhuǎn)換子程序流程圖如圖4.3所示。圖4.3 A/D轉(zhuǎn)換子程序流程圖4.2.4 鍵盤顯示流程圖由于顯示的數(shù)碼管和7279相連,所以在設(shè)程序時,還要考慮到7279的功能,在本系統(tǒng)中,有采樣溫度的實時顯示,采樣值存在5AH單元中,還有設(shè)置溫度的鍵盤顯示 ,設(shè)置值存在34H單元中,顯緩區(qū)為50H-56H。鍵盤顯示流程圖如圖4.4所示。圖4.4 鍵盤顯示流程圖其中顯示子程序的編寫是由于數(shù)碼管的顯示要經(jīng)過HD7279的驅(qū)動,從而實現(xiàn)對溫度數(shù)據(jù)的顯示。顯示子程序流程圖如圖4.5所示。YN返回關(guān)閉HD7279R5-1=0?延時8us查表顯示的位數(shù)R5調(diào)用發(fā)送數(shù)據(jù)子程序設(shè)置查表參數(shù)延時8us調(diào)用發(fā)送數(shù)據(jù)子程序延時25us選中HD7279開始圖4.5 顯示子程序流程圖4.2.5 溫度檢測子程序流程圖入口讀入設(shè)定值設(shè)置值=采樣值?設(shè)置值采樣值?升溫返回溫度檢測子程序主要是根據(jù)設(shè)定溫度與當(dāng)前環(huán)境溫度的差值來檢測升溫裝置或降溫裝置的運行。若當(dāng)前溫度高于設(shè)定溫度且差值大于設(shè)定的溫控范圍,則啟動降溫裝置;若當(dāng)前溫度低于設(shè)定溫度且差值大于設(shè)定的溫控范圍,則啟動升溫裝置;在當(dāng)前溫度達(dá)到設(shè)定溫度后,關(guān)閉升溫裝置或降溫裝置。圖4.6為溫度檢測子程序流程圖。YNNY降溫 圖4.6 溫度檢測子程序流程圖 5 軟硬件調(diào)試5.1 硬件調(diào)試在完成了本設(shè)計的硬件組裝和軟件設(shè)計之后,便進(jìn)入系統(tǒng)的調(diào)試階段。這個階段的任務(wù)是排除設(shè)計中的硬件故障和糾正軟件設(shè)計的錯誤,并解決硬件和軟件之間的不協(xié)調(diào)問題。本次調(diào)試分為兩個部分:硬件調(diào)試和軟件調(diào)試。在硬件上電之前,先用萬用表等工具,根據(jù)硬件邏輯設(shè)計詳細(xì)檢查硬件電路的正確性。最重要的是注意電源系統(tǒng)檢查,防止電源短路和極性錯誤,并重點檢查了系統(tǒng)總線是否存在相互之間短路或與其他信號線短路。檢查完硬件電路連接準(zhǔn)確無誤之后,結(jié)合軟件進(jìn)行調(diào)試。開始將整個調(diào)試過程分成幾個小部分,分別進(jìn)行調(diào)試。本次調(diào)試分成以下幾個部分調(diào)試:單片機(jī)系統(tǒng)調(diào)試、A/D采樣電路調(diào)試、鍵盤顯示電路調(diào)試。5.1.1 單片機(jī)系統(tǒng)調(diào)試最小系統(tǒng)板是系統(tǒng)的核心,必須保證它的正常工作。首先得保證線路連接正確和導(dǎo)通,有時系統(tǒng)板工作不正常往往是這方面的原因;另外STC89C52的P口必須得正常工作,其調(diào)試方法是:將STC89C52的P口與調(diào)試好的顯示電路連接起來,再利用仿真器編寫簡單的程序,比如說讓P1口的某一位輸出方波,然后用示波器去檢查波形是否正確;或者讓P1口的某一位置高電平/低電平,然后用萬用表去檢查引腳上的電平。還可以測試外部中斷口和內(nèi)部定時器的工作情況,測試方法是:在P口正常工作的情況下,可以通過改變外部中斷和定時中斷到來前后P口的電平來檢測外部中斷和定時中斷的工作情況。5.1.2 A/D采樣電路調(diào)試A/D采樣部分,主要是看基準(zhǔn)電壓和選通信號線,讀寫信號線是否正常工作。也可以通過調(diào)節(jié)其輸入的變化,用萬用表測量其最低位,看看表的值是否會有高低電平的交替變化,如果有的話,表示ADC是正常工作的。通常情況下,ADC0804的基準(zhǔn)電壓為+5V。經(jīng)過用軟件編程來檢測P2.7來選通片選信號,給它一低電平或高電平,如果用萬用表測得ADC0804的1腳是低電平或高電平,說明這塊芯片是好的。5.1.3 鍵盤顯示電路調(diào)試顯示部分的調(diào)試相對于其他電路的調(diào)試要簡單一些,首先要檢查數(shù)碼管是否能被點亮,上電前,用萬用表測量,簡單的方法:把萬用表的紅表筆接到數(shù)碼管的3或8腳上(系統(tǒng)采用共陰極數(shù)碼管),黑表筆接到其余的腳,如果每一段都被點亮,則說明數(shù)碼管功能正常。再編寫一個小程序使每個數(shù)碼管都顯示“8”,如果每個數(shù)碼管的各段都點亮后,證明顯示電路工作正常。源程序如下:org 0000hloop:mov po,#0ffh; 關(guān)顯示mov p1,#offh; 關(guān)顯示clr p0.2; 選擇第一個數(shù)碼管mov p1,7fh; 顯示“8”lcall delay; 調(diào)延時子程序mov po,#0ffhmov p1,#offhclr p0.1mov p1,7fhlcall delaymov po,#0ffhmov p1,#offhclr p0.0mov p1,7fhlcall delayajmp loopdelay: mov r1,#250;延時子程序L1: djnz r1,L1Ret5.2 軟件調(diào)試在軟件調(diào)試過程中,首先要有清晰的軟件結(jié)構(gòu)流程圖,采用子程序調(diào)用的形式,分塊調(diào)試,如調(diào)試顯示子程序,鍵掃子程序,求鍵號子程序,數(shù)字鍵處理,功能鍵處理,狀態(tài)顯示子程序,清狀態(tài)顯示子程序,A/D采樣子程序。模塊化設(shè)計有利于程序的調(diào)試和擴(kuò)展。硬件電路檢查無誤后,就開始對軟件進(jìn)行調(diào)試,軟件調(diào)試是按照子程序及主程序的順序進(jìn)行的。5.3 聯(lián)合調(diào)試此過程是建立在硬件與軟件單獨調(diào)試成功基礎(chǔ)上的,如硬件調(diào)試應(yīng)達(dá)到的要求:鍵盤顯示電路能夠正確顯示初始話設(shè)定值以及個按鍵功能實現(xiàn)。在以上的前提下,將軟硬件結(jié)合調(diào)試,首先將采溫,鍵盤顯示程序結(jié)合在一起,通過傳輸線傳送至單片機(jī)系統(tǒng),硬件電路先是將溫度采集電路與單片機(jī)以及鍵盤顯示電路聯(lián)合在一起進(jìn)行采溫與顯示調(diào)試,剛開始由于軟件設(shè)置的邏輯與地址跟硬件電路不相符,結(jié)果顯而易見。而后根據(jù)硬件電路的連接,對軟件進(jìn)行更改主要是對地址與邏輯上的修正。再次結(jié)合調(diào)試,功能鍵的實現(xiàn)仍有問題,再更改程序直到所有功能的以實現(xiàn)。接著進(jìn)行單片機(jī)系統(tǒng)的調(diào)試。對此,采用了分步調(diào)試:第一步,先匯編程序使系統(tǒng)能有數(shù)據(jù)傳送,并且使得單片機(jī)能夠得到所設(shè)定的初值,也就是要求能夠通過按鍵來接收數(shù)據(jù);第二步,再進(jìn)行命令發(fā)送調(diào)試;第三步,再一步一步的實現(xiàn)各種要求以及功能。6 結(jié) 論本系統(tǒng)實現(xiàn)了利用鍵盤設(shè)定溫度值,能實時顯示采集溫度和設(shè)定溫度,測量溫度過高時還能控制加冷水閥,測量溫度過低時控制加熱水閥,同時還可以進(jìn)行報警,完成了全部任務(wù),實現(xiàn)了所要實現(xiàn)的全部功能。不過在設(shè)計中還有一些不完善的地方,有待于今后來改進(jìn)該系統(tǒng)具有測量精度高、硬件電路簡單、可測試多點溫濕度等特點,可以應(yīng)用在大型工業(yè)及民用常溫多點監(jiān)測場合。如塑料(蔬菜)大棚、恒溫廠房、大中型糧倉、庫房等場合。通過近四個月的努力, 圓滿完成了從方案的構(gòu)思到調(diào)試以及各個子程序的調(diào)試,再到整體軟硬件的調(diào)試的各個過程。通過本次對水浴溫度檢測系統(tǒng)的軟件設(shè)計,掌握了水浴溫度檢測系統(tǒng)的工作原理,了解各個模塊的功能,同時也學(xué)到了很多東西,歸納為以下幾點:1、在進(jìn)行方案設(shè)計前,應(yīng)對相關(guān)原理有著相當(dāng)?shù)睦斫夂驼莆?,同時要查閱相關(guān)資料,以選擇出最佳方案。另一方面也要注意到與硬件電路的密切結(jié)合。2、各部分模塊在編譯通過后,便進(jìn)入了調(diào)試。在調(diào)試中,應(yīng)注意到各方面的問題。語法錯誤相對易于檢查和修改。如果是邏輯上的錯誤,則需要相當(dāng)仔細(xì)的分析和調(diào)試。3、本次畢業(yè)設(shè)計從原理圖設(shè)計到實踐的過程是從理論知識到工程實踐的過程,在這個過程中鞏固了基礎(chǔ)知識,并培養(yǎng)創(chuàng)新意識,發(fā)現(xiàn)配合在設(shè)計中起著非常重要的作用。一個設(shè)計產(chǎn)品的最終實現(xiàn),需要有效的配合。參 考 文 獻(xiàn)1.A.P.Goutzoulis and D.R.Pape, Design and Fabrication of Acousto-optic devices, Marcel Dekker, New York, 19942.Distri buted Control Modules Databook Intel Corporation,19883.RS-422 and RS-485 Application Note , B&Belectronic Revised October 19974.王福瑞.單片微機(jī)測控系統(tǒng)設(shè)計大全.北京:北京航空航天大學(xué)出,19985.周月霞,孫傳友.DS18B20 硬件連接及軟件編程J. 傳感器世界,2001.126.涂時亮編.單片機(jī)微機(jī)檢測技術(shù).上海:復(fù)旦大學(xué)出版社,19947.馬宏杰. 微機(jī)通信原理與實用技術(shù).北京:清華大學(xué)出版社,19948.張友德、趙志英、涂時亮.單片微型機(jī)原理、應(yīng)用與實驗. 上海:復(fù)旦大學(xué)出版社,20009.楊光友等.單片微型計算機(jī)原理及接口技術(shù).北京:中國水利水電出版社,2002 10.羅文廣、蘭紅莉、陸子杰.基于單總線的多點溫度測量技術(shù)J.傳感器技術(shù),2002.21(3):47-5011.王震、王敏亮、魏長軍.RS-232/485串行通訊轉(zhuǎn)換器電路.電子世界,2003.112.余祖俊.微機(jī)檢測與檢測應(yīng)用系統(tǒng)設(shè)計.北京:北京交通大學(xué)出版社,200113.關(guān)振海、孫繼紅.傳感器及其接口技術(shù).北京:中國石化出版社,199814.李朝青.單片機(jī)原理及接口技術(shù).北京:北京航空航天大學(xué)出版社,199915.陳有卿、謝剛等.新穎電子模塊應(yīng)用手冊.北京:機(jī)械工業(yè)出版社,200016.張友德、趙志英.單片微型機(jī)原理、應(yīng)用與實驗.上海:復(fù)旦大學(xué)出版社,1999致 謝在本次畢業(yè)設(shè)計中,特別感謝葉愛華老師的指導(dǎo),她在百忙之中抽出寶貴的休息時間,仔細(xì)耐心為學(xué)生們指導(dǎo)。設(shè)計過程中,指導(dǎo)老師幫忙分析遇到的種種困難。一直支持,鼓勵學(xué)生要有解決問題的信心,使設(shè)計得以順利的完成。在開發(fā)的同時,和同學(xué)們之間的相互探討也使本人獲益匪淺。在此,對葉老師表示由衷的感謝!還要感謝電子信息工程學(xué)院的其他老師。感謝老師們?yōu)閷W(xué)生提供了畢設(shè)的場地及必要的元器件和設(shè)備,給了本人在大學(xué)畢業(yè)之前的一次很好的鍛煉機(jī)會。在此還要感謝在設(shè)計中幫助過同學(xué),尤其是同組搭檔同學(xué)。畢設(shè)中,兩人密切合作,共同參與了兩部分的設(shè)計和調(diào)試。在此對同組搭檔給予的幫助表示衷心的感謝!電子信息技術(shù)日新月異地飛速發(fā)展,人們總是處在不斷學(xué)習(xí)階段,再加上水平有限,所以本次設(shè)計肯定存在許多不盡如人意的地方,歡迎廣大老師和同學(xué)批評指正。最后,要感謝電子信息工程學(xué)院所有老師,老師們的精心栽培為學(xué)生以后的學(xué)習(xí)工作打下了堅實的基礎(chǔ)。附錄A: 電路原理圖附錄B: 最小系統(tǒng)原理圖附錄C: 程序清單 ORG 0000H ;入口地址 AJMP MAIN ;跳轉(zhuǎn)到主程序 ORG 001BH ;定事器T1中斷源服務(wù)程序入口地址 AJMP INT_T1 INT_T1:PUSH PSW ;中斷模塊 PUSH ACC ;現(xiàn)場保護(hù) PUSH DPL PUSH DPH PUSH B MOV PSW,#08H MOV TH1,#80H ;定時器初始化 MOV TL1,#00H MOV IE,#80H ;關(guān)中斷 LACALL CAIYANG ;調(diào)用采樣子程序LACALL MA ;調(diào)用濾波子程序MOV A,5A ;溫度值送累加器ACJNE A,64H,AAA2 ;超過100度報警CLR P1.4 POP B ;恢復(fù)現(xiàn)場 POP DPH POP DPL POP ACC POP PSW RETI ;中斷返回CAIYANG:MOV R0,#40H ;賦數(shù)據(jù)顯緩區(qū)首址 MOV R6,#0AH ;采集十次 CAI: MOV DPTR,#7FFFH ;選通0804 MOVX DPTR,A ;啟動0804 MOV R2,#100 ;延時200us HERE: DJNZ R2,HERE MOVX A,DPTR MOV R0,A ;采樣值送數(shù)據(jù)顯緩區(qū) INC R0 ;數(shù)據(jù)顯緩區(qū)加一DJNZ R6,CAI ;減一不會零轉(zhuǎn) RETMA: LCALL FMAX ;求最大值 LCALL FMIN ;求最小值 LCALL AVG ;求平均值 RET QR: MOV A,34H ;檢測模塊 CJNE A,5AH,ZSS5 ;溫度相等停止加熱 SETB P1.4 CLR P1.5 SETB P1.6 SETB P1.7 RETZSS5: SUBB A,5AH JC ZSS ;小于采樣值加熱水 CLR P1.5 SETB P1.6 CLR P1.4 CLR P1.7 RET ZSS: CLR P1.5 ;大于采樣值加冷水 CLR P1.4 CLR P1.6 SETB P1.7 RETFMAX: MOV R7,#09H ;求最大值 MOV R0,#50H LDP: MOV A,R0 INC R0 CLR C SUBB A,R0 JC DONE MOV A,R0 DEC R0 XCH A,R0 INC R0 MOV R0,ADONE: DJNZ R7,LDP RET FMIN: MOV R7,#08H ;求最小值 MOV R0,#50H LDP1:MOV A,R0 INC R0 CLR C SUBB A,R0 JNC DONE1 MOV A,R0 DEC R0 XCH A,R0 INC R0 MOV R0,ADONE1:DJNZ R7,LDP1 RETAVG: MOV R7,#08H ;求平均值 MOV R0,#50H MOV R3,#00H MOV R4,#00HLDP2: MOV A,R0 ADD A,R4 MOV R4,A MOV A,R3 ADDC A,#00H MOV R3,A INC R0 DJNZ R7,LDP2 MOV R7,#03HLDP4: CLR C MOV A,R3 RRC A MOV R3,A MOV A,R4 RRC A MOV R4,A DJNZ R7,LDP4 MOV 5AH,R4 RETDISP: ;顯示子程序 CLR P1.0 MOV R6,#0CHLP2: DJNZ R6,LP2 MOV A,R1 ACALL STFS MOV R6,#04HLP3: DJNZ R6,LP3 MOV A,R0 ADD A,#0DH MOVC A,A+PC ACALL STFS MOV R6,#02HLP4: DJNZ R6,LP4 SETB P1.0 INC R0 INC R1 DJNZ R5,DISP RET TAB: DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH STFS:MOV R7,#08H ;發(fā)送子程序 LP5:RLC A MOV P1.2,C SETB P1.1 MOV R6,#04H LP6:DJNZ R6,LP6 CLR P1.1 MOV R6,#04H LP7:DJNZ R6,LP7 DJNZ R7,LP5 RET STJS:MOV R7,#08H KKK1:SETB P1.1 ;接收子程序 SETB P1.2 MOV R6,#04H KKK2:DJNZ R6,KKK2 MOV C,P1.2 RLC A CLR P1.1 MOV R6,#02H KKK3:DJNZ R6,KKK3 DJNZ R7,KKK1 RET KEY1:CLR P1.0 ;鍵掃子程序 MOV R6,#18H ZZZ1:DJNZ R6,ZZZ1 MOV A,#15H ACALL STFS MOV R6,#0CH ZZZ2:DJNZ R6,ZZZ2 ACALL STJS MOV B,A MOV 58H,A SETB P1.0 RET SJZH: ;十進(jìn)制轉(zhuǎn)換子程序 MOV A,R0 MOV R0,#43H MOV R7,#03H LP: MOV B,#0AH DIV AB XCH A,B MOV R0,A XCH A,B DEC R0 DJNZ R7,LP RETDELAY1:MOV R7,#02H ;延時子程序 DEL4: MOV R6,#0C8H DEL5: MOV R5,#7DH DEL6: DJNZ R5,DEL6 DJNZ R6,DEL5 DJNZ R7,DEL4 RETMAIN: MOV SP,#0E8H ;主程序 ANL TMOD,#0FH ORL TMOD,#10H MOV TH1,#80H MOV TL1,#00H MOV IE,#8CHMOV 34H,#16H ;設(shè)置默認(rèn)值25度MOV 50H,#00H ;顯緩區(qū)清零 MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H CLR P1.5 ;一直加熱 SETB P1.3ZHH2: MOV R0,#5AHLCALL SJZH ;調(diào)十進(jìn)制轉(zhuǎn)換程序MOV R1,#90H ;送顯初始化 MOV R0,#50H MOV R5,#03H ACALL DISP ;調(diào)用顯示子程序ACALL DELAY1 ;調(diào)用延時子程序MOV C,P1.3 ;判斷有無按鍵 JC ZHH2 ACALL KEY1 ;鍵掃 MOV A,58H CJNE A,#00H,AAA ;是不是加一鍵NOPNOP INC 34H ;溫度加一 MOV R0,#34H ACALL SJZH ;調(diào)用十進(jìn)制轉(zhuǎn)換程序 MOV R1,#90H MOV R0,#53H MOV R5,#02H ACALL DISP ;調(diào)顯示 ACALL DELAY1 ;調(diào)延時 SJMP TZAAA: CJNE A,#01H,AAA1 ;是不是減一鍵 NOP NOPDEC 34H MOV R0,#34H ;溫度減一 ACALL SJZH ;調(diào)用十進(jìn)制轉(zhuǎn)換程序 MOV R1,#90H MOV R0,#53H MOV R5,#02H ACALL DISP ;調(diào)顯示 ACALL DELAY1 ;調(diào)延時AAA1 :CJNE A,#01H,TZ ;是不是檢測鍵 ACALL QR ;調(diào)用檢測模塊TZ: SJMP ZHH2 END第 31 頁 共 31 頁
收藏