




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、太原理工大學(xué)礦業(yè)工程學(xué)院課程設(shè)計報告PAGE 基于51單片機的數(shù)字(shz)溫度計的設(shè)計摘 要 本設(shè)計主要介紹了一個基于AT89C51單片機的測溫系統(tǒng),詳細描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)溫度采集和顯示,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與AT89C51結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系
2、統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣( li)環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機;數(shù)字(shz)溫度傳感器;最簡溫度檢測系統(tǒng);目錄 目錄(ml) TOC o 1-3 h z u HYPERLINK l _Toc389601622 1 緒論(xln) PAGEREF _Toc389601622 h 1 HYPERLINK l _Toc389601623 1.1 選題(xun t)的目的和意義 PAGEREF _Toc389601623 h 1 HYPERLINK l _Toc389601624 1.1.1選題的目的 PAGEREF _Toc389601624 h 1 HYP
3、ERLINK l _Toc389601625 1.1.2選題的意義 PAGEREF _Toc389601625 h 1 HYPERLINK l _Toc389601626 2 數(shù)字溫度計的設(shè)計方案 PAGEREF _Toc389601626 h 1 HYPERLINK l _Toc389601627 2.1 設(shè)計方案的確立及論證 PAGEREF _Toc389601627 h 1 HYPERLINK l _Toc389601628 2.2系統(tǒng)器件選擇 PAGEREF _Toc389601628 h 2 HYPERLINK l _Toc389601629 2.2.1 單片機的選擇 PAGEREF
4、 _Toc389601629 h 2 HYPERLINK l _Toc389601630 2.2.2 溫度傳感器的選擇 PAGEREF _Toc389601630 h 2 HYPERLINK l _Toc389601631 3 系統(tǒng)硬件電路的設(shè)計 PAGEREF _Toc389601631 h 4 HYPERLINK l _Toc389601632 3.1 溫度檢測電路 PAGEREF _Toc389601632 h 4 HYPERLINK l _Toc389601633 3.2 顯示電路 PAGEREF _Toc389601633 h 5 HYPERLINK l _Toc389601634
5、4 系統(tǒng)軟件的設(shè)計 PAGEREF _Toc389601634 h 6 HYPERLINK l _Toc389601635 4.1 概述 PAGEREF _Toc389601635 h 6 HYPERLINK l _Toc389601636 4.1.1 溫度數(shù)據(jù)的計算處理方法 PAGEREF _Toc389601636 h 7 HYPERLINK l _Toc389601637 4.2 主程序模塊 PAGEREF _Toc389601637 h 7 HYPERLINK l _Toc389601638 4.3 讀溫度值模塊 PAGEREF _Toc389601638 h 8 HYPERLINK
6、l _Toc389601639 4.4 中斷模塊 PAGEREF _Toc389601639 h 9 HYPERLINK l _Toc389601640 4.5 數(shù)碼管驅(qū)動模塊 PAGEREF _Toc389601640 h 10 HYPERLINK l _Toc389601641 5 實驗儀器及元件清單 PAGEREF _Toc389601641 h 11 6 HYPERLINK l _Toc389601642 心得體會 PAGEREF _Toc389601642 h 12 HYPERLINK l _Toc389601643 致謝 PAGEREF _Toc389601643 h 14 HYP
7、ERLINK l _Toc389601644 參考文獻 PAGEREF _Toc389601644 h 15 HYPERLINK l _Toc389601645 附錄:源程序 PAGEREF _Toc389601645 h 16 太原理工大學(xué)礦業(yè)工程學(xué)院課程設(shè)計報告第 PAGE 35頁1 緒論(xln)1.1 選題的目的(md)和意義1.1.1選題(xun t)的目的利用單片機AT89S51和溫度傳感器DS18B20設(shè)計一個設(shè)計溫度計,能夠測量-55 128之間的溫度值,用液晶屏直接顯示,測量精度為1。通過這次設(shè)計能夠更加了解數(shù)字溫度計的工作原理和熟悉單片機的發(fā)展和應(yīng)用,鞏固所學(xué)的知識。1.1
8、.2選題的意義隨著單片機技術(shù)的不斷發(fā)展,單片機在日用電子產(chǎn)品中的應(yīng)用越來越廣泛,溫度傳感器DS18B20具有性能穩(wěn)定、靈敏度高、抗干擾能力強、使用方便等優(yōu)點,廣泛應(yīng)用于冰箱、空調(diào)器、糧倉等日常生活中溫度的測量和控制。又隨著電子技術(shù)的發(fā)展,人們的生活日趨數(shù)字化,多功能的數(shù)字溫度計可以給我們的生活帶來很大的方便;支持“一線總線”接口的溫度傳感器簡化了數(shù)字溫度計的設(shè)計,降低了成本;以美國MAXIM/DALLAS半導(dǎo)體公司的單總線溫度傳感器DS18B20為核心,以ATMEL公司的AT89S51為控制器設(shè)計的DS18B20溫度控制器結(jié)構(gòu)簡單、測溫準確、具有一定控制功能的智能溫度控制器。本課題研究的重要意
9、義在于生產(chǎn)過程中隨著科技的不斷發(fā)展,現(xiàn)代社會對各種信息參數(shù)的準確度和精確度的要求都有了幾何級的增長,而如何準確而又迅速的獲得這些參數(shù),就需要受制于現(xiàn)代信息基礎(chǔ)的發(fā)展水平。在三大信息信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機技術(shù))中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是數(shù)字溫度傳感器技術(shù),在我國各領(lǐng)域已經(jīng)應(yīng)用的非常廣泛可以說是滲透到社會的每一個領(lǐng)域,與人民的生活和環(huán)境的溫度息息相關(guān)。2 數(shù)字(shz)溫度計的設(shè)計方案2.1 設(shè)計方案的確立(qul)及論證基本功能要求(yoqi):(1)溫度測量范圍:-55128度(2)測量精度:1度(3)能夠運用Protues仿真2.2
10、系統(tǒng)器件選擇2.2.1 單片機的選擇 對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部RAM,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不適用。AT89C51 是美國 ATMEL 公司生產(chǎn)的低功耗,高性能 CMOS8 位單片機,片內(nèi)含 4kbytes 的可編程的 Flash 只讀程序存儲器,兼容標準 8051 指令系統(tǒng)及引腳。它集 Flash 程序存儲器既可在線編程(ISP),也可用傳統(tǒng)方法進行編程,所以低價位 AT89C51單片機可為提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,對于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機AT89C51 具有低電壓供電和體積小等特點,四個端口只
11、需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。2.2.2 溫度傳感器的選擇DS18B20 簡單介紹:DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數(shù)字量方式串行輸出
12、;其工作電源既可以在遠端引入,也可以采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。DS18B20 的性能(xngnng)特點如下:獨特的單線接口方式,DS18B20在與微處理器連接時僅需要(xyo)一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊DS18B20支持(zhch)多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫DS18B20在使用中不需要
13、任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電測溫范圍55128,精度為1零待機功耗測量結(jié)果直接輸出數(shù)字信號,以“一線總線”穿行傳送給CPU,同時可傳送CRC校驗位,具有極強的抗干擾糾錯能力負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作以上特點使DS18B20非常適用與多點、遠距離溫度檢測系統(tǒng)。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 4.2 所示,DQ 為數(shù)據(jù)輸
14、入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。 傳感器電路圖3 系統(tǒng)硬件(yn jin)電路的設(shè)計本設(shè)計由DS18B20溫度傳感器芯片測量當(dāng)前的溫度并將轉(zhuǎn)換后的結(jié)果送入單片機。然后通過A89C51單片機驅(qū)動兩位共陽極8段LED數(shù)碼管顯示測量溫度值。如附錄中本設(shè)計硬件電路(dinl)圖所示,本電路主要有DS18B20溫度傳感器芯片,兩位共陽極數(shù)碼管,AT89C51單片機及相應(yīng)外圍電路組成。其中DS18B20采用“一線(yxin)制”與單片機相連。3.1 溫度檢測電路DS18B20 最大
15、的特點是單總線數(shù)據(jù)傳輸方式,DS18B20 的數(shù)據(jù)I/O 均由同一條線來完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, VDD 和GND 均接地, 他在需要遠程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 W ire 總線的信號線DQ 為高電平時, 竊取信號能量給DS18B20 供電, 同時一部分能量給內(nèi)部電容充電, 當(dāng)DQ為低電平時釋放能量為DS18B20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時) , 同時芯片的性能也有所降低。外部電源供電方式是DS18B20最佳的工作方式
16、,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。因此本設(shè)計采用外部供電方式。如下圖所示:+5VDS18B204.7K+5V溫度傳感器DS18B20的測量范圍為-55+125,在-10+85時精度(jn d)為0.5。因為(yn wi)本設(shè)計只用于測量環(huán)境溫度,所以只顯示0+85。 本設(shè)計(shj)采用液晶動態(tài)顯示,電路如下圖所示:顯示部分電路 4 系統(tǒng)軟件的設(shè)計4.1 概述整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)
17、行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。4.1.1 溫度數(shù)據(jù)的計算(j sun)處理方法從DS18B20讀取出的二進制值必須轉(zhuǎn)換成十進制值,才能用于字符(z f)的顯示。DS18B20的轉(zhuǎn)換精度為912位,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器
18、里的值是以0.0625為步進的,即溫度值為寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。通過觀察表4-1可以發(fā)現(xiàn),一個十進制與二進制間有很明顯的關(guān)系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個字節(jié)的二進制化為十進制后,就是溫度值的百、十、個位字節(jié),所以二進制值范圍是0F,轉(zhuǎn)換成十進制小數(shù)就是0.0625的倍數(shù)(015倍)。這樣需要4位的數(shù)碼管來表示小數(shù)部分。實際應(yīng)用不必(bb)這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1。表4.1 二進制與十進制的近似對應(yīng)關(guān)系表4.2 主程序模塊主程序需要調(diào)用2個子程序,分別為: 溫度設(shè)定、驅(qū)動數(shù)碼管把實時溫度值
19、送出在LED數(shù)碼管顯示 主程序流程圖:圖1 主程序流程圖4.3 讀溫度(wnd)值模塊讀溫度值模塊需要調(diào)用(dioyng)4個子程序,分別為: DS18B20初始化子程序:讓單片機知道(zh do)DS18B20在總線上且已準備好操作 DS18B20寫字節(jié)子程序:對DS18B20發(fā)出命令 DS18B20讀字節(jié)子程序:讀取DS18B20存儲器的數(shù)據(jù) 延時子程序:對DS18B20操作時的時序控制(1). 讀溫度值模塊流程圖: 圖2 讀溫度(wnd)值子程序流程圖(2). DS18B20初始化子程序流程圖:圖3 DS18B20初始化子程序流程圖(3). DS18B20寫字節(jié)(z ji)和讀字節(jié)子程序
20、流程圖:圖4 DS18B20寫字節(jié)(z ji)子程序流程圖 圖5 DS18B20讀字節(jié)子程序流程圖4.4 中斷模塊中斷采用T0方式1,初始值定時為50ms。中斷模塊需調(diào)用兩個子程序: 讀溫度值子程序:定時讀取溫度值,實時更新溫度值 記錄(jl)溫度值子程序:定時記錄溫度值,供查詢使用 把這兩個子程序放在中斷的原因是,不會因為調(diào)整(tiozhng)報警溫度或查詢歷史溫度值而停止更新溫度值和記錄溫度值。中斷(zhngdun)模塊流程圖: 圖6 中斷模塊流程圖入口關(guān)段選P0置高關(guān)位選開位選P0清零開段選送段碼送位碼關(guān)段選延時返回 圖7 數(shù)碼管驅(qū)動模塊流程圖5 實驗儀器(yq)及元件清單器件名稱規(guī)格型
21、號數(shù)量單片機ATS89C511溫度傳感器Ds18b2016 心得體會該基于DS18B20的多點溫度測量系統(tǒng)(xtng)具有硬件結(jié)構(gòu)簡單、易于制作、價格低廉、測量值精確和易于操作等許多優(yōu)點。實際應(yīng)用中可根據(jù)具體情況進行更多點的擴展和對多點進行控制。隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn),基于DS18B20的多點溫度測量系統(tǒng)已經(jīng)廣泛應(yīng)用于控制、化工等諸多(zhdu)領(lǐng)域。總之,本次課程設(shè)計順利完成,基本達到了課程設(shè)計的要求。本文在深入分析多點智能測溫系統(tǒng)的工作原理基礎(chǔ)上,完成了該系統(tǒng)設(shè)計和調(diào)試任務(wù),并且系統(tǒng)的性能誤差達到了任務(wù)書的要求,使之能達到現(xiàn)場運行水平。總結(jié)這一星期以來的工作,得
22、到以下結(jié)論:1.針對現(xiàn)有測溫系統(tǒng)的特點,提出了一套應(yīng)用數(shù)字式溫度傳感器DS81B20組建溫度測控網(wǎng)絡(luò)新型方案,該方案的突出特點是系統(tǒng)的數(shù)字化、快速化及其經(jīng)濟實用性。2.以單總線為基本結(jié)構(gòu),采用ATMEL公司的 AT89S51單片機為總線命令,實現(xiàn)與DSl8B20的總線接口,并提供具體電路設(shè)計。3.軟件編程采用模塊化、結(jié)構(gòu)化設(shè)計,易于修改和維護。由于時間和精力的限制,對后續(xù)的研究還應(yīng)在以下方面逐步完善: 1.應(yīng)用軟件的完善(wnshn)。溫度采集方面,一次命令全部單總線上的DS18B20進行溫度轉(zhuǎn)換,減少系統(tǒng)所需時間。2.進一步完善系統(tǒng)的可靠性。由于實際經(jīng)驗的欠缺(qinqu),設(shè)計上難免有考慮
23、不周之處。當(dāng)某一個傳感器出現(xiàn)故障時,雖然系統(tǒng)能發(fā)現(xiàn)該測溫點故障,但是更換傳感器時涉及到其序列號的修改和應(yīng)用程序的修改,這些還需要在今后應(yīng)用時加以完善。3.可以增加控制部分,以后在該部分進行PID算法控制,以提高控制精度。 總之 ,本論文在新型數(shù)字溫度測控系統(tǒng)方面做了一定的研究工作。該系統(tǒng)初步完成了溫度測控方案的預(yù)定(ydng)目標,為今后實現(xiàn)數(shù)字化與網(wǎng)絡(luò)化的溫度測控系統(tǒng)工程提供了一種參考。社會經(jīng)濟效益分析本溫度測控系統(tǒng)可以產(chǎn)生的社會經(jīng)濟效益是顯而易見的。在工農(nóng)業(yè)許多場合,溫度測量和控制對生產(chǎn)起著非常重要的作用,通過溫度測控,可以更好的提高工農(nóng)業(yè)生產(chǎn)的產(chǎn)量和效率。 本設(shè)計利用數(shù)字化的溫度傳感器作
24、為載體,以AT89S51單片機為控制核心,通過對所測量的溫度值進行控制和數(shù)據(jù)上傳,將數(shù)字信息上傳給上位機進行進一步的處理,從而可以實現(xiàn)這套系統(tǒng)的商品化和技術(shù)服務(wù)的穩(wěn)定性。這套系統(tǒng)可以產(chǎn)生的功能強大,擴展溫度傳感器端口后,可以同時對多個傳感器進行測量和控制,并且只需添加DS18B20的初始化程序和與本設(shè)計兩點測控類似的程序即可以實現(xiàn),所以程序修改上也比較方便。本系統(tǒng)可以實現(xiàn)產(chǎn)品的專業(yè)化和工廠化大生產(chǎn),應(yīng)用領(lǐng)域廣泛,例如,可以對小區(qū)內(nèi)的供暖系統(tǒng)進行多點溫度監(jiān)控,實時處理DS18B20溫度傳感器上傳的數(shù)據(jù);可以在對溫度要求比較嚴格的車間內(nèi)進行多點溫度測控,以保持室內(nèi)的精準溫度;可以在化學(xué)反應(yīng)爐內(nèi)安裝
25、本系統(tǒng),使化學(xué)反應(yīng)可以在精確的溫度條件下進行等等。在課程設(shè)計的整個過程中,我遇到了許多意想不到的困難,如自己設(shè)計電路,進行軟件編譯等等。不僅如此,很多從未遇見過的問題和現(xiàn)象困擾著我,比如在調(diào)試的過程中,時常出現(xiàn)問題,但每次經(jīng)過仔細反復(fù)查找,終于可以將這些問題針對性的找到并進行合理的改正,確保其正常實現(xiàn)對應(yīng)的功能,在自己處理難題的過程中,真正學(xué)到了很多新的知識。 致謝(zh xi)在本次課程設(shè)計即將完成之際,我要感謝同班同學(xué),沒有他們的幫助和提供資料,沒有他們的鼓勵和加油,這次畢業(yè)設(shè)計(b y sh j)就不會如此的順利進行。當(dāng)然,不積跬步何以至千里,這一切也歸功于各位任課老師的認真負責(zé),使我能
26、夠很好的掌握和運用專業(yè)知識,并在設(shè)計中得以體現(xiàn)。 誠摯的感謝我的指導(dǎo)老師陳琦老師。她在忙碌的教學(xué)工作中擠出時間來審查、修改我的論文,告訴我應(yīng)該注意的細節(jié)問題,細心的給我指出錯誤并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵,她嚴謹細致、一絲不茍的作風(fēng)一直是我生活、學(xué)習(xí)(xux)中的榜樣。在接下來的一年里,我會加倍努力,不辜負老師們的悉心教導(dǎo),彌補自己在學(xué)習(xí)生活中的不足,完善知識體系,爭取能夠更加熟練地運用在課堂上學(xué)到的知識,提高自己的成績,給自己一份滿意的答卷。 最后,向所有關(guān)心我的親人、師長和朋友們表示深深的謝意。參考文獻(1)徐瑋. C51單片機高效(o xio)入門(第2版).
27、北京:機械工業(yè)出版社,2010. (2)龍脈工作室,劉鯤,孫春亮(修訂版). 北京(bi jn):人們郵電出版社,2010.附錄(fl):源程序數(shù)字溫度儀DS18B20的匯編語言程序 TEMP_ZH DATA 24H ;實時溫度值存放單元 TEMPL DATA 25H ; TEMPH DATA 26H ; TEMP_TH DATA 27H ;高溫報警值存放單元 TEMP_TL DATA 28H ;低溫報警值存放(cnfng)單元 TEMPHC DATA 29H ; TEMPLC DATA 2AH K1 EQU P1.4 K2 EQU P1.5 K3 EQU P1.6 K4 EQU P1.7 B
28、EEP EQU P3.6 RELAY EQU P3.7 LCD_X EQU 2FH ;LCD 地址(dzh)變量 LCD_RS EQU P2.0 LCD_RW EQU P2.1 LCD_EN EQU P2.2 flag1 EQU 20H.0 ;DS18B20是否存在(cnzi)標記 KEY_UD EQU 20H.1 ;設(shè)定 KEY 的UP與DOWN 標記 date_line EQU P3.3;= ORG 0000H JMP MAINMAIN: MOV SP,#60H MOV A,#00H MOV R0,#20H / ;將 20H-2FH 單元清零 MOV R1,#10HCLEAR: MOV R
29、0,A INC R0 DJNZ R1,CLEAR CALL SET_LCD CALL RE_18B20start: CALL RESET ;18B20復(fù)位子程序 JNB FLAG1,START1 ;DS1820不存在 CALL MENU_OK CALL READ_E2 CALL TEMP_BJ ;顯示溫度(wnd)標記 JMP START2START1: CALL MENU_ERROR CALL TEMP_BJ ;顯示溫度(wnd)標記 JMP $START2: CALL RESET JNB FLAG1,START1 ;DS1820不存在(cnzi) MOV A,#0CCH ; 跳過ROM匹配
30、 CALL WRITE MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令 CALL WRITE CALL RESET MOV A,#0CCH ; 跳過ROM匹配 CALL WRITE MOV A,#0BEH ; 發(fā)出讀溫度命令 CALL WRITE CALL READ call CONVTEMP Call DISPBCD CALL CONV CALL TEMP_COMP CALL PROC_KEY ; 鍵掃描 SJMPSTART2;PROC_KEY: JB K1,PROC_K1 ; 按鍵K1處理 CALL BEEP_BL JNB K1,$ MOV DPTR,#M_ALAX1 MOV A,#1 CAL
31、L LCD_PRINT CALL LOOK_ALARM JB K3,$ CALL BEEP_BL JMP PROC_K2PROC_K1: ; 按鍵(n jin)K2處理 JB K2,PROC_END CALL BEEP_BL JNB K2,$ MOV DPTR,#RESET_A1 MOV A,#1 CALL LCD_PRINT CALL SET_ALARM CALL RE_18B20 ;將設(shè)定(sh dn)的TH,TL值寫入DS18B20內(nèi) CALL WRITE_E2PROC_K2: CALL MENU_OK CALL TEMP_BJPROC_END: RET;=;設(shè)定(sh dn)報警值 T
32、H、TL;=SET_ALARM: ;CALL RESET_ALARM CALL LOOK_ALARMAS0: JB K1,AS00 CALL BEEP_BL JNB K1,$ CPL 20H.1 ;UP/DOWN 標記AS00: JB 20H.1,ASZ01 ;20H.1=1,UP JMP ASJ01 ;20H.1=0,DOWNASZ01: JB K2,ASZ02 ;TH值調(diào)整(增加) CALL BEEP_BL INC TEMP_TH MOV A,TEMP_TH CJNE A,#120,ASZ011 MOV TEMP_TH,#0ASZ011: CALL LOOK_ALARM MOV R5,#1
33、0 CALL DELAY JMP ASZ01ASZ02: JB K3,ASZ03 ;TL值調(diào)整(tiozhng)(增加) CALL BEEP_BL INC TEMP_TL MOV A,TEMP_TL CJNE A,#99,ASZ021 MOV TEMP_TL,#00HASZ021: CALL LOOK_ALARM ; MOV R5,#10 CALL DELAY JMP ASZ02ASZ03: JB K4,AS0 ;確定(qudng)調(diào)整 OK CALL BEEP_BL JNB K4,$ RETASJ01: JB K2,ASJ02 ;TH值調(diào)整(tiozhng) (減少) CALL BEEP_B
34、L DEC TEMP_TH MOV A,TEMP_TH CJNE A,#0FFH,ASJ011 JMP ASJ022ASJ011: CALL LOOK_ALARM MOV R5,#10 CALL DELAY JMP AS0ASJ02: JB K3,ASJ03 ;TL值調(diào)整(減少) CALL BEEP_BL DEC TEMP_TL MOV A,TEMP_TL CJNE A,#0FFH,ASJ021 JMP ASJ022ASJ021: CALL LOOK_ALARM ; MOV R5,#10 CALL DELAY JMP AS0ASJ022: CPL 20H.1 JMP ASZ01ASJ03: J
35、MP ASZ03 RETRESET_ALARM: MOV DPTR,#RESET_A1 ;指針(zhzhn)指到顯示信息區(qū) MOV A,#1 ;顯示(xinsh)在第一行 CALL LCD_PRINT RETRESET_A1: DB RESET ALERT CODE;=;實際(shj)溫度值與標記溫度值比較子程序;=TEMP_COMP: MOV A,TEMP_TH SUBB A,TEMP_ZH ;減數(shù)被減數(shù),則 JC CHULI1 ;借位標志位C=1,轉(zhuǎn) MOV A,TEMP_ZH SUBB A,TEMP_TL ;減數(shù)被減數(shù),則 JC CHULI2 ;借位標志位C=1,轉(zhuǎn) MOV DPTR,#
36、BJ5 CALL TEMP_BJ3 CLR RELAY ;繼電器吸合 RET CHULI1: MOV DPTR,#BJ3 CALL TEMP_BJ3 SETB RELAY ;繼電器關(guān)閉(gunb) CALL BEEP_BL RET CHULI2: MOV DPTR,#BJ4 CALL TEMP_BJ3 CALL BEEP_BL RET;TEMP_BJ3: MOV A,#0CEH CALL WCOM MOV R1,#0 MOV R0,#2BBJJ3: MOV A,R1 MOVC A,A+DPTR CALL WDATA INC R1 DJNZ R0,BBJJ3 RETBJ3: DB HBJ4: D
37、B BCD DIV AB ;B= A % 100 MOV R4,A ;R7 = 百位數(shù) MOV A,#0AH XCH A,B DIV AB ;B = A % B SWAP A ORL A,B RET; 小數(shù)(xiosh)部分碼表;TEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H DB 05H,05H,06H,06H,07H,08H,08H,09H;=LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指針(zhzhn)指到顯示信息區(qū) MOV A,#2 ;顯示在第二行 CALL LCD_PRINT MOV A,#0C6H CALL TEMP_
38、BJ1 MOV A,TEMP_TH ;加載TH數(shù)據(jù) MOV LCD_X,#3 ;設(shè)置位置 CALL SHOW_DIG2H ;顯示數(shù)據(jù) MOV A,#0CEH CALL TEMP_BJ1 MOV A,TEMP_TL ;加載TL數(shù)據(jù) MOV LCD_X,#12 ;設(shè)置(shzh)位置 CALL SHOW_DIG2L ;顯示(xinsh)數(shù)據(jù) RET;M_ALAX1: DB LOOK ALERT CODE,0M_ALAX2: DB TH: TL: ,0;TEMP_BJ1: CALL WCOM MOV DPTR,#BJ2 ;指針(zhzhn)指到顯示信息區(qū) MOV R1,#0 MOV R0,#2BBJ
39、J2: MOV A,R1 MOVC A,A+DPTR CALL WDATA INC R1 DJNZ R0,BBJJ2 RETBJ2: DB 00H,C;SHOW_DIG2H: ;在 LCD 的第二行顯示數(shù)字 MOV B,#100 DIV AB ADD A,#30H PUSH B MOV B,LCD_X CALL LCDP2 POP B MOV A,#0AH XCH A,B DIV AB ADD A,#30H INC LCD_X PUSH B MOV B,LCD_X CALL LCDP2 POP B INC LCD_X MOV A,B MOV B,LCD_X ADD A,#30H CALL LC
40、DP2 RETSHOW_DIG2L: ;在 LCD 的第二行顯示(xinsh)數(shù)字 MOV B,#100 DIV AB MOV A,#0AH XCH A,B DIV AB ADD A,#30H PUSH B MOV B,LCD_X CALL LCDP2 POP B INC LCD_X MOV A,B MOV B,LCD_X ADD A,#30H CALL LCDP2 RET;顯示(xinsh)區(qū) BCD 碼溫度值刷新子程序;DISPBCD: MOV A,TEMPLC ANL A,#0FH MOV 70H,A ;小數(shù)位 MOV A,TEMPLC SWAP A ANL A,#0FH MOV 71H
41、,A ;個位 MOV A,TEMPHC ANL A,#0FH MOV 72H,A ;十位(sh wi) MOV A,TEMPHC SWAP A ANL A,#0FH MOV 73H,A ;百位 MOV A,TEMPHC ANL A,#0F0H CJNE A,#010H,DISPBCD0 SJMP DISPBCD2DISPBCD0: MOV A,TEMPHC ANL A,#0FH JNZ DISPBCD2 ;十位數(shù)是0 MOV A,TEMPHC SWAP A ANL A,#0FH MOV 73H,#0AH ;符號(fho)位不顯示 MOV 72H,A ;十位數(shù)顯示(xinsh)符號DISPBCD
42、2: RET;=; LCD 1602 顯示子程序;=CONV: MOV A,73H ;加載百位數(shù)據(jù) MOV LCD_X,#6 ;設(shè)置位置 CJNE A,#1,CONV1 JMP CONV2CONV1: MOV A,# MOV B,LCD_X CALL LCDP2 JMP CONV3CONV2: CALL SHOW_DIG2 ;顯示(xinsh)數(shù)據(jù)CONV3: INC LCD_X ; mov a,72h ;十位(sh wi) CALL SHOW_DIG2 inc LCD_X mov a,71h ;個位 CALL SHOW_DIG2 inc LCD_X MOV A,#. MOV B,LCD_X
43、CALL LCDP2 MOV A,70h ;加載小數(shù)點位 INC LCD_X ;設(shè)置(shzh)位置 CALL SHOW_DIG2 ;顯示數(shù)據(jù) RET;SHOW_DIG2: ;在 LCD 的第二行顯示數(shù)字 ADD A,#30H MOV B,LCD_X CALL LCDP2 RET;LCDP2: ;在LCD的第二行顯示字符 PUSH ACC ; MOV A,B ;設(shè)置顯示地址 ADD A,#0C0H ;設(shè)置LCD的第二行地址 CALL WCOM ;寫入命令 POP ACC ;由堆棧取出A CALL WDATA ;寫入數(shù)據(jù) RET;SET_LCD: ;對 LCD 做初始化設(shè)置(shzh)及測試 C
44、LR LCD_EN CALL INIT_LCD ;初始化 LCD CALL STORE_DATA ;將自定義字符(z f)存入LCD的CGRAM RETINIT_LCD: ;8位I/O控制(kngzh) LCD 接口初始化 MOV A,#38H ;雙列顯示,字形5*7點陣 CALL WCOM call delay1 MOV A,#38H CALL WCOM call delay1 MOV A,#38H CALL WCOM call delay1 MOV A,#0CH ;開顯示,顯示光標,光標不閃爍 CALL WCOM call delay1 MOV A,#01H ;清除 LCD 顯示屏 CALL WCOM call delay1 RET;=CLR_LINE1: ;清除LCD的第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 省級中小學(xué)現(xiàn)代教育技術(shù)裝備標準實施指南
- 基于二進制分析的iOS應(yīng)用漏洞動態(tài)行為研究-洞察及研究
- 微膿腫組織病理特征-洞察及研究
- 在役橋梁檢測與健康監(jiān)測技術(shù)融合及診斷體系創(chuàng)新研究
- 權(quán)責(zé)清單管理暫行辦法
- 關(guān)鍵技術(shù)改進下的期盼
- 血液透析專業(yè)理論與實踐考核要點解析
- 安全生產(chǎn)三卡是指
- 生產(chǎn)安全事故調(diào)查處理報告
- 綠色金融估值體系-洞察及研究
- 2025至2030中國燕窩行業(yè)市場運行分析及競爭格局與投資方向報告
- 2025年河北省中考語文試卷真題及答案詳解(精校打印版)
- 口服靶向藥講課件
- 12024-2025學(xué)年暑假安全教育主題班會課件
- 肝膽外科醫(yī)學(xué)科普
- 能源轉(zhuǎn)型與碳市場機制協(xié)同的路徑優(yōu)化研究
- GB/T 45449-2025再生粉末高溫合金原料
- 工程投資人合同協(xié)議
- 包席合同協(xié)議
- 資產(chǎn)評估風(fēng)險管理制度
- 大學(xué)英語四六級詞匯表
評論
0/150
提交評論