多路溫度采集及顯示_第1頁
多路溫度采集及顯示_第2頁
多路溫度采集及顯示_第3頁
多路溫度采集及顯示_第4頁
多路溫度采集及顯示_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、湖北理工學(xué)院課程設(shè)計(jì)報(bào)告 課程名稱:電子設(shè)計(jì)開放性試驗(yàn)設(shè)計(jì)題目: 多路溫度采集及顯示系統(tǒng) 系 別: 數(shù)理學(xué)院 專 業(yè): 應(yīng)用物理學(xué) 班 級(jí): 學(xué)生姓名: 學(xué) 號(hào): 起止日期: 指導(dǎo)教師: 教研室主任: 指導(dǎo)教師評(píng)語: 指導(dǎo)教師簽名: 年 月 日成績評(píng)定項(xiàng) 目權(quán)重成績1、設(shè)計(jì)過程中出勤、學(xué)習(xí)態(tài)度等方面0.22、課程設(shè)計(jì)質(zhì)量與答辯0.53、設(shè)計(jì)報(bào)告書寫及圖紙規(guī)范程度0.3 總 成 績 教研室審核意見:教研室主任簽字: 年 月 日教學(xué)系審核意見: 主任簽字: 年 月 日答辯記錄 摘 要在工業(yè)控制領(lǐng)域中,溫度是一個(gè)十分重要的參考量,準(zhǔn)確而實(shí)時(shí)的控制溫度對于我們的工作有事半功倍的效果。而在一些傳統(tǒng)的溫度

2、測控系統(tǒng)中,存在著數(shù)據(jù)顯示方式單一、數(shù)據(jù)無法長期存儲(chǔ)、調(diào)用以及系統(tǒng)接口過于復(fù)雜的問題,尋求這些問題的解決方案成為當(dāng)前研究的焦點(diǎn)。多路溫度采集系統(tǒng)由主控制器、溫度采集電路、溫度顯示電路、報(bào)警控制電路及鍵盤輸入控制電路組成。它利用單片機(jī)P87C51做控制及數(shù)據(jù)處理器、ADC0809N做溫度檢查器、LED數(shù)碼顯示管做溫度顯示輸出設(shè)備。 硬件電路比較簡單,成本較低,測溫范圍大,測量精度高,讀數(shù)顯示直觀,使用方便。近年來單線多點(diǎn)數(shù)字化測量技術(shù)的發(fā)展使溫度檢測技術(shù)實(shí)現(xiàn)了快速、可靠、低成本、數(shù)字化與網(wǎng)絡(luò)化。新型的溫度采集系統(tǒng)能采用新型單線智能化溫度傳感器,能以數(shù)字形式直接輸出被測點(diǎn)溫度值,具有測溫誤差小、分

3、辨率高、抗干擾能力強(qiáng)、成本低、能遠(yuǎn)程傳輸數(shù)據(jù)等優(yōu)點(diǎn)。 關(guān)鍵詞 : 單片機(jī)控制;溫度測量;模數(shù)轉(zhuǎn)換電路;數(shù)碼管顯示器目 錄設(shè)計(jì)內(nèi)容、要求及分工11 實(shí)現(xiàn)方案及總體設(shè)計(jì)12 原理圖的設(shè)計(jì)32.1 溫度采集電路設(shè)計(jì)32.2 顯示電路設(shè)計(jì)43 系統(tǒng)程序設(shè)計(jì)5 3.1 主程序設(shè)計(jì). 5 3.2 子程序設(shè)計(jì). .64 詳細(xì)儀器清單 .95 總結(jié)與思考及致謝9參考文獻(xiàn)10附錄一:原理圖11附錄二:PCB圖12附錄三:程序.12多路溫度采集及顯示系統(tǒng)設(shè)計(jì)內(nèi)容、要求及分工 溫度是一種最基本的環(huán)境參數(shù),人們的生活與環(huán)境溫度息息相關(guān),因此研究溫度的測量方法和裝置具有重要的意義。溫度測量裝置的關(guān)鍵是溫度傳感器,溫度傳

4、感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:(1)傳統(tǒng)的分立式溫度傳感器,(2)模擬集成溫度傳感器,(3)智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。本人選擇多路溫度采集系統(tǒng)設(shè)計(jì)。系統(tǒng)主要技術(shù)指標(biāo):(1)4路溫度采集電路;(2)A/D轉(zhuǎn)換;(3)電子開關(guān);(4)實(shí)時(shí)溫度顯示,采用LED數(shù)碼管顯示。本次設(shè)計(jì)我們由五人為一組,朱其攀是我們小組的組長,負(fù)責(zé)實(shí)驗(yàn)報(bào)告部分;胡仲祥負(fù)責(zé)課程設(shè)計(jì)部分;黃治雄主要負(fù)責(zé)PPT部分,黃明負(fù)責(zé)原理圖和PCB圖的完成;胡永志則負(fù)責(zé)軟件部分的設(shè)計(jì)及其調(diào)試。1實(shí)現(xiàn)方案及總體設(shè)計(jì)P87C51RA2/RB2/RC2/RD2 單片

5、8 位微控制器采用先進(jìn)的CMOS 工藝制造,是80C51 微控制器家族的派生品。其指令集與80C51 指令集完全相同。該器件可通過并行編程的方法對一個(gè)OTP 位進(jìn)行編程,從而選擇6 時(shí)鐘或12 時(shí)鐘模式。此外,也可通過時(shí)鐘控制寄存器CKCON 中的X2 位選擇6 時(shí)鐘或12 時(shí)鐘模式。該器件還包含有4 個(gè)8 位I/O 口、 個(gè)16 位定時(shí)/計(jì)數(shù)器、多個(gè)中斷-4中斷優(yōu)先級(jí)-嵌套的中斷結(jié)構(gòu)、1個(gè)型UART、片內(nèi)振蕩器及實(shí)序電路。新增的特性使得P87C51RA2/RB2/RC2/RD2 成為功能更強(qiáng)大的微控制器,更地支持應(yīng)用于脈寬調(diào)制,高速I/O 遞增/遞減計(jì)數(shù)能力如電機(jī)控制等場合。 圖1 數(shù)字式多

6、路溫度采集系統(tǒng)結(jié)構(gòu)框圖 采用智能溫度傳感器采集環(huán)境溫度并進(jìn)行簡單的模數(shù)轉(zhuǎn)換;單片機(jī)P87C51執(zhí)行程序?qū)囟葌鞲衅鱾鬏數(shù)臄?shù)據(jù)進(jìn)行進(jìn)一步的分析處理,轉(zhuǎn)換成環(huán)境對應(yīng)的溫度值,通過I/O口輸出到數(shù)碼顯示管(LED)顯示;由鍵盤輸入控制選擇某采集電路檢測溫度及顯示;報(bào)警電路對設(shè)定的最高最低報(bào)警溫度進(jìn)行監(jiān)控報(bào)警。 主要由溫度傳感器、P87C51單片機(jī)微控制器、以及數(shù)據(jù)傳輸顯示三部分組成。溫度傳 感器單片機(jī)P87C51溫度顯示器 圖2 系統(tǒng)原理簡易圖 本系統(tǒng)采用的主要硬件元件分別為P87C51單片機(jī)作為微控制器,使用單總線溫度傳感器芯片ADC0809N作為溫度傳感器。溫度傳感器采集溫度數(shù)據(jù),溫度傳感器采集

7、完一次數(shù)據(jù)后,經(jīng)過A/D轉(zhuǎn)換后,再由微控制器根據(jù)現(xiàn)場對數(shù)據(jù)的不同要求可以選擇LCD顯示以及上機(jī)PC機(jī)顯示兩種方式來顯示數(shù)據(jù)。 2原理圖的設(shè)計(jì) 2.1溫度采集電路設(shè)計(jì)溫度采樣處理電路由溫度傳感器、放大電路、A/D轉(zhuǎn)換電路等組成。采用分塊結(jié)構(gòu)的溫度采樣處理電路,其硬件電路結(jié)構(gòu)復(fù)雜,也不便于數(shù)據(jù)的處理。采用智能溫度傳感器采樣處理電路,能夠方便的進(jìn)行溫度的采集及簡單的數(shù)據(jù)處理。并且可以達(dá)到設(shè)計(jì)的技術(shù)指標(biāo)要求。本系統(tǒng)選擇智能溫度傳感器ADC0809N作為溫度采集電路的核心器件。圖3 芯片圖2.1.1溫度采集電路結(jié)構(gòu) 溫度采集電路結(jié)構(gòu)如圖所示。工作時(shí),由程序控制讀取某智能溫度傳感器ADC0809N采集的溫

8、度數(shù)據(jù),送單片機(jī)處理。單片機(jī)控制電路核心是單片機(jī)芯片,其加上工作基本電路,就可以展開控制工作。圖4單片機(jī)P87C51引腳圖 2.2顯示電路結(jié)構(gòu)顯示電路由單片機(jī)P87C51的P1.0端作數(shù)據(jù)輸出,連接到低位SN54F04J的數(shù)據(jù)輸入引腳端。單片機(jī)P87C51的P3.0、P3.1端分別接到一個(gè)與門電路的輸入端。顯示電路結(jié)構(gòu)圖如圖4所示。圖5 溫度顯示部分3系統(tǒng)程序設(shè)計(jì) 3.1 主程序設(shè)計(jì)主程序主要功能是控制調(diào)用子程序,實(shí)現(xiàn)溫度的實(shí)時(shí)顯示、讀出并處理ADC0809N的測量溫度值(溫度測量每1s進(jìn)行一次)。其程序流程圖如圖6所示。調(diào)用顯示子程序1s到?初次上電?讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)出溫

9、度轉(zhuǎn)換開始命令NYYN初始化發(fā)出報(bào)警YN溫度超過報(bào)警值?調(diào)用鍵盤掃描子程序圖6數(shù)字式多路溫度采集系統(tǒng)主程序流程圖 3.2子程序設(shè)計(jì)(1)鍵盤掃描子程序鍵盤掃描子程序?qū)Π聪碌逆I進(jìn)行判斷,并轉(zhuǎn)到按下的相應(yīng)鍵對應(yīng)的程序段,執(zhí)行相應(yīng)的功能。其程序流程圖如圖7所示。(2)溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)送溫度轉(zhuǎn)換開始命令。在發(fā)送匹配ROM命令后,緊跟著發(fā)送要進(jìn)行測溫的ADC0809N的64位ROM序列(這個(gè)序列號(hào)一般由廠方提供或通過實(shí)驗(yàn)的方式獲得)。采用12位分辨率,轉(zhuǎn)換時(shí)間約為750ms。其程序流程圖如圖8所示。確定鍵號(hào)有鍵按下?開始Y轉(zhuǎn)至相應(yīng)的程序,執(zhí)行相應(yīng)的功能N其它子程序 發(fā)ADC0

10、809N復(fù)位命令命令匹配ROM、64位地址發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖7 鍵盤掃描子程序流程圖 圖8 溫度轉(zhuǎn)換命令子程序流程圖(3)讀出溫度子程序讀出溫度子程序主要功能是讀出RAM中的9個(gè)字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖9所示。(4)計(jì)算溫度子程序從ADC0809N讀取出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。在系統(tǒng)采用12位轉(zhuǎn)換精度,溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。通過觀察可以發(fā)現(xiàn)一個(gè)十進(jìn)制值和二進(jìn)制值之間有很明顯的關(guān)系。低字節(jié)的高半字節(jié)乘以0.0625

11、恰好就是原整數(shù)。因此,把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個(gè)字節(jié),這個(gè)字節(jié)的二進(jìn)制值化為十進(jìn)制值后,就恰好是溫度值的百、十、個(gè)位值;剩下的低字節(jié)的低半字節(jié)化成十進(jìn)制后,就是溫度值的小數(shù)部分。小數(shù)部分因?yàn)槭前雮€(gè)字節(jié),所以二進(jìn)制值范圍是0F,轉(zhuǎn)換成十進(jìn)制小數(shù)值就是0.0625的倍數(shù)。這樣需要4位的數(shù)碼管來顯示小數(shù)部分,實(shí)際應(yīng)用不必有這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1。表5就是二進(jìn)制和十進(jìn)制小數(shù)的近似對應(yīng)關(guān)系。其程序流程圖如圖10所示。表1 小數(shù)部分二進(jìn)制和十進(jìn)制的近似對應(yīng)關(guān)系表小數(shù)部分二進(jìn)制數(shù)0123456789ABCDEF十進(jìn)制數(shù)001123345566788

12、9發(fā)ADC0809N復(fù)位命令命令發(fā)匹配ROM、64位地址移入溫度暫存區(qū)發(fā)讀取溫度命令讀取RAM中的9個(gè)字節(jié)9字節(jié)完?結(jié)束YNYNCRC校驗(yàn)正確? 置“+”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值溫度值取補(bǔ)碼置“”標(biāo)志溫度零下?結(jié)束YN開始圖9 讀出溫度子程序流程圖 圖10 計(jì)算溫度子程序流程圖(5)顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序9主要是對顯示緩沖區(qū)中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。其程序流程圖如圖11所示。十位數(shù)顯示符號(hào),百位數(shù)不顯示十位數(shù)0?結(jié)束YN溫度數(shù)據(jù)移入顯示寄存器百位數(shù)0?百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào))YN 圖11顯示數(shù)據(jù)刷新子程序流程圖

13、 4詳細(xì)儀器清單編號(hào)元件名稱型號(hào)及規(guī)格數(shù)量1單片機(jī)芯片P87C112移位寄存器SN54ALS02J23七段數(shù)碼顯示器LED24串轉(zhuǎn)并芯片SN54F04J15A/D轉(zhuǎn)換器ADC0809N16開關(guān)-47邏輯電路SN74ALS104N38電阻10K129電阻8.2K110可變電阻-811電容10UF112電容30PF25 總結(jié)與思考及致謝本文設(shè)計(jì)了一種以P87C51單片機(jī)為核心控制器、以SN54ALS02作為溫度傳感器的多路溫度采集與顯示系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單、低功耗、方便實(shí)用,并且硬件實(shí)現(xiàn)簡單,得到了比教理想的實(shí)驗(yàn)效果。本系統(tǒng)能夠通過單片機(jī)靈活編程進(jìn)行各種功能的設(shè)定和修改。特別適用于大中型企業(yè)生產(chǎn)過

14、程中多點(diǎn)溫度的巡回測量和監(jiān)控。本設(shè)計(jì)說明了集成化的優(yōu)點(diǎn)及作用,也表明了科技發(fā)展的重要性,也讓我們看到了單片機(jī)的未來生產(chǎn)控制中的地位,讓我認(rèn)識(shí)到了學(xué)習(xí)單片機(jī)的重要性。在本次課程設(shè)計(jì)中朱其攀為我們組的組長,在他的帶領(lǐng)下,我們各組員都積極配合,很好的完成了自己的任務(wù)。我主要負(fù)責(zé)撰寫課程設(shè)計(jì)報(bào)告,朱其攀開始繪制系統(tǒng)原理圖和PCB圖,在原理圖和PCB圖的繪制過程中胡永志也開始了軟件部分的設(shè)計(jì),黃志雄也很好的完成了他的PPT設(shè)計(jì)。在本次設(shè)計(jì)的過程中確確實(shí)實(shí)遇到很多問題,從而發(fā)現(xiàn)自己的很多不足。如何將自己所學(xué)在所用展現(xiàn)出來是自己在本次課程設(shè)計(jì)中得到的最大收獲。幾人為一小組的分配方式也讓同學(xué)之間深深體會(huì)到了團(tuán)

15、隊(duì)的重要性,每人出一份力才能事半功倍。很多問題在老師的指導(dǎo)下也迎刃而解。在這里我們特別感謝余宏生老師對我們孜孜不倦的輔導(dǎo)以及同學(xué)們熱心的幫助,同時(shí)也感謝學(xué)校給我們這樣好的機(jī)會(huì)來學(xué)習(xí)單片機(jī)設(shè)計(jì)。從本次設(shè)計(jì)中得到很多寶貴的經(jīng)驗(yàn),同時(shí)也學(xué)習(xí)了很多知識(shí)。參考文獻(xiàn)1蔡明文,馮先成。單片機(jī)課程設(shè)計(jì).武漢:華中科技大學(xué)出版社,2007.3。2 文哲雄,羅中良。單總線多點(diǎn)分布式溫度測控系統(tǒng)的設(shè)計(jì)J.微計(jì)算機(jī)信息,2005,21。3 朱定華,戴汝平。單片微機(jī)原理與應(yīng)用.(M) 北京:清華大學(xué)出版社,2003。4 康華光電子技術(shù)基礎(chǔ)(模擬部分)M北京:高等教育出版社,19995 周航慈單片機(jī)程序設(shè)計(jì)基礎(chǔ)M北京:北

16、京航空航天大學(xué)出版社,2003附錄一:原理圖附錄二:PCB圖附錄三:多路溫度采集系統(tǒng)控制源程序 BITS EQU 20HTIMEOK BIT BITS.1 ;1秒定時(shí)到標(biāo)志。TEMPON BIT BITS.2 ;第一次溫度轉(zhuǎn)換標(biāo)志。TEMPL EQU 26H ;從DS18B20中讀取溫度低位的存放處。TEMPH EQU 27H ;從DS18B20中讀取溫度高位的存放處。TEMPCL EQU 28H ;轉(zhuǎn)換后溫度的小數(shù)位與個(gè)位存放處。TEMPCH EQU 29H ;轉(zhuǎn)換后溫度的十位與百位存放處,如果溫度為負(fù),則百位為符號(hào)位。TEMPHEAD EQU 36H ;從DS18B20高速緩存RAM中讀出

17、數(shù)據(jù)的存放處的第一位。;*;常數(shù)定義。K0 EQU P2.0 ;按鍵K0定義。K1 EQU P2.1 ;按鍵K1定義。DQ EQU P1.7 ;數(shù)據(jù)傳送腳定義。;*;多路溫度采集系統(tǒng)源程序。;*ORG 0000HLJMP STARTORG 000BHLJMP DVTO ;T0中斷入口地址。;*;系統(tǒng)初始化。 ORG 0030HSTART: MOV SP,#60H ;數(shù)據(jù)存儲(chǔ)區(qū)20H80H清“0”。CLS: MOV R0,#20H MOV R1,#60HCLS1: MOV R0,#00H INC R0 DJNZ R1,CLS1 CLR P1.4 ;關(guān)移位脈沖。 CLR P3.6 ;關(guān)閉報(bào)警器。

18、MOV TMOD,#21H ;選擇定時(shí)器0工作方式1; MOV TH0,#0E0H ;20ms定時(shí)初值。 MOV TL0,#0B1H MOV SCON,#00H ;選擇串行口工作方式0; NOP NOP SETB ET0 ;開定時(shí)器T0。計(jì)時(shí)開始。 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONE LJMP MAIN;*;主程序。MAIN: LCALL KEYBORD ;調(diào)用鍵盤掃描子程序。LOOP1: LCALL DISP ;調(diào)用顯示子程序。 JNB TIMEOK,LOOP1 ;測溫每1秒一次。 CLR TIMEOK JNB TEMPONE,LOOP2 ;上

19、電時(shí)先溫度轉(zhuǎn)換一次。 LCALL READTEMP ;讀出溫度值子程序。 LCALL TEMPBCD ;溫度BCD碼計(jì)算處理子程序。 LCALL DISPBCD ;顯示區(qū)BCD碼溫度值刷新子程序。 LCALL ALARM ;最高溫度報(bào)警子程序。LOOP2: LCALL TEMPCONV ;溫度開始轉(zhuǎn)換子程序。 SETB TEMPONE SJMP MAIN;*;定時(shí)器T0中斷服子程序。DVT0: PUSH PSW MOV PSW,#10H MOV TH0,#0E0H MOV TL0,#0B1H INC R7 CJNZ R7,#32H,DVT01 MOV R7,#00H SETB TIMEOK ;

20、1秒定時(shí)到標(biāo)志。 DVT01: POP PSW RETI;*;鍵盤掃描子程序。KEYBORD: JB K0,L1 JNB K0,$ LCALL FUNCTION LJMP KEYBORD L1: JB K1,L2 JNB K1,$ LCALL FUNCTION1 LJMP KEYBORD L2: RETFUNCTION0: MOV 40H,#28H ;第一路SN54ALS02J的64位序列號(hào)裝入存儲(chǔ)單元40H47H。 MOV 41H,#0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#

21、0E3H RETFUNCTION0: MOV 40H,#28H ;第二路SN54ALS02J的64位序列號(hào)裝入存儲(chǔ)單元40H47H。 MOV 41H,#0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#01H MOV 47H,#0E3H RET;*;DS18B20復(fù)位子程序。RETET: SETB DQ NOP NOP CLR DQ MOV R6,#0A0H ;延時(shí)480us DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SETB DQ MOV R6,#32H ;延時(shí)70us DJNZ R6

22、,$ MOV R6,#3CHRESET1: MOV C,DQ JC RESET2 DJNZ R6,RESET1 MOV R6,#64H ;延時(shí)200us DJNZ R6,$ SJMP RESET RETRESET2: SETB DQ RET;*;讀SN54ALS02J子程序,從SN54ALS02J中讀出一個(gè)字節(jié)的數(shù)據(jù)。READ: MOV R7,#08H SETB DQ NOP NOPREAD1: CLR DQ NOP NOP NOP SETB DQ MOV R6,#07H ;延時(shí)15us。 DJNZ R6,$ MOV C,DQ MOV R6,#3CH ;延時(shí)120us。 DJNZ R6,$ R

23、RC A SETB DQ DJNZ R7,READ1 MOV R6,#3CH ;延時(shí)120us。 DJNZ R6,$ RET;*;寫SN54ALS02J子程序,給SN54ALS02J中寫入一個(gè)字節(jié)的數(shù)據(jù)。WRITE: MOV R7,#08H SETB DQ NOP NOPWRITE1: CLR DQ MOV R6,#07H ;延時(shí)15us。 DJNZ R6,$ RRC A MOV DQ,C MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ SETB DQ DJNZ R7,WRITE1 RET;*;溫度開始轉(zhuǎn)換子程序。TEMPCONV: LCALL RESET MOV A,#55H

24、 ;發(fā)送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ MOV R7,#08H ;發(fā)送64位ROM編碼。 MOV R0,#40HTEMPVONV1: MOV A,R0 LCALL WRITE INC R0 DJNZ R7,TEMPCONV1 ;64位ROM編碼發(fā)送完沒有? MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ MOV A,#44H ;發(fā)送啟動(dòng)溫度轉(zhuǎn)換命令。 LCALL WRITE MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ RET;*;讀出溫度值子程序。READTEMP: LCALL RES

25、ET MOV A,#55H ;發(fā)送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ MOV R7,#08H ;發(fā)送64位ROM編碼。 MOV R0,#40HREADTEMP1: MOV A,R0 LCALL WRITE INC R0 DJNZ R7,TEMPCONV1 MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ MOV A,#0BEH ;發(fā)送讀暫存器命令。 LCALL WRITE MOV R6,#34H ;延時(shí)104us。 DJNZ R6,$ MOV R5,#09H MOV R0,#TEMPHEAD MOV B,#00

26、HTEADTEMP2: LCALL READ MOV R0,A INC R0READTEMP3: LCALL CRC DJNZ R5,READTEMP2 MOV A,B JNZ READTEMP4 ;校證碼不正確,則反回,不讀取轉(zhuǎn)換的溫度。 MOV R0,#TEMPHEDA MOV TEMPL,R0 ;讀取轉(zhuǎn)換后的溫度低位到TEMPL中。 INC R0 MOV TEMPH,R0 ;讀取轉(zhuǎn)換后的溫度高位到TEMPH中。READTEMP4: RET;*;溫度BCD碼計(jì)算處理子程序。TEMPBCD: MOV A,TEMPH ANL A,#80H JZ TEMPBCD1 ;溫度值為正。 CLR C ;

27、溫度值為負(fù)時(shí),求補(bǔ)碼。 MOV A,TEMPL CPL A ADD A,#01H MOV TEMPL,A MOV A,TEMPH CPL A ADDC A,#00H MOV TEMPH,A MOV TEMPCH,#0BH ;執(zhí)符號(hào)位“-”。 SJMP TEMPBCD2TEMPBCD1: MOV TEMPCH,#0AH ;執(zhí)符號(hào)位“+”。TEMPBCD2: MOV A,TEMPCH SWAP A MOV TEMPCH,A MOV A,TEMPL ;小數(shù)部分處理。 ANL A,#0FH MOV DPRT,#TEMPDOTTAB MOVC A,A+DPRT MOV TEMPCL,A ;小數(shù)位放入TE

28、MPL低位中。 MOV A,TEMPL ;整數(shù)部分處理。 ANL A,#0F0H SWAP A MOV TEMPL,A MOV A,TEMPH ANL A,#0FH SWAP A ORL A,TEMPL LCALL HEXBCD MOV TEMPL,A ANL A,#0F0H SWAP A ORL A,TEMPCH MOV TEMPCH,A MOV A,TEMPL ANL A,#0FH SWAP A ORL A,TEMPCL MOV TEMPCL,A MOV A,R7 JZ TEMPBCD3 ANL A,#0FH SWAP A MOV R7,A MOV A,TEMPCH ANL A,#0FH

29、ORL A,R7 MOV TEMPCH,ATEMPBCD3: RET;*;小數(shù)部分碼表。TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H, DB 06H,07H,07H,08H,09H,09H;*;顯示區(qū)BCD碼溫度值刷新子程序。DISPBCD: MOV A,TEMPCL ANL A,#0FH MOV 70H,A MOV A,TEMPCL SWAP A ANL A,#0FH MOV 71H,A MOV A,TEMPCH ANL A,#0FH MOV 72H,A MOV A,TEMPCH SWAP A ANL A,#0FH MOV 73

30、H,A MOV A,TEMPCH ANL A,#0F0H CJNE A,#10H,DISPBCD1 SJMP DISPBCD2DISPBCD1: MOV A,TEMPCH ANL A,#0FH JNZ DISPBCD2 ;十位數(shù)是0。 MOV A,TEMPCH SWAP A ANL A,#0FH MOV 73H,#0AH ;符號(hào)位不顯示。 MOV 72H,A ;十位數(shù)顯示符號(hào)。DISPBCD2: RET;*;顯示子程序。DISP: MOV R7,#04H MOV R0,#70H SETB P1.4DISP1: MOV A,R0 ; MOV DPTR,#TAB MOVC A,A+DPTR MOV SUBF,A JNB RI,$ CLR RI INC R0 DJNZ R7,DISP1 CLR P1.4 ;關(guān)移位脈沖,并行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論