

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 定時數(shù)據(jù)自動記錄系統(tǒng)設(shè)計</p><p><b> 摘要</b></p><p> 定時數(shù)據(jù)自動記錄系統(tǒng),是現(xiàn)在自動記錄系統(tǒng)的重要組成部分。溫度定時采集記錄是現(xiàn)代記錄技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。因此,能夠確??焖?、準(zhǔn)確地測量溫度的技術(shù)及裝置普遍受到各國的重視。近年來,利用數(shù)字式溫度傳感器以實現(xiàn)溫
2、度信息的記錄已成為一種發(fā)展趨勢。隨著科學(xué)技術(shù)的發(fā)展,人們對溫度采集的記錄的準(zhǔn)確度和靈敏度要求越來越高,并且對溫度測量系統(tǒng)的智能化有一定的要求,譬如在溫度達(dá)到允許的最高限時實現(xiàn)報警。研制更靈敏、更可靠、更精確的溫度采集記錄系統(tǒng)越來越有必要。</p><p> 本課題即以上述任務(wù)為出發(fā)點,擬設(shè)計一種智能溫度采集記錄系統(tǒng)。DS18B20為主要元器件,該器件能對溫度信號進(jìn)行A/D變換,直接形成數(shù)字式溫度數(shù)據(jù)輸出。DS1
3、8B20的測溫范圍為:-55℃~+125℃,其分辨率可達(dá)0.0625℃。通過單片機技術(shù)可將DS18B20的溫度數(shù)據(jù)記錄起來并讀取出來。這作品與目前市售的溫度測試記錄儀相比具有體積小、精度高、測量范圍寬、記錄數(shù)據(jù)量大、使用方便且成本低等優(yōu)點。</p><p> 關(guān)鍵詞:DS18B20、單片機、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è)計概述1</p><p> 2.1作品產(chǎn)生背景1</p><p>
10、; 2.2系統(tǒng)總體設(shè)計2</p><p><b> 3硬件電路設(shè)計2</b></p><p> 3.1 單片機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性能特點9</p><p> 3.6.3 DS18B20的使用注意事項10</p><p><b> 4 軟件設(shè)計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è)計原理圖24</p><p> 附錄B 設(shè)計源程序25</p><p><b> 1 緒論</b></p><p> 溫度采集自動記錄在生活領(lǐng)域
15、、醫(yī)療領(lǐng)域、科學(xué)研究、生產(chǎn)實踐中均有著廣泛應(yīng)用,如測量病人體溫、分析氣溫變化、控制某生產(chǎn)加工車間的溫度等。所以溫度的采集自動記錄儀便成為現(xiàn)代生產(chǎn)、生活中不可缺少的設(shè)備之一。</p><p> 目前市場上已有的溫度采集自動記錄儀為需經(jīng)常換紙的跟紙式記錄儀和采用熱敏電阻傳感器的普通溫度儀,如常州熱工儀表廠生產(chǎn)的XRZ-Cu50和 XRZ-Cu100采用的就是采用熱電阻傳感器,XRZ-Cu50的溫度測量范圍為:0℃~
16、150℃,XRZ~Cu100的測量范圍為十0℃~100℃,這種溫度記錄儀精確度為±1℃,價格為200元左右,體積約為200mm*200mm*180mm,只能顯示即時溫度,不可存儲溫度數(shù)據(jù),體積較大;與歐陸公司合資的常州宏基儀器儀表廠生產(chǎn)的紙記錄式溫度計,該溫度記錄議采用在紙上繪制曲線的方法來記錄溫度數(shù)據(jù),雖能把溫度記錄下來,但需要人工定時更換記錄紙張,且價格較高,在3000——4000元之間。市場上也有部分無紙記錄儀,采用液晶
17、顯示屏作為數(shù)據(jù)輸出,但存在測試精度低、不便于存放大量溫度數(shù)據(jù)、成本高的缺點。</p><p> 隨著人們對產(chǎn)品質(zhì)量要求的不斷提高,生產(chǎn)加工設(shè)備機械化水平的不斷完善,傳統(tǒng)的溫度測試儀在現(xiàn)代化生產(chǎn)中已不能滿足要求了。針對以上情況我們設(shè)計開發(fā)了一種融數(shù)字溫度傳感器、單片機于一體的掌上型溫度采集、記錄儀,從而達(dá)到體積小、重量輕、測試精度高、成本低、便于隨身攜帶、隨時可進(jìn)行溫度數(shù)據(jù)分析的掌上型溫度采集記錄儀。</p
18、><p> 2 系統(tǒng)的總體設(shè)計概述</p><p><b> 2.1作品產(chǎn)生背景</b></p><p> 由于溫度采集自動記錄在生活領(lǐng)域、醫(yī)療領(lǐng)域、科學(xué)研究、生產(chǎn)實踐中均有著廣泛應(yīng)用,如測量病人體溫、分析氣溫變化、控制某生產(chǎn)加工車間的溫度等。目前市場上已有的溫度采集自動記錄儀為需經(jīng)常換紙的跟紙式記錄儀和采用熱敏電阻傳感器的普通溫度儀,價格高
19、、體積較大,而且精度低,也有部分無紙記錄儀,采用液晶顯示屏作為數(shù)據(jù)輸出,但存在測試精度低、不便于存放大量溫度數(shù)據(jù)、成本高的缺點,我們設(shè)計開發(fā)了一種融數(shù)字溫度傳感器、單片機于一體的掌上型溫度采集自動記錄儀,從而達(dá)到體積小、重量輕、測試精度高、存儲容量大、成本低、便于隨身攜帶、隨時可進(jìn)行溫度數(shù)據(jù)分析的掌上型溫度采集記錄儀,具有較好的推廣應(yīng)用價值。</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è)計</b></p><p> 該作品具有極高的可靠性和穩(wěn)定性,可工作于任何環(huán)境底下。電路原理圖分為兩部分:溫度數(shù)據(jù)采集部分,溫度顯示驅(qū)動部分。
21、</p><p> ?。ㄒ唬囟葦?shù)據(jù)采集部分</p><p> DS18B20是智能型的數(shù)字溫度傳感器,通信方式為串行通信方式。其數(shù)據(jù)線與單片機的P1.1相連接。</p><p> ?。ǘ囟蕊@示驅(qū)動部分</p><p> 顯示驅(qū)動方式按常規(guī)設(shè)計實施,選用高亮度發(fā)光LED器件顯示。</p><p> 圖2-1
22、 硬件原理圖</p><p><b> 3硬件電路設(shè)計</b></p><p> 3.1 單片機AT89S52簡介</p><p><b> 3.1.1主要特性</b></p><p> 在本設(shè)計中,是以AT89S52單片機為核心的。AT89S52單片機是由ATMEL公司推出的AT89系列的
23、單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除</p><p> 片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密</p><p> 度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,AT89S52是它的一種精簡版本。[1]
24、引腳排練如圖所示。</p><p> 它的性能與主要特點如下:</p><p> (1) 與MCS-51微控制器產(chǎn)品系列兼容。</p><p> (2) 片內(nèi)有8K字節(jié)在系統(tǒng)可編程Flash存儲器。</p><p> (3) 存儲器可循環(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) 三個16位定時器/計數(shù)器。</p><p> (8) 中斷結(jié)構(gòu)具有6個中斷源</p>
26、;<p> (9) 可編程全雙工UART串行通道。</p><p> (10) 空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。</p><p><b> 3.1.2管腳說明</b></p><p> 主要引腳的具體描述如下;</p><p> Vcc: 電源。提供掉線、空閑、正常+5V工作電壓。<
27、;/p><p> Vss(GND): 接地。</p><p> P0口: P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗
28、 時,需要外部上拉電阻。</p><p> P1口: P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2 的觸發(fā)輸入(
29、P1.1/T2EX)。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。具有第二功能。</p><p> P2口: P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部
30、數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 </p><p> P3口: P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對
31、P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。P3口的第二功能如表3-1所示。</p><p><b> 表3-1</b></p><p> RS
32、T: 復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。</p><p> ALE/PROG: 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸
33、入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN: 程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有
34、效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p> EA/VPP: 外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,
35、當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p> XTAL1: 振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p> XTAL2: 振蕩器反相放大器的輸出端。</p><p> 3.1.3芯片可擦除性</p><p> AT89S52單片機還具有芯片擦除性,整個PEROM陣列和三個鎖定位的電擦除可通過正確的控
36、制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。[2]</p><p> 此外,AT89S52設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能
37、,直到下一個硬件復(fù)位為止。[3]</p><p><b> 3.2電源電路</b></p><p> 電源由外接USB接口提供+5V的穩(wěn)定電壓,使整個系統(tǒng)穩(wěn)定工作,性能也較好。</p><p><b> 3.3 復(fù)位電路</b></p><p> 單片機復(fù)位時RESET需要保持96個晶振周期
38、的高電平(即需8個機器周期)。復(fù)位以后P0─P3口輸出高電平,堆棧指針SP指向07H,其他特殊功能寄存器和程序計數(shù)器PC清零。只要RESET保持高電平,AT89S52就會循環(huán)復(fù)位。RESET當(dāng)由高電平變?yōu)榈碗娖胶?,單片機從程序存儲器0地址開始執(zhí)行程序。但單片機復(fù)位不影響內(nèi)部RAM的狀態(tài),包括工作寄存器R0─R7。[4]</p><p> 常見的復(fù)位電路有:上電復(fù)位電路和上電按鈕復(fù)位電路,在本設(shè)計中均采用上電復(fù)位
39、電路,如圖3-2所示。</p><p><b> 圖3-2復(fù)位電路圖</b></p><p><b> 3.4晶振電路</b></p><p> 所謂的晶振電路即指單片機的時鐘電路。該電路通常有內(nèi)部時鐘電路和外部時鐘電路。一般選用前者。單片機芯片內(nèi)部有一個反相放大器構(gòu)成的振蕩器。反相放大器的輸入端為XTAL1,輸出端
40、為XTAL2,把XTAL1和XTAL2與外部石英晶體及兩個電容連接起來可構(gòu)成一個石英晶體振蕩器如圖3-3所示。時鐘發(fā)生器是一個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è)計中采用了LED顯示器,即數(shù)碼管。數(shù)碼管的每一個數(shù)碼段是一只發(fā)光二極管。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或者一個筆畫發(fā)光,控制發(fā)光二極管發(fā)光組合,可以顯示出所需字符。我采用了共陰極結(jié)構(gòu)。在定義其顯示字形的碼段時,通過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ù)定義,單線總線只有一根線,這意味著總線上的每一個器件只能分時驅(qū)動單線總線,并要求每個器件必須具有漏極開路輸出或三態(tài)輸出的特性。DS18B20的單線接口 I/O端就屬于漏極
43、開路輸出。TX、RX分別表示發(fā)送與接受。在單線總線上必須接上拉電阻,其電阻阻值為 5kΩ(標(biāo)稱值可取5.1kΩ或4.7KΩ)。當(dāng)單線總線上掛有多個從屬器件時,亦稱之為多點總線。[7]</p><p> 單線總線在空閑狀態(tài)下呈高電平。操作單線總線時,必須從空閑狀態(tài)開始。單線總線加低電平的時間超過480 us時,總線上所有的器件均復(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性能特點</p><p> DS18B20在繼承DS1820全部優(yōu)點的基礎(chǔ)上,主要做了如下改進(jìn):</p><p> (1)供電電壓范圍擴大
45、為3.0~ 5.5V。當(dāng)UDD=3.0~5.5V時,在-10~+85℃范圍內(nèi),可確保測量誤差不超過±0.5℃,在-55~+125℃范圍內(nèi),測量誤差也不超過半。在DS1820中當(dāng)電源電壓跌落過多時,測量準(zhǔn)確度要下降。</p><p> (2)溫度分辨力可編程。DS1820的數(shù)字溫度輸出只用9位二進(jìn)制表示,分辨力固定為0.5℃。欲提高分辨力,只能靠軟件計算來實現(xiàn)。而DS18B20的數(shù)字溫度輸出可進(jìn)行9~1
46、2位的編程。在便箋式RAM的第五個字節(jié)是CONFIG寄存器,其格式如下:MS B代表最高有效位,LSB代表最低有效位。格式中的第0~4位在寫操作時不予考慮,讀出時總是“1”;第7位在寫操作時不考慮,讀出時為“0”。R0、R1是在可編程溫度分辨力位。通過對這兩位進(jìn)行不同的編程,可設(shè)定不同的溫度分辨力及最大轉(zhuǎn)換時間,設(shè)定的分辨力愈高,所需要的溫度-數(shù)據(jù)轉(zhuǎn)換時間就愈長。因此,在實際應(yīng)用中需要在分辨力與轉(zhuǎn)換時間二者之間權(quán)衡考慮。在芯片出廠是R1
47、和R0 均被置為“1”,既工作在12位模式下。DS 18B20分另工作在9位、10位、11位和12位模式下,所對應(yīng)的分辨力依此為0.5℃、0.25℃、0.125℃、0.0625℃。當(dāng) DS18B20接受到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度就以16位帶符號擴展的二進(jìn)制補碼形式,存儲在便箋RAM的第0,第1字節(jié)。在執(zhí)行讀便箋RAM命令后,可將這兩個字節(jié)的溫度值通過單線總線傳送給主</p><p> (3
48、)DS1820進(jìn)行9位溫度轉(zhuǎn)換所需時間的典型值為200ms,而DS18B20進(jìn)行9位的溫度轉(zhuǎn)換僅需93.75ms。由此可見,DS18B20的轉(zhuǎn)換速率也比DS1820有很大的提高。</p><p> ?。?)內(nèi)部存儲器映射關(guān)系發(fā)生了變化。其中,第6字節(jié)的計數(shù)器余數(shù)值和第7字節(jié)中每度計數(shù)值,僅在DS1820進(jìn)行高分辨力測溫時才使用。DS18B20的內(nèi)部存儲器的映射關(guān)系如圖 4-5-2所示,用 DS18B20測量溫度時
49、,因為通過編程的方法即可將DS18B20設(shè)定在高分辨力模式下,所以不再需要這兩個值。但根據(jù)實際需要,在便箋式RAM和EERAM中加入 CONFIG字節(jié)。</p><p> ?。?)具有電源反接保護(hù)電路。當(dāng)電源電壓的極性接反時,能保護(hù)DS18B20不會因發(fā)熱而燒毀,但此時芯片無法正常工作。</p><p> (6)DS18B20的引腳功能和內(nèi)部框圖與DS1820完全相同,但其體積比D
50、S1820減小了一半。開始啟動轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度就以16位帶符號擴展的二進(jìn)制補碼形式,存儲在便箋RAM的第0,第1字節(jié)。在執(zhí)行讀便箋RAM命令后,可將這兩個字節(jié)的溫度值通過單線總線傳送給主CPU,高位字節(jié)的符號代表溫度值為正還是為負(fù)。顯然,DS18B20與DS1820的溫度字節(jié)定義不一致,當(dāng)DS18B20的工作模式依此選擇11位、10位和9位時,末尾為零的低位數(shù)就分別對應(yīng)于一位、二位和三位。舉例說明,當(dāng)工作模式選擇10位時,最低兩位
51、(即2-4位和2-3位)均為0,總有效位就變成10位。其中,數(shù)字位占9位,符號位也占一位。</p><p> 3.6.3 DS18B20的使用注意事項</p><p> 使用 DS18B20時應(yīng)注意以下事項:</p><p> ?。?)由于DS18B20的測溫分辨力提高到12位,因此它對時序及電特性參數(shù)要求較高,需嚴(yán)格按照DS18B20的時序要求進(jìn)行操作。<
52、;/p><p> ?。?)DS18B20作三線制應(yīng)用時,應(yīng)將UDD、I/O、GND端焊接牢固;作兩線制應(yīng)用時,應(yīng)將UDD與GND連在一起焊牢。若UDD端漏焊或者虛焊,傳感器就只能輸出+85.0 ℃的溫度數(shù)據(jù)。</p><p> (3)測溫電纜線可采用帶屏蔽層的4芯雙絞線,其中兩根線分別接信號線與地線,另兩根線依此接UDD和地線,屏蔽層在源端單點接地。</p><p>
53、<b> 4 軟件設(shè)計</b></p><p> 軟件設(shè)計部分按功能主要分三大部分,具體如下所述:</p><p><b> ?。ㄒ唬┲鞅O(jiān)控程序</b></p><p> 單片機的主監(jiān)控程序為:當(dāng)監(jiān)測到相應(yīng)信號時作相應(yīng)溫度的存儲、轉(zhuǎn)換,并負(fù)責(zé)溫度的顯示。</p><p><b>
54、主程序流程圖</b></p><p><b> 定時器流程圖</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、 ;主機發(fā)出延時復(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 ; 延時</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,$ ; 時序要求延時一段時間</p
61、><p> TSR7: SETB DATA_LINE</p><p><b> RET</b></p><p> ?。ǘ囟刃畔⒌牟杉?lt;/p><p> 通過DS18B20單線總線的所有執(zhí)行處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發(fā)出的復(fù)位脈沖和隨后由從機發(fā)出的存在脈沖:</p>
62、<p> 1、復(fù)位:首先我們必須對DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。 </p><p> 2、存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達(dá)成了
63、基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。</p><p> 3、控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。[8]各自功能如下:</p><p> Read ROM(讀ROM)[33H] (方括號中的為16進(jìn)制的命令字)這個命令允許
64、總線控制器讀到DS18B20的64位ROM。只有當(dāng)總線上只存在一個DS18B20的時候才可以使用此指令。</p><p> Match ROM(指定匹配芯片)[55H] 這個指令后面緊跟著由控制器發(fā)出了64位序列號,當(dāng)總線 上有多只DS18B20時,只有與控制發(fā)出的序列號相同的芯片才能做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適合單芯片和多芯片掛接。 </p><p> Skip R
65、OM(跳躍ROM指令)[CCH] 這條指令使芯片不對ROM編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時間則可以選用此指令。如果在多芯片掛接時使用此指令將會出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯誤出現(xiàn)。 </p><p> Search ROM(搜索芯片)[F0H] 在芯片初始化后,搜索指令允許總線上掛接多芯片時用排除法識別所有器件的64位ROM。 </p><p> Alarm Search(報警芯片搜
66、索)[ECH] 在多芯片掛接的情況下,報警芯片搜索指令只對附合溫度高于TH或小于TL報警條件的芯片做出反應(yīng)。只要芯片不掉電,報警狀態(tài)將被保持,直到再一次測得溫度值達(dá)不到報警條件為止。</p><p> 4、控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM
67、、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。</p><p> Write Scratchpad (向RAM中寫數(shù)據(jù))[4EH]:這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址2(報警RAM之TH)和地址3(報警RAM之TL)。寫入過程中可以用復(fù)位信號中止寫入。 </p><p> Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH]
68、:此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時間。 </p><p> Copy Scratchpad (將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H]:此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲存處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“
69、0”,當(dāng)儲存工作完成時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強上拉并至少保持10MS,來維持芯片工作。</p><p> Convert T(溫度轉(zhuǎn)換)[44H]:收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第1、2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻超
70、用強上拉并至少保持500MS,來維持芯片工作。 </p><p> Recall EEPROM(將EEPROM中的報警值復(fù)制到RAM)[B8H]:此指令將EEPROM中的報警值復(fù)制到RAM中的第3、4個字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成時,總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時將被自動執(zhí)行。這樣RAM中的兩個報警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡
71、像。 </p><p> Read Power Supply(工作方式切換)[B4H]:此指令發(fā)出后發(fā)出讀時間隙,芯片會返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 </p><p> 5、執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。</p><p> DS18B20需要嚴(yán)格的協(xié)議以
72、確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號類型:復(fù)位脈沖、存在脈沖、寫0、寫1 、讀0和讀1。所有這些信號,除存在脈沖外,都是由總線控制器發(fā)出的。和DS18B20間的任何通訊都需要以初始化序列開始。一個復(fù)位脈沖跟著一個存在脈沖表明DS18B20已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)。</p><p> DS18B20的復(fù)位時序</p><p> 圖4-2 DS18B20的復(fù)位時序圖</p>
73、<p> DS18B20的讀時序</p><p> 對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時隙是從主機把單總線拉低之后,在15us之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。</p><p> 圖4-3 DS18B20的讀時序圖 </p>
74、<p> DS18B20的寫時序:</p><p> 對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p>
75、 圖4-4 DS18B20的寫時序圖</p><p> DS18B20初始化程序上一部分已提到,其采集程序詳見附錄</p><p> ?。ㄈ囟葦?shù)據(jù)的LED顯示</p><p> 在檢查到按鍵按下后,驅(qū)動LED將存儲的溫度數(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> 硬件是整個作品的基礎(chǔ),所有的工作必須依賴硬件電路的正常運行,在整個設(shè)計過程中,硬件的設(shè)計調(diào)試是一種重要的環(huán)節(jié)。對于硬件電路的調(diào)試我們主要由下面幾個過程:</p><p><b> 1、晶振及復(fù)位電路</
82、b></p><p> 晶振是單片機工作的必要部分,要使整個器件正常工作,晶振電路必須正確。,將晶振頻率設(shè)計為11.0592MHZ,另處還有30PF的電容兩只。復(fù)位電路是由一只8.2K的電阻和 10μF電容組成的簡單型復(fù)位電路。</p><p><b> 2、數(shù)碼顯示電路</b></p><p> 該作品能夠隨時顯示溫度數(shù)據(jù),所在必
83、須要有能正常工作的顯示電路。顯示電路是由LED數(shù)碼管、驅(qū)動電路、拉高電阻組成。</p><p> 顯示部分為4位動態(tài)顯示,數(shù)碼管為共陰極4位數(shù)碼管,共有12個管腳,其中8位用作字節(jié)碼數(shù)據(jù)位,另外4位用作位選信號,也就是4位數(shù)碼管的4個共陰極。由于數(shù)據(jù)管的工作電流較大,單片機不能直接進(jìn)行驅(qū)動,所以使用到7407進(jìn)行同向驅(qū)動,7407是一片6路同向驅(qū)動集成電路。我們只用到其中的4路。另外,要數(shù)碼管能正常工作,還需要
84、在陽極接入上拉電阻。整個數(shù)碼顯示是整個設(shè)計工作的開始,也是必備的工作。</p><p> 在數(shù)碼碼管硬件完成的情況下,利用 LAC51軟件下載了一段簡單的顯示子程序。發(fā)現(xiàn)整個顯示部分工作均正常,沒有錯誤;如果無法顯示,則需查找端口,驅(qū)動部分。</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)接通電源開始工作后,單片機中的程序開始運行,將對DS18B20進(jìn)行初始化,以便單片機芯片和DS18B20達(dá)成通信協(xié)議。完成初始化后,采集溫度數(shù)據(jù),并將這些數(shù)據(jù)暫時保存在單片機中,按照要求應(yīng)采集
86、8個數(shù)據(jù)才能求一次平均值,在很短的時間內(nèi)將按鍵按下,如果LED上顯示溫度數(shù)據(jù),則說明程序編寫有錯誤,需查找出來并修改,然后再次調(diào)試;無數(shù)據(jù)顯示時,等待較長時間,再次按下按鍵,如果數(shù)據(jù)顯示,觀察顯示數(shù)據(jù)的數(shù)據(jù)格式是否正確,如果不正確,則可能是溫度轉(zhuǎn)換部分的程序出錯,檢查此部分程序并修改,此也可能是因為求平均值部分設(shè)置不正確,總之一步步檢查,直到檢查出錯誤;如若較長時間按下按鍵仍無數(shù)據(jù)顯示,可能是采集部分出錯,也可能是求得的溫度平均值沒有保
87、存或保存錯誤,綜合原因耐心細(xì)致的調(diào)試,直到在規(guī)定的時間外按下按鍵溫度數(shù)據(jù)依次顯示。整個過程操作完成后,斷開電源,然后再次接通電源,整個部件依然能穩(wěn)定的工作,則設(shè)計才成功。 </p><p> 2、數(shù)碼顯示程序調(diào)試</p><p> 為了能讀出存儲的溫度數(shù)據(jù),電路中采用了數(shù)碼管來顯示溫度,在單片機中顯示程序就是一個重要組成部分。由
88、于采用動態(tài)方式顯示,整體的硬件結(jié)構(gòu)變得簡單,但顯示程序變得復(fù)雜。在調(diào)試的過程中,主要考慮共陰極顯示時要注意的一些特點。在相應(yīng)的內(nèi)存單元中放1、2、3字形碼,運行顯示程序后,數(shù)碼管能正常顯示“12.3”則說明顯示程序一切正常。如果無法顯示,則需查找溫度顯示部分的子程序及此部分的程序是否與主程序連接恰當(dāng)。</p><p> 3、讀 DS18B20程序調(diào)試</p><p> 讀DS18B20
89、程序是一個關(guān)鍵,必須按照DS18B20的時序要求,嚴(yán)格對應(yīng)起來。在該總部分程序調(diào)試時,是將讀出的溫度補碼數(shù)據(jù)讀入到相應(yīng)內(nèi)存單元中。由于溫度是一個變化量,在不同時刻有不同的讀出值,以確定讀出的正確性,我們采用與普通溫度計對比的方法進(jìn)行調(diào)試。發(fā)現(xiàn)讀出的數(shù)據(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)軟件中存在的問題,及時解決問題,確保系統(tǒng)能正常工作并達(dá)到設(shè)計要求。通過反復(fù)的調(diào)試與實驗,可以證明該系統(tǒng)能夠較好地完成設(shè)計所需的基本要求。即能夠方便準(zhǔn)確的對被測對象進(jìn)行溫度測量。同時在完成設(shè)計要求的前提下,充分考慮到了外觀,成本等問題,在性能和價格之間作了比較好的平衡。雖然整體性能良好,但尚存在些許不足,系統(tǒng)穩(wěn)定性不夠,需要增強自
91、己的焊接水平以便以后避免出現(xiàn)類似問題。</p><p><b> 結(jié)束語</b></p><p> 這次畢業(yè)設(shè)計,我通過基于單片機AT89S52的設(shè)計和應(yīng)用,對單片機工作原理,功能有了深刻的了解,并對單片機匯編程序的應(yīng)用有了新的、更進(jìn)一步的認(rèn)識。</p><p> 從時鐘和倒計時程序的編寫到元器件和芯片的選擇購買,以及電路實物的焊接檢測,
92、在指導(dǎo)老師的幫助下所有的工作都是我獨立完成的,通過這次設(shè)計,我的單片機基礎(chǔ)知識有了很大的提高。</p><p> 單片機系統(tǒng)設(shè)計結(jié)束之后,首先應(yīng)該仔細(xì)的檢查一下電路板:</p><p> 第一,首先要檢查元器件的型號是否與設(shè)計要求相符,然后參照電路原理圖,看電路連接是否正確,最后檢查元器件是否連接到正確的單片機引腳;</p><p> 第二,檢查焊點,要仔細(xì)檢
93、查是否存在漏焊和錯焊現(xiàn)象;對于距離很近的相鄰焊點,要檢查是否出現(xiàn)短接,這些都需要使用萬用表進(jìn)行測量。在調(diào)試過程可能要重復(fù)多次。另外,在燒寫程序的時候,一定要注意程序中的端口地址一定要和設(shè)計的系統(tǒng)中的端口一致,否則會導(dǎo)致系統(tǒng)不能正常工作。</p><p> 本次設(shè)計中的難點和不足之處:</p><p> 本設(shè)計的難點主要有以下兩點:</p><p> 一:如何正
94、確使顯示數(shù)碼管在時鐘和倒計時之間正確的輪流顯示。</p><p> 二: 當(dāng)?shù)褂嫊r秒變?yōu)?時,就不能直接使秒值減一,這樣會導(dǎo)致顯示不正常,這就要求我們通過程序正確的處理倒計時的走時顯示。</p><p> 通過硬軟件的調(diào)試后結(jié)論如下:系統(tǒng)電路設(shè)計部分沒有出現(xiàn)大的錯誤,軟件部分也基本達(dá)到了設(shè)計的要求,只是在時鐘的調(diào)整過程中,數(shù)碼管的顯示會出現(xiàn)小的閃動,除此之外,軟硬件都達(dá)到了系統(tǒng)的要求。
95、</p><p><b> 致 謝</b></p><p> 首先,感謝我的指導(dǎo)老師xx老師。在整個畢業(yè)設(shè)計期間,他都給予我很大的幫助。單片機作為我們主要的專業(yè)課程之一,我覺得單片機課程設(shè)計很有必要,而且很有意義。但當(dāng)拿到題目時,確實不知道怎么著手,有些迷茫,上網(wǎng)查資料,問老師,在老師的幫助下,歷時兩個星期,解決一個又一個的困難,終于完成任務(wù)。</p>
96、;<p> 在這次課程設(shè)計中,運用到了很多以前的專業(yè)知識,雖然過去從未獨立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的一大收獲。另外,要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序
97、的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設(shè)計結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種
98、各樣的問題。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,不能靈活運用。在此也了解到理論知識與實踐相結(jié)合的重</p><p> 指導(dǎo)老師xx學(xué)嚴(yán)謹(jǐn),學(xué)識淵博,平易近人,論文期間指引我克服一個由一個的困難,讓我學(xué)會對困難無所畏懼,以及對問題的一些很重要的思考方法。在論文準(zhǔn)備的每個環(huán)節(jié),也對我悉心指導(dǎo)和幫助,借此機會向?qū)煴硎局孕牡母兄x!</p><p&g
99、t;<b> 參考文獻(xiàn)</b></p><p> [1] 張義和.《例說51單片機》c語言版.人民郵電出版社.</p><p> [2] 張輝,陳粵初.單片機開發(fā)與典型應(yīng)用設(shè)計. 合肥:中國科學(xué)技術(shù)大學(xué)出版社,1997.</p><p> [3] 陳忠平 單片機基礎(chǔ)與最小系統(tǒng)實踐.北京航空航天大學(xué)出版社.</p><
100、p> [4] 李廣弟. 單片機原理及應(yīng)用[M] 北京航空航天大學(xué)出版社,2004年.</p><p> [5] 阮忠,林金寶,陳強.綜合電子電路應(yīng)用指南 [M].北京:機械工業(yè)出版社,2004年.</p><p> [6] 江國強.現(xiàn)代數(shù)字邏輯電路[M].北京:電子工業(yè)出版社,2002.</p><p> [7] 謝自美.電子線路設(shè)計.實驗.測試(第二
101、版). 武漢:華中科技大學(xué)出版社,2000.</p><p> [8] 曹巧媛.單片機原理及應(yīng)用 [M].北京:電子工業(yè)出版社 , 1997年.</p><p><b> 附錄</b></p><p> 附錄A畢業(yè)設(shè)計原理圖</p><p><b> 附錄B 設(shè)計源程序</b>&l
102、t;/p><p> A_BIT EQU 20H ;存放個位數(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計時變
103、量</p><p> FLAG EQU 38H ;DS18B20是否存在標(biāo)志</p><p> TIME0 EQU 39H ;存放按鍵次數(shù)變量</p><p> TIME1 EQU 3AH ;存放溫度存儲變量</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ù)存儲初始地址</p><p> ACALL INIT ;中斷初始化</p><p> ACALL IN
106、IT_TIME ;設(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)入存儲溫度讀取子程序</p><p><b> JMP LOOP </b></p><p> M1: ;按鍵按下處理子程序 </p><p> MOV 29H, @R0 ;按鍵按下后把采集的溫度送入29h</p><p> ACALL DISPLAY;顯示這個溫度</p>
108、<p><b> INC TIME0</b></p><p> MOV A, TIME0</p><p> CJNE A, #5, M2;按鍵是否按下五次</p><p> MOV R0, #30H ;按下五次后從新設(shè)置溫度采集存儲地址</p><p> MOV TIME0, #0</p>
109、;<p><b> M2:</b></p><p><b> JMP LOOP </b></p><p><b> ;計時單元清零</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> ;使用定時器T0模式0計時</p><p> INIT_TIME: ;初始化定時器,使用定時器T0模式1計時</p><p
111、> MOV TMOD, #00000000B ;設(shè)置定時器T0模式工作模式0</p><p> MOV IE, #10000010B ;啟用定時器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 ;啟用定時器</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 ;重新加載定時初值</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 ;計數(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 窯爐溫度自動記錄系統(tǒng)設(shè)計【自動化畢業(yè)論文】
- 窯爐溫度自動記錄系統(tǒng)設(shè)計【自動化畢業(yè)論文】
- 闖紅燈自動記錄系統(tǒng)設(shè)計與實現(xiàn).pdf
- 音樂倒數(shù)定時系統(tǒng)畢業(yè)論文
- 高清晰帶卡口闖紅燈自動記錄系統(tǒng)設(shè)計
- 數(shù)字全息激光自動記錄系統(tǒng)的技術(shù)實現(xiàn).pdf
- 心電自動記錄分析系統(tǒng)的研究.pdf
- 高速可定時數(shù)據(jù)合成模塊設(shè)計.pdf
- 《闖紅燈自動記錄系統(tǒng)驗收技術(shù)規(guī)范》
- 計量數(shù)據(jù)自動記錄程序開發(fā)在二鋼廠的應(yīng)用
- 鄭州市闖紅燈自動記錄系統(tǒng)設(shè)計與實現(xiàn).pdf
- 寵物定時喂食器設(shè)計-畢業(yè)論文
- 船舶操作信息自動記錄儀
- 畢業(yè)論文--實時數(shù)據(jù)通訊服務(wù)的設(shè)計與實現(xiàn)
- 基于單片機自動對時數(shù)字鐘設(shè)計【自動化畢業(yè)論文】
- 照明燈自動定時器的設(shè)計與制作畢業(yè)論文
- 定時器畢業(yè)論文
- 汽車租賃管理系統(tǒng)--查看記錄與數(shù)據(jù)庫設(shè)計【畢業(yè)論文設(shè)計】
- 自動澆花系統(tǒng)的設(shè)計畢業(yè)論文
- 汽車租賃管理系統(tǒng)--查看記錄與數(shù)據(jù)庫設(shè)計【畢業(yè)論文設(shè)計】
評論
0/150
提交評論