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