以溫度測量為主的多功能任務(wù)設(shè)計.doc_第1頁
以溫度測量為主的多功能任務(wù)設(shè)計.doc_第2頁
以溫度測量為主的多功能任務(wù)設(shè)計.doc_第3頁
以溫度測量為主的多功能任務(wù)設(shè)計.doc_第4頁
以溫度測量為主的多功能任務(wù)設(shè)計.doc_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

班級: 電氣3073 姓名: 朱龍斌 學(xué)號:3072110303 課題: 以智能溫度計為主的多功能系統(tǒng)設(shè)計單片機(jī)原理及應(yīng)用課程設(shè)計任務(wù)課題: 以溫度計為主的多功能任務(wù)設(shè)計 班級 電氣3073 學(xué)號 3072110303 學(xué)生姓名 朱龍斌 指導(dǎo)教師 段衛(wèi)平 淮陰工學(xué)院電子與電氣工程學(xué)院目 錄一、課程設(shè)計目的2二、設(shè)計要求32.1總體要求32.2 具體要求3三、設(shè)計內(nèi)容及方法33.1設(shè)計準(zhǔn)備43.2功能設(shè)計及系統(tǒng)總體設(shè)計4四、硬件電路總體設(shè)計44.1 硬件總框圖44.1.1 主控電路44.1.2 按鍵控制掃描模塊54.1.3 DS1820溫度顯示模塊64.1.4 數(shù)碼管顯示模塊74.1.5 LED顯示模塊84.1.6 揚(yáng)聲器模塊8五、 軟件流程框圖10六、 完整的程序清單及注釋126.1主程序清單:12七、調(diào)試情況及小結(jié)157.1 硬件調(diào)試157.2 軟件調(diào)試157.3 軟硬件調(diào)試16七、設(shè)計總結(jié)16八、參考文獻(xiàn)16一、課程設(shè)計目的單片機(jī)原理及應(yīng)用課程設(shè)計是一項(xiàng)重要的實(shí)踐性教育環(huán)節(jié),是學(xué)生在校期間必須接受的一項(xiàng)工程訓(xùn)練。在課程設(shè)計過程中,在教師指導(dǎo)下,運(yùn)用工程的方法,通過一個簡單課題的設(shè)計練習(xí),可使學(xué)生通過綜合的系統(tǒng)設(shè)計,熟悉應(yīng)用系統(tǒng)的設(shè)計過程、設(shè)計要求、完成的工作內(nèi)容和具體的設(shè)計方法,了解必須提交的各項(xiàng)工程文件,也達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知識解決實(shí)際問題的目的。通過課程設(shè)計,應(yīng)能加強(qiáng)學(xué)生如下能力的培養(yǎng):(1) 獨(dú)立工作能力和創(chuàng)造力;(2) 綜合運(yùn)用專業(yè)及基礎(chǔ)知識,解決實(shí)際工程技術(shù)問題的能力;(3) 查閱圖書資料、產(chǎn)品手冊和各種工具書的能力;(4) 工程繪圖的能力;(5) 編寫技術(shù)報告和編制技術(shù)資料的能力。二、設(shè)計要求2.1總體要求(1) 獨(dú)立完成設(shè)計任務(wù)(2) 繪制系統(tǒng)硬件總框圖(3) 繪制系統(tǒng)原理電路圖(4) 制定編寫設(shè)計方案,編制軟件框圖,完成詳細(xì)完整的程序清單和注釋;(5) 制定編寫調(diào)試方案,編寫用戶操作使用說明書(6) 寫出設(shè)計工作小結(jié)。對在完成以上文件過程所進(jìn)行的有關(guān)步驟如設(shè)計思想、指標(biāo)論證、方案確定、參數(shù)計算、元器件選擇、原理分析等作出說明,并對所完成的設(shè)計作出評價,對自己整個設(shè)計工作中經(jīng)驗(yàn)教訓(xùn),2.2 具體要求本次工程實(shí)踐主要以單片機(jī)為基礎(chǔ),進(jìn)行單片機(jī)軟件編程,目的是為了提高學(xué)生的軟件編程和系統(tǒng)設(shè)計能力,整個設(shè)計系統(tǒng)包括兩個部分,硬件及軟件部分,硬件部分已經(jīng)制作成功,學(xué)生只需要掌握其原理和焊接相應(yīng)的元器件,掌握元器件的辨別和元器件的作用以及應(yīng)用場所即可,另外對所焊接的電路還需要進(jìn)行仔細(xì)的檢查,判斷是否有焊接錯誤的地方或者短路的地方,對出現(xiàn)的異常情況要能夠根據(jù)現(xiàn)象判別原因,并具備解決問題的能力,從而切實(shí)提高學(xué)生的硬件電子電路的分析、判斷能力。 軟件編程是本次工程實(shí)踐的重要環(huán)節(jié)。在為期兩周的工程實(shí)踐中,將占據(jù)主要時間,學(xué)生要完成的軟件編程任務(wù)主要包括以下幾點(diǎn): 1)、熟悉Keil C51編程平臺及Proteus 仿真; 2)、編寫、調(diào)試蜂鳴器、繼電器動作、方波程序并進(jìn)行軟硬件聯(lián)調(diào); 3)、編寫、調(diào)試LED流水燈(循環(huán)顯示)程序并進(jìn)行軟硬件聯(lián)調(diào); 4)、編寫、調(diào)試鍵盤掃描子程序并進(jìn)行軟硬件聯(lián)調(diào);5)、編寫、調(diào)試數(shù)碼管動態(tài)掃描程序并進(jìn)行軟硬件聯(lián)調(diào) 。3 具體課題:本題屬于多功能任務(wù)設(shè)計,基于本實(shí)驗(yàn)室所提供的電路模板,具體題目如下:1、 以智能溫度計為主的多功能任務(wù)設(shè)計;2、 以智能速度里程表為主的多功能任務(wù)設(shè)計;3、 以多功能數(shù)字電子鐘為主的多功能任務(wù)設(shè)計;4、 以LCD點(diǎn)陣字符顯示屏為主的多功能任務(wù)設(shè)計;5、 以交通燈控制的多功能任務(wù)設(shè)計。課題名字的多功能任務(wù)的含義是:要求每個同學(xué)所設(shè)計的電路和程序必須實(shí)現(xiàn)4個功能,電路提供四個按鍵,要求同學(xué)們能編寫、調(diào)試對應(yīng)的鍵盤掃描子程序,從而實(shí)現(xiàn),當(dāng)按下A按鍵,實(shí)現(xiàn)蜂鳴器或繼電器動作,當(dāng)按下B按鍵,實(shí)現(xiàn)LED流水燈(循環(huán)顯示),當(dāng)按下C按鍵,實(shí)現(xiàn)數(shù)碼管動態(tài)掃描顯示(顯示內(nèi)容可以自己確定),前3個功能,對于每個課題都是相同,只有最后一個按鍵不同,其功能取決于所選課題名稱,即當(dāng)按下D按鍵,要求實(shí)現(xiàn)相應(yīng)課題的最主要的功能,例如,對于“以智能溫度計為主的多功能任務(wù)設(shè)計”的課題,當(dāng)按下該課題所對應(yīng)的D按鍵,就要實(shí)現(xiàn)顯示溫度的功能,其余類似。三、設(shè)計內(nèi)容及方法 單片機(jī)原理及其應(yīng)用課程設(shè)計通常選擇一般常見、常用的簡單應(yīng)用裝置或?qū)ο筮M(jìn)行微機(jī)控制。所涉及的系統(tǒng)可以實(shí)際制作,也可以實(shí)驗(yàn)室模擬,具體步驟:3.1設(shè)計準(zhǔn)備認(rèn)真研究設(shè)計任務(wù)書,明確設(shè)計要求、條件、內(nèi)容、和步驟;通過閱讀有關(guān)資料,了解設(shè)計對象;復(fù)習(xí)課程有關(guān)內(nèi)容,熟悉有關(guān)單元電路的設(shè)計方法和設(shè)計步驟;搜集、分析、消化相關(guān)資料、軟件等,掌握微型計算機(jī)應(yīng)用系統(tǒng)軟件的設(shè)計方法;準(zhǔn)備好設(shè)計需要的圖書、資料和工具;擬定設(shè)計計劃等。3.2功能設(shè)計及系統(tǒng)總體設(shè)計要求學(xué)生有創(chuàng)新精神和創(chuàng)新意識,分析所掌握的資料,了解設(shè)計對象的功能。在充分考慮功能設(shè)計后,進(jìn)行總體設(shè)計,以功能、結(jié)構(gòu)為標(biāo),制定總體方案,規(guī)劃硬、軟件功能分配等;初步確定關(guān)鍵元器件地選擇。四、硬件電路總體設(shè)計 4.1 硬件總框圖以單片機(jī)為主的主控 電 路按鍵控制掃描模塊DS1820溫度顯示模塊數(shù)碼管顯示模塊LED顯示模塊揚(yáng)聲器模塊控制原理:該設(shè)計以單片機(jī)為主控電路,分別控制5個工作模塊:按鍵控制模塊、實(shí)時時鐘模塊、數(shù)碼管顯示模塊、LED顯示模塊、揚(yáng)聲器模塊。按鍵控制模塊由單片機(jī)P1.4-P1.7口控制。溫度顯示由DS1302完成,由單片機(jī)INT0、INT1、T0口控制。數(shù)碼管顯示由LED顯示模塊由P0口和P1.0-P1.3控制。LED模塊由P2口控制。揚(yáng)聲器由T0口控制。4.1.1 主控電路本次課程設(shè)計中主要是設(shè)計一個以作息時間控制為主的多功能控制系統(tǒng)。該設(shè)計中我們主控電路部分采用了單片機(jī)AT89C52芯片來實(shí)現(xiàn)這些功能,AT89C52是一個低電壓,高性能CMOS的8位單片機(jī),片內(nèi)含8KB的可反復(fù)擦寫的Flash只讀程序存儲器和256B的隨機(jī)存取數(shù)據(jù)存儲器(RAM)。其引腳如下圖所示: VCC:供電電壓。GND:接地。P0口(P0.0-P0.7):P0口來控制數(shù)碼管的段選,以顯示相應(yīng)的數(shù)值。P1口 (P1.0-P1.7):P1口用來控制數(shù)碼管的位選,以達(dá)到動態(tài)顯示的效果。P2口 (P2.0-P2.7):P2口來控制LED的亮滅。 P3口 (P3.0-P3.7):P3.0為RXD(串行輸入口),P3.1為TXD(串行輸出口),P3.2為/INT0(外部中斷0),P3.3為/INT1(外部中斷1),P3.4為T0(記時器0外部輸入),P3.5為T1(記時器1外部輸入),P3.6為/WR(外部數(shù)據(jù)存儲器寫選通),P3.7為/RD(外部數(shù)據(jù)存儲器讀選通)。 XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義。 4.1.2 按鍵控制掃描模塊 按鍵用于控制數(shù)碼顯示、LED顯示、揚(yáng)聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計中使用單個按鍵實(shí)現(xiàn)單個功能,屬于較為簡單的控制方式. 按鍵輸入電路使用4個按鍵分別與單片機(jī)的平P1.4、P1.5、P1.6、P1.7分別連接,以完成按鍵控制。4.1.3 DS1820溫度顯示模塊 DS18B20“一線總線”數(shù)字化溫度傳感器同DS1820一樣,DS18B20支持“一線總線”接口,測量溫度范圍為-55+125攝氏度。在-10+85攝氏度范圍內(nèi),DS18B20的精度為正負(fù)0.5攝氏度,DS1822的精度較差,為正負(fù)2攝氏度?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,可大大提高系統(tǒng)的抗干擾性,因此它適合于惡劣環(huán)境的現(xiàn)場溫度測量,如環(huán)境控制、設(shè)備或過程控制等。DS18B20內(nèi)部結(jié)構(gòu)主要有四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列為:DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端。DALLAS18B201 2 3GND DQ VDD4.1.4 數(shù)碼管顯示模塊設(shè)計中采用四位共陽極數(shù)碼管,共陽極是指其公共端接正極,通過單片機(jī)AT89C52的P1口控制其位選,以達(dá)到動態(tài)顯示的效果,再通過P0口,控制其段選以顯示相應(yīng)的數(shù)值。在其位選控制部分,采用了一個9012型三極管,要求當(dāng)P1口輸出低電平時,位選成功。 數(shù)碼管顯示電路硬件電路中,數(shù)碼管顯示的小時和分.小時通過按鍵2控制,分通過按鍵3控制。數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5840根I/O端口來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O端口才32個呢:),實(shí)際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。4.1.5 LED顯示模塊 LED(Light Emitting Diode),發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。LED的心臟是一個半導(dǎo)體的晶片,晶片的一端附在一個支架上,一端是負(fù)極,另一端連接電源的正極,使整個晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由兩部分組成,一部分是P型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是N型半導(dǎo)體,在這邊主要是電子。但這兩種半導(dǎo)體連接起來的時候,它們之間就形成一個“P-N結(jié)”。當(dāng)電流通過導(dǎo)線作用于這個晶片的時候,電子就會被推向P區(qū),在P區(qū)里電子跟空穴復(fù)合,然后就會以光子的形式發(fā)出能量,這就是LED發(fā)光的原理。而光的波長也就是光的顏色,是由形成P-N結(jié)的材料決定的。 LED顯示電路本次設(shè)計中通過按鍵1來控制其流水顯示,打開電源后按下按鍵1,流水燈模塊有效。電路中LED為共陽極,故控制流水燈顯示的P2口應(yīng)為低電平時才有效。從原理圖中可以看出,如果要讓接在P2.0口的LED1亮起來,那么只要把P2.0口的電平變?yōu)榈碗娖骄涂梢粤耍幌喾?,如果要接在P2.0口的LED1熄滅,就要把P2.0口的電平變?yōu)楦唠娖?;同理,接在P2.1P2.7口的其他7個LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1LED8依次點(diǎn)亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。我們首先把要顯示流水花樣的數(shù)據(jù)建在一個以TAB為標(biāo)號的數(shù)據(jù)表中,然后通過查表指令“MOVCA,A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進(jìn)行顯示。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否則我們就看不到“流水”效果了。4.1.6 揚(yáng)聲器模塊要求揚(yáng)聲器能夠發(fā)出連續(xù),斷續(xù)的聲音及音樂,我們可以選擇一個蜂鳴器來實(shí)現(xiàn)這些功能。蜂鳴器電路圖:蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。下面我們以電磁式蜂鳴器為例來說明它的工作原理:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲,當(dāng)輸出高電平時,三極管截止,蜂鳴器的兩引腳間的直流電壓接近于0V,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)輸出低電平時,三極管導(dǎo)通,使蜂鳴器的兩個引腳間獲得將接近+5V的直流電壓,這樣蜂鳴器的電流形成回路,發(fā)出聲音在這個設(shè)計中是通過p3.4口控制其發(fā)聲的。由于p3.4與ds1302是連在一起的,故只要ds1302工作,就可以設(shè)定使揚(yáng)聲器發(fā)出聲音。4.2 硬件總電路圖五、 軟件流程框圖YYYYP1口置初值0F0H調(diào)用蜂鳴器發(fā)聲程序調(diào)用LED顯示子程序調(diào)用溫度程序KEYA按下?KEYB按下?KEYC按下?KEYD按下?調(diào)用數(shù)碼管顯示子程序開始N圖1 主程序流程圖 NY開始循環(huán)時間的初值設(shè)置P3.4端口輸出設(shè)置延時0.2sP3.4端口取反延時0.2s循環(huán)結(jié)束?返回主程序 圖 2 蜂鳴器程序流程圖圖3 流水燈程序流程圖圖4 時間顯示流程圖初始化調(diào)用顯示子程序1s到2初次上電?讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令圖5 DS18B20溫度計主程序流程圖 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示,讀出并處理DS18B20的測量溫度值,溫度測量每1S測量一次。六、 完整的程序清單及注釋6.1主程序清單:ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#60H MOV P1,#0F0HJNB P1.4,K1CHECKJNB P1.5,K2CHECKJNB P1.6,K3CHECKJNB P1.7,K4CHECKSJMP MAIN。蜂鳴器。K1CHECK: ;去抖動,按下KEYA,跳轉(zhuǎn)到KEYA子程序JB P1.4,KEYASJMP KEYAKEYA:MOV SP,#70H ;給堆棧指針賦初值MOV R2,#0FFFFH ;蜂鳴器響聲計數(shù)START0:SETB P3.4 ;P3.4口置高電平LCALL DELAY ;調(diào)用延時子程序CLR P3.4 ;P3.4口取反LCALL DELAYDJNZ R2,START0 ;判斷計數(shù)是否結(jié)束,否跳到START0處SJMP MAIN ;返回主程序DELAY: ;延時子程序 MOV R7,#02DELAY0:MOV R6,#12DELAY1:MOV R5,#75DJNZ R5,$DJNZ R6,DELAY1DJNZ R7,DELAY0RET。流水燈。K2CHECK: ;去抖動,按下KEYB,跳轉(zhuǎn)到KEYB子程序JB P1.5,KEYBSJMP KEYBKEYB:MOV SP,#80HMOV R2,#18H ;LED循環(huán)閃亮三次MOV A,#0FEH ;A中賦初始值LOOP:MOV P2,A ;流水燈閃亮LCALL DELAY3RL A ;A中初值左移DJNZ R2,LOOPMOV A,#0FFH ;三次結(jié)束后,熄滅所以LED燈MOV P2,ASJMP MAIN ;返回主程序DELAY3: ;延時子程序 MOV R7,#20DELAY4:MOV R6,#125DELAY5:MOV R5,#255DJNZ R5,$DJNZ R6,DELAY5DJNZ R7,DELAY4RET。數(shù)碼管顯示。;數(shù)碼顯示子程序K3CHECK: ;去抖動,按下KEYC,跳轉(zhuǎn)到KEYC子程序JB P1.6,KEYCSJMP KEYCKEYC: MOV DPTR,#DIG_CODE;顯示秒 MOV P1,#11110111b MOV A,MIN ANL A,#0FH MOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY MOV P1,#11111011b MOV A, MIN SWAP A ANL A,#07H MOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY;顯示分 MOV P1,#11111101b MOV A,H ANL A,#0FH MOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY MOV P1,#11111110b MOV A,H SWAP A ANL A,#03H MOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY RET 。溫度控制程序。K4CHECK: ;去抖動,按下KEYD,跳轉(zhuǎn)到KEYD子程序JB P1.7,KEYDSJMP KEYD 。常數(shù)定義。KEYD:TIMEL EQU 0E0HTIMEH EQU 0B1HTEMPHEAD EQU 36H。工作內(nèi)存定義。BITST DATA 20HTIMEISOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H。引腳定義。TEMPDIN BIT P3.7。中斷向量區(qū)。ORG 0000HLJMP STARTORG 000BHLJMP T0IT。系統(tǒng)初始化。 ORG 100HSTART: MOV SP,#60HCLSMEM: MOV R0,#20HMOV R1,#60HCLSMEM1: MOV R0,#00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,# 00100001B MOV TH0,#TIMEL MOV TL0,#TIMEH SJMP INITERROR: NOP LJMP START NOPINIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONEK LJMP MAIN。T0中斷服務(wù)程序。T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R7,#32H,T0IT1 MOV R7,#00H SETB TIMEISOK T0IT1: POP PSW RETI。主程序。MAIN: LCALL DISP1 JNB TIMEISOK,MAIN CLR TIMEISOK JNB TEMPONEOK,MAIN2 LCALL READTEMP1 LCALL CONVTEMP LCALL DISPBCD LCALL DISP1MAIN2: LCALL READTEMP SETB TEMPONEOK LJMP MAIN。子程序。RESET DS18B20。INITDS18B20: SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6,#0A0H DJNZ R6,$MOV R6,#0A0H DJNZ R6,$SETB TEMPDINMOV R6,#3CHLOOP1820: MOV C,TEMPDIN JC INITDS1820OUT DJNZ R6,LOOP1820 MOV R6,#64H DJNZ R6,$ SJMP INITDS1820RET INITDS1820OUT: SETB TEMPDIN RET。讀DS18B20程序,從中讀出一個字節(jié)的程序。READDS1820: MOV R7,#08H SETB TEMPDIN NOP NOPREADDS1820LOOP: CLR TEMPDIN NOP NOP NOP SETB TEMPDIN MOV R6,#07H DJNZ R6,$ MOV C,TEMPDIN MOV R6,#3CH DJNZ R6,$ RRC A SETB TEMPDIN DJNZ R7,READDS1820LOOP MOV R6,#3CH DJNZ R6,$ RET。寫DS18B20程序從中寫一個字節(jié)程序。WRITEDS182: MOV R7,#08H SETB TEMPDIN NOP NOPWRITEDS1820LOP: CLR TEMPDIN MOV R6,#07H DJNZ R6,$ RRC A MOV TEMPDIN,C MOV R6,#34H DJNZ R6,$ SETB TEMPDIN DJNZ R7,WRITEDS1820LOP RET。READ TEMP。READTEMP: LCALL INITDS1820 MOV A,#0CCH LCALL WRITEDS1820 MOV R6,#34H DJNZ R6,$ MOV A,#44H LCALL WRITEDS1820 MOV R6,#34H MOV R6,$ RETREADTEMP1: LCALL INITDS1820 MOV A,#0CCH LCALL WRITEDS120 MOV R6,#34H DJNZ R6,$ MOV A,#0BEH LCALL WRITEDS1820 MOV R6,#34H DJNZ R6,$ MOV R5,#09H MOV R0,#TEMPHEAD MOV B,#00HREADTEMP2: LCALL READDS1820 MOV R0,A INC R0READTEMP21: LCALL CRC8CAL DJNZ R5,READTEMP2MOV A,BJNZ READTEMPOUTMOV A,TEMPHEAD+0MOV TEMPL,AMOV A,TEMPHEAD+1MOV TEMPH,AREADTEMPOUT: RET。處理溫度BCD碼子程序。CONVTEMP: MOV A,TEMPH ANL A,#80H JZ TEMPC1CLR CMOV A,TEMPLCPL AADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AMOV TEMPHC,#0BH SJMP TEMPC11TEMPC1: MOV TEMPHC,#0AHTEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A,TEMPL ANL A,#0FHMOV DPTR,#TEMPDOTTABMOVC A,A + DFTRMOV TEMPLC,AMOV A,TEMPLANL A,#0FHSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPLLCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHCMOV TEMMPHC,AMOV A,TEMPLANL A,#0FHSWAP AORL A,TEMPLCMOV TEMPLC,AMOV A,R7JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHCANL A,#0FHORL A,R7MOV TEMPHC,ATEMPC12: RET。小數(shù)部分碼表。TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,4H,05H,06H DB 06H,07H,08H,08H,09H。顯示區(qū)BCD碼溫度值刷新子程序。DISPBCD: MOV A,TEMPLCANL A,#0FHMOV 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL A,#0FHMOV 72H,AMOV A,TEMPHCSWAP AANL A,#0FH

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論