基于單片機(jī)飲水機(jī)的溫度控制控制系統(tǒng)的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)飲水機(jī)的溫度控制控制系統(tǒng)的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)飲水機(jī)的溫度控制控制系統(tǒng)的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)飲水機(jī)的溫度控制控制系統(tǒng)的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)飲水機(jī)的溫度控制控制系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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)介

1、大學(xué)畢 業(yè) 設(shè) 計(jì) 題目:基于單片機(jī)飲水機(jī)溫度 控制系統(tǒng)的設(shè)計(jì) 學(xué)生姓名: 學(xué)生學(xué)號(hào): 院系名稱: 專業(yè)班級(jí): 指導(dǎo)教師: 2012年 06 月 18 日畢業(yè)設(shè)計(jì)任務(wù)書(shū)專業(yè) 班級(jí) 姓名 下發(fā)日期 題目基于單片機(jī)的飲水機(jī)溫度控制系統(tǒng)的設(shè)計(jì)專題單片機(jī)主要內(nèi)容及要求主要內(nèi)容:1) 系統(tǒng)上電后測(cè)量當(dāng)前溫度并設(shè)置80的預(yù)加熱溫度,按下“溫度設(shè)置”按鍵可以通過(guò)“+”、“-”按鈕來(lái)進(jìn)行預(yù)加熱溫度的設(shè)置,設(shè)置完成預(yù)加熱溫度后開(kāi)始加熱;2) 如果實(shí)測(cè)溫度大于或等于預(yù)設(shè)置溫度,則單片機(jī)發(fā)出停止加熱信號(hào)并熄滅加熱指示燈,點(diǎn)亮保溫指示燈,且當(dāng)超過(guò)預(yù)設(shè)溫度時(shí)發(fā)出報(bào)警;3) 完成加熱管控制電路、報(bào)警電路設(shè)計(jì),重點(diǎn)設(shè)計(jì)好臨

2、界點(diǎn)問(wèn)題。基本要求:1) 熟悉和掌握mcs-51、at80c51單片機(jī)、ds18b20與led連接方法,著重弄清各個(gè)系統(tǒng)電路的連接方式。2) 工作嚴(yán)謹(jǐn)、認(rèn)真,學(xué)習(xí)努力、勤奮,嚴(yán)格遵守校紀(jì),按時(shí)完成畢業(yè)設(shè)計(jì)任務(wù)書(shū)所規(guī) 定的各項(xiàng)任務(wù),并按時(shí)完成學(xué)校、系里規(guī)定的各項(xiàng)工作。主要技術(shù)參 數(shù) 單片機(jī)型號(hào)為:at80c51,合計(jì)總數(shù)40個(gè)引腳,包括電源引腳2個(gè)、時(shí)鐘信號(hào)引腳2個(gè)、控制信號(hào)引腳4個(gè)以及i/o端口口線32個(gè);5v直流輸入,繼電器輸出。進(jìn)度及完成日期2012年3月26日-2012年4月09日: 熟悉課題內(nèi)容查找相關(guān)資料,提交開(kāi)題告。2012年4月10日-2012年4月19日: 進(jìn)行單片機(jī)硬件系統(tǒng)的

3、設(shè)計(jì)。2012年4月20日-2012年4月23日: 完成單片機(jī)總體計(jì)。2012年4月25日-2012年5月11日: 完成讀取溫度ds18b20模塊,編寫(xiě)程序。2012年5月14日-2012年5月18日: 完成報(bào)警設(shè)計(jì),連好電路并調(diào)試。2012年5月21日-2012年6月01日: 進(jìn)行軟硬件聯(lián)調(diào),完善系統(tǒng),并完成系統(tǒng)。2012年6月16日-2012年6月20日: 撰寫(xiě)畢業(yè)論文,準(zhǔn)備畢業(yè)答辯。系主任簽字日 期教研室主任簽字日 期指導(dǎo)教師簽字日 期指 導(dǎo) 教 師 評(píng) 語(yǔ) 指導(dǎo)教師: 年 月 日7青島理工大學(xué)畢業(yè)設(shè)計(jì)評(píng)閱意見(jiàn)表設(shè)計(jì)題目基于plc的物料分揀機(jī)械手自動(dòng)化控制系統(tǒng)設(shè)計(jì)評(píng)價(jià)項(xiàng)目評(píng)價(jià)標(biāo)準(zhǔn)(a級(jí))

4、滿分評(píng) 分abcde文獻(xiàn)資料利用能力能獨(dú)立地利用多種方式查閱中外文獻(xiàn);能正確翻譯外文資料;能正確有效地利用各種規(guī)范、設(shè)計(jì)手冊(cè)等。10109876綜合運(yùn)用能力研究方案設(shè)計(jì)合理;設(shè)計(jì)方法科學(xué);技術(shù)線路先進(jìn)可行;理論分析和計(jì)算正確;動(dòng)手能力強(qiáng);能獨(dú)立完成設(shè)計(jì);能綜合運(yùn)用所學(xué)知識(shí)發(fā)現(xiàn)和解決實(shí)際問(wèn)題;研究結(jié)果客觀真實(shí)。20192017181516131412設(shè)計(jì)質(zhì)量設(shè)計(jì)結(jié)構(gòu)嚴(yán)謹(jǐn);邏輯性強(qiáng);語(yǔ)言文字表準(zhǔn)確流暢;格式、圖、表規(guī)范;有一定的學(xué)術(shù)水平或?qū)嶋H價(jià)值4037-4032-3628-3125-2724創(chuàng)新能力有較強(qiáng)的創(chuàng)新意識(shí);所做工作有較大突破;設(shè)計(jì)有獨(dú)到見(jiàn)解151513-1411-12109工作量工作量

5、飽滿;圓滿完成了任務(wù)書(shū)所規(guī)定的各項(xiàng)任務(wù)。151513-1411-12109總分是否同意將該設(shè)計(jì)提交答辯:是( ) 否( )具體評(píng)閱及修改意見(jiàn): 評(píng)閱人: 年 月 日注:1.請(qǐng)按照a級(jí)標(biāo)準(zhǔn),評(píng)出設(shè)計(jì)各項(xiàng)目的具體得分,并填寫(xiě)在相應(yīng)項(xiàng)目的評(píng)分欄中; 2.計(jì)算出總分。若總分60分,“設(shè)計(jì)質(zhì)量”24分,建議不能提交論文評(píng)閱乃至答辯。該設(shè)計(jì)須限期修改合格后重新申請(qǐng)答辯。 3.評(píng)閱意見(jiàn)欄不夠可另附頁(yè)。答 辯 委 員 會(huì) 評(píng) 語(yǔ)評(píng)定成績(jī)周 記說(shuō)明書(shū)圖 紙答 辯總 評(píng)答辯委員會(huì)主席簽字日 期(5%)(65%)(30%)百分制等級(jí)制青島理工大學(xué)畢業(yè)設(shè)計(jì)摘 要溫度控制系統(tǒng)可以說(shuō)是無(wú)所不在,熱水器系統(tǒng)、空調(diào)系統(tǒng)、冰箱

6、、電飯煲、電風(fēng)扇等家電產(chǎn)品以至手持式高速高效的計(jì)算機(jī)和電子設(shè)備,均需要提供溫度控制功能。本系統(tǒng)的設(shè)計(jì)可以用于熱水器溫度控制系統(tǒng)和飲水機(jī)等各種電器電路中。它以單片機(jī)at80c51為核心,通過(guò)3個(gè)數(shù)碼管顯示溫度和4個(gè)按鍵實(shí)現(xiàn)人機(jī)對(duì)話,使用單總線溫度轉(zhuǎn)換芯片ds18b20實(shí)時(shí)采集溫度并通過(guò)數(shù)碼管顯示,并提供各種運(yùn)行指示燈用來(lái)指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設(shè)置、加熱、停止加熱等,整個(gè)系統(tǒng)通過(guò)四個(gè)按鍵來(lái)設(shè)置加熱溫度和控制運(yùn)行模式。關(guān)鍵詞: 單片機(jī),數(shù)碼管顯示,單總線,ds18b205青島理工大學(xué)畢業(yè)設(shè)計(jì)abstract temperature control system can be said to

7、be ubiquitous, water heaters, air conditioning systems, refrigerators, rice cookers, electric fans and other home appliances as well as high-speed and efficient hand-held computers and electronic equipment are required to provide temperature control. the system design can be used for drinking water

8、heater temperature control systems and other electrical circuits. at80c51 microcontroller as the core of it, through the three temperature digital display and 4 keys to achieve man-machine dialogue, the use of single-chip bus temperature conversion temperature ds18b20 real-time acquisition and throu

9、gh the digital display and offers a variety of operating light to indicate system now live in the state, such as: temperature setting, heating, and stop heating, the entire system through the four buttons to set the heating temperature and control the operating mode.key words: microcontroller, digit

10、al display, single bus, ds18b20目 錄摘 要iabstractii目 錄iii第1章 前 言11.1 研究的目的及意義11.2 單片機(jī)的發(fā)展趨勢(shì)11.3 主要研究的內(nèi)容2第2章 系統(tǒng)總體的設(shè)計(jì)32.1 硬件總體的設(shè)計(jì)32.2 軟件總體的設(shè)計(jì)3第3章 硬件系統(tǒng)設(shè)計(jì)53.1 硬件電路分析和設(shè)計(jì)報(bào)告53.1.1單片機(jī)最小系統(tǒng)電路53.1.2 鍵盤電路73.1.3 數(shù)碼管及指示燈顯示電路83.1.4 溫度采集電路103.1.5 電源電路153.1.6 報(bào)警電路設(shè)計(jì)163.1.7 加熱管控制電路設(shè)計(jì)163.2 系統(tǒng)硬件總圖17第4章 系統(tǒng)總設(shè)計(jì)194.1 主程序流程圖194

11、.2 各個(gè)模塊的流程圖204.2.1 讀取溫度ds18b20模塊的流程204.2.2 鍵盤掃描處理流程234.2.3 報(bào)警處理流程234.3 系統(tǒng)源代碼24第5章 系統(tǒng)調(diào)試345.1 軟件調(diào)試345.2 系統(tǒng)操作說(shuō)明355.3 數(shù)據(jù)測(cè)試365.4 社會(huì)效益365.5經(jīng)濟(jì)效益37第6章 總結(jié)與展望38致 謝39參考文獻(xiàn)40附錄141附錄2439第1章 前 言1.1 研究的目的及意義溫度控制是無(wú)論是在工業(yè)生產(chǎn)過(guò)程中,還是在日常生活中都起著非常重要的作用,過(guò)低的溫度或過(guò)高的溫度都會(huì)使水資源失去應(yīng)有的作用,從而造成水資源的巨大浪費(fèi)。特別是在當(dāng)前全球水資源極度缺乏的情況下,我們更應(yīng)該掌握好對(duì)水溫的控制,

12、把身邊的水資源好好地利用起來(lái)。所以我們必須能實(shí)時(shí)獲取水溫變化。對(duì)于超過(guò)適宜范圍的溫度能夠報(bào)警。同時(shí),我們也希望在適宜溫度范圍內(nèi)可以由人們根據(jù)實(shí)際情況加以改變。傳統(tǒng)的溫度采集電路相當(dāng)復(fù)雜,需要經(jīng)過(guò)溫度采集、信號(hào)放大、濾波、ad轉(zhuǎn)換等一系列工作才能得到溫度的數(shù)字量,并且這種方式不僅電路復(fù)雜,元器件個(gè)數(shù)多,而且線性度和準(zhǔn)確度都不理想,抗干擾能力弱?,F(xiàn)在常用的溫度傳感器芯片不但功率消耗低、準(zhǔn)確率高,而且比傳統(tǒng)的溫度傳感器有更好的線性表現(xiàn),最重要的一點(diǎn)是使用起來(lái)方便。 本次設(shè)計(jì)為一個(gè)基于單片機(jī)的飲水機(jī)的溫度控制系統(tǒng),該系統(tǒng)可以實(shí)時(shí)檢測(cè)飲水機(jī)水箱的水溫,并且可以通過(guò)數(shù)碼管顯示飲水機(jī)水箱水溫度數(shù),可以通過(guò)鍵

13、盤或開(kāi)關(guān)選擇制冷或加熱,可以人為設(shè)置水的溫度的上下限,如加熱,當(dāng)溫度在設(shè)定的范圍內(nèi)時(shí)正常工作,當(dāng)?shù)陀谒疁叵孪迺r(shí)控制加熱器加熱;如制冷,當(dāng)溫度高于水溫上限時(shí)控制壓縮機(jī)制冷,當(dāng)溫度超過(guò)設(shè)定值時(shí)具有示警功能。1.2 單片機(jī)的發(fā)展趨勢(shì)單片機(jī)對(duì)對(duì)溫度的控制是工業(yè)生產(chǎn)中經(jīng)常使用的控制方法。自從1976年intel公司推出第一批單片機(jī)以來(lái),80年代單片機(jī)技術(shù)進(jìn)入快速發(fā)展時(shí)期,近年來(lái),隨著大規(guī)模集成電路的發(fā)展,單片機(jī)繼續(xù)朝快速、高性能方向發(fā)展。單片機(jī)主要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機(jī),小至日常生活中的冰箱、彩電,單片機(jī)都可以大顯其能。單片機(jī)將微處理器、存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、i/o接口電路等集

14、成在一個(gè)芯片上的大規(guī)模集成電路,本身即是一個(gè)小型化的微機(jī)系統(tǒng)。單片機(jī)技術(shù)與傳感與測(cè)量技術(shù)、信號(hào)與系統(tǒng)分析技術(shù)、電路設(shè)計(jì)技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫(kù)技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)操作系統(tǒng)、匯編語(yǔ)言程序設(shè)計(jì)、高級(jí)語(yǔ)言程序設(shè)計(jì)、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號(hào)處理、自動(dòng)控制、誤差分析、儀器儀表結(jié)構(gòu)設(shè)計(jì)和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同時(shí),單片機(jī)具有較強(qiáng)的管理功能。采用單片機(jī)對(duì)整個(gè)測(cè)量電路進(jìn)行管理和控制,使得整個(gè)系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修方便。1.3 主要研究的內(nèi)容1 本系統(tǒng)上電后數(shù)碼管顯示當(dāng)前測(cè)量溫度,此時(shí)加熱指示燈和保

15、溫指示燈均不點(diǎn)亮;若此時(shí)按“自動(dòng)加熱”鍵,則單片機(jī)自動(dòng)將預(yù)加熱溫度設(shè)置為80并開(kāi)始加熱,送出一個(gè)加熱信號(hào),并點(diǎn)亮加熱指示燈;若按“溫度設(shè)置”鍵,則進(jìn)入預(yù)加熱溫度設(shè)置界面,此時(shí)數(shù)碼管閃爍顯示預(yù)設(shè)置溫度,此時(shí)通過(guò)按鍵“”和“”進(jìn)行設(shè)置溫度,預(yù)設(shè)置溫度按“5”遞增或遞減,設(shè)置好溫度后再按一次“溫度設(shè)置”鍵確定,單片機(jī)保存預(yù)設(shè)置溫度,并開(kāi)始加熱;2 如果實(shí)測(cè)溫度大于或等于預(yù)設(shè)置溫度,則單片機(jī)發(fā)出停止加熱信號(hào)并熄滅加熱指示燈,點(diǎn)亮保溫指示燈,且當(dāng)超過(guò)預(yù)設(shè)溫度時(shí)發(fā)出報(bào)警;3 當(dāng)溫度下降到預(yù)設(shè)置溫度以下5度時(shí),單片機(jī)再次發(fā)出加熱信號(hào),同時(shí)熄滅保溫指示燈,點(diǎn)亮加熱指示燈,依次循環(huán)控制;4 完成加熱管控制電路、

16、報(bào)警電路設(shè)計(jì),重點(diǎn)設(shè)計(jì)好臨界點(diǎn)問(wèn)題。第2章 系統(tǒng)總體的設(shè)計(jì)2.1 硬件總體的設(shè)計(jì)設(shè)計(jì)并制作一個(gè)基于單片機(jī)的熱水器溫度控制系統(tǒng)的電路,其結(jié)構(gòu)框圖如圖2-1:電源單片機(jī)at80c51數(shù)碼管顯示繼電器溫度傳感器ds18b20報(bào)警鍵盤指示燈圖2.1 系統(tǒng)機(jī)構(gòu)框圖硬件系統(tǒng)子模塊:(1) 單片機(jī)最小系統(tǒng)電路部分;(2) 鍵盤掃描電路部分;(3) 數(shù)碼管溫度顯示和運(yùn)行指示燈電路部分;(4) 溫度采集電路部分;(5) 繼電器控制部分;(6) 報(bào)警部分。2.2 軟件總體的設(shè)計(jì)良好的設(shè)計(jì)方案可以減少軟件設(shè)計(jì)的工作量,提高軟件的通用性,擴(kuò)展性和可讀性。本系統(tǒng)的設(shè)計(jì)方案和步驟如下:(1) 根據(jù)需求按照系統(tǒng)的功能要求,

17、逐級(jí)劃分模塊;(2) 明確各模塊之間的數(shù)據(jù)流傳遞關(guān)系,力求數(shù)據(jù)傳遞少,以增強(qiáng)各模塊的獨(dú)立性,便于軟件編制和調(diào)試;(3) 確定軟件開(kāi)發(fā)環(huán)境,選擇設(shè)計(jì)語(yǔ)言,完成模塊功能設(shè)計(jì),并分別調(diào)試通過(guò);(4) 按照開(kāi)發(fā)式軟件設(shè)計(jì)結(jié)構(gòu),將各模塊有機(jī)的結(jié)合起來(lái),即成一個(gè)較完善的系統(tǒng)。首先接通電源系統(tǒng)開(kāi)始工作,系統(tǒng)開(kāi)始工作后,通過(guò)按鍵設(shè)定溫度值的上限值和下限值,確定按鍵將設(shè)定的溫度值存儲(chǔ)到指定的地址空間,溫度傳感器開(kāi)始實(shí)時(shí)檢測(cè),調(diào)用顯示子程序顯示檢測(cè)結(jié)果,調(diào)用比較當(dāng)前顯示溫度值與開(kāi)始設(shè)定的溫度值比較,如果當(dāng)前顯示值低于設(shè)定值就通過(guò)繼電器起動(dòng)加熱裝置,直到達(dá)到設(shè)定值停止加熱,之后進(jìn)行保溫,如果溫度高于上限進(jìn)行報(bào)警。青

18、島理工大學(xué)畢業(yè)設(shè)計(jì)第3章 硬件系統(tǒng)設(shè)計(jì)3.1 硬件電路分析和設(shè)計(jì)報(bào)告本次設(shè)計(jì)主要思路是通過(guò)對(duì)單片機(jī)編程將由溫度傳感器ds18b20采集的溫度外加驅(qū)動(dòng)電路顯示出來(lái),包括對(duì)繼電器的控制,進(jìn)行升溫,當(dāng)溫度達(dá)到上下限蜂鳴器進(jìn)行報(bào)警。p1.7開(kāi)關(guān)按鈕是用于確認(rèn)設(shè)定溫度的,初始按下表示開(kāi)始進(jìn)入溫度設(shè)定狀態(tài),然后通過(guò)p1.5和p1.6設(shè)置溫度的升降,再次按下p1.7時(shí),表示確認(rèn)所設(shè)定的溫度,然后轉(zhuǎn)入升溫或降溫。p2.3所接的發(fā)光二極管用于表示加熱狀態(tài),p2.5所接的發(fā)光二極管用于表示保溫狀態(tài)。p2.3接繼電器。p3.1是溫度信號(hào)線。整個(gè)電路都是通過(guò)軟件控制實(shí)現(xiàn)設(shè)計(jì)要求。3.1.1單片機(jī)最小系統(tǒng)電路因?yàn)?0c

19、51單片機(jī)內(nèi)部自帶8k的rom和256字節(jié)的ram,因此不必構(gòu)建單片機(jī)系統(tǒng)的擴(kuò)展電路。如圖3.1,單片機(jī)最小系統(tǒng)有復(fù)位電路和振蕩器電路。值得注意的一點(diǎn)是單片機(jī)的31腳必須接高電平,否則系統(tǒng)將不能運(yùn)行。因?yàn)樵撃_不接時(shí)為低電平,單片機(jī)將直接讀取外部程序存儲(chǔ)器,而系統(tǒng)沒(méi)有外部程序存儲(chǔ)器,所以必須接vcc。在按鍵兩端并聯(lián)一個(gè)電解電容,濾除交流干擾,增加系統(tǒng)抗干擾能力。c230pfc330pf112mea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0

20、435p0534p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u2+c410ufvccr310kvccat80c51vcc112234sw5sw-pb()圖3.1 單片機(jī)最小系統(tǒng)圖at80c51的管腳說(shuō)明: vcc:供電電壓。本設(shè)計(jì)供電電壓為+5v。gnd:接地。p0口:p0口為一個(gè)8位漏極開(kāi)路雙向i/o口,每個(gè)管腳可吸收8個(gè)ttl門電流。當(dāng)p1口的管腳第一次寫(xiě)“1”時(shí),被定義為高阻輸入。p0口能夠作為外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在flash編程時(shí),p0口作為原碼輸入口

21、,當(dāng)flash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4個(gè)ttl門電流。p1口管腳寫(xiě)入“1”后,被內(nèi)部上拉為高電平,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為低八位地址接收。 p2口:p2口為一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被上拉電阻拉高,且作為輸入。p2口的管腳被外部下拉為低電平時(shí),將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部

22、數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉電阻,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流,這是由于上拉的緣故。rst:復(fù)位輸入端。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)。ale:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存于鎖存地址的低位字節(jié)。在flash編程期間,該引腳用于輸入

23、編程脈沖。在平時(shí),ale端口以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而,要注意的是:每當(dāng)其用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出,可將sfr8eh地址置0。此時(shí), ale只有在執(zhí)行movx,movc指令時(shí)ale才起作用。psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指令期間,每個(gè)機(jī)器周期psen兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的psen信號(hào)將不出現(xiàn)。ea:ea功能為內(nèi)外程序存儲(chǔ)器選擇控制端。當(dāng)ea保持低電平時(shí),單片機(jī)訪問(wèn)外部程序存儲(chǔ)器。當(dāng)ea端保持高電平時(shí),單片機(jī)訪問(wèn)內(nèi)部程序存儲(chǔ)

24、器。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入端。xtal2:來(lái)自反向振蕩器的輸出端。3.1.2 鍵盤電路鍵盤是單片機(jī)應(yīng)用系統(tǒng)中的主要輸入設(shè)備,單片機(jī)使用的鍵盤分為編碼鍵盤和非編碼鍵盤。編碼鍵盤采用硬件線路來(lái)實(shí)現(xiàn)鍵盤的編碼,每按下一個(gè)鍵,鍵盤能夠自動(dòng)生成按鍵代碼,并有去抖功能。因此使用方便,但硬件較復(fù)雜。非編碼鍵盤僅僅提供鍵開(kāi)關(guān)狀態(tài),由程序來(lái)識(shí)別閉合鍵,消除抖動(dòng),產(chǎn)生相應(yīng)的代碼,轉(zhuǎn)入執(zhí)行該鍵的功能程序。非編碼鍵盤中鍵的數(shù)量較少,硬件簡(jiǎn)單,在單片機(jī)中應(yīng)用非常廣泛。圖為按鍵和at80c51的接線圖,檢測(cè)儀共設(shè)有4個(gè)按鍵,每個(gè)按鍵由軟件來(lái)決定其功能,4個(gè)按鍵功能分別為:(1) sw1:

25、設(shè)定按鍵(設(shè)定按鍵)(2) sw2:加法按鍵(當(dāng)前位加5)(3) sw3:減法按鍵(當(dāng)前位減5)(4) sw4:退出設(shè)置鍵(系統(tǒng)初始化)ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u2at80c51112234sw3sw-pb()112234sw4sw-pb()112234s

26、w2sw-pb()112234sw1sw-pb()p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7 圖3.2 單片機(jī)按鍵和at80c51的接線圖3.1.3 數(shù)碼管及指示燈顯示電路(1)數(shù)碼管顯示說(shuō)明 各個(gè)數(shù)碼管的段碼都是單片機(jī)的數(shù)據(jù)口輸出,即各個(gè)數(shù)碼管輸入的段碼都是一樣的,為了使其分別顯示不同的數(shù)字,可采用動(dòng)態(tài)顯示的方式,即先只讓最低位顯示0(含點(diǎn)),經(jīng)過(guò)一段延時(shí),再只讓次低位顯示1,如此類推。由視覺(jué)暫留,只要我們的延時(shí)時(shí)間足夠短,就能夠使得數(shù)碼的顯示看起來(lái)非常的穩(wěn)定清楚,過(guò)程如表3.1。表3.1 數(shù)碼管編碼表段碼位碼顯示器狀態(tài)08h01h0abh02h112h04h222h0

27、8h3a1h10h424h20h504h40h6aah80h7本論文中使用了3個(gè)數(shù)碼管,其中前兩位使用動(dòng)態(tài)掃描顯示實(shí)測(cè)溫度,在設(shè)置加熱溫度的時(shí)候,兩個(gè)數(shù)碼管是閃爍,以提示目前處在溫度設(shè)置狀態(tài)。第三位數(shù)碼管靜態(tài)顯示符號(hào)“”。 (2)運(yùn)行指示燈說(shuō)明本熱水器溫度控制系統(tǒng)中共使用到3個(gè)led指示燈和3個(gè)數(shù)碼管。右上角的紅色led是電源指示燈;數(shù)碼管右邊的紅色led是加熱指示燈,當(dāng)剛開(kāi)機(jī)或溫度降到設(shè)定溫度5以下時(shí),該燈會(huì)亮,表示目前處于加熱狀態(tài);當(dāng)溫度上升到設(shè)定溫度時(shí),該led滅,同時(shí)數(shù)碼管右邊的綠色led亮,表示目前處于保溫狀態(tài),用戶可以使用熱水器;當(dāng)溫度再次下降到設(shè)定溫度5以下時(shí),綠色led滅,紅色

28、加熱的led燈亮,不斷循環(huán)。圖3.3 led數(shù)碼管顯示電路圖3.1.4 溫度采集電路 (1) ds18b20介紹dallas最新單線數(shù)字溫度傳感器ds18b20簡(jiǎn)介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì)。dallas半導(dǎo)體公司的數(shù)字化溫度傳感器ds1820是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。ds18b20、ds1822“一線總線”數(shù)字化溫度傳感器同ds18b20一樣,ds18b20也支持“一線總線”接口,測(cè)量溫度范圍為 -55+125,在-10+85范圍內(nèi),精度為0.5。ds1822的精

29、度較差為2?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其ds18b20的管腳配置和封裝結(jié)構(gòu)如圖3.4所示。 圖3.4 ds18b20封裝引腳定義: dq為數(shù)字信號(hào)輸入/輸出端; gnd為電源地; vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 (2)ds18b20的單線(1wire bus)系統(tǒng)單線總線結(jié)構(gòu)是ds18b20的突出特點(diǎn),也是理解和編程的難點(diǎn)。從兩個(gè)角度來(lái)理解單線總線:第一,單線總線只定義了一個(gè)信號(hào)線,而且ds18b20智能程度較低(這點(diǎn)可以與微控制器和spi器件間的通信做一個(gè)比較),所以ds18b20和處理器之間的通信必然要通過(guò)嚴(yán)格的時(shí)序控制來(lái)

30、完成。第二,ds18b20的輸出口是漏級(jí)開(kāi)路輸出,這里給出一個(gè)微控制器和ds18b20連接原理圖。這種設(shè)計(jì)使總線上的器件在合適的時(shí)間驅(qū)動(dòng)它。顯然,總線上的器件與(wired and)關(guān)系。這就決定:(1)微控制器不能單方面控制總線狀態(tài)。之所以提出這點(diǎn),是因?yàn)橄喈?dāng)多的文獻(xiàn)資料上認(rèn)為,微控制器在讀取總線上數(shù)據(jù)之前的i/o口的置1操作是為了給ds18b20一個(gè)發(fā)送數(shù)據(jù)的信號(hào)。這是一個(gè)錯(cuò)誤的觀點(diǎn)。如果當(dāng)前ds18b20發(fā)送0,即使微控制器i/o口置1,總線狀態(tài)還是0;置1操作是為了是i/o口截止(cut off),以確保微控制器正確讀取數(shù)據(jù)。(2)除了ds18b20發(fā)送0的時(shí)間段,其他時(shí)間其輸出口自動(dòng)

31、截止。自動(dòng)截止是為確保:1時(shí),在總線操作的間隙總線處于空閑狀態(tài),即高態(tài);2時(shí),確保微控制器在寫(xiě)1的時(shí)候ds18b20可以正確讀入。由于ds18b20采用的是1wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)at89s52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)ds18b20芯片的訪問(wèn)。 ds18b20的復(fù)位時(shí)序,如圖3.5圖3.5 ds18b20的復(fù)位時(shí)序圖 ds18b20的讀時(shí)序?qū)τ赿s18b20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。對(duì)于ds18b20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓ds1

32、8b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。ds18b20的讀時(shí)序圖如圖3.6所示。圖3.6 ds18b20的讀時(shí)序 ds18b20的寫(xiě)時(shí)序?qū)τ赿s18b20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。對(duì)于ds18b20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證ds18b20能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。如圖3.7所示。圖3.7 ds18b20的寫(xiě)時(shí)序圖 (3)ds18b20的供電方式在圖3.8中示出了ds18b

33、20的寄生電源電路。當(dāng)dq或vdd引腳為高電平時(shí),這個(gè)電路便“取”的電源。寄生電路的優(yōu)點(diǎn)是雙重的,遠(yuǎn)程溫度控制監(jiān)測(cè)無(wú)需本地電源,缺少正常電源條件下也可以讀rom。為了使ds18b20能完成準(zhǔn)確的溫度變換,當(dāng)溫度變換發(fā)生時(shí),dq線上必須提供足夠的功率。有兩種方法確保ds18b20 在其有效變換期內(nèi)得到足夠的電源電流。第一種方法是發(fā)生溫度變換時(shí),在dq線上提供一強(qiáng)的上拉,這期間單總線上不能有其它的動(dòng)作發(fā)生。如圖3.8所示,通過(guò)使用一個(gè)mosfet把dq線直接接到電源可實(shí)現(xiàn)這一點(diǎn),這時(shí)ds18b20 工作在寄生電源工作方式,在該方式下vdd引腳必須連接到地。 圖3.8 ds18b20供電方式1另一種

34、方法是ds18b20工作在外部電源工作方式,如圖3.9所示。這種方法的優(yōu)點(diǎn)是在dq線上不要求強(qiáng)的上拉,總線上主機(jī)不需要連接其它的外圍器件便在溫度變換期間使總線保持高電平,這樣也允許在變換期間其它數(shù)據(jù)在單總線上傳送。此外,在單總線上可以并聯(lián)多個(gè)ds18b20,而且如果它們?nèi)坎捎猛獠侩娫垂ぷ鞣绞剑敲赐ㄟ^(guò)發(fā)出相應(yīng)的命令便可以同時(shí)完成溫度變換。 圖3.9 ds18b20供電方式2 (4) ds18b20設(shè)計(jì)中應(yīng)注意的幾個(gè)問(wèn)題ds18b20具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用接口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds18b20與

35、微處理器間采用串行數(shù)據(jù)傳送。因此, 在對(duì)ds18b20進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在ds18b20 有關(guān)資料中均未提及1wire上所掛ds18b20數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)ds18b20,在實(shí)際應(yīng)用中并非如此。當(dāng)1wire上所掛ds18b20超過(guò)8個(gè)時(shí),就需要考慮微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。連接ds18b20的總線電纜是有長(zhǎng)度限制的。實(shí)際應(yīng)用中,測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接vcc和地線,屏蔽層在源端單點(diǎn)接地。本文以廣泛應(yīng)用的數(shù)字溫度傳感器ds18b20為例,說(shuō)明了1w

36、ire總線的操作過(guò)程和基本原理。事實(shí)上,基于1wire總線的產(chǎn)品還有很多種,如1wire總線的e2prom、實(shí)時(shí)時(shí)鐘、電子標(biāo)簽等。他們都具有節(jié)省i/o資源、結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)快捷、成本低廉、便于總線擴(kuò)展等優(yōu)點(diǎn),因此有廣闊的應(yīng)用空間,具有較大的推廣價(jià)值。本設(shè)計(jì)將溫度傳感器ds18b20與單片機(jī)txd引腳相連,讀取溫度傳感器的數(shù)值。ds18b20與單片機(jī)連接圖如圖所示3.10所示。vccea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p05

37、34p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u2at80c51dq2gnd1vcc3u3ds1820vccr154.7k圖3.10 ds18b20與單片機(jī)連接圖3.1.5 電源電路采用l7805穩(wěn)壓塊,輸出為5v。電子組件要正常運(yùn)作都需要電源電壓供電,一般常用的電源電壓為+5v或+12v,因?yàn)閿?shù)字ic(ingegrated circuit:集成電路)所供給的電壓為+5v,而cmos ic所供給的電壓為+12v,7805是一個(gè)穩(wěn)壓塊。7805穩(wěn)壓管把高電壓轉(zhuǎn)換到低電壓,7805穩(wěn)壓管具有保護(hù)

38、單片機(jī)的作用。l7805輸出端要并聯(lián)上一個(gè)電解電容,濾除交流電干擾,防止損壞單片機(jī)系統(tǒng)。本設(shè)計(jì)采用兩種供電方式,一種為dc718v直流穩(wěn)壓電源變換成5v的直流電;另一種為四節(jié)干電池共6v經(jīng)二極管加壓后得到將近5v的直流電源,電源配以開(kāi)關(guān)和指示燈,以方便使用。黃色發(fā)光二極管表示保溫,紅色的表示加熱狀態(tài)。圖3.11 系統(tǒng)電源設(shè)計(jì)圖3.1.6 報(bào)警電路設(shè)計(jì)同時(shí)可以在系統(tǒng)里設(shè)定溫度上限值,由于加熱停止后,加熱管還有余熱當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。報(bào)警電路原理圖如圖所示。圖3.12 報(bào)警電路圖圖中的三極管8550的作用是增加驅(qū)動(dòng)能力,比901

39、2的驅(qū)動(dòng)電流還大些,因此選用8550。當(dāng)程序進(jìn)入報(bào)警子程序時(shí),把p2.7置0,就會(huì)觸發(fā)蜂鳴器,為了使報(bào)警聲音效果更好,對(duì)p2.7取反,發(fā)出報(bào)警嘟嚕聲音。3.1.7 加熱管控制電路設(shè)計(jì)繼電器是常用的輸出控制接口,可以做交直流信號(hào)的輸出切換。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。繼電器控制接點(diǎn)操作說(shuō)明如下:l com:common,共同點(diǎn)。輸出控制接點(diǎn)的共同接點(diǎn)。l nc:normal close常閉點(diǎn)。以com為共同點(diǎn),nc與com在平時(shí)是呈導(dǎo)

40、通狀態(tài)的。l no:normal open常開(kāi)點(diǎn)。no與com在平時(shí)是呈開(kāi)路狀態(tài)的,當(dāng)繼電器動(dòng)作時(shí),no與com導(dǎo)通,nc與com則呈開(kāi)路狀態(tài)。當(dāng)89s52的p2.5輸出高電平時(shí),繼電器不導(dǎo)通,反之當(dāng)輸出低電平時(shí),繼電器導(dǎo)通,這樣就激活了連接回路。圖3.13 單片機(jī)控制繼電器電3.2 系統(tǒng)硬件總圖圖3.14 系統(tǒng)硬件總圖青島理工大學(xué)畢業(yè)設(shè)計(jì)第4章 系統(tǒng)總設(shè)計(jì)本系統(tǒng)采用的是循環(huán)查詢方式,來(lái)顯示和控制溫度的。主要包括四段程序的設(shè)計(jì):ds18b20讀溫度程序,數(shù)碼管的驅(qū)動(dòng)程序,鍵盤掃描程序,以及抱經(jīng)處理程序。4.1 主程序流程圖圖 4.1 主程序流程圖4.2 各個(gè)模塊的流程圖4.2.1 讀取溫度ds

41、18b20模塊的流程由于ds18b20采用的是一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)at89s52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)ds18b20芯片的訪問(wèn)。ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念。因此系統(tǒng)對(duì)ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)ds18b20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn), ds18b20必須首先調(diào)用啟動(dòng)溫度轉(zhuǎn)換函數(shù),根據(jù)數(shù)據(jù)手冊(cè)上對(duì)應(yīng)轉(zhuǎn)換時(shí)間來(lái)超作,如為12位轉(zhuǎn)換,則應(yīng)該是最大75

42、0ms,另外在對(duì)ds18b20超作時(shí),時(shí)序要求非常嚴(yán)格,因此最好禁止系統(tǒng)中斷。由于ds18b20是在一根i/o線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。ds18b20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。ds18b20的讀時(shí)序:(1)對(duì)于ds18b20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。 (2)對(duì)于ds18b20的讀時(shí)隙是從

43、主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。ds18b20的寫(xiě)時(shí)序:(1)對(duì)于ds18b20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。 (2)對(duì)于ds18b20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證ds18b20能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。 系統(tǒng)程序設(shè)計(jì)主要包括三部分:讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示溫度子程序。圖4.2讀取溫度ds18b

44、20模塊的流程圖程序代碼為:get_temper:setbdq; 讀出轉(zhuǎn)換后的溫度值lcallinit_1820; 先復(fù)位ds18b20jbflag1,tss2ret; 判斷ds1820是否存在若ds18b20不存在則返回tss2:mova,#0cch; ds18b20已經(jīng)被檢測(cè)到!跳過(guò)rom匹配lcallwrite_1820mova,#44h; 發(fā)出溫度轉(zhuǎn)換命令lcallwrite_1820lcall display; 這里通過(guò)調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等 待ad轉(zhuǎn)換結(jié)束,12位的話750微秒lcallinit_1820; 準(zhǔn)備讀溫度前先復(fù)位mova,#0cch; 跳過(guò)rom匹配lca

45、llwrite_1820 mova,#0beh; 發(fā)出讀溫度命令lcallwrite_1820lcallread_18200; 將讀出的溫度數(shù)據(jù)保存到35h/36hret4.2.2 鍵盤掃描處理流程此流程為鍵盤掃描處理,cpu通過(guò)檢測(cè)各數(shù)據(jù)線的狀態(tài)(0或1)就能知道是否有按鍵閉合以及哪個(gè)按鍵閉合。鍵盤管理程序的功能是檢測(cè)是否有按鍵閉合,如果有按鍵閉合,消除抖動(dòng),根據(jù)鍵號(hào)轉(zhuǎn)到相應(yīng)的鍵處理程序,按鍵流程圖如圖4.3所示。 圖 4.3鍵盤掃描子程序流程圖4.2.3 報(bào)警處理流程運(yùn)行程序后,溫度傳感器ds18b20即可對(duì)環(huán)境進(jìn)行溫度采集,并送led數(shù)碼管顯示。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的

46、外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。其程序流程圖如圖4.4所示。圖4.4 報(bào)警子程序流程圖4.3 系統(tǒng)源代碼emper_lequ 29h; 用于保存讀出溫度的低8位temper_hequ 28h; 用于保存讀出溫度的高8位flag1equ 38h; 是否檢測(cè)到ds18b20標(biāo)志位a_bitequ 20h; 數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置b_bitequ 21h; 數(shù)碼管十位數(shù)存放內(nèi)存位置b1equ 70h; 溫度小數(shù)點(diǎn)位a1equ 71h; 設(shè)定溫度值dqequ p3.1; dq為ds18b20數(shù)據(jù)位bell equ p2.7; 蜂鳴報(bào)警org 0000h

47、; 單片機(jī)內(nèi)存分配申明ajmp main0; 前面的都是定義main:mov r0,#10m1:cpl p2.3acalldelay125djnz r0,m1; 此段為燈閃5次,無(wú)實(shí)際意義main0:mov a1,#80; 默認(rèn)加熱為80度main1:lcalld1820; 調(diào)用讀溫度子程序 lcalldisplay; 調(diào)用數(shù)碼管顯示子程序 mova,29h clrc cjnea,a1,main1_1 setbbell; 溫度相等,關(guān)閉蜂鳴器 ajmpmain1_1_a; 下等不用叫蜂鳴器main1_1:jcmain1_2; 為1轉(zhuǎn)移,表示小于設(shè)定溫度 cplbell; 蜂鳴器斷續(xù)鳴叫main

48、1_1_a:clrp2.3; 下面是表示沒(méi)達(dá)到溫度 setbp2.5 ajmpmain2; 主要是檢測(cè)溫度是否小于設(shè)定的溫度,則開(kāi)發(fā)熱管clr p2.3main1_2:setbbell; 關(guān)閉蜂鳴器 clrp2.5; 開(kāi)發(fā)熱管 setbp2.3; 上面的是大于,關(guān)發(fā)熱管main2:jbp1.0,main1; 看p1.0有否按下 acalldelay125; 延時(shí)防抖動(dòng),常用的手法,網(wǎng)上很多介紹的 jbp1.0,main1; 再次查看 clrp2.3 jnbp1.0,$; 等按鍵完全松手才進(jìn)入! setbp2.3 setbp2.5; 檢測(cè)到p1.0按鍵后后進(jìn)入設(shè)定溫度main2_1:acalldisplay1 jbp1.2,main2

溫馨提示

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