基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)
基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)
基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)
基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

畢業(yè)設(shè)計(jì)說(shuō)明書題目:基于STC89C51單片機(jī)的數(shù)字溫度計(jì)的分析設(shè)計(jì)產(chǎn)品設(shè)計(jì)工藝設(shè)計(jì)方案設(shè)計(jì)√類型:學(xué)生姓名:_________________________學(xué)號(hào):_________________學(xué)院:____電子信息工程學(xué)院________專業(yè):____機(jī)電一體化____________班級(jí):______________指導(dǎo)教師:__________________2016年5月6日摘要在日常科學(xué)生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常有用的溫度的檢測(cè)及控制,而傳統(tǒng)的測(cè)溫計(jì)大多以熱敏電阻為溫度傳感器,但它的準(zhǔn)確率低。而且必須經(jīng)過(guò)專門的接口電路轉(zhuǎn)換成數(shù)字信號(hào)才能由單片機(jī)進(jìn)行處理。所以為了現(xiàn)代工作,科研,生活能夠更好更方便的進(jìn)行,所以就需要從單片機(jī)入手。本文將介紹一種基于51單片機(jī)控制的數(shù)字溫度計(jì),就是用單片機(jī)實(shí)現(xiàn)溫度測(cè)量。本次采用STC89C51為主芯片,DS18B20溫度傳感器采集溫度,,與51單片機(jī)組成一個(gè)測(cè)溫系統(tǒng)。DS18B20把采集到的溫度經(jīng)過(guò)放大后送到STC89C51,再經(jīng)過(guò)處理送到顯示器,顯示器將采集到的溫度顯示出來(lái)。數(shù)字溫度計(jì)具有線路簡(jiǎn)單,體積小的特點(diǎn)。同時(shí)程序中添加溫度的正負(fù)值檢測(cè)算法,使得該溫度計(jì)可以顯示正值溫度和負(fù)值溫度。關(guān)鍵詞:?jiǎn)纹瑱C(jī);數(shù)字控制;DS18B20;STC89C51 1.緒論 41.1前言 41.2設(shè)計(jì)方案與論證 51.2.1方案一 52.總體設(shè)計(jì)思路 52.1主控制器 52.2顯示電路 72.3溫度傳感器 72.4報(bào)警電路設(shè)計(jì) 93.系統(tǒng)軟件設(shè)計(jì) 93.1主程序 93.2讀出溫度子程序 103.3溫度轉(zhuǎn)換命令子程序 113.4計(jì)算溫度子程序 124.系統(tǒng)測(cè)試 124.1測(cè)試環(huán)境及工具 124.2測(cè)試方法 124.3結(jié)果分析 125.結(jié)論 13參考文獻(xiàn) 13致謝 13附錄源程序 14緒論1.1.前言隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它帶給人們的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子。溫度測(cè)試涉及到各個(gè)行業(yè),傳統(tǒng)的煤油溫度計(jì)、水銀溫度計(jì)測(cè)溫必須由人工操作,測(cè)溫元件有熱電偶和熱電阻等,這些測(cè)溫器件測(cè)出的一般是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,且測(cè)量精度難以保證,不符合當(dāng)今工業(yè)自動(dòng)化的發(fā)展趨勢(shì)。,所以人們對(duì)它的要求越來(lái)越高。本課題意義在于生產(chǎn)過(guò)程中隨著科技不斷發(fā)展,現(xiàn)在社會(huì)對(duì)各種信息參數(shù)的準(zhǔn)確度有了更高的要求,而如何準(zhǔn)確的獲得這些參數(shù),就需要借助于現(xiàn)代科技。傳感器屬于信息技術(shù)的尖端技術(shù),尤其是數(shù)字溫度傳感技術(shù),于是就需要從單片機(jī)技術(shù)和傳感器技術(shù)入手,才能向著數(shù)字化,智能化發(fā)展。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)主要采用STC89C51單片機(jī)構(gòu)成的最小系統(tǒng),DS18B20溫度采集芯片,數(shù)碼管顯示電路,以及外圍電路等組成。與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,體積小等特點(diǎn)。該數(shù)字溫度計(jì)能夠?qū)Νh(huán)境的溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè),實(shí)時(shí)顯示環(huán)境的溫度信息,數(shù)字溫度計(jì)能夠?qū)Νh(huán)境溫度進(jìn)行正確測(cè)量。1.2設(shè)計(jì)方案與論證1.2.1方案一因?yàn)楸倦娐肥菧y(cè)溫電路,所以最先考慮的是使用熱敏電阻,利用熱敏電阻的感溫效應(yīng),采集被測(cè)溫度變化的電壓或者電流,進(jìn)行A\D轉(zhuǎn)換,然后經(jīng)過(guò)單片機(jī)的數(shù)據(jù)處理,將溫度在現(xiàn)實(shí)電路上顯示出來(lái)。這種設(shè)計(jì)我用到的是A\D轉(zhuǎn)換思路,缺點(diǎn)是比較麻煩。1.2.2方案二后來(lái)經(jīng)過(guò)查閱相關(guān)資料,考慮到使用溫度傳感器。因?yàn)樵趩纹瑱C(jī)的實(shí)際應(yīng)用中,傳感器是很重要的一部分,所以選擇使用DS18B20溫度傳感器。這種傳感器比較容易讀取被測(cè)溫度值,并且進(jìn)行轉(zhuǎn)換,更加符合設(shè)計(jì)方案要求。通過(guò)比較以上兩種方案,我認(rèn)為方案二比較方便,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單。所以我選擇了方案二。2.總體設(shè)計(jì)思路主控制器數(shù)字溫度計(jì)電路設(shè)計(jì)的總體設(shè)計(jì)方框圖如下圖??刂破鞑捎脝纹瑱C(jī)STC89C51,溫度傳感器采用DS18B20,用四位數(shù)碼管以傳口傳送數(shù)據(jù)來(lái)顯示溫度。主控制器LCD顯示單片機(jī)復(fù)位LCD顯示單片機(jī)復(fù)位單片機(jī)復(fù)位LCD顯示單片機(jī)復(fù)位LCD顯示 溫度傳感器時(shí)鐘震蕩溫度傳感器時(shí)鐘震蕩圖2.1圖2.12.1主控制器單片機(jī)STC89C51的特點(diǎn)是低電壓控電和體積小。四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,適合便攜產(chǎn)品的使用。STC89C51的主要功能如下表所示。兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫flashROM32個(gè)雙向I/O口256x8bit內(nèi)部RAM3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHz2個(gè)串行中斷可編程UART串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能表2.12.1.1STC89C51引腳介紹①主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線②外接晶振引腳(2根)XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin20):片內(nèi)振蕩電路的輸出端③控制引腳(4根)RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號(hào)PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。④可編程輸入/輸出引腳(32根)STC89C51單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。P0口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7P2口(Pin21~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7圖2.2STC89C51封裝圖2.2顯示電路顯示電路采用4位共陽(yáng)極LED數(shù)碼管。按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管,共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼顯示器是一種由LED發(fā)光二極管組合顯示字符的顯示器件,它使用了8個(gè)Led發(fā)光二極管,其中七個(gè)用于顯示字符,一個(gè)顯示小數(shù)點(diǎn),所以通稱為七段發(fā)光二極管數(shù)碼顯示器。4位一體數(shù)碼管,其內(nèi)部段已連接好,數(shù)碼管的正面朝自己,小數(shù)點(diǎn)在下方。a、b、c、d、e、f、g、dp為段引腳,S1、S2、S3、S4分別表示四個(gè)數(shù)碼管的位。2.3溫度傳感器DS18B20溫度傳感器是美國(guó)DALLAS公司推出的一種改進(jìn)型只能溫度傳感器,相比較于傳統(tǒng)的測(cè)溫元件,比如熱敏電阻,這種溫度傳感器可以直接讀出被測(cè)的溫度,而且可以根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)數(shù)字讀數(shù)。它的性能特點(diǎn)如下:?jiǎn)尉€借口只需要一個(gè)端口引腳進(jìn)行通信。無(wú)需外部器件??梢酝ㄟ^(guò)數(shù)據(jù)線供電??梢圆⒙?lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫??啥x報(bào)警設(shè)置。零待機(jī)功耗。測(cè)溫范圍為-55至+125℃。固有測(cè)溫分辨率為0.5℃。負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因?yàn)榘l(fā)燒而燒毀,只是不能正常工作。適配各種單片機(jī)或者系統(tǒng)。開(kāi)始開(kāi)始執(zhí)行初始化時(shí)序發(fā)出跳過(guò)ROM匹配命令啟動(dòng)溫度轉(zhuǎn)換延時(shí)大于540μs等待溫度轉(zhuǎn)化完成執(zhí)行初始化時(shí)序發(fā)出匹配ROM指令發(fā)出64位序列號(hào)發(fā)出讀便箋存儲(chǔ)器命令讀取便箋存儲(chǔ)器內(nèi)容并進(jìn)行CRC校驗(yàn)CRC校驗(yàn)正確?溫度數(shù)據(jù)格式轉(zhuǎn)換結(jié)束是否圖2.32.4報(bào)警電路設(shè)計(jì)報(bào)警電路中加一PNP三極管驅(qū)動(dòng),基極接單片機(jī)P11口,當(dāng)端口變成低電平時(shí),驅(qū)動(dòng)三極管會(huì)導(dǎo)通,VCC電壓加載到蜂鳴器使其發(fā)聲、報(bào)警發(fā)光二極管亮,如圖2.4圖2.4報(bào)警電路3.系統(tǒng)軟件設(shè)計(jì)3.1主程序主程序的主要功能是負(fù)責(zé)讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度的實(shí)時(shí)顯示,并根據(jù)設(shè)置的上下限判斷是否報(bào)警。系統(tǒng)開(kāi)始運(yùn)行時(shí),溫度傳感器測(cè)量并計(jì)算溫度值通過(guò)P1.0口傳輸進(jìn)單片機(jī)里進(jìn)行處理,經(jīng)過(guò)處理后的數(shù)據(jù)再通過(guò)P0口傳輸?shù)綌?shù)碼管進(jìn)行顯示。通過(guò)按鍵設(shè)置溫度報(bào)警界限,當(dāng)超過(guò)報(bào)警界限時(shí)單片機(jī)將相應(yīng)的數(shù)據(jù)通過(guò)P1.1口傳輸進(jìn)行聲光報(bào)警。溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖3.1所示。初始化初始化調(diào)用溫度模塊程序DS18B20存在?是處理溫度值轉(zhuǎn)換BCD碼送AT89S52處理按鍵掃描模塊顯示模塊,LED顯示溫度是否越限?開(kāi)始是報(bào)警否否錯(cuò)誤處理,顯示8.8.8.8.3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.2.1示開(kāi)始開(kāi)始發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)結(jié)束NYYN移入溫度緩存器9字節(jié)完?CRC校驗(yàn)?3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成[16]。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖3.3.1所示發(fā)DS18B20復(fù)位命令發(fā)DS18B20復(fù)位命令開(kāi)始發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束3.4計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.4.1所示。開(kāi)始溫度零下?溫度值取補(bǔ)碼置“—”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值結(jié)束置“+”標(biāo)志NY4.系統(tǒng)測(cè)試

4.1測(cè)試環(huán)境及工具

測(cè)試溫度:0-100攝氏度。(模擬不同溫度值環(huán)境)

測(cè)試儀器及軟件:數(shù)字萬(wàn)用表,溫度計(jì)0-100攝氏度。

4.2測(cè)試方法

使系統(tǒng)運(yùn)行,觀察系統(tǒng)硬件檢測(cè)是否正常(包括單片機(jī)控制系統(tǒng),鍵盤電路,顯示電路,溫度測(cè)試電路等)。系統(tǒng)自帶測(cè)試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可采用溫度傳感器和溫度計(jì)同時(shí)測(cè)量溫度變化情況,目測(cè)顯示電路是否正常。并記錄溫度值,與實(shí)際溫度值比較,得出系統(tǒng)的溫度指標(biāo)。4.3結(jié)果分析自檢正常,溫度顯示正常。5.結(jié)論MCS-51單片機(jī),體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,即使是非電子計(jì)算機(jī)專業(yè)人員,通過(guò)學(xué)習(xí)一些專業(yè)基礎(chǔ)知識(shí)以后也能依靠自己的技術(shù)力量,來(lái)開(kāi)發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。本設(shè)計(jì)的溫度控制檢測(cè)和報(bào)警系統(tǒng),只是單片機(jī)廣泛應(yīng)用于各行各業(yè)中的一例。

本設(shè)計(jì)研究是基于單片機(jī)控制的溫度閉環(huán)控制系統(tǒng)的設(shè)計(jì),介紹了對(duì)溫度的顯示、控制及報(bào)警,實(shí)現(xiàn)了溫度的實(shí)時(shí)顯示及控制??刂撇糠?,提出了用DS18S20、89C51單片機(jī)及LCD的硬件電路完成對(duì)水溫的實(shí)時(shí)檢測(cè)及顯示,利用DS18S20與單片機(jī)連接由軟件與硬件電路配合來(lái)實(shí)現(xiàn)對(duì)加熱電阻絲的實(shí)時(shí)控制及超出設(shè)定的上下限溫度的報(bào)警系統(tǒng)。

它具有微型化、低功耗、高性能、抗干攏能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),特別適合于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,而且每片DS18S20都有唯一的產(chǎn)品號(hào)并可存入其ROM中,以便在構(gòu)成大型溫度測(cè)控系統(tǒng)時(shí)在單線上掛接任意多個(gè)DS18S20芯片。從DS18S20讀出或?qū)懭隓S18S20信息僅需要一根口線,其讀寫及溫度變換功率來(lái)源于數(shù)據(jù)總線,該總線本身也可以向所掛接的DS18S20供電,而無(wú)需額處電源。DS18S20能提供九位溫度讀數(shù),它無(wú)需任何外圍硬件即可方便地構(gòu)成溫度檢測(cè)系統(tǒng)。參考文獻(xiàn)何齡修.讀南明史[J].中國(guó)史研究,1998,(3):167-173.劉國(guó)鈞,陳紹業(yè).圖書館目錄[M].北京:高等教育出版社,1957:15-18.趙天書.諾西肽分階段補(bǔ)料分批發(fā)酵過(guò)程優(yōu)化研究[D].沈陽(yáng):東北大學(xué),2013.致謝首先,感謝學(xué)校三年來(lái)對(duì)我的培養(yǎng)。為我們營(yíng)造了一個(gè)良好的學(xué)習(xí)氛圍,建設(shè)一流的教學(xué)設(shè)施,使我們身心愉快的投入到學(xué)習(xí)中。其次,感謝尊敬的指導(dǎo)老師黃有全老師,有了他的諄諄教誨,處處提點(diǎn),才使本論文的前期準(zhǔn)備以及整個(gè)研究過(guò)程順利完成。指導(dǎo)老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、扎實(shí)的理論基礎(chǔ)、全身心投入工作的精神以及對(duì)學(xué)生盡心盡力的態(tài)度給了我極大的幫助與鼓勵(lì),使我受益匪淺。從指導(dǎo)老師的教學(xué)態(tài)度上,我學(xué)到的不僅僅只有書本上的知識(shí),還有做人的道理。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。在此謹(jǐn)向指導(dǎo)老師致以誠(chéng)摯的謝意和崇高的敬意。附錄源程序#include<AT89X52.h>#include"DS18B20.h"#defineuintunsignedint#defineucharunsignedchar//宏定義#defineSETP3_1//定義調(diào)整鍵#defineDECP3_2//定義減少鍵#defineADDP3_3//定義增加鍵#defineBEEPP3_7//定義蜂鳴器bitshanshuo_st;//閃爍間隔標(biāo)志bitbeep_st;//蜂鳴器間隔標(biāo)志sbitDIAN=P2^7;//小數(shù)點(diǎn)ucharx=0;//計(jì)數(shù)器signedcharm;//溫度值全局變量ucharn;//溫度值全局變量ucharset_st=0;//狀態(tài)標(biāo)志signedcharshangxian=38;//上限報(bào)警溫度,默認(rèn)值為38signedcharxiaxian=5;//下限報(bào)警溫度,默認(rèn)值為5ucharcodeLEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*****延時(shí)子程序*****/voidDelay(uintnum){while(--num);}/*****初始化定時(shí)器0*****/voidInitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0;//50ms(晶振12M)}/*****定時(shí)器0中斷服務(wù)程序*****/voidtimer0(void)interrupt1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中斷0服務(wù)程序*****/voidint0(void)interrupt0{EX0=0;//關(guān)外部中斷0if(DEC==0&&set_st==1){shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}elseif(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中斷1服務(wù)程序*****/voidint1(void)interrupt2{EX1=0;//關(guān)外部中斷1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}elseif(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****讀取溫度*****/voidcheck_wendu(void){uinta,b,c;c=ReadTemperature()-5;//獲取溫度值并減去DS18B20的溫漂誤差a=c/100;//計(jì)算得到十位數(shù)字b=c/10-a*10;//計(jì)算得到個(gè)位數(shù)字m=c/10;//計(jì)算得到整數(shù)位n=c-a*100-b*10;//計(jì)算得到小數(shù)位if(m<0){m=0;n=0;}//設(shè)置溫度顯示上限if(m>99){m=99;n=9;}//設(shè)置溫度顯示上限}/*****顯示開(kāi)機(jī)初始化等待畫面*****/Disp_init(){P2=0xbf;//顯示-P1=0xf7;Delay(200);P1=0xfb;Delay(200);P1=0xfd;Delay(200);P1=0xfe;Delay(200);P1=0xff;//關(guān)閉顯示}/*****顯示溫度子程序*****/Disp_Temperature()//顯示溫度{P2=0xc6;//顯示CP1=0xf7;Delay(300);P2=LEDData[n];//顯示個(gè)位P1=0xfb;Delay(300);P2=LEDData[m%10];//顯示十位DIAN=0;//顯示小數(shù)點(diǎn)P1=0xfd;Delay(300);P2=LEDData[m/10];//顯示百位P1=0xfe;Delay(300);P1=0xff;//關(guān)閉顯示}/*****顯示報(bào)警溫度子程序*****/Disp_alarm(ucharbaojing){P2=0xc6;//顯示CP1=0xf7;Delay(200);P2=LEDData[baojing%10];//顯示十位P1=0xfb;Delay(200);P2=LEDData[baojing/10];//顯示百位P1=0xfd;Delay(200);if(set_st==1)P2=0x89;elseif(set_st==2)P2=0xc7;//上限H、下限L標(biāo)示P1=0xfe;Delay(200);P1=0xff;//關(guān)閉顯示}/*****報(bào)警子程序*****/voidAlarm(){if(x>=10){beep_st=~beep_st;x=0;}if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0;elseBEEP=1;}/*****主函數(shù)*****/voidmain(void){uintz;InitTimer();//初始化定時(shí)器EA=1;//全局中斷開(kāi)關(guān)TR0=1;ET0=1;//開(kāi)啟定時(shí)器0IT0=1;IT1=1;check_wendu();check_wendu();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0;//關(guān)閉外部中斷0EX1=0;//關(guān)閉外部中斷1check_wendu();Disp_Temperature();Alarm();//報(bào)警檢測(cè)}elseif(set_st==1){BEEP=1;//關(guān)閉蜂鳴器EX0=1;//開(kāi)啟外部中斷0EX1=1;//開(kāi)啟外部中斷1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st){Disp_alarm(shangxian);}}elseif(set_st==2){BEEP=1;//關(guān)閉蜂鳴器EX0=1;//開(kāi)啟外部中斷0EX1=1;//開(kāi)啟外部中斷1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st){Disp_alarm(xiaxian);}}}}/*****END*****/DS18B20.h:#include<AT89X52.h>#defineDQP3_6//定義DS18B20總線I/O/*****延時(shí)子程序*****/voidDelay_DS18B20(intnum){while(num--);}/*****初始化DS18B20*****/voidIni

溫馨提示

  • 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)論