




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