定時(shí)數(shù)據(jù)自動(dòng)記錄系統(tǒng)設(shè)計(jì) 畢業(yè)論文_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  定時(shí)數(shù)據(jù)自動(dòng)記錄系統(tǒng)設(shè)計(jì)</p><p><b>  摘要</b></p><p>  定時(shí)數(shù)據(jù)自動(dòng)記錄系統(tǒng),是現(xiàn)在自動(dòng)記錄系統(tǒng)的重要組成部分。溫度定時(shí)采集記錄是現(xiàn)代記錄技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。因此,能夠確??焖?、準(zhǔn)確地測(cè)量溫度的技術(shù)及裝置普遍受到各國的重視。近年來,利用數(shù)字式溫度傳感器以實(shí)現(xiàn)溫

2、度信息的記錄已成為一種發(fā)展趨勢(shì)。隨著科學(xué)技術(shù)的發(fā)展,人們對(duì)溫度采集的記錄的準(zhǔn)確度和靈敏度要求越來越高,并且對(duì)溫度測(cè)量系統(tǒng)的智能化有一定的要求,譬如在溫度達(dá)到允許的最高限時(shí)實(shí)現(xiàn)報(bào)警。研制更靈敏、更可靠、更精確的溫度采集記錄系統(tǒng)越來越有必要。</p><p>  本課題即以上述任務(wù)為出發(fā)點(diǎn),擬設(shè)計(jì)一種智能溫度采集記錄系統(tǒng)。DS18B20為主要元器件,該器件能對(duì)溫度信號(hào)進(jìn)行A/D變換,直接形成數(shù)字式溫度數(shù)據(jù)輸出。DS1

3、8B20的測(cè)溫范圍為:-55℃~+125℃,其分辨率可達(dá)0.0625℃。通過單片機(jī)技術(shù)可將DS18B20的溫度數(shù)據(jù)記錄起來并讀取出來。這作品與目前市售的溫度測(cè)試記錄儀相比具有體積小、精度高、測(cè)量范圍寬、記錄數(shù)據(jù)量大、使用方便且成本低等優(yōu)點(diǎn)。</p><p>  關(guān)鍵詞:DS18B20、單片機(jī)、LED</p><p>  Timed automatic data recording syst

4、em design</p><p>  Scheduled for automatic data recording system is an important part of the automatic recording system.Temperature measurement of modern detection technology is an important part in ensuring

5、 product quality, energy conservation and production safety, and so plays a key role. Therefore to ensure fast, accurate temperature measurement devices and technologies widely national attention. In recent years, the us

6、e of digital temperature sensors to achieve the temperature information testing temperature </p><p>  That is subject to the above tasks as the starting point, to design a smart temperature detection system.

7、 The DS18 B20 is main dollar spare part, that spare part can carry on A/D transformation to the temperature signal, becoming a numerical type temperature data to outputted directly, the DS18 B20's measuring scope is:

8、-55 ℃ ~125 ℃ , its resolution can reach to 0.0625 ℃ .Pass a single slice machine technique can the DS18 B20 of the temperature data read, This work sells currently with city of t</p><p>  KEYWORDS: The DS18

9、 B20, single slice machine, the LED</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  2 系統(tǒng)的總體設(shè)計(jì)概述1</p><p>  2.1作品產(chǎn)生背景1</p><p>

10、;  2.2系統(tǒng)總體設(shè)計(jì)2</p><p><b>  3硬件電路設(shè)計(jì)2</b></p><p>  3.1 單片機(jī)AT89S52簡介2</p><p>  3.1.1主要特性2</p><p>  3.1.2管腳說明3</p><p>  3.1.3芯片可擦除性6</p>

11、<p><b>  3.2電源電路6</b></p><p>  3.3 復(fù)位電路6</p><p><b>  3.4晶振電路7</b></p><p>  3.5 LED顯示電路7</p><p>  3.6 AT89S52溫度采集電路8</p><p

12、>  3.6.1 DS18B20電路接法8</p><p>  3.6.2 DS18B20性能特點(diǎn)9</p><p>  3.6.3 DS18B20的使用注意事項(xiàng)10</p><p><b>  4 軟件設(shè)計(jì)10</b></p><p><b>  5 調(diào)試過程18</b></

13、p><p>  5.1硬件調(diào)試18</p><p>  5.2軟件調(diào)試19</p><p>  5.3調(diào)試總結(jié)20</p><p><b>  結(jié)束語21</b></p><p><b>  致 謝21</b></p><p><b>

14、;  參考文獻(xiàn)23</b></p><p><b>  附錄24</b></p><p>  附錄A畢業(yè)設(shè)計(jì)原理圖24</p><p>  附錄B 設(shè)計(jì)源程序25</p><p><b>  1 緒論</b></p><p>  溫度采集自動(dòng)記錄在生活領(lǐng)域

15、、醫(yī)療領(lǐng)域、科學(xué)研究、生產(chǎn)實(shí)踐中均有著廣泛應(yīng)用,如測(cè)量病人體溫、分析氣溫變化、控制某生產(chǎn)加工車間的溫度等。所以溫度的采集自動(dòng)記錄儀便成為現(xiàn)代生產(chǎn)、生活中不可缺少的設(shè)備之一。</p><p>  目前市場(chǎng)上已有的溫度采集自動(dòng)記錄儀為需經(jīng)常換紙的跟紙式記錄儀和采用熱敏電阻傳感器的普通溫度儀,如常州熱工儀表廠生產(chǎn)的XRZ-Cu50和 XRZ-Cu100采用的就是采用熱電阻傳感器,XRZ-Cu50的溫度測(cè)量范圍為:0℃~

16、150℃,XRZ~Cu100的測(cè)量范圍為十0℃~100℃,這種溫度記錄儀精確度為±1℃,價(jià)格為200元左右,體積約為200mm*200mm*180mm,只能顯示即時(shí)溫度,不可存儲(chǔ)溫度數(shù)據(jù),體積較大;與歐陸公司合資的常州宏基儀器儀表廠生產(chǎn)的紙記錄式溫度計(jì),該溫度記錄議采用在紙上繪制曲線的方法來記錄溫度數(shù)據(jù),雖能把溫度記錄下來,但需要人工定時(shí)更換記錄紙張,且價(jià)格較高,在3000——4000元之間。市場(chǎng)上也有部分無紙記錄儀,采用液晶

17、顯示屏作為數(shù)據(jù)輸出,但存在測(cè)試精度低、不便于存放大量溫度數(shù)據(jù)、成本高的缺點(diǎn)。</p><p>  隨著人們對(duì)產(chǎn)品質(zhì)量要求的不斷提高,生產(chǎn)加工設(shè)備機(jī)械化水平的不斷完善,傳統(tǒng)的溫度測(cè)試儀在現(xiàn)代化生產(chǎn)中已不能滿足要求了。針對(duì)以上情況我們?cè)O(shè)計(jì)開發(fā)了一種融數(shù)字溫度傳感器、單片機(jī)于一體的掌上型溫度采集、記錄儀,從而達(dá)到體積小、重量輕、測(cè)試精度高、成本低、便于隨身攜帶、隨時(shí)可進(jìn)行溫度數(shù)據(jù)分析的掌上型溫度采集記錄儀。</p

18、><p>  2 系統(tǒng)的總體設(shè)計(jì)概述</p><p><b>  2.1作品產(chǎn)生背景</b></p><p>  由于溫度采集自動(dòng)記錄在生活領(lǐng)域、醫(yī)療領(lǐng)域、科學(xué)研究、生產(chǎn)實(shí)踐中均有著廣泛應(yīng)用,如測(cè)量病人體溫、分析氣溫變化、控制某生產(chǎn)加工車間的溫度等。目前市場(chǎng)上已有的溫度采集自動(dòng)記錄儀為需經(jīng)常換紙的跟紙式記錄儀和采用熱敏電阻傳感器的普通溫度儀,價(jià)格高

19、、體積較大,而且精度低,也有部分無紙記錄儀,采用液晶顯示屏作為數(shù)據(jù)輸出,但存在測(cè)試精度低、不便于存放大量溫度數(shù)據(jù)、成本高的缺點(diǎn),我們?cè)O(shè)計(jì)開發(fā)了一種融數(shù)字溫度傳感器、單片機(jī)于一體的掌上型溫度采集自動(dòng)記錄儀,從而達(dá)到體積小、重量輕、測(cè)試精度高、存儲(chǔ)容量大、成本低、便于隨身攜帶、隨時(shí)可進(jìn)行溫度數(shù)據(jù)分析的掌上型溫度采集記錄儀,具有較好的推廣應(yīng)用價(jià)值。</p><p>  本作品是利用智能數(shù)字溫度傳感器DS18B20進(jìn)行溫

20、度采集,DS18B20是美國DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)產(chǎn)品。DS18B20采集到的溫度數(shù)據(jù)按采樣間隔存起來,在按鍵按下以后,通過LED顯示溫度數(shù)據(jù)。</p><p><b>  2.2系統(tǒng)總體設(shè)計(jì)</b></p><p>  該作品具有極高的可靠性和穩(wěn)定性,可工作于任何環(huán)境底下。電路原理圖分為兩部分:溫度數(shù)據(jù)采集部分,溫度顯示驅(qū)動(dòng)部分。

21、</p><p> ?。ㄒ唬囟葦?shù)據(jù)采集部分</p><p>  DS18B20是智能型的數(shù)字溫度傳感器,通信方式為串行通信方式。其數(shù)據(jù)線與單片機(jī)的P1.1相連接。</p><p>  (二)溫度顯示驅(qū)動(dòng)部分</p><p>  顯示驅(qū)動(dòng)方式按常規(guī)設(shè)計(jì)實(shí)施,選用高亮度發(fā)光LED器件顯示。</p><p>  圖2-1

22、 硬件原理圖</p><p><b>  3硬件電路設(shè)計(jì)</b></p><p>  3.1 單片機(jī)AT89S52簡介</p><p><b>  3.1.1主要特性</b></p><p>  在本設(shè)計(jì)中,是以AT89S52單片機(jī)為核心的。AT89S52單片機(jī)是由ATMEL公司推出的AT89系列的

23、單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除</p><p>  片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密</p><p>  度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89S52是一種高效微控制器,AT89S52是它的一種精簡版本。[1]

24、引腳排練如圖所示。</p><p>  它的性能與主要特點(diǎn)如下:</p><p>  (1) 與MCS-51微控制器產(chǎn)品系列兼容。</p><p>  (2) 片內(nèi)有8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器。</p><p>  (3) 存儲(chǔ)器可循環(huán)寫入/擦除1000次。</p><p>  圖3-1 AT89S52引腳排

25、列圖</p><p>  (4) 寬工作電壓范圍:VCC可為2.7V-6V。</p><p>  (5) 128×8位內(nèi)部RAM。 </p><p>  (6) 32條可編程I/O線。</p><p>  (7) 三個(gè)16位定時(shí)器/計(jì)數(shù)器。</p><p>  (8) 中斷結(jié)構(gòu)具有6個(gè)中斷源</p>

26、;<p>  (9) 可編程全雙工UART串行通道。</p><p>  (10) 空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。</p><p><b>  3.1.2管腳說明</b></p><p>  主要引腳的具體描述如下;</p><p>  Vcc: 電源。提供掉線、空閑、正常+5V工作電壓。<

27、;/p><p>  Vss(GND): 接地。</p><p>  P0口: P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)

28、 時(shí),需要外部上拉電阻。</p><p>  P1口: P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(

29、P1.1/T2EX)。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。具有第二功能。</p><p>  P2口: P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用16位地址讀取外部

30、數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 </p><p>  P3口: P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)

31、P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。P3口的第二功能如表3-1所示。</p><p><b>  表3-1</b></p><p>  RS

32、T: 復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。</p><p>  ALE/PROG: 當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸

33、入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p>  PSEN: 程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有

34、效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。</p><p>  EA/VPP: 外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,

35、當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p>  XTAL1: 振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>  XTAL2: 振蕩器反相放大器的輸出端。</p><p>  3.1.3芯片可擦除性</p><p>  AT89S52單片機(jī)還具有芯片擦除性,整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控

36、制信號(hào)組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。[2]</p><p>  此外,AT89S52設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能

37、,直到下一個(gè)硬件復(fù)位為止。[3]</p><p><b>  3.2電源電路</b></p><p>  電源由外接USB接口提供+5V的穩(wěn)定電壓,使整個(gè)系統(tǒng)穩(wěn)定工作,性能也較好。</p><p><b>  3.3 復(fù)位電路</b></p><p>  單片機(jī)復(fù)位時(shí)RESET需要保持96個(gè)晶振周期

38、的高電平(即需8個(gè)機(jī)器周期)。復(fù)位以后P0─P3口輸出高電平,堆棧指針SP指向07H,其他特殊功能寄存器和程序計(jì)數(shù)器PC清零。只要RESET保持高電平,AT89S52就會(huì)循環(huán)復(fù)位。RESET當(dāng)由高電平變?yōu)榈碗娖胶?,單片機(jī)從程序存儲(chǔ)器0地址開始執(zhí)行程序。但單片機(jī)復(fù)位不影響內(nèi)部RAM的狀態(tài),包括工作寄存器R0─R7。[4]</p><p>  常見的復(fù)位電路有:上電復(fù)位電路和上電按鈕復(fù)位電路,在本設(shè)計(jì)中均采用上電復(fù)位

39、電路,如圖3-2所示。</p><p><b>  圖3-2復(fù)位電路圖</b></p><p><b>  3.4晶振電路</b></p><p>  所謂的晶振電路即指單片機(jī)的時(shí)鐘電路。該電路通常有內(nèi)部時(shí)鐘電路和外部時(shí)鐘電路。一般選用前者。單片機(jī)芯片內(nèi)部有一個(gè)反相放大器構(gòu)成的振蕩器。反相放大器的輸入端為XTAL1,輸出端

40、為XTAL2,把XTAL1和XTAL2與外部石英晶體及兩個(gè)電容連接起來可構(gòu)成一個(gè)石英晶體振蕩器如圖3-3所示。時(shí)鐘發(fā)生器是一個(gè)2分頻電路。它把晶體振蕩器的頻率2分頻后供給片內(nèi)其他電路。一般電容C1和C2起到穩(wěn)定振蕩頻率、快速起振的作用。[5]</p><p><b>  圖3-3晶振電路圖</b></p><p>  3.5 LED顯示電路</p>&l

41、t;p>  本次設(shè)計(jì)中采用了LED顯示器,即數(shù)碼管。數(shù)碼管的每一個(gè)數(shù)碼段是一只發(fā)光二極管。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或者一個(gè)筆畫發(fā)光,控制發(fā)光二極管發(fā)光組合,可以顯示出所需字符。我采用了共陰極結(jié)構(gòu)。在定義其顯示字形的碼段時(shí),通過I/O口送出七段碼 </p><p><b>  表3-2 段碼表</b></p><p>  LED顯示模塊原理圖</p

42、><p>  圖3-4 LED顯示原理圖</p><p>  3.6 AT89S52溫度采集電路</p><p>  3.6.1 DS18B20電路接法</p><p>  根據(jù)定義,單線總線只有一根線,這意味著總線上的每一個(gè)器件只能分時(shí)驅(qū)動(dòng)單線總線,并要求每個(gè)器件必須具有漏極開路輸出或三態(tài)輸出的特性。DS18B20的單線接口 I/O端就屬于漏極

43、開路輸出。TX、RX分別表示發(fā)送與接受。在單線總線上必須接上拉電阻,其電阻阻值為 5kΩ(標(biāo)稱值可取5.1kΩ或4.7KΩ)。當(dāng)單線總線上掛有多個(gè)從屬器件時(shí),亦稱之為多點(diǎn)總線。[7]</p><p>  單線總線在空閑狀態(tài)下呈高電平。操作單線總線時(shí),必須從空閑狀態(tài)開始。單線總線加低電平的時(shí)間超過480 us時(shí),總線上所有的器件均復(fù)位。[6]</p><p>  在主CPU發(fā)出復(fù)位脈沖之后,

44、從屬器件就發(fā)出應(yīng)答脈沖(PRESENCE PULSE),來通知主CPU它已做好了接受數(shù)據(jù)和命令的準(zhǔn)備工作。</p><p>  圖3-5單線總線接法電路圖</p><p>  3.6.2 DS18B20性能特點(diǎn)</p><p>  DS18B20在繼承DS1820全部優(yōu)點(diǎn)的基礎(chǔ)上,主要做了如下改進(jìn):</p><p> ?。?)供電電壓范圍擴(kuò)大

45、為3.0~ 5.5V。當(dāng)UDD=3.0~5.5V時(shí),在-10~+85℃范圍內(nèi),可確保測(cè)量誤差不超過±0.5℃,在-55~+125℃范圍內(nèi),測(cè)量誤差也不超過半。在DS1820中當(dāng)電源電壓跌落過多時(shí),測(cè)量準(zhǔn)確度要下降。</p><p> ?。?)溫度分辨力可編程。DS1820的數(shù)字溫度輸出只用9位二進(jìn)制表示,分辨力固定為0.5℃。欲提高分辨力,只能靠軟件計(jì)算來實(shí)現(xiàn)。而DS18B20的數(shù)字溫度輸出可進(jìn)行9~1

46、2位的編程。在便箋式RAM的第五個(gè)字節(jié)是CONFIG寄存器,其格式如下:MS B代表最高有效位,LSB代表最低有效位。格式中的第0~4位在寫操作時(shí)不予考慮,讀出時(shí)總是“1”;第7位在寫操作時(shí)不考慮,讀出時(shí)為“0”。R0、R1是在可編程溫度分辨力位。通過對(duì)這兩位進(jìn)行不同的編程,可設(shè)定不同的溫度分辨力及最大轉(zhuǎn)換時(shí)間,設(shè)定的分辨力愈高,所需要的溫度-數(shù)據(jù)轉(zhuǎn)換時(shí)間就愈長。因此,在實(shí)際應(yīng)用中需要在分辨力與轉(zhuǎn)換時(shí)間二者之間權(quán)衡考慮。在芯片出廠是R1

47、和R0 均被置為“1”,既工作在12位模式下。DS 18B20分另工作在9位、10位、11位和12位模式下,所對(duì)應(yīng)的分辨力依此為0.5℃、0.25℃、0.125℃、0.0625℃。當(dāng) DS18B20接受到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式,存儲(chǔ)在便箋RAM的第0,第1字節(jié)。在執(zhí)行讀便箋RAM命令后,可將這兩個(gè)字節(jié)的溫度值通過單線總線傳送給主</p><p> ?。?

48、)DS1820進(jìn)行9位溫度轉(zhuǎn)換所需時(shí)間的典型值為200ms,而DS18B20進(jìn)行9位的溫度轉(zhuǎn)換僅需93.75ms。由此可見,DS18B20的轉(zhuǎn)換速率也比DS1820有很大的提高。</p><p> ?。?)內(nèi)部存儲(chǔ)器映射關(guān)系發(fā)生了變化。其中,第6字節(jié)的計(jì)數(shù)器余數(shù)值和第7字節(jié)中每度計(jì)數(shù)值,僅在DS1820進(jìn)行高分辨力測(cè)溫時(shí)才使用。DS18B20的內(nèi)部存儲(chǔ)器的映射關(guān)系如圖 4-5-2所示,用 DS18B20測(cè)量溫度時(shí)

49、,因?yàn)橥ㄟ^編程的方法即可將DS18B20設(shè)定在高分辨力模式下,所以不再需要這兩個(gè)值。但根據(jù)實(shí)際需要,在便箋式RAM和EERAM中加入 CONFIG字節(jié)。</p><p>  (5)具有電源反接保護(hù)電路。當(dāng)電源電壓的極性接反時(shí),能保護(hù)DS18B20不會(huì)因發(fā)熱而燒毀,但此時(shí)芯片無法正常工作。</p><p> ?。?)DS18B20的引腳功能和內(nèi)部框圖與DS1820完全相同,但其體積比D

50、S1820減小了一半。開始啟動(dòng)轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式,存儲(chǔ)在便箋RAM的第0,第1字節(jié)。在執(zhí)行讀便箋RAM命令后,可將這兩個(gè)字節(jié)的溫度值通過單線總線傳送給主CPU,高位字節(jié)的符號(hào)代表溫度值為正還是為負(fù)。顯然,DS18B20與DS1820的溫度字節(jié)定義不一致,當(dāng)DS18B20的工作模式依此選擇11位、10位和9位時(shí),末尾為零的低位數(shù)就分別對(duì)應(yīng)于一位、二位和三位。舉例說明,當(dāng)工作模式選擇10位時(shí),最低兩位

51、(即2-4位和2-3位)均為0,總有效位就變成10位。其中,數(shù)字位占9位,符號(hào)位也占一位。</p><p>  3.6.3 DS18B20的使用注意事項(xiàng)</p><p>  使用 DS18B20時(shí)應(yīng)注意以下事項(xiàng):</p><p> ?。?)由于DS18B20的測(cè)溫分辨力提高到12位,因此它對(duì)時(shí)序及電特性參數(shù)要求較高,需嚴(yán)格按照DS18B20的時(shí)序要求進(jìn)行操作。<

52、;/p><p> ?。?)DS18B20作三線制應(yīng)用時(shí),應(yīng)將UDD、I/O、GND端焊接牢固;作兩線制應(yīng)用時(shí),應(yīng)將UDD與GND連在一起焊牢。若UDD端漏焊或者虛焊,傳感器就只能輸出+85.0 ℃的溫度數(shù)據(jù)。</p><p> ?。?)測(cè)溫電纜線可采用帶屏蔽層的4芯雙絞線,其中兩根線分別接信號(hào)線與地線,另兩根線依此接UDD和地線,屏蔽層在源端單點(diǎn)接地。</p><p>

53、<b>  4 軟件設(shè)計(jì)</b></p><p>  軟件設(shè)計(jì)部分按功能主要分三大部分,具體如下所述:</p><p><b>  (一)主監(jiān)控程序</b></p><p>  單片機(jī)的主監(jiān)控程序?yàn)椋寒?dāng)監(jiān)測(cè)到相應(yīng)信號(hào)時(shí)作相應(yīng)溫度的存儲(chǔ)、轉(zhuǎn)換,并負(fù)責(zé)溫度的顯示。</p><p><b>  

54、主程序流程圖</b></p><p><b>  定時(shí)器流程圖</b></p><p>  主程序及DS18B20的初始化程序如下:</p><p>  MAIN:MOV SP,#60H</p><p><b>  CLR A</b></p><p>  MOV

55、R1,#20H</p><p>  MOV R0,#10H</p><p>  CLEAR:MOV @R1,A</p><p><b>  INC R1</b></p><p>  DJNZ R0,CLEAR</p><p>  MOV FLAG,#8</p><p>  

56、START:LCALL RESET</p><p>  JNB FLAG1,START</p><p>  RESET: SETB DATA_LINE</p><p><b>  NOP</b></p><p>  CLR data_line</p><p>  MOV R0,#6BH

57、 ;主機(jī)發(fā)出延時(shí)復(fù)位低脈沖</p><p>  MOV R1,#04H</p><p>  TSR1: DJNZ R0,$</p><p>  MOV R0,#6BH</p><p>  DJNZ R1,TSR1</p><p>  SETB data_line ;然后拉高數(shù)據(jù)線</p&g

58、t;<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R0,#32H</p><p>  TSR2: JNB data_line,TSR3 ;等待DS18

59、B20回應(yīng)</p><p>  DJNZ R0,TSR2</p><p>  JMP TSR4 ; 延時(shí)</p><p>  TSR3: SETB flag1 ; 置標(biāo)志位,表示DS1820存在</p><p><b>  JMP TSR5</b></p>&

60、lt;p>  TSR4: CLR flag1 ; 清標(biāo)志位,表示DS1820不存在</p><p><b>  JMP TSR7</b></p><p>  TSR5: MOV R0,#06BH</p><p>  TSR6: DJNZ R0,$ ; 時(shí)序要求延時(shí)一段時(shí)間</p

61、><p>  TSR7: SETB DATA_LINE</p><p><b>  RET</b></p><p> ?。ǘ囟刃畔⒌牟杉?lt;/p><p>  通過DS18B20單線總線的所有執(zhí)行處理都從一個(gè)初始化序列開始。初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和隨后由從機(jī)發(fā)出的存在脈沖:</p>

62、<p>  1、復(fù)位:首先我們必須對(duì)DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給DS18B20單總線至少480uS的低電平信號(hào)。當(dāng)18B20接到此復(fù)位信號(hào)后則會(huì)在15~60uS后回發(fā)一個(gè)芯片的存在脈沖。 </p><p>  2、存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個(gè)60~240uS的低電平信號(hào)。至此,通信雙方已經(jīng)達(dá)成了

63、基本的協(xié)議,接下來將會(huì)是控制器與18B20間的數(shù)據(jù)通信。</p><p>  3、控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個(gè)工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。[8]各自功能如下:</p><p>  Read ROM(讀ROM)[33H] (方括號(hào)中的為16進(jìn)制的命令字)這個(gè)命令允許

64、總線控制器讀到DS18B20的64位ROM。只有當(dāng)總線上只存在一個(gè)DS18B20的時(shí)候才可以使用此指令。</p><p>  Match ROM(指定匹配芯片)[55H] 這個(gè)指令后面緊跟著由控制器發(fā)出了64位序列號(hào),當(dāng)總線 上有多只DS18B20時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才能做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適合單芯片和多芯片掛接。 </p><p>  Skip R

65、OM(跳躍ROM指令)[CCH] 這條指令使芯片不對(duì)ROM編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。 </p><p>  Search ROM(搜索芯片)[F0H] 在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的64位ROM。 </p><p>  Alarm Search(報(bào)警芯片搜

66、索)[ECH] 在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)附合溫度高于TH或小于TL報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測(cè)得溫度值達(dá)不到報(bào)警條件為止。</p><p>  4、控制器發(fā)送存儲(chǔ)器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲(chǔ)器操作指令了。操作指令同樣為8位,共6條,存儲(chǔ)器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM

67、、溫度轉(zhuǎn)換、將EEPROM中的報(bào)警值復(fù)制到RAM、工作方式切換。</p><p>  Write Scratchpad (向RAM中寫數(shù)據(jù))[4EH]:這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到地址2(報(bào)警RAM之TH)和地址3(報(bào)警RAM之TL)。寫入過程中可以用復(fù)位信號(hào)中止寫入。 </p><p>  Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH]

68、:此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個(gè)RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號(hào)中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。 </p><p>  Copy Scratchpad (將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H]:此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲(chǔ)存處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“

69、0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持10MS,來維持芯片工作。</p><p>  Convert T(溫度轉(zhuǎn)換)[44H]:收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第1、2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超

70、用強(qiáng)上拉并至少保持500MS,來維持芯片工作。 </p><p>  Recall EEPROM(將EEPROM中的報(bào)警值復(fù)制到RAM)[B8H]:此指令將EEPROM中的報(bào)警值復(fù)制到RAM中的第3、4個(gè)字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時(shí)將被自動(dòng)執(zhí)行。這樣RAM中的兩個(gè)報(bào)警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡

71、像。 </p><p>  Read Power Supply(工作方式切換)[B4H]:此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 </p><p>  5、執(zhí)行或數(shù)據(jù)讀寫:一個(gè)存儲(chǔ)器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個(gè)操作要視存儲(chǔ)器操作指令而定。</p><p>  DS18B20需要嚴(yán)格的協(xié)議以

72、確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號(hào)類型:復(fù)位脈沖、存在脈沖、寫0、寫1 、讀0和讀1。所有這些信號(hào),除存在脈沖外,都是由總線控制器發(fā)出的。和DS18B20間的任何通訊都需要以初始化序列開始。一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖表明DS18B20已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)。</p><p>  DS18B20的復(fù)位時(shí)序</p><p>  圖4-2 DS18B20的復(fù)位時(shí)序圖</p>

73、<p>  DS18B20的讀時(shí)序</p><p>  對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15us之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。</p><p>  圖4-3 DS18B20的讀時(shí)序圖 </p>

74、<p>  DS18B20的寫時(shí)序:</p><p>  對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p>

75、  圖4-4 DS18B20的寫時(shí)序圖</p><p>  DS18B20初始化程序上一部分已提到,其采集程序詳見附錄</p><p> ?。ㄈ囟葦?shù)據(jù)的LED顯示</p><p>  在檢查到按鍵按下后,驅(qū)動(dòng)LED將存儲(chǔ)的溫度數(shù)據(jù)依次顯示</p><p><b>  數(shù)碼管顯示子程序</b></p>

76、<p><b>  DISPLAY:</b></p><p>  MOV A, 29H</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOV B_BIT, A ;</p>&

77、lt;p>  MOV A_BIT, B ;</p><p>  MOV DPTR,#TABLE ;</p><p>  MOV R5, #4</p><p><b>  DP1:</b></p><p>  MOV R1, #250 ;</p><p><b>  LOOP1:&

78、lt;/b></p><p>  MOV A, A_BIT ;</p><p>  MOVC A, @A+DPTR ;</p><p><b>  MOV P0, A</b></p><p>  CLR P2.0 ;</p><p>  ACALL DELAY</p>

79、<p><b>  SETB P2.0</b></p><p>  MOV A, B_BIT</p><p>  MOVC A, @A+DPTR</p><p><b>  MOV P0, A</b></p><p><b>  CLR P2.1</b></p&

80、gt;<p>  ACALL DELAY ;</p><p><b>  SETB P2.1</b></p><p>  DJNZ R1, LOOP1 </p><p>  DJNZ R5, DP1</p><p><b>  RET</b></p><p>&

81、lt;b>  5 調(diào)試過程</b></p><p><b>  5.1硬件調(diào)試</b></p><p>  硬件是整個(gè)作品的基礎(chǔ),所有的工作必須依賴硬件電路的正常運(yùn)行,在整個(gè)設(shè)計(jì)過程中,硬件的設(shè)計(jì)調(diào)試是一種重要的環(huán)節(jié)。對(duì)于硬件電路的調(diào)試我們主要由下面幾個(gè)過程:</p><p><b>  1、晶振及復(fù)位電路</

82、b></p><p>  晶振是單片機(jī)工作的必要部分,要使整個(gè)器件正常工作,晶振電路必須正確。,將晶振頻率設(shè)計(jì)為11.0592MHZ,另處還有30PF的電容兩只。復(fù)位電路是由一只8.2K的電阻和 10μF電容組成的簡單型復(fù)位電路。</p><p><b>  2、數(shù)碼顯示電路</b></p><p>  該作品能夠隨時(shí)顯示溫度數(shù)據(jù),所在必

83、須要有能正常工作的顯示電路。顯示電路是由LED數(shù)碼管、驅(qū)動(dòng)電路、拉高電阻組成。</p><p>  顯示部分為4位動(dòng)態(tài)顯示,數(shù)碼管為共陰極4位數(shù)碼管,共有12個(gè)管腳,其中8位用作字節(jié)碼數(shù)據(jù)位,另外4位用作位選信號(hào),也就是4位數(shù)碼管的4個(gè)共陰極。由于數(shù)據(jù)管的工作電流較大,單片機(jī)不能直接進(jìn)行驅(qū)動(dòng),所以使用到7407進(jìn)行同向驅(qū)動(dòng),7407是一片6路同向驅(qū)動(dòng)集成電路。我們只用到其中的4路。另外,要數(shù)碼管能正常工作,還需要

84、在陽極接入上拉電阻。整個(gè)數(shù)碼顯示是整個(gè)設(shè)計(jì)工作的開始,也是必備的工作。</p><p>  在數(shù)碼碼管硬件完成的情況下,利用 LAC51軟件下載了一段簡單的顯示子程序。發(fā)現(xiàn)整個(gè)顯示部分工作均正常,沒有錯(cuò)誤;如果無法顯示,則需查找端口,驅(qū)動(dòng)部分。</p><p>  3、DS18B20的硬件接線</p><p>  DS18B20是精密的、內(nèi)部帶有處理件的小型溫度傳感

85、器。</p><p><b>  5.2軟件調(diào)試</b></p><p><b>  1、主程序調(diào)試</b></p><p>  當(dāng)接通電源開始工作后,單片機(jī)中的程序開始運(yùn)行,將對(duì)DS18B20進(jìn)行初始化,以便單片機(jī)芯片和DS18B20達(dá)成通信協(xié)議。完成初始化后,采集溫度數(shù)據(jù),并將這些數(shù)據(jù)暫時(shí)保存在單片機(jī)中,按照要求應(yīng)采集

86、8個(gè)數(shù)據(jù)才能求一次平均值,在很短的時(shí)間內(nèi)將按鍵按下,如果LED上顯示溫度數(shù)據(jù),則說明程序編寫有錯(cuò)誤,需查找出來并修改,然后再次調(diào)試;無數(shù)據(jù)顯示時(shí),等待較長時(shí)間,再次按下按鍵,如果數(shù)據(jù)顯示,觀察顯示數(shù)據(jù)的數(shù)據(jù)格式是否正確,如果不正確,則可能是溫度轉(zhuǎn)換部分的程序出錯(cuò),檢查此部分程序并修改,此也可能是因?yàn)榍笃骄挡糠衷O(shè)置不正確,總之一步步檢查,直到檢查出錯(cuò)誤;如若較長時(shí)間按下按鍵仍無數(shù)據(jù)顯示,可能是采集部分出錯(cuò),也可能是求得的溫度平均值沒有保

87、存或保存錯(cuò)誤,綜合原因耐心細(xì)致的調(diào)試,直到在規(guī)定的時(shí)間外按下按鍵溫度數(shù)據(jù)依次顯示。整個(gè)過程操作完成后,斷開電源,然后再次接通電源,整個(gè)部件依然能穩(wěn)定的工作,則設(shè)計(jì)才成功。 </p><p>  2、數(shù)碼顯示程序調(diào)試</p><p>  為了能讀出存儲(chǔ)的溫度數(shù)據(jù),電路中采用了數(shù)碼管來顯示溫度,在單片機(jī)中顯示程序就是一個(gè)重要組成部分。由

88、于采用動(dòng)態(tài)方式顯示,整體的硬件結(jié)構(gòu)變得簡單,但顯示程序變得復(fù)雜。在調(diào)試的過程中,主要考慮共陰極顯示時(shí)要注意的一些特點(diǎn)。在相應(yīng)的內(nèi)存單元中放1、2、3字形碼,運(yùn)行顯示程序后,數(shù)碼管能正常顯示“12.3”則說明顯示程序一切正常。如果無法顯示,則需查找溫度顯示部分的子程序及此部分的程序是否與主程序連接恰當(dāng)。</p><p>  3、讀 DS18B20程序調(diào)試</p><p>  讀DS18B20

89、程序是一個(gè)關(guān)鍵,必須按照DS18B20的時(shí)序要求,嚴(yán)格對(duì)應(yīng)起來。在該總部分程序調(diào)試時(shí),是將讀出的溫度補(bǔ)碼數(shù)據(jù)讀入到相應(yīng)內(nèi)存單元中。由于溫度是一個(gè)變化量,在不同時(shí)刻有不同的讀出值,以確定讀出的正確性,我們采用與普通溫度計(jì)對(duì)比的方法進(jìn)行調(diào)試。發(fā)現(xiàn)讀出的數(shù)據(jù)值與普通溫度計(jì)值相近,以確定讀DS18B20溫度數(shù)據(jù)的正確性。如果讀出的數(shù)據(jù)值不正確,則檢查DS18B20的初始化程序的真確性及其他相關(guān)方面。</p><p>&l

90、t;b>  5.3調(diào)試總結(jié)</b></p><p>  在調(diào)試中發(fā)現(xiàn)軟件中存在的問題,及時(shí)解決問題,確保系統(tǒng)能正常工作并達(dá)到設(shè)計(jì)要求。通過反復(fù)的調(diào)試與實(shí)驗(yàn),可以證明該系統(tǒng)能夠較好地完成設(shè)計(jì)所需的基本要求。即能夠方便準(zhǔn)確的對(duì)被測(cè)對(duì)象進(jìn)行溫度測(cè)量。同時(shí)在完成設(shè)計(jì)要求的前提下,充分考慮到了外觀,成本等問題,在性能和價(jià)格之間作了比較好的平衡。雖然整體性能良好,但尚存在些許不足,系統(tǒng)穩(wěn)定性不夠,需要增強(qiáng)自

91、己的焊接水平以便以后避免出現(xiàn)類似問題。</p><p><b>  結(jié)束語</b></p><p>  這次畢業(yè)設(shè)計(jì),我通過基于單片機(jī)AT89S52的設(shè)計(jì)和應(yīng)用,對(duì)單片機(jī)工作原理,功能有了深刻的了解,并對(duì)單片機(jī)匯編程序的應(yīng)用有了新的、更進(jìn)一步的認(rèn)識(shí)。</p><p>  從時(shí)鐘和倒計(jì)時(shí)程序的編寫到元器件和芯片的選擇購買,以及電路實(shí)物的焊接檢測(cè),

92、在指導(dǎo)老師的幫助下所有的工作都是我獨(dú)立完成的,通過這次設(shè)計(jì),我的單片機(jī)基礎(chǔ)知識(shí)有了很大的提高。</p><p>  單片機(jī)系統(tǒng)設(shè)計(jì)結(jié)束之后,首先應(yīng)該仔細(xì)的檢查一下電路板:</p><p>  第一,首先要檢查元器件的型號(hào)是否與設(shè)計(jì)要求相符,然后參照電路原理圖,看電路連接是否正確,最后檢查元器件是否連接到正確的單片機(jī)引腳;</p><p>  第二,檢查焊點(diǎn),要仔細(xì)檢

93、查是否存在漏焊和錯(cuò)焊現(xiàn)象;對(duì)于距離很近的相鄰焊點(diǎn),要檢查是否出現(xiàn)短接,這些都需要使用萬用表進(jìn)行測(cè)量。在調(diào)試過程可能要重復(fù)多次。另外,在燒寫程序的時(shí)候,一定要注意程序中的端口地址一定要和設(shè)計(jì)的系統(tǒng)中的端口一致,否則會(huì)導(dǎo)致系統(tǒng)不能正常工作。</p><p>  本次設(shè)計(jì)中的難點(diǎn)和不足之處:</p><p>  本設(shè)計(jì)的難點(diǎn)主要有以下兩點(diǎn):</p><p>  一:如何正

94、確使顯示數(shù)碼管在時(shí)鐘和倒計(jì)時(shí)之間正確的輪流顯示。</p><p>  二: 當(dāng)?shù)褂?jì)時(shí)秒變?yōu)?時(shí),就不能直接使秒值減一,這樣會(huì)導(dǎo)致顯示不正常,這就要求我們通過程序正確的處理倒計(jì)時(shí)的走時(shí)顯示。</p><p>  通過硬軟件的調(diào)試后結(jié)論如下:系統(tǒng)電路設(shè)計(jì)部分沒有出現(xiàn)大的錯(cuò)誤,軟件部分也基本達(dá)到了設(shè)計(jì)的要求,只是在時(shí)鐘的調(diào)整過程中,數(shù)碼管的顯示會(huì)出現(xiàn)小的閃動(dòng),除此之外,軟硬件都達(dá)到了系統(tǒng)的要求。

95、</p><p><b>  致 謝</b></p><p>  首先,感謝我的指導(dǎo)老師xx老師。在整個(gè)畢業(yè)設(shè)計(jì)期間,他都給予我很大的幫助。單片機(jī)作為我們主要的專業(yè)課程之一,我覺得單片機(jī)課程設(shè)計(jì)很有必要,而且很有意義。但當(dāng)拿到題目時(shí),確實(shí)不知道怎么著手,有些迷茫,上網(wǎng)查資料,問老師,在老師的幫助下,歷時(shí)兩個(gè)星期,解決一個(gè)又一個(gè)的困難,終于完成任務(wù)。</p>

96、;<p>  在這次課程設(shè)計(jì)中,運(yùn)用到了很多以前的專業(yè)知識(shí),雖然過去從未獨(dú)立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的一大收獲。另外,要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序

97、的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過程中遇到問題是很正常,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實(shí)踐能力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計(jì)過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會(huì)遇到各種

98、各樣的問題。在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,不能靈活運(yùn)用。在此也了解到理論知識(shí)與實(shí)踐相結(jié)合的重</p><p>  指導(dǎo)老師xx學(xué)嚴(yán)謹(jǐn),學(xué)識(shí)淵博,平易近人,論文期間指引我克服一個(gè)由一個(gè)的困難,讓我學(xué)會(huì)對(duì)困難無所畏懼,以及對(duì)問題的一些很重要的思考方法。在論文準(zhǔn)備的每個(gè)環(huán)節(jié),也對(duì)我悉心指導(dǎo)和幫助,借此機(jī)會(huì)向?qū)煴硎局孕牡母兄x!</p><p&g

99、t;<b>  參考文獻(xiàn)</b></p><p>  [1] 張義和.《例說51單片機(jī)》c語言版.人民郵電出版社.</p><p>  [2] 張輝,陳粵初.單片機(jī)開發(fā)與典型應(yīng)用設(shè)計(jì). 合肥:中國科學(xué)技術(shù)大學(xué)出版社,1997.</p><p>  [3] 陳忠平 單片機(jī)基礎(chǔ)與最小系統(tǒng)實(shí)踐.北京航空航天大學(xué)出版社.</p><

100、p>  [4] 李廣弟. 單片機(jī)原理及應(yīng)用[M] 北京航空航天大學(xué)出版社,2004年.</p><p>  [5] 阮忠,林金寶,陳強(qiáng).綜合電子電路應(yīng)用指南 [M].北京:機(jī)械工業(yè)出版社,2004年.</p><p>  [6] 江國強(qiáng).現(xiàn)代數(shù)字邏輯電路[M].北京:電子工業(yè)出版社,2002.</p><p>  [7] 謝自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試(第二

101、版). 武漢:華中科技大學(xué)出版社,2000.</p><p>  [8] 曹巧媛.單片機(jī)原理及應(yīng)用 [M].北京:電子工業(yè)出版社 , 1997年.</p><p><b>  附錄</b></p><p>  附錄A畢業(yè)設(shè)計(jì)原理圖</p><p><b>  附錄B 設(shè)計(jì)源程序</b>&l

102、t;/p><p>  A_BIT EQU 20H ;存放個(gè)位數(shù)變量</p><p>  B_BIT EQU 21H ;存放十位數(shù)變量</p><p>  MIN EQU 35H ;存放分鐘變量</p><p>  SEC EQU 36H ;存放秒數(shù)變量</p><p>  DEDA EQU 37H ;5ms計(jì)時(shí)變

103、量</p><p>  FLAG EQU 38H ;DS18B20是否存在標(biāo)志</p><p>  TIME0 EQU 39H ;存放按鍵次數(shù)變量</p><p>  TIME1 EQU 3AH ;存放溫度存儲(chǔ)變量</p><p>  K1 EQU P1.0</p><p>  DQ EQU P3.3 ;DQ引

104、腳由p3.3控制</p><p>  ORG 00H ;主程序入口地址</p><p>  JMP MAIN </p><p>  ORG 0BH ;中斷入口地址</p><p>  JMP TO_SRV</p><p>  --------主程序----</p>&

105、lt;p>  MAIN: ;</p><p>  MOV TIME0, #0 ;初始化</p><p>  MOV TIME1, #0</p><p>  MOV R0, #30H ;指向溫度數(shù)據(jù)存儲(chǔ)初始地址</p><p>  ACALL INIT ;中斷初始化</p><p>  ACALL IN

106、IT_TIME ;設(shè)置定時(shí)器</p><p>  LOOP: ;無窮循環(huán)</p><p>  ACALL RE_TEMP ;調(diào)用讀取溫度子程序</p><p>  ACALL TURN ; 數(shù)據(jù)轉(zhuǎn)化子程序</p><p>  ACALL DISPLAY ;調(diào)用顯示子程序</p><p>  JNB K1, M1 ;按鍵

107、是否按下,如果按下轉(zhuǎn)入存儲(chǔ)溫度讀取子程序</p><p><b>  JMP LOOP </b></p><p>  M1: ;按鍵按下處理子程序 </p><p>  MOV 29H, @R0 ;按鍵按下后把采集的溫度送入29h</p><p>  ACALL DISPLAY;顯示這個(gè)溫度</p>

108、<p><b>  INC TIME0</b></p><p>  MOV A, TIME0</p><p>  CJNE A, #5, M2;按鍵是否按下五次</p><p>  MOV R0, #30H ;按下五次后從新設(shè)置溫度采集存儲(chǔ)地址</p><p>  MOV TIME0, #0</p>

109、;<p><b>  M2:</b></p><p><b>  JMP LOOP </b></p><p><b>  ;計(jì)時(shí)單元清零</b></p><p><b>  INIT:</b></p><p>  MOV DEDA, #0&l

110、t;/p><p>  MOV SEC, #0</p><p>  MOV MIN, #0</p><p><b>  RET</b></p><p>  ;使用定時(shí)器T0模式0計(jì)時(shí)</p><p>  INIT_TIME: ;初始化定時(shí)器,使用定時(shí)器T0模式1計(jì)時(shí)</p><p

111、>  MOV TMOD, #00000000B ;設(shè)置定時(shí)器T0模式工作模式0</p><p>  MOV IE, #10000010B ;啟用定時(shí)器T0中斷優(yōu)先</p><p>  MOV TL0, #(8192-5000)MOD 32 ;加載初始化數(shù)據(jù)</p><p>  MOV TH0, #(8192-5000)/32 </p><

112、;p>  SETB TR0 ;啟用定時(shí)器</p><p><b>  RET</b></p><p><b>  ;中斷服務(wù)子程序</b></p><p>  TO_SRV: </p><p>  PUSH ACC </p><p>  MOV

113、TL0,#(8192-4900)MOD 32 ;重新加載定時(shí)初值</p><p>  MOV TH0,#(8192-4900)/32 </p><p><b>  INC DEDA </b></p><p>  MOV A,DEDA</p><p>  CJNE A,#200,TT1 ;是否1秒到了</p>

114、;<p>  MOV DEDA,#0 ;計(jì)數(shù)值清零</p><p>  INC SEC </p><p>  MOV A,SEC </p><p>  CJNE A,#60,TT1 ;是否一分鐘到了</p><p><b>  INC MIN </b>&l

115、t;/p><p>  MOV SEC,#0 </p><p><b>  MOV A,MIN</b></p><p>  CJNE A,#5,TT1 ;是否五分鐘到了</p><p>  MOV @R0, 29H ;溫度采集一次</p><p><b>  INC R0</

溫馨提示

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