基于ds18b20的單總線數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  1 前言</b></p><p>  在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持。其缺點(diǎn)如下:硬件電路復(fù)雜;軟件調(diào)試復(fù)雜;制作成本高。針對(duì)以上問題,采用一種改進(jìn)型智能溫度傳感器作為檢測(cè)元件,測(cè)溫范圍為-55~+125 ℃,最高分辨率可達(dá)0

2、.0625℃,誤差 +0.5℃以內(nèi)。數(shù)字溫度計(jì)傳感器可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。 本數(shù)字溫度計(jì)設(shè)計(jì)采用一種改進(jìn)型智能溫度傳感器作為檢測(cè)元件,測(cè)溫范圍為-55~125 ℃,最高分辨率可達(dá)0.0625℃,誤差 +0.5℃以內(nèi)。而傳統(tǒng)的溫度計(jì),如熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持。硬件電路復(fù)雜,軟件調(diào)試?yán)щy,制作成本高等缺點(diǎn)都給

3、科技、工業(yè)、農(nóng)業(yè)等諸多領(lǐng)域帶來許多問題,尤其在生物學(xué),珊瑚以其獨(dú)特的生物學(xué)及生態(tài)學(xué)特性成為研究熱帶海洋環(huán)境的重要信息載體.闡明了珊瑚微量元素Sr/Ca、Mg/Ca溫度計(jì)的建立基礎(chǔ)、測(cè)定方法、研究成果、環(huán)境意義、爭(zhēng)論問題及進(jìn)一步研究的設(shè)想</p><p>  2 系統(tǒng)硬件的設(shè)計(jì)</p><p>  本數(shù)字溫度計(jì)設(shè)計(jì)采用美國(guó)DALLAS半導(dǎo)體公司繼DS18B20之后推出的一種改進(jìn)型智能溫度

4、傳感器DS18B20作為檢測(cè)元件,測(cè)溫范圍為-55~+125 ℃,最高分辨率可達(dá)0.0625℃.</p><p>  DS18B20可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。按照系統(tǒng)設(shè)計(jì)的功能和要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器,測(cè)溫電路和顯示電路[1]。</p><p>  數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖1.1所示。</

5、p><p>  設(shè)計(jì)要求: 測(cè)溫范圍 -55~~+125 ℃;誤差 +0.5℃以內(nèi);采用LED數(shù)碼管直讀顯示。溫度計(jì)設(shè)計(jì)原理圖如圖所示,控制器使用單片機(jī)AT89C2051,溫度傳感器使用DS18B20,用4位共陽LED數(shù)碼管以動(dòng)態(tài)掃描法實(shí)現(xiàn)溫度顯示。(電路圖見附錄)。</p><p><b>  2.1 主控制器</b></p><p>  單片機(jī)

6、AT89C2051具有低電壓供電和小體積等特點(diǎn),兩個(gè)端口剛好滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。系統(tǒng)可用兩節(jié)電池供電。主電路圖如2.1所示。</p><p><b>  圖2.1主電路圖</b></p><p><b>  2.2 顯示電路</b></p><p>  顯示電路采用4位共陽LED數(shù)碼管,

7、從P1口輸出段碼,列掃描用P3.0~P3.3來實(shí)現(xiàn),列驅(qū)動(dòng)用9012三極管。顯示電路圖如2.2所示。</p><p><b>  圖2.2顯示電路圖</b></p><p>  2.3 溫度傳感器工作原理</p><p>  2.3.1 DS18B20的性能特點(diǎn)</p><p>  DS18B20溫度傳感器是美國(guó)DALL

8、AS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀取方式。DS18B20的性能特點(diǎn)如下: 獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信; 多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; 無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V; 零待機(jī)功耗;溫度以9或12位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并

9、標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作[2]。 </p><p>  2.3.2 DS18B20原理</p><p>  DS18B20 采用3 腳PR-35 封裝或8 腳SOIC 封裝,管腳排列如圖2.3所示。圖中GND 為地,DQ 為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開路輸出,常態(tài)下呈高電平,Vcc 是外部

10、+5V 電源端,不用時(shí)應(yīng)接地,NC 為空腳。</p><p>  圖2.3 DS18B20的外部結(jié)構(gòu)</p><p>  DS18B20內(nèi)部主要包括寄生電源、溫度傳感器、64 位激光ROM 單線接口、存放中間數(shù)據(jù)的高速暫存器,用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH 和TL 解發(fā)器存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分,內(nèi)部結(jié)構(gòu)如圖2.4。</p><

11、;p>  圖2.4 DS18B20的內(nèi)部結(jié)構(gòu)</p><p>  寄生電源由二極管VD1、VD2 和寄生電容C 組成,電源檢測(cè)電路用于判定供電方式,寄生電源供電時(shí),VDD 端接地,器件從單線總線上獲取電源,在DQ 線呈低電平時(shí),改由C上的電壓Vcc繼續(xù)向器件供電。該寄生電源有兩個(gè)優(yōu)點(diǎn):第一,檢測(cè)遠(yuǎn)程溫度時(shí)無需本地電源;第二,缺少正常電源時(shí)也能讀ROM。若采用外部電源VDD,則通過VD2 向器件供電。<

12、;/p><p>  光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,如表2.1所示。開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。主機(jī)操作ROM 的命令有五種,如表2.1 所

13、示。</p><p>  MSB LSB MSB LSB MSB LSB</p><p>  表2.1 64 位ROM 的結(jié)構(gòu)</p><p>  表2.2 DS18B20的ROM命令</p><p>  DS18B20 測(cè)量溫度時(shí)使用特有的溫度測(cè)

14、量技術(shù)。其內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào)f0,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻率信號(hào)f。當(dāng)計(jì)數(shù)門打開時(shí),DS18B20 對(duì)f0 計(jì)數(shù),計(jì)數(shù)門開通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對(duì)頻率的非線性予以被償。測(cè)量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)為9 位(符號(hào)點(diǎn)1位),但因符號(hào)位擴(kuò)展成高8 位,故以16 位被碼形式讀出,表2.3 給出了溫度和數(shù)字量的關(guān)系。</p><p> 

15、 表2.3 DS1820 溫度數(shù)字對(duì)應(yīng)關(guān)系表</p><p>  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫度的低8位,第二個(gè)字節(jié)是溫度的高8位,第三個(gè)和第四個(gè)字節(jié)是TH、TL的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這

16、三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新,第六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算,第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié),如表2.4所示[3]。</p><p>  表2.4 DS18B20暫存器分布</p><p>  該字節(jié)各位的意義為TM R1 R0 1 1 1 1 1 ,低五位一直都是1 ,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不用改

17、動(dòng),R1和R0用來設(shè)置分辨率,DS18B20出廠時(shí)被設(shè)置為12位,分辨率設(shè)置如表2.5所示。 </p><p>  表2.5 分辨率設(shè)置表</p><p>  根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CP

18、U將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。ROM命令和暫存器的命令如表2.2和表2.6[4]。</p><p>  表2.6 DS18B20暫存器的命令</p><p>  2.3.3 DS18B20電路連接</p><p>  由于DS18B20 工作在

19、單總線方式,其硬件接口非常簡(jiǎn)單,僅需利用系統(tǒng)的一條I/ O線與DS18B20的數(shù)據(jù)總線相連即可,如圖2.5所示[5]。</p><p>  圖2.5 DS18B20電路</p><p>  2.3.4. DS18B20測(cè)溫原理</p><p>  如圖2.6所示,圖中低溫度系數(shù)振蕩器的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)

20、振蕩器隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入[6]。</p><p>  圖2.6 DS18B20測(cè)溫原理圖</p><p>  圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí)DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減

21、法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p>  減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值,圖2.5中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線形性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就

22、重復(fù)上述過程,直到溫度寄存器值達(dá)到被測(cè)溫度值。</p><p>  另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)[7]。</p><p>  2.4 DS18B20 與單片機(jī)的接口電路</p>&

23、lt;p>  DS18B20可以采用兩種方式供電:一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖2.7 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉[8]。</p><p>  當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間

24、最大為500us。采用寄生電源供電方式時(shí),VDD端均接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的[9]。</p><p>  圖2.7 DS18B20采用寄生電源的電路圖</p><p>  3 系統(tǒng)軟件的設(shè)計(jì)</p><p>  系統(tǒng)程序主要包括主程序、讀出溫度子程序。溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序和顯示數(shù)據(jù)刷新子程序。</p><

25、;p><b>  3.1 主程序</b></p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。</p><p>  主程序流程見圖3.1所示。</p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一

26、次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖9所示[10]。</p><p>  圖3.1主程序流程圖</p><p>  MAIN : LCALL DISPLAY ;調(diào)用顯示程序</p><p>  JNB SHIJOK , MAIN ;時(shí)間未到了0.8S則跳到MIA

27、N</p><p>  CLR SHIJOK</p><p>  LCALL DCONVTEMP ;調(diào)用溫度轉(zhuǎn)換子程序</p><p>  LCALL READTEMP ;調(diào)用溫度讀程序</p><p>  LCALL CONVTBCD

28、 ;調(diào)用BCD轉(zhuǎn)換子程序</p><p>  LCALL DISPLAY ;調(diào)用顯示程序</p><p>  LJMP MAIN ;返回主程</p><p>  3.2 讀出溫度子程序</p><p

29、>  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.2示[11]。</p><p>  圖3.2 讀出溫度子程序流程圖</p><p>  3.3溫度轉(zhuǎn)換命令子程序</p><p>  溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序

30、設(shè)計(jì)中,采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖3.3所示[12]</p><p>  圖3.3 溫度轉(zhuǎn)換命令子程序流程圖</p><p>  DCONVTEMP: LCALL T0INDS18620</p><p>  MOV A , #0CCH</p><p>  LCALL WRITEDS18620

31、 ;寫入SKIP ROM</p><p>  MOV R1 , #34H ;延時(shí)104us</p><p>  DJNZ R1 , $</p><p>  MOV A , #44H</p><p>  LCALL WRITEDS18620

32、 ;寫入CONVERT T 溫度轉(zhuǎn)換程序</p><p>  MOV R1 , #34H ;延時(shí)104us</p><p>  DJNZ R1 , $</p><p><b>  RET</b></p><p>  READTEMP: LCALL T

33、0INDS18620</p><p>  MOV A , #0CCH</p><p>  LCALL WRITEDS18620 ;寫入SKIP ROM</p><p>  MOV R1 , #34H ;延時(shí)104us</p><p>  DJNZ R1

34、 , $</p><p>  MOV A , #0BEH</p><p>  LCALL WRITEDS18620 ;寫入READ SCRATCHPAD 溫度轉(zhuǎn)換程序</p><p>  MOV R1 , #34H ;延時(shí)104us</p><p>  

35、DJNZ R1 , $</p><p>  MOV R4 , #08H</p><p>  MOV R0 , #TEMPHEAD</p><p>  READTEMP2: LCALL READDS18620</p><p>  MOV @R0 , A</p><p><b>  INC R0<

36、/b></p><p>  DJNZ R4 , READTEMP2</p><p>  MOV A , TEMPHEAD + 0</p><p>  MOV TEMPL , A</p><p>  MOV A , TEMPHEAD + 1</p><p>  MOV TEMPH , A</p>&l

37、t;p><b>  RET </b></p><p>  3.4 計(jì)算溫度子程序</p><p>  計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,</p><p>  其程序流程圖如圖3.4所示[13]。 </p><p>  圖3.4 計(jì)數(shù)溫度子程序流程圖</p>

38、;<p>  CONVTBCD: MOV A , TEMPH</p><p>  ANL A , #80H</p><p>  JZ TEMPC1</p><p><b>  CLR C</b></p><p>  MOV A , TEMPL</p><p><b

39、>  CPL A </b></p><p>  MOV TEMPL , A</p><p>  MOV A , TEMPH</p><p><b>  CPL A</b></p><p>  ADDC A ,#00H</p><p>  MOV TEMPH , A<

40、/p><p>  MOV TEMPC , #01H; ;1表示負(fù)數(shù)</p><p>  SJMP TEMPC11</p><p>  TEMPC1: MOV TEMPC ,#00H ;0表示正數(shù)</p><p>  TEMPC11: MOV A , TEMPL

41、 ;將小數(shù)點(diǎn)轉(zhuǎn)化出來</p><p>  ANL A , #0FH</p><p>  MOV DPTR , #TABBO </p><p>  MOVC A , @A+DPTR</p><p>  MOV TEMLC , A</p><p>  MOV A , TEMPL</p>

42、<p>  ANL A , #0F0H</p><p><b>  SWAP A</b></p><p>  MOV TEMPL , A</p><p>  MOV A , TEMPH</p><p>  ANL A , #0FH</p><p><b>  SWAP A&

43、lt;/b></p><p>  ORL A , TEMPL</p><p>  LCALL HEX2BCD1</p><p>  MOV 42H , A</p><p><b>  MOV A , B</b></p><p>  MOV 41H ,A</p><p&g

44、t;  MOV A , R6</p><p>  MOV A , TEMPC</p><p>  JZ LOOP11</p><p>  MOV 43H ,A</p><p>  MOV A , TEMLC</p><p>  MOV 40H , A</p><p><b>  RE

45、T</b></p><p>  LOOP11: MOV 43H , #0BFH</p><p><b>  RET</b></p><p><b>  TABBO: </b></p><p>  DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H

46、,06H,07H,08H,08H,09H,09H</p><p>  HEX2BCD1: MOV B , #064H</p><p><b>  DIV AB</b></p><p>  MOV R6 , A</p><p>  MOV A , #0AH</p><p>  XCH

47、 A , B</p><p><b>  DIV AB</b></p><p><b>  RET</b></p><p>  DISPLAY: MOV R1 , #40H ;將秒地址放入R1內(nèi)</p><p>  MOV R2 , #0FEH

48、 ;左邊第一個(gè)數(shù)碼管開始顯示</p><p>  PLAY: MOV A , R2</p><p>  MOV P3 , A</p><p>  MOV A , @R1</p><p>  MOV DPTR , #TAB</p><p>  MOVC A , @A+DPTR&

49、lt;/p><p>  MOV P1 , A</p><p><b>  INC R1</b></p><p>  MOV A , R2</p><p><b>  RL A</b></p><p>  JB ACC.2 , LOOP1</p><p&g

50、t;<b>  CPL P1.7</b></p><p>  LOOP1: JNB ACC.4 , DIPLAYOUT</p><p>  LCALL DEL1MS</p><p><b>  LJMP PLAY</b></p><p>  DIPLAYOUT: MOV P3 , #0FFH&

51、lt;/p><p>  MOV P1 , #0FFH</p><p><b>  RET</b></p><p>  DEL1MS : MOV R7 , #19H</p><p>  DL2 : MOV R6 , #14H ;1MS延時(shí)程序,LED顯示程序用</p>&l

52、t;p>  DL1 : DJNZ R7 , DL2</p><p>  DJNZ R6 , DL1</p><p><b>  RET</b></p><p>  TAB: DB 0C0H ,0F9H ,0A4H ,99H ,92H ,82H ,0F8H ,80H ,90H ,0FFH ,0BFH</p><

53、p><b>  END</b></p><p>  3.5 顯示數(shù)據(jù)刷新子程序</p><p>  顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖3.5[14]。</p><p>  圖3.5 顯示數(shù)據(jù)刷新子程序</p><p>  3.6 D

54、S18B20的各條ROM命令 </p><p>  Read ROM[33H]。這條命令允許總線控制器讀到DS18B20的8位系列編碼、唯一的序列號(hào)和8位CRC碼。只有在總線上存在單只DS18B20時(shí),才能使用該命令。如果總線上有不止一個(gè)從機(jī),則當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開路連在一起形成相“與”的效果)。</p><p>  Match ROM[55H]。這是一條匹

55、配ROM命令,后跟64位ROM序列,讓總線控制器在多點(diǎn)總線上定位一只特定的DS18B20。只有與64位ROM序列完全匹配的DS18B20才能響應(yīng)隨后的存儲(chǔ)器操作。所有與64位ROM序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用。</p><p>  Skip ROM[0CCh=H]。這條命令允許總線控制器不用提供64位ROM編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間。

56、如果總線上不止一個(gè)從機(jī),則在Skip ROM命令之后跟著發(fā)一條讀命令。由于多個(gè)從機(jī)同時(shí)傳送信號(hào),所以總線上就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開路下拉效果相當(dāng)于相“與”)。</p><p>  Search ROM[0F0H]。當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能并不知道單線總線上有多少器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。</p><p>

57、  Alarm Search[0ECH]。這條命令的流程與Search ROM相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況下,DS18B20才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件。</p><p>  Write Scratchpad[4EH]。這條命令向DS18B20的暫存器TH和TL中寫入數(shù)據(jù)??梢栽?/p>

58、任何時(shí)刻發(fā)出復(fù)位命令來中止寫入。</p><p>  Read scratchpad[0BEH]。這條命令讀取暫存器的內(nèi)容。讀取將從第一字節(jié)開始,一直進(jìn)行下去,直到第九字節(jié)(CRC)讀完。如果不想讀完所有字節(jié),則控制器可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。</p><p>  Copy scratchpad[48H]。這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2PROM存儲(chǔ)器里,即把溫

59、度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于把暫存器拷貝到E2PROM存儲(chǔ)器,則DS18B20就會(huì)輸出一個(gè)0,如果拷貝結(jié)束則DS18B20輸出1。如果使用寄生電源,則總線控制器必須在這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。</p><p>  Convert[44H]。這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行后DS18B20保

60、持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換,則DS18B20將在總線上輸出0;如果溫度轉(zhuǎn)換完成,則輸出1.如果使用寄生電源,則總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并保持500ms以上時(shí)間。</p><p>  Recall E2[0B80H]。這條命令把報(bào)警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存器里馬上就存

61、在有效的數(shù)據(jù)了。若在這條命令發(fā)出之后讀數(shù)據(jù)隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):0表示忙;1表示完成。</p><p>  Read Power Supply[0B4H]。若把這條命令發(fā)給DS18B20后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:0表示寄生電源;1表示外部電源[15]。</p><p>  3.7 溫度數(shù)據(jù)的計(jì)算處理方法</p><p>  從DS18B20讀

62、出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。DS18B20的轉(zhuǎn)換精度為9-12位可選,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。</p><p>  通過觀察可以發(fā)現(xiàn),一個(gè)十進(jìn)制值與二進(jìn)制值間有很明顯的關(guān)系,就是把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個(gè)字節(jié)二進(jìn)制值

63、化為十進(jìn)制值后,就是溫度值的百、十、個(gè)位值,而剩下的低字節(jié)的低半字節(jié)化成十進(jìn)制后,就是溫度值的小數(shù)部分。因?yàn)樾?shù)部分是半字節(jié),所以二進(jìn)制值范圍是0-F,轉(zhuǎn)換成十進(jìn)制小數(shù)值就是0,0625的倍數(shù)(0-15倍)。這樣需要4位的數(shù)碼管來顯示小數(shù)部分。實(shí)際應(yīng)用不必有這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1℃.[16]</p><p>  表3.1就是二進(jìn)制與十進(jìn)制的近似對(duì)應(yīng)關(guān)系表。</p>

64、<p>  3.8 程序運(yùn)行結(jié)果</p><p>  本程序采用keil軟件進(jìn)行運(yùn)行,運(yùn)行結(jié)果如圖3.6所示。</p><p>  圖3.6 程序運(yùn)行結(jié)果</p><p>  4 結(jié)論 </p><p>  本次設(shè)計(jì),了解了數(shù)字測(cè)溫器及溫度傳感器,明確了測(cè)溫的原理,并

65、對(duì)的數(shù)字測(cè)溫器認(rèn)識(shí)有了進(jìn)一步的深化。熟悉了專門用于測(cè)溫的數(shù)字溫度傳感器,包括發(fā)展歷程、工作原理、應(yīng)用等。并應(yīng)用匯編語言進(jìn)行編寫的程序,同時(shí)也熟悉了編程軟件。</p><p>  在完成論文的過程中,不斷進(jìn)行對(duì)已學(xué)過知識(shí)的鞏固與深化,進(jìn)而了解了現(xiàn)代科學(xué)技術(shù)的發(fā)展及以后的趨勢(shì),由其是提高了我解決問題的能力。</p><p>  匯編語言是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并

66、能直接控制硬件的語言。匯編語言,作為一門語言,對(duì)應(yīng)于高級(jí)語言的編譯器,需要一個(gè)“匯編器”來把匯編語言原文件匯編成機(jī)器可執(zhí)行的代碼。高級(jí)的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似于高級(jí)語言的特征,比如結(jié)構(gòu)化、抽象等。在這樣的環(huán)境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經(jīng)類同于高級(jí)語言?,F(xiàn)在的匯編環(huán)境已經(jīng)如此高級(jí),即使全部用匯編語言來編寫windows的應(yīng)用程序也是可行的,但這不是匯編語言的長(zhǎng)處。匯編語言的

67、長(zhǎng)處在于編寫高效且需要對(duì)機(jī)器硬件精確控制的程序[17]。 </p><p>  總之,這次設(shè)計(jì)最后實(shí)現(xiàn)了用匯編語言程序控制系統(tǒng)硬件,完成了預(yù)定的設(shè)計(jì)任務(wù)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 張?jiān)?張炎,趙延軍. 基于DS18B20 溫度傳感器的數(shù)字溫度計(jì)[J] . 微電子學(xué),2007 , (5) :709

68、 - 711.</p><p>  [2] 陶冶,袁永超,羅平. 基于DS18B20 的單片機(jī)溫度測(cè)量系統(tǒng)[J] . 農(nóng)機(jī)化研究,2007 , (10) :160 - 164.</p><p>  [3] 張萌,和湘,姜斌. 單片機(jī)應(yīng)用系統(tǒng)開發(fā)[M] . 北京:清華大學(xué)出版社,2007.</p><p>  [4] 何立民. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M] . 北京:北京

69、航空航天大學(xué)出版社,2005.</p><p>  [5] 張洪潤(rùn)等,《電子線路與電子技術(shù)》[M],北京:清華大學(xué)出版社,2005.</p><p>  [6] 王松武等,《電子創(chuàng)新設(shè)計(jì)與實(shí)踐》[M],北京:國(guó)防工業(yè)出版社,2005.</p><p>  [7] 李建忠,《單片機(jī)原理及應(yīng)用》[M],西安:西安電子科技大學(xué)出版社,2002.</p>&l

70、t;p>  [8] 何希才,新型集成電路及應(yīng)用實(shí)例[M],北京:科學(xué)出版社,2002.</p><p>  [9] 金偉正. 單線數(shù)字溫度傳感器的原理與應(yīng)用[J] . 儀表技術(shù)與傳感器,2000 (7) :42243.</p><p>  [10] 萬福君等,《微機(jī)原理系統(tǒng)設(shè)計(jì)與應(yīng)用》[M](第二版),中國(guó)科學(xué)技術(shù)大學(xué)出版社,2001.</p><p>  [

71、11] 黃智偉,《全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程》[M],北京:電子工業(yè)出版社,2004.</p><p>  [12] 萬福君等,《微機(jī)原理系統(tǒng)設(shè)計(jì)與應(yīng)用》[M](第二版),中國(guó)科學(xué)技術(shù)大學(xué)出版社,2001.</p><p>  [13] 徐華英,徐秋華,趙 莉,等. 用DS18B20 和單片機(jī)構(gòu)成的最小測(cè)溫系統(tǒng)[J].</p><p>  [14] BLACK

72、W C J , HODGES D A. Time interleaved con2verter arrays [J ] . IEEE J Sol Sta Circ , 1980 , 15 (6) :102221029.</p><p>  [15] SUMANEN L , WAL TARI M , HALONEN K A I. A102bit 2002MS/ s CMOS parallel pipeline A/

73、 D convert2er [J ] . IEEE J Sol Sta Circ , 2001 , 36 (7) : 104821055.</p><p>  [16] 劉亞利. HIRFL2CSR 工程中的智能溫度控制系統(tǒng)[J] . 微計(jì)算機(jī)信息, 2005 , (722) :77278.</p><p>  [17] 王廣志,吳穎. 數(shù)字式溫度傳感器與分布式溫度測(cè)量系統(tǒng)[J] . 傳感

74、技術(shù)學(xué)報(bào),2001 ,14 (1) :26231.</p><p>  [18] 吳志忠,王克家,吳利予,等. 一種基于單線數(shù)字溫度傳感器DSl8B20 的儲(chǔ)糧溫度檢測(cè)系統(tǒng)的設(shè)計(jì)[J] . 應(yīng)用科技,2001 ,28 (7) :15216.</p><p>  [19] 黨峰,王敬農(nóng),高國(guó)旺. 基于DS18B20 的數(shù)字式溫度計(jì)的實(shí)現(xiàn)[J] . 山西電子技術(shù),2007 (3) .</

75、p><p>  [20] 周月霞,孫傳友. DS18B20 硬件連接及軟件編程[J] . 傳感器世界,2001 (12) .</p><p>  [21] KHOINI P R , L IM L B , JOHNS D A. Time2inter2leaved oversampling A/ D converters : theory and prac2tice [J ] . IEEE Tra

76、ns Circ and Syst 2 II : Analog andDigital Signal Processing , 1997 , 44 (8) : 6342645.</p><p>  [22] MIYAZA KI D , FURU TA M , KAWA HITO S. A 75mW 10 bit 120 MSample/ s parallel pipeline ADC [C]Proc 29th Eur

77、opean Sol Sta Circ Conf . Estoril ,Portugal. 2003 : 7192722.</p><p>  [23] MEHR I , SINGER L. A 552mW , 102bit , 402Msam2ple/ s Nyquist2rate CMOS ADC [J ] . IEEE J Sol StaCirc , 2000 , 35 (3) : 3182325.</

78、p><p><b>  致謝</b></p><p>  時(shí)光匆匆如流水,轉(zhuǎn)眼便是大學(xué)畢業(yè)時(shí)節(jié),春夢(mèng)秋云,聚散真容易。離校日期已日趨臨近,畢業(yè)論文的完成也隨之進(jìn)入了尾聲。</p><p>  本設(shè)計(jì)的完成是在xx老師的細(xì)心指導(dǎo)下進(jìn)行的。在每次設(shè)計(jì)遇到問題時(shí)老師不辭辛苦的講解才使得我的設(shè)計(jì)順利的進(jìn)行。從設(shè)計(jì)的選題到資料的搜集直至最后設(shè)計(jì)的修改的整個(gè)過

79、程中,花費(fèi)了張老師很多的寶貴時(shí)間和精力,在此向老師表示衷心地感謝!老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,開拓進(jìn)取的精神和高度的責(zé)任心都將使學(xué)生受益終生!</p><p>  還要感謝同一設(shè)計(jì)小組的幾位同學(xué),是你們?cè)谖移綍r(shí)設(shè)計(jì)中和我一起探討問題,并指出我設(shè)計(jì)上的誤區(qū),使我能及時(shí)的發(fā)現(xiàn)問題把設(shè)計(jì)順利的進(jìn)行下去,沒有你們的幫助我不可能這樣順利地結(jié)稿,在此表示深深的謝意。 </p><p><b>  附

80、錄</b></p><p><b>  Ⅰ 程序清單</b></p><p>  DS18B20采用4位LED共陽顯示器顯示測(cè)溫值,顯示精度為0.1 ℃,測(cè)溫范圍為-55~~+125 ℃,用AT89C2051單片機(jī),12MHz晶振</p><p>  TIMEL EQU 0E0H</p><p>  TI

81、MEN EQU 0B1H</p><p>  TEMPHEAD EQU 36H</p><p>  BITST DATA 20H</p><p>  TIME1SOK BIT BITST.1</p><p>  TEMPONEOK BIT BITST.2</p><p>  TEMPL DATA

82、 26H</p><p>  TEMPH DATA 27H</p><p>  TEMPHC DATA 28H</p><p>  TEMPLC DATA 29H</p><p>  TEMPDIN DIT P3.7[18]</p><p>  ORG 0000H</p><p&g

83、t;  LJMP START</p><p><b>  ORG 00BH</b></p><p>  LJMP T0IT</p><p><b>  ORG 100H</b></p><p>  START: MOV SP , #60H</p><p>  CLSME

84、M: MOV R0 , #20H</p><p>  MOV R1 , #60H</p><p>  CLSMEM1: MOV @R0,#00H</p><p><b>  INC R0</b></p><p>  DJNZ R1 , CLSMEM1</p><p>  MOV TMO

85、D ,#00100001B</p><p>  MOV TH0, #TIMEL</p><p>  MOV TL0, #TIMEH</p><p>  SJMP INIT</p><p>  ERROR: NOP</p><p>  LJMP START</p><p><b&g

86、t;  NOP</b></p><p>  INIT: NOP </p><p><b>  SETB ET0</b></p><p><b>  SETB TR0</b></p><p><b>  SETB EA</b></p>

87、<p>  MOV PSW, #00H</p><p>  CLR TEMPONEOK</p><p>  LJMP MAIN</p><p>  T0IT: PUSH PSW</p><p>  MOV PSW,#10H</p><p>  MOV TH0,#TIMEH</

88、p><p>  MOV TL0,#TIMEL</p><p><b>  INC R7</b></p><p>  CJNZ R7, #32H,T0IT1</p><p>  MOV R7, #00H</p><p>  SETB TIMEISOK</p><p> 

89、 T0IT1: POP PSW</p><p><b>  RETI</b></p><p>  MAIN: LCALL DISP1</p><p>  JNB TINE1SOK, MAIN</p><p>  CLR TIME1SOK</p><p>  JNB

90、 TEMPONEOK ,MAIN2</p><p>  LCALL READTEMP1</p><p>  LCALL CONVTEMP</p><p>  LCALL DISPBCD</p><p>  LCALL DISP1</p><p>  MAIN: LCALL READTEMP</

91、p><p>  SETB TEMPONEOK</p><p>  LJMP MAIN</p><p>  INITDS1820: SETB TEMPDIN</p><p><b>  NOP</b></p><p><b>  NOP</b></p>&

92、lt;p>  CLR TEMPDIN</p><p>  MOV R6 , #0A0H</p><p>  DJNZ R6 ,$</p><p>  MOV R6 ,#0A0H</p><p>  DJNZ R6 ,$</p><p>  SETB TEMPIND</p><p&g

93、t;  MOV R6 ,#32H</p><p>  DJNZ R6 ,$</p><p>  MOV R6,#3CH</p><p>  LOOP1820: MOV C , TEMPDIN</p><p>  JC INITDS1820OUT</p><p>  DJNZ R6, LOOP1820&l

94、t;/p><p>  MOV R6 , #064H</p><p>  DJNZ R6 ,$</p><p>  SJMP TNITDS1820</p><p><b>  RET</b></p><p>  INITDS1820OUT: SETB TEMPDIN</p><

95、;p><b>  RET </b></p><p>  READDS1820: MOV R7 ,#08H</p><p>  SETB TEMPDIN</p><p><b>  NOP</b></p><p><b>  NOP[19]</b></p>

96、;<p>  READDS1820LOOP: CLR TEMPDIN</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  SETB TEMPIND</p&

97、gt;<p>  MOV R6 ,#07H</p><p>  DJNZ R6 ,$</p><p>  MOV C , TEMPDIN</p><p>  MOV R6 , #3CH</p><p>  DJNZ R6 , $</p><p><b>  RRC A</b>

98、;</p><p>  SETB TEMPDIN</p><p>  DJNZ R7 ,READDS1820LOOP</p><p>  MOV R6 , #3CH</p><p>  DJNZ R6 , $</p><p><b>  RET[20]</b></p>&

99、lt;p>  WRITEDS1820: MOV R7 ,#08H</p><p>  SETB TEMPDIN</p><p><b>  NOP</b></p><p><b>  NOP[21]</b></p><p>  WRITEDS1820LOP: CLR TEMPD

100、IN</p><p>  MOV R6 ,#07H</p><p>  DJNZ R6, $</p><p><b>  RRC A</b></p><p>  MOV TEMPDIN</p><p>  DJNZ R7 , WRITEDS1820LOP</p><p

101、><b>  RET[22]</b></p><p>  READTEMP: LCALL INITDS1820</p><p>  MOV A ,#0CCH</p><p>  LCALL WRITEDS1820</p><p>  MOV R6 ,# 34H</p><p>  

102、DJNZ R6 ,$</p><p>  MOV A , #44H </p><p>  LCALL WRITEDS1820</p><p>  MOV R6 ,# 34H</p><p>  DJNZ R6 ,$</p><p><b>  RET</b></p><p

103、>  READTEMP1: LCALL INITDS1820</p><p>  MOV A , #0CCH</p><p>  LCALL WRITEDS1820</p><p>  MOV R6 , #34H</p><p>  DJNZ R6 , $</p><p>  MOV A , #0B

104、EH</p><p>  LCALL WRITEDS1820</p><p>  MOV R6 , #34H</p><p>  DJNZ R6 , $</p><p>  MOV R5 , #09H</p><p>  MOV B , #00H</p><p>  READTEMP2

105、: LCALL READDS1820</p><p>  MOV @R0 , A </p><p><b>  INC R0</b></p><p>  READTEMP21: LCALL CRC8CAL</p><p>  DJNZ R5 , READTEMP2</p><p>  M

106、OV A , B</p><p>  JNZ READTEMPOUT</p><p>  MOV A , TEMPHEAD +0</p><p>  MOV TEMPL , A</p><p>  MOV A , TEMPHEAD +1</p><p>  READTEMPOUT: RET</p>

107、<p>  CONVEMP: MOV A , TEMPH </p><p>  ANL A , #80H</p><p>  JZ TEMPC1</p><p><b>  CLR C</b></p><p>  MOV A , TEMPL</p><p><b>

108、;  CLP A</b></p><p>  ADD A , #01H</p><p>  MOV TEMPL , A</p><p>  MOV A , TEMPH</p><p><b>  CLP A</b></p><p>  ADDC A , #00H</

109、p><p>  MOV TEMPH , A</p><p>  MOV TEMPHC , #0BH</p><p>  SJMP TEMC11</p><p>  TEMPC1: MOV TEMPHC , #0AH</p><p>  TEMPC11: MOV A , TEMPHC</p>

110、<p><b>  SWAP A</b></p><p>  MOV TEMPHC , A</p><p>  MOV A , TEMPL</p><p>  ANL A , #0FH</p><p>  MOV DPTR , #TEMPDOTTAB</p><p>  MO

111、VC A , @A+DPTR</p><p>  MOV TEMPLC , A</p><p>  MOV A , TEMPL</p><p>  ANL A , #0F0H</p><p><b>  SWAP A</b></p><p>  MOV TEMPL , A</p&

112、gt;<p>  MOV A , TEMPH</p><p>  ANL A , #0FH</p><p><b>  SWAP A</b></p><p>  ORL A , TEMPL</p><p>  LCALL HEX2BCD1</p><p>  MOV TE

113、MPL , A</p><p>  ANL A , #0F0H</p><p><b>  SWAP A</b></p><p>  ORL A , TEMPHC</p><p>  MOV TEMPHC , A</p><p>  MOV A , TEMPL</p>&l

114、t;p>  ANL A , #0FH</p><p><b>  SWAP A</b></p><p>  ORL A , TEMPLC </p><p>  MOV TEMPLC , A</p><p>  MOV A , R7</p><p>  JZ TEMPC12<

115、/p><p>  ANL A , #0FH</p><p><b>  SWAP A</b></p><p>  MOV A , TEMPHC</p><p>  ANL A , #0FH</p><p>  ORL A , R7</p><p>  TEMPC12:

116、 RET</p><p>  TEMPDOTTAB: DB 00H, 01H, 01H, 02H, 03H, 03H, 04H, 04H, 05H, 06H,</p><p>  DB 06H, 07H, 08H, 08H, 09H, 09H</p><p>  DISPBCD:MOV A , TEMPLC</p><p>  ANL

117、 A , #0FH</p><p>  MOV 70H , A</p><p>  MOV A , TEMPLC</p><p><b>  SWAP A</b></p><p>  ANL A , #0FH</p><p>  MOV 71H , A</p><p&

118、gt;  MOV A , TEMPHC</p><p>  ANL A , #0FH</p><p>  MOV 72H , A</p><p>  MOV A , TEMPHC</p><p><b>  SWAP A</b></p><p>  ANL A , #0FH</p

119、><p>  MOV 73H , A</p><p>  MOV A , TEMPHC</p><p>  ANL A , #OF0H</p><p>  CJNZ A , #010H , DISPBCD0</p><p>  SJMP DISPBCD2</p><p>  DISPBCD

120、0: MOV A , TEMPHC</p><p>  ANL A , #0FH</p><p>  JNZ DISPBCD2</p><p><b>  SWAP A</b></p><p>  ANL A , #0FH</p><p>  MOV 73H , #0AH</

121、p><p>  MOV 72H , A</p><p>  DISPBCD2: RET</p><p>  DISP1: MOV R1 , #70H</p><p>  MOV R5 , #0HEH</p><p>  PLAY: MOV P1 , #0FFH</p><p>  MO

122、V A , R5</p><p>  MOV P3 , A</p><p>  MOV A , @R1</p><p>  MOV DPTR , #TAB</p><p>  MOVC A , @A+DPTR</p><p>  MOV P1 , A</p><p>  MOV A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論