單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)(張濤)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)(張濤)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)(張濤)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)(張濤)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)——數(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)介

1、成都理工大學(xué)工程技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告數(shù)字溫度計(jì)設(shè)計(jì) 指導(dǎo)教師: 韓冰 學(xué)生: 張濤 組員:周鵬 2013年12月24日摘要在這個(gè)信息化高速發(fā)展的時(shí)代,單片機(jī)作為一種最經(jīng)典的微控制器,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),作為自動(dòng)化專(zhuān)業(yè)的學(xué)生,我們學(xué)習(xí)了單片機(jī),就應(yīng)該把它熟練應(yīng)用到生活之中來(lái)。本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。本文設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字控制,數(shù)碼管顯示,溫度計(jì),DS1

2、8B20,AT89S52。 目錄1概述11.1設(shè)計(jì)目的11.2設(shè)計(jì)原理11.3設(shè)計(jì)難點(diǎn)12 系統(tǒng)總體方案及硬件設(shè)計(jì)22.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證22.2 總體設(shè)計(jì)框圖 22.2.1 主控制器22.2.2 顯示電路32.2.3溫度傳感器32.3 DS18B20溫度傳感器與單片機(jī)的接口電路32.4 系統(tǒng)整體硬件電路設(shè)計(jì)42.4.1 主板電路42.4.2 顯示電路 53 系統(tǒng)軟件設(shè)計(jì)63.1初始化程序63.2讀出溫度子程序73.3讀、寫(xiě)時(shí)序子程序83.4 溫度處理子程序93.5 顯示程序104 Proteus軟件仿真115 硬件實(shí)物126 課程設(shè)計(jì)體會(huì)13參考文獻(xiàn)13附錄1:13 1概述 1.1設(shè)計(jì)

3、目的 隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。 本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,可廣泛用于食品庫(kù)、冷庫(kù)、糧庫(kù)、溫室大棚等需要控制溫度的地方。目前,該產(chǎn)品已在溫控系統(tǒng)中得到廣泛的應(yīng)用。1.2設(shè)計(jì)原理 本系統(tǒng)是一個(gè)基于單片機(jī)AT89S52的數(shù)字溫度計(jì)

4、的設(shè)計(jì),用來(lái)測(cè)量環(huán)境溫度,測(cè)量范圍為-50110度。整個(gè)設(shè)計(jì)系統(tǒng)分為3部分:?jiǎn)纹瑱C(jī)控制、溫度傳感器、數(shù)碼顯示。整個(gè)設(shè)計(jì)是以AT89S52為核心,通過(guò)數(shù)字溫度傳感器DS18B20來(lái)實(shí)現(xiàn)環(huán)境溫度的采集和A/D轉(zhuǎn)換,同時(shí)因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機(jī)進(jìn)行數(shù)據(jù)處理,但同時(shí)也對(duì)編程提出了更高的要求。單片機(jī)把采集到的溫度進(jìn)行相應(yīng)的轉(zhuǎn)換后,使之能夠方便地在數(shù)碼管上輸出。LED采用三位一體共陽(yáng)的數(shù)碼管。1.3設(shè)計(jì)難點(diǎn) 此設(shè)計(jì)的重點(diǎn)在于編程,程序要實(shí)現(xiàn)溫度的采集、轉(zhuǎn)換、顯示,其外圍電路所用器件較少,相對(duì)簡(jiǎn)單,實(shí)現(xiàn)容易。2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證由于本設(shè)計(jì)是測(cè)溫電路

5、,可以使用熱敏電阻之類(lèi)的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。2.2 總體設(shè)計(jì)框圖 溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖1所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用3位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。

6、主控制器 AT89S52 復(fù)位電路3位LED顯示電路時(shí)鐘振蕩電路DS18B20溫度傳感器 圖1 總體設(shè)計(jì)框圖2.2.1 主控制器 單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。AT89S52單片機(jī)芯片具有以下特性:1)指令集合芯片引腳與Intel公司的8052兼容;2)8KB片內(nèi)在系統(tǒng)可編程FLASH程序存儲(chǔ)器;3)時(shí)鐘頻率為033MHZ;4)256字節(jié)片內(nèi)隨機(jī)讀寫(xiě)存儲(chǔ)器(RAM);5)8個(gè)中斷源,2級(jí)優(yōu)先級(jí);6)3個(gè)16位定時(shí)/計(jì)數(shù)器;7)全雙工串行通信接口;8)監(jiān)視定時(shí)器;9)兩個(gè)數(shù)據(jù)指針;2.2.2 顯示電

7、路顯示部分采用共陽(yáng)極LED數(shù)碼管作為溫度顯示器,顯示驅(qū)動(dòng)電路采用了74LS47譯碼器和2N5551三極管放大器。其中P0.0到P0.3口用于數(shù)碼管的段選控制端,P0.4到P0.6口用于數(shù)碼管的位選控制端,小數(shù)點(diǎn)用P2.0口控制。2.2.3溫度傳感器DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:1)只需要一個(gè)端口即可實(shí)現(xiàn)數(shù)據(jù)通信2)在DS18B20中每個(gè)器件上都有唯一的序列號(hào),可實(shí)現(xiàn)多點(diǎn)組網(wǎng)3)實(shí)際應(yīng)用中不需要外

8、部任何器件即可實(shí)現(xiàn)溫度檢測(cè)4)測(cè)量溫度范圍在-55攝氏度到+125攝氏度之間5)可通過(guò)數(shù)據(jù)線的寄生電源供電,電壓范圍3.05.5V6)數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇7)用戶可定義的非易失溫度報(bào)警設(shè)置2.3 DS18B20溫度傳感器與單片機(jī)的接口電路 圖2 DS18B20溫度傳感器與單片機(jī)的接口電路2.4 系統(tǒng)整體硬件電路設(shè)計(jì)2.4.1 主板電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機(jī)主板電路等,單片機(jī)主板電路如圖3 所示: 圖3 單片機(jī)主板電路2.4.2 顯示電路 圖4 溫度顯示電路 3 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序

9、,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1初始化程序開(kāi)始 主機(jī)釋放總線 總線發(fā)出復(fù)位脈沖 延時(shí)2us主機(jī)釋放總線(進(jìn)入接收狀態(tài)) 延時(shí)400960us接收存在脈沖 延時(shí)1560us 釋放總線 持續(xù)60240us返回 圖5 初始化程序流程圖開(kāi)始3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖6示 初始化DS18B20主機(jī)檢驗(yàn)DS18B20是否存在脈沖 Y N跳出ROM(0CCH)返回溫度轉(zhuǎn)換(44H)重置DS18B20 開(kāi)中斷,延時(shí)確保溫度轉(zhuǎn)換完成,關(guān)中斷檢測(cè)DS18b20

10、是否存在脈沖 Y N返回跳出ROM(0CCH) 讀暫存器(0BEH) 溫度低八位溫度高八位溫度處理返回 圖6 讀溫度程序流程圖3.3讀、寫(xiě)時(shí)序子程序讀寫(xiě)的程序是本次設(shè)計(jì)中的重點(diǎn)和難點(diǎn),通過(guò)我們對(duì)其時(shí)序的分析,從而寫(xiě)出高效的程序。 寫(xiě)1,0時(shí)序 讀0,1時(shí)序開(kāi)始開(kāi)始釋放總線釋放總線拉低總線拉低總線 延時(shí)2us 延時(shí)大于1us 延時(shí)115us 延時(shí)2us釋放總線對(duì)總線采樣(持續(xù)1560us) >1us讀時(shí)序(013us)高電平(寫(xiě)1時(shí)序)低電平(寫(xiě)0時(shí)序)釋放總線釋放總線返回返回 圖7 寫(xiě)時(shí)序子程序流程圖 圖8 讀時(shí)序子程序流程圖3.4 溫度處理子程序 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BC

11、D碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖9所示開(kāi)始溫度低八位溫度高八位取第四位取高四位取低四位查表重新組合互換高、低四位小數(shù)位保存除以10商取余(個(gè)位)保存除以10取余(十位)商(百位)保存 圖9 溫度處理程序流程圖 3.5 顯示程序此函數(shù)實(shí)現(xiàn)的對(duì)數(shù)碼管顯示的處理,其亮點(diǎn)在于可以直接對(duì)數(shù)碼管進(jìn)行操作,其本身是個(gè)兩變量函數(shù),第一個(gè)變量是要開(kāi)通的位選,第二個(gè)變量是要顯示的數(shù)據(jù),這樣我們可以直接方便而又簡(jiǎn)單直觀的對(duì)數(shù)碼管進(jìn)行操作。程序流程圖如圖10所示:開(kāi)始 返回賦值顯示小數(shù)位打開(kāi)數(shù)碼管位選3賦值顯示個(gè)位,且顯示小數(shù)點(diǎn)打開(kāi)數(shù)碼管位選2賦值顯示十位打開(kāi)數(shù)碼管位選1 圖10 顯示程序流程

12、圖4 Proteus軟件仿真 圖11 Proteus軟件仿真5 硬件實(shí)物 圖12 硬件實(shí)物6 課程設(shè)計(jì)體會(huì)在這兩周的單片機(jī)課程設(shè)計(jì)中,我學(xué)到了很多書(shū)本上沒(méi)有學(xué)到的東西,其中最寶貴的我覺(jué)得是實(shí)際動(dòng)手操作所得來(lái)的經(jīng)驗(yàn),這是學(xué)不來(lái)的,只能靠自己。我們做的課題是基于單片機(jī)控制的數(shù)字溫度計(jì),雖然還沒(méi)有達(dá)到很理想的設(shè)計(jì)要求,但是這對(duì)于我來(lái)說(shuō),任然是一次非常豐富的和有趣的經(jīng)歷,其中還體會(huì)到了團(tuán)隊(duì)合作的重要性,正所謂人多力量大嘛。這次設(shè)計(jì)能夠很成功的把實(shí)物做出來(lái)并且調(diào)試好這是值得高興的。但是,在這一次的課程設(shè)計(jì)中,我發(fā)現(xiàn)很多的問(wèn)題,首先就是數(shù)電和模電方面的知識(shí)還必須得好好補(bǔ)一下,還有很多常用的元器件和集成芯片

13、應(yīng)該知道怎么用。我覺(jué)得單片機(jī)課程設(shè)計(jì)重點(diǎn)在于系統(tǒng)軟件的設(shè)計(jì),各種各樣的算法,要慢慢的學(xué)會(huì)靈活運(yùn)用才行。要有學(xué)習(xí)的激情和耐心,因?yàn)樵谲浖O(shè)計(jì)時(shí),難免會(huì)遇到一些想破腦袋都解決不了的問(wèn)題!其次就是硬件電路的設(shè)計(jì),要注重電路的簡(jiǎn)潔和可觀性。有很多的東西,只有我們?nèi)L試著做了,才能真正的體會(huì)到甚至于掌握。只學(xué)習(xí)理論而不實(shí)踐,有些東西是很難理解的,更談不上掌握。在這一次的課程設(shè)計(jì)中,我懂得了既要學(xué)習(xí)書(shū)本上的知識(shí),也要在實(shí)踐中去運(yùn)用所學(xué)知識(shí)。 參考文獻(xiàn)1DS18b20數(shù)據(jù)手冊(cè)。2 求是科技編著8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)北京: 人民郵電出版社, 20063 余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù).徐州

14、:中國(guó)礦業(yè)大學(xué)出版社,2003附錄1: DQ BIT P3.7 ;1 wire line swpH equ 0E7H swpL equ 40H WDLSB DATA 30H WDMSB DATA 31H ;* ORG 0000H LJMP MAIN ORG 000BH ;定時(shí)器0中斷入口 LJMP TMR0 ; Timer0 isr;*; Timer0 Interrupt Service Routine(定時(shí)器0中斷服務(wù)程序)TMR0: MOV TH0,#swpH ;輪流送溫度值的高低兩位到數(shù)碼管 MOV TL0,#swpL CJNE R7,#00H,DS0 SJMP DS1DS0: CJNE

15、 R7,#01H,DS3 SJMP DS2DS1: MOV P0,42H ORL P0,#01000000B ;選中P0.6,顯示十位MOV P2,#01HLCALL DELAY10SJMP EXITDS2: MOV P0,43H ORL P0,#00100000B ;選中P0.5,顯示個(gè)位 MOV P2,#00H ;顯示小數(shù)點(diǎn) LCALL DELAY10 SJMP EXIT DS3: MOV P0,44H ORL P0,#00010000B ;選中P0.4,顯示小數(shù)位 MOV P2,#01H LCALL DELAY10EXIT: INC R7 CJNE R7,#03H,EXIT1 MOV R

16、7,#00HEXIT1: RETI;*; Main program(主程序)MAIN: TOINIT: CLR EA ;關(guān)總中斷 MOV TMOD,#01H ;設(shè)置定時(shí)器0,工作方式1(16位定時(shí)/計(jì)數(shù)器) MOV TH0,#swpH ;給定計(jì)數(shù)初值 MOV TL0,#swpLMOV R7,#00H SETB EA ;開(kāi)總中斷 SETB ET0 ;允許T0中斷 SETB TR0 ;打開(kāi)定時(shí)器T0,開(kāi)始定時(shí);* ; (初始化42H、43H單元內(nèi)容并接著循環(huán)讀溫度) MOV R2,#3 ;R2作為循環(huán)計(jì)數(shù)器,初值為3 MOV R0,#42H ;將42H作為首地址存入R0OVER: MOV R0,#

17、00H ;通過(guò)連續(xù)的兩次間接尋址,得出:(42H)=#00H,(43H)=#00H,;(44H)=#00H INC R0 DJNZ R2,OVER LOOP: LCALL DSWD ;循環(huán)調(diào)用讀溫度子程序 SJMP LOOP ;*; Read a temperature from the DS18B20(從溫度傳感器中讀出溫度值)DSWD: LCALL RSTSNR ;Init of the DS18B20(初始化DS18B20) JNB F0,KEND ;若F0=0,表示主機(jī)沒(méi)有檢測(cè)到DS18B20的存在脈沖,則退出 MOV R0,#0CCH ;當(dāng)F0=1,表示主機(jī)檢測(cè)到了DS18B20的存

18、在脈沖,準(zhǔn)備發(fā)送“跳過(guò)ROM” ;指令,即0CCH LCALL SEND_BYTE ;調(diào)用發(fā)送子程序,發(fā)送一個(gè)“跳過(guò)ROM”指令 MOV R0,#44H ;接著R0中放入“溫度變換”指令,即44H,準(zhǔn)備發(fā)送 LCALL SEND_BYTE ;Send a Convert Command(發(fā)送一個(gè)轉(zhuǎn)換命令) SETB EA ;開(kāi)總中斷 MOV 48H,#1 ;延時(shí)1usSS2: MOV 49H,#255 ;延時(shí)1usSS1: MOV 4AH,#255 ;延時(shí)1usSS0: DJNZ 4AH,SS0 ;延時(shí)255*2us=510us DJNZ 49H,SS1 ;本指令執(zhí)行時(shí)間2us,本循環(huán)體執(zhí)行2

19、55次 DJNZ 48H,SS2 ;本指令執(zhí)行時(shí)間2us,本循環(huán)體執(zhí)行1次 ;總共延時(shí)時(shí)間:1+1+1+510+(1+510+2)*255+(1+1+510+(1+510+2)*255+2)*1=0.262657 s ;確保溫度轉(zhuǎn)換完成 CLR EA ;進(jìn)入讀時(shí)序禁用任何中斷 LCALL RSTSNR ;再次重置總線 JNB F0,KEND ;若F0=0,表示主機(jī)沒(méi)有檢測(cè)到DS18B20的存在,則退出 MOV R0,#0CCH ;當(dāng)F0=1,表示主機(jī)檢測(cè)到了DS18B20的存在,準(zhǔn)備發(fā)送“跳過(guò)ROM”指令, ;即0CCH LCALL SEND_BYTE ;調(diào)用發(fā)送子程序 ,發(fā)送一個(gè)“跳過(guò)ROM

20、”指令 MOV R0,#0BEH ;接著R0中放入讀暫存存儲(chǔ)器命令BEH,準(zhǔn)備發(fā)送 LCALL SEND_BYTE ;Send Read Scratchpad command(調(diào)用發(fā)送子程序,發(fā)送讀暫存存儲(chǔ)器 ;命令) LCALL READ_BYTE ;Read the low byte from scratchpad(調(diào)用讀子程序,從暫存存儲(chǔ)器中 ;讀低8位字節(jié)) MOV WDLSB,A ;Save the temperature (low byte)(將溫度的低8位存入地址單元30H) LCALL READ_BYTE ;Read the high byte from scratchpad(

21、調(diào)用讀子程序,從暫存存儲(chǔ)器中 ;讀高8位字節(jié)) MOV WDMSB,A ;Save the temperature (high byte)(將溫度的高8位存入地址單元 ;31H) LCALL TRANS12 ;調(diào)用溫度處理程序KEND: SETB EA ;開(kāi)總中斷 RET ;子程序返回;*TRANS12: MOV A,30H ;30H存從1820取的溫度值低8位 ANL A,#0F0H ;將30H單元中的溫度值低4位(即小數(shù)位)全部清零,高4位保持不變 MOV 3AH,A ;保存在3AH單元 MOV A,31H ;31H存從1820取的溫度值高8位 ANL A,#0FH ;將31H單元中的溫度

22、值高4位全部清零,低4位保持不變 ORL A,3AH SWAP A MOV B,#10 ;轉(zhuǎn)換為10進(jìn)制 DIV AB MOV 43H,B ; 除10 取余數(shù),余數(shù)部分存入43H單元(個(gè)位存入43H單元) MOV B,#10 DIV AB MOV 42H,B ;再次對(duì)整數(shù)部分取余數(shù),放入42H單元(十位存入42H單元) MOV 41H,A ;(百位存入41H單元)MOV A,30H ;30H存從1820取的溫度值低8位ANL A,#0FH ;只保留溫度的小數(shù)部分MOV DPTR,#1000HMOVC A,A+DPTRMOV 44H,A RET ;*; Send a byte to the 1

23、wire lineSEND_BYTE: MOV A,R0;(A)=0CCH MOV R5,#8;設(shè)置寫(xiě)位個(gè)數(shù)為8SEN3: CLR C RRC A ;寄存器值帶進(jìn)位循環(huán)右移,即把要寫(xiě)的位放到C(先發(fā)低位,后發(fā)高位) JC SEN1 ;若c=1,則轉(zhuǎn)移 LCALL WRITE_0 ;c=0,調(diào)用 WRITE_0 SJMP SEN2 SEN1: LCALL WRITE_1 ;c=1,調(diào)用 WRITE_1SEN2: DJNZ R5,SEN3 ;8位是否全部發(fā)送完?若沒(méi)有,則繼續(xù)發(fā)送下一位 RET;發(fā)送完畢,子程序返回;*; Read a byte from the 1 wire lineREAD_B

24、YTE: MOV R5,#8 ;設(shè)置讀位個(gè)數(shù)為8READ1: LCALL READ ;調(diào)用讀位子程序 RRC A ;接收所讀位,先接收低位,后接收高位 DJNZ R5,READ1 ;8位是否全部讀完?若沒(méi)有,則繼續(xù)讀下一位 MOV R0,A ;讀完后,保存在R0中 RET ;返回;*; Reset 1 wire lineRSTSNR: SETB DQ;首先主機(jī)釋放總線 NOP;延時(shí)1us NOP;延時(shí)1us CLR DQ;主機(jī)總線發(fā)出一復(fù)位脈沖 MOV R6,#250 ;延時(shí)1us DJNZ R6,$;延時(shí)時(shí)間:250*2 us=500 us MOV R6,#50;延時(shí)1us DJNZ R6,$;延時(shí)時(shí)間:50*2 us=100 us SETB DQ ;主機(jī)釋放總線并進(jìn)入接收狀態(tài) MOV R6,#15;延時(shí)1us DJNZ R6,$;延時(shí)時(shí)間:15*2 us=30 us (DSl820在檢測(cè)到總線的上升沿之后,等待;15-60us) LCALL CHCK ;調(diào)用檢測(cè)DS18B20發(fā)出的存在脈沖的子程序 MOV R6,#60;延時(shí)1us DJNZ R6,$;延時(shí)時(shí)間:60*2 us=120 us SETB DQ;再次釋放總線 RET;子程序返回(初始化完成);*; low level subrouti

溫馨提示

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