2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p>  題目: 基于單片機(jī)的測溫系統(tǒng)設(shè)計(jì)</p><p>  教學(xué)單位: </p><p>  專 業(yè): </p><p>  學(xué) 號: </p><p>  姓 名:

2、 </p><p>  指導(dǎo)教師: </p><p><b>  2013年 4月</b></p><p><b>  摘要</b></p><p>  溫度與人們的生活環(huán)境息息相關(guān),所以溫度測量常被關(guān)注,研究溫度測量方法和裝置顯得尤為重

3、要。采用單片機(jī)對溫度進(jìn)行控制,不僅電路簡單,控制方便,更重要的是采集數(shù)據(jù)更為準(zhǔn)確,很好的滿足了生活中的許多要求。本設(shè)計(jì)以AT89S52單片機(jī)為核心部件,外加溫度采集電路、顯示電路和越限報(bào)警等電路。采用單總線型數(shù)字式的溫度傳感器DS18B20,使系統(tǒng)具有測溫誤差小、分辨率高、抗干擾能力強(qiáng)等特點(diǎn)。本設(shè)計(jì)既可以對當(dāng)前溫度進(jìn)行檢測又可以對溫度進(jìn)行數(shù)碼顯示,采用四位數(shù)碼管顯示方式具有高的顯示精度,若超越極限溫度則觸發(fā)蜂鳴器報(bào)警。利用功能強(qiáng)大的Ke

4、il軟件和DXP進(jìn)行程序的編寫和原理圖繪制。</p><p>  關(guān)鍵詞:測溫 AT89S52 DS18B20 報(bào)警</p><p><b>  Abstract</b></p><p>  Temperature is closely related to people's living environment, so the

5、temperature measurement is often the attented, the temperature measurement method and the device is particularly important. temperature controlling by single chip microcomputer , not only the circuit is simple , but also

6、 can you control conveniently, collect data more accurately so that to meet the many demands in life. The core components of this design is AT89S52 , plus with the temperature acquisition circuit, display cir</p>

7、<p>  Keywords: temperature;measuring;AT89S52;DS18B20;alarm</p><p><b>  目錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1 選題背景1</p><p>  1.2

8、 研究意義1</p><p>  1.3 國內(nèi)外相關(guān)研究情況2</p><p>  1.4 本文研究的主要內(nèi)容2</p><p>  1.5 重點(diǎn)、難點(diǎn)及研究的方法2</p><p>  1.5.1 重點(diǎn)2</p><p>  1.5.2 難點(diǎn)2</p><p>  1.

9、5.3 研究方法3</p><p>  第2章 總體設(shè)計(jì)方案3</p><p>  2.1 設(shè)計(jì)方案3</p><p>  2.1.1 方案一3</p><p>  2.1.2 方案二3</p><p>  2.2 系統(tǒng)的組成與工作原理4</p><p>  第3章 系統(tǒng)硬

10、件設(shè)計(jì)4</p><p>  3.1 系統(tǒng)硬件電路的構(gòu)成及測量原理4</p><p>  3.1.1 系統(tǒng)硬件電路構(gòu)成4</p><p>  3.1.2 系統(tǒng)工作原理5</p><p>  3.2 單片機(jī)AT89S526</p><p>  3.2.1 單片機(jī)功能特性概述6</p>

11、<p>  3.2.2 AT89S52引腳功能介紹6</p><p>  3.3 單片機(jī)的最小系統(tǒng)8</p><p>  3.3.1 晶振電路9</p><p>  3.3.2 復(fù)位電路10</p><p>  3.4 測溫電路設(shè)計(jì)10</p><p>  3.5 顯示電路的設(shè)計(jì)11&

12、lt;/p><p>  3.5.1 四位一體數(shù)碼管簡介11</p><p>  3.5.2 四位一體數(shù)碼管共陰陽極的區(qū)分方法12</p><p>  3.5.3 四位一體數(shù)碼管的驅(qū)動(dòng)方式12</p><p>  3.5.3.1 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)12</p><p>  3.5.3.2 動(dòng)態(tài)驅(qū)動(dòng)方式1

13、3</p><p>  3.5.4 應(yīng)用74LS164驅(qū)動(dòng)數(shù)碼管13</p><p>  3.6 閃光燈設(shè)計(jì)14</p><p>  3.7 報(bào)警電路14</p><p>  第4章 系統(tǒng)軟件的設(shè)計(jì)15</p><p>  4.1 系統(tǒng)的總體設(shè)計(jì)思路15</p><p>  4.

14、2 系統(tǒng)的程序設(shè)計(jì)15</p><p>  4.2.1 主程序15</p><p>  4.2.2 系統(tǒng)主流程圖16</p><p>  4.3 系統(tǒng)開發(fā)環(huán)境18</p><p><b>  結(jié)論19</b></p><p><b>  參考文獻(xiàn)20</b>

15、;</p><p><b>  附錄21</b></p><p><b>  第1章 緒論</b></p><p><b>  1.1 選題背景</b></p><p>  自動(dòng)控制系統(tǒng)在各個(gè)領(lǐng)域尤其是工業(yè)領(lǐng)域中有著及其廣泛的應(yīng)用,溫度控制是控制系統(tǒng)中最為常見的控制類型之一

16、。隨著單片機(jī)技術(shù)的飛速發(fā)展,通過單片機(jī)對被控對象進(jìn)行控制日益成為今后自動(dòng)控制領(lǐng)域的一個(gè)重要發(fā)展方向。溫度的測量在儲(chǔ)糧倉庫、智能樓宇空調(diào)控制及其它的工農(nóng)業(yè)生產(chǎn)和科學(xué)研究中應(yīng)用廣泛。而溫度的測量需要溫度傳感器實(shí)現(xiàn),至今溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器及目前的智能集成溫度傳感器。傳統(tǒng)的溫度檢測是使用諸如熱電偶、熱電阻、半導(dǎo)體PN結(jié)之類的模擬傳感器,經(jīng)信號取樣電路、放大電路和模數(shù)轉(zhuǎn)換電路處理,獲取表

17、示溫度值的數(shù)字信號,再交由微處理器或DSP處理。因?yàn)闄z測環(huán)境復(fù)雜,測量點(diǎn)多,信號傳輸距離遠(yuǎn)及各種干擾的影響,使得傳統(tǒng)測量系統(tǒng)的穩(wěn)定性和可靠性下降。智能溫度傳感器是在20世紀(jì)90 年代中期問世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測試技術(shù)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種各樣的微控制器。社會(huì)的發(fā)展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)

18、展,并朝著高精度、多</p><p><b>  1.2 研究意義</b></p><p>  溫度是一個(gè)非常重要的物理量,因?yàn)樗苯佑绊懭紵⒒瘜W(xué)反應(yīng)、發(fā)酵、烘烤、煅燒、蒸餾、濃度、擠壓成形、結(jié)晶以及空氣流動(dòng)等物理和化學(xué)過程。溫度控制失誤可能引起生產(chǎn)安全、產(chǎn)品質(zhì)量、產(chǎn)品產(chǎn)量等一系列問題,因此對溫度檢測的意義就越來越大。現(xiàn)代電子工業(yè)的飛速發(fā)展對自動(dòng)測試的要求越來越高

19、,采用單片機(jī)對溫度進(jìn)行控制,不僅具有控制方便和組態(tài)簡單的優(yōu)點(diǎn),而且可以提高被控溫度的技術(shù)指標(biāo)。針對以上情況,在控制成本的前提下,通過本設(shè)計(jì)設(shè)計(jì)一款能夠?qū)崟r(shí)檢測溫度,又具有對系統(tǒng)設(shè)定不同溫度的溫度測量系統(tǒng)功能。</p><p>  1.3 國內(nèi)外相關(guān)研究情況</p><p>  現(xiàn)在工業(yè)上通用的溫度檢測范圍為---200-3000C,而今后要求能測量超高溫與超低溫。尤其是液化氣體的低溫度檢

20、測更為迫切,如1OK以下的溫度檢測是當(dāng)前重點(diǎn)研究課題。溫度檢測技術(shù)將會(huì)由點(diǎn)測溫發(fā)展到線、面,甚至立體的測量。應(yīng)用范圍己經(jīng)從工業(yè)領(lǐng)域延伸到環(huán)境保護(hù)、家用電器、汽車工業(yè)及航天工業(yè)領(lǐng)域。利用以前的檢測技術(shù)生產(chǎn)出適應(yīng)于不同場合、不同工況要求的新型產(chǎn)品,以滿足用戶需要。同時(shí)利用新的檢測技術(shù)制造出新的產(chǎn)品。對許多場合中的溫度檢測器有特殊要求,如防硫、防爆、耐磨等性能要求;又如移動(dòng)物體和高速旋轉(zhuǎn)物體的測溫、鋼水的連續(xù)測溫、火焰溫度檢測等。溫度儀表向數(shù)

21、字化方向發(fā)展。其最大優(yōu)點(diǎn)是直觀、無讀數(shù)誤差、分辨率高、測量誤差小,因而有廣闊的銷售市場。</p><p>  1.4 本文研究的主要內(nèi)容</p><p>  采用的新型智能化溫度傳感器DS18B20,能以數(shù)字形式直接輸出被測溫度值,具有測溫誤差小、分辨率高、抗干擾能力強(qiáng)、成本低,是研制和開發(fā)具有高性價(jià)比的新一代溫度檢測系統(tǒng)的核心器件。運(yùn)用了單片機(jī)AT89S52,片內(nèi)含8Kbytes的可反

22、復(fù)擦寫的。兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元等強(qiáng)大功能。采用4位共陽LED動(dòng)態(tài)顯示方式。主要采用了手動(dòng)復(fù)位操作。</p><p>  1.5 重點(diǎn)、難點(diǎn)及研究的方法</p><p><b>  1.5.1 重點(diǎn)</b></p><p>  本設(shè)計(jì)重在于對溫度傳感器(D

23、S18B20)經(jīng)單片機(jī)讀寫向led顯示的結(jié)果。</p><p><b>  1.5.2 難點(diǎn)</b></p><p>  在DS1820測溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦DS1820接觸不好或斷線,當(dāng)程序讀該DS18B20時(shí),將沒有返回信號,程序進(jìn)入死循環(huán)。</p><p>  1.5.

24、3 研究方法</p><p>  軟件環(huán)境:單片機(jī)程序開發(fā)環(huán)境采用 Keil uVision3,開發(fā)語言是Keil C51。主要選擇的硬件模塊:單片機(jī)AT89S52,DS18B20溫度采集模塊,數(shù)碼管顯示模塊,閃光燈模塊,報(bào)警模塊。</p><p>  第2章 總體設(shè)計(jì)方案</p><p><b>  2.1 設(shè)計(jì)方案</b></p&

25、gt;<p>  2.1.1 方案一</p><p>  采用數(shù)字溫度芯片DS18B20測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0到100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89S52構(gòu)成的溫度測

26、量裝置,它直接輸出溫度的數(shù)字信號,可直接與計(jì)算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既可以單獨(dú)對多DS18B20控制工作,還可以與PC機(jī)通信上傳數(shù)據(jù),另外AT89S52在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89S52芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫

27、度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上限報(bào)警溫度。</p><p>  2.1.2 方案二</p><p>  由于本設(shè)計(jì)是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。</p&

28、gt;<p>  從以上兩種方案,很容易看出,采用方案一,電路比較簡單,軟件設(shè)計(jì)也比較簡單,故采用了方案一。</p><p>  2.2 系統(tǒng)的組成與工作原理</p><p>  以單片機(jī)為控制核心,采用溫度測量技術(shù),以溫度傳感器作為測量元件,構(gòu)成溫度測量系統(tǒng)。該系統(tǒng)可分為溫度測量電路以及顯示電路,見圖2.1。選用的主要器件有:單片機(jī)AT89S52,溫度傳感器DS18B20

29、,共陽極數(shù)碼管,蜂鳴器,顯示燈等。</p><p>  圖2.1 硬件結(jié)構(gòu)圖</p><p>  本系統(tǒng)以單片機(jī)AT89S52為核心,數(shù)據(jù)采集、顯示都要通過單片機(jī)。數(shù)據(jù)采集通過單總線的溫度傳感器DS18B20完成;由共陽極數(shù)碼管實(shí)時(shí)顯示接收的數(shù)值;當(dāng)溫度超過設(shè)定最高時(shí)蜂鳴器發(fā)出報(bào)警,并且閃光燈一直閃直到溫度低于設(shè)定值。</p><p>  第3章 系統(tǒng)硬件設(shè)計(jì)<

30、;/p><p>  3.1 系統(tǒng)硬件電路的構(gòu)成及測量原理</p><p>  由于系統(tǒng)要對環(huán)境溫度進(jìn)行測量,因此采用單片機(jī)對單總線系統(tǒng)進(jìn)行現(xiàn)場監(jiān)控是非常經(jīng)濟(jì)實(shí)惠的方案,其硬件連接非常簡單,可用單片機(jī)并口P1、P2、P3中的任一端口與單總線來實(shí)現(xiàn)雙向數(shù)據(jù)傳輸。</p><p>  3.1.1 系統(tǒng)硬件電路構(gòu)成</p><p>  本系統(tǒng)以單片機(jī)

31、為核心,組成一個(gè)溫度的采集、顯示、存儲(chǔ)為一身的閉環(huán)系統(tǒng),其總原理框圖如圖3.1所示。溫度傳感器采集溫度信號,溫度傳感器有模擬輸出和數(shù)字輸出傳感器兩種形式,這里選用具有數(shù)字輸出的DS18B20;單片機(jī)是系統(tǒng)的核心,選用AT89S52;系統(tǒng)采用共陽極數(shù)碼管顯示溫度值;用74LS164來驅(qū)動(dòng)數(shù)碼管。</p><p>  整個(gè)電路圖的結(jié)構(gòu)是比較簡單的:直接使用AT89S52單片機(jī)、溫度傳器DS18B20、共陽極數(shù)碼管、閃

32、光燈、蜂鳴器、驅(qū)動(dòng)74LS164構(gòu)成。</p><p>  由于AT89系列單片機(jī)與MCS-51系列單片機(jī)兼容。所以,本系統(tǒng)中的單片機(jī)選用AT89S52。整個(gè)電路圖的關(guān)鍵是AT89S52的P0口接上一組排阻。AT89S52單片機(jī)的幾個(gè)端口,P0作為地址數(shù)據(jù)總線時(shí),T1和T2是一起工作的,構(gòu)成推挽結(jié)構(gòu)。高電平時(shí),T1打開,T2截止;低電平時(shí),T1截止,T2打開。這種情況下不用外接上拉電阻。當(dāng)T1打開,T2截止,輸出

33、高電平的時(shí)候,因?yàn)閮?nèi)部電源直接通過T1輸出到P0口線上,因此驅(qū)動(dòng)能力(電流)可以很大,可以驅(qū)動(dòng)8個(gè)TTL負(fù)載。</p><p>  溫度傳感器的作用是采集環(huán)境溫度。由于智能溫度傳感器DS18B20既能對溫度進(jìn)行測量,又能把溫度的二進(jìn)制值轉(zhuǎn)換成十進(jìn)制值,所以本設(shè)計(jì)選用智能溫度傳感器DS18B20。傳感器和數(shù)字轉(zhuǎn)換電路都被集成在一起,每個(gè)DS18B20都具有唯一的64位序列號,由于該溫度計(jì)采用數(shù)字輸出形式,故不需要A

34、/D轉(zhuǎn)換器。單片機(jī)主要是對溫度傳感器DS18B20進(jìn)行編程,讀取溫度傳感器的溫度值,并把溫度值通過顯示器顯示出來。</p><p>  圖3.1 系統(tǒng)設(shè)計(jì)總框圖</p><p>  3.1.2 系統(tǒng)工作原理</p><p>  采用單總線技術(shù)設(shè)計(jì)的溫度測量系統(tǒng),整個(gè)系統(tǒng)以AT89S52單片機(jī)為主機(jī),其它設(shè)備為從設(shè)備。本系統(tǒng)通過單總線可以掛接很多個(gè)智能溫度傳感器D

35、S18B20,用于不同地方的溫度測量。</p><p>  該溫度測量系統(tǒng)的工作原理就是進(jìn)行單片機(jī)編程,是智能溫度傳感器DS18B20正常工作,去測量外界環(huán)境的實(shí)際溫度,使用74LS164來驅(qū)動(dòng),并由數(shù)字顯示電路顯示當(dāng)時(shí)的溫度值。</p><p>  3.2 單片機(jī)AT89S52</p><p>  3.2.1 單片機(jī)功能特性概述</p><

36、p>  本系統(tǒng)采用AT89S52單片機(jī)作為微處理器。AT89S52是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可編程的Flash只讀程序存儲(chǔ)器,兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器既可在線編程(ISP),也可用傳統(tǒng)方法進(jìn)行編程,所以低價(jià)位AT89S52單片機(jī)可為提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,對于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機(jī)AT89S52具有低電壓供

37、電和體積小等特點(diǎn)。AT89S52提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器、128字節(jié)內(nèi)部RAM、32個(gè)I/O口線、兩個(gè)16位定時(shí)/計(jì)數(shù)器、1個(gè)5向量兩級中斷結(jié)構(gòu)、一個(gè)全雙工串行通信口、片內(nèi)振蕩器及時(shí)鐘電路,同時(shí),AT89S52可降至0Hz的靜態(tài)邏輯操作并支持兩種軟件可選的節(jié)電工作模式;空閑方式停止CPU的工作,但允許RAM、定時(shí)/計(jì)數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作;掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工

38、作一直到下個(gè)硬件復(fù)位。</p><p>  3.2.2 AT89S52引腳功能介紹</p><p>  AT89S52的引腳排列如圖3.2所示。下面簡要介紹本次設(shè)計(jì)需要用到的引腳的功能。</p><p>  圖3.2 AT89S52原理圖</p><p>  AT89S52單片機(jī)為40引腳雙列直插式封裝。</p><p

39、>  ●VCC:供電電壓。 </p><p>  ●GND:接地。 </p><p>  ●P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每個(gè)管腳可吸收8TTL門電流。當(dāng)P1口的管腳寫“1”時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為

40、數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高。</p><p>  ●P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入“1”后,電位被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收

41、。</p><p>  ●P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉的優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器

42、進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。</p><p>  ●P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能口:</p>

43、;<p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 INT0(外部中斷0)</p><p>  P3.3 INT1(外部中斷1)</p><p>  P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1

44、外部輸入)</p><p>  P3.6 WR (外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 RD (外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  ●RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ●ALE:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLAS

45、H編程期間,此引腳用于輸入編程脈沖。在平時(shí)ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  ●PSEN:外部程序存儲(chǔ)器的選通信號。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期PSEN兩次有效。但在訪問外部數(shù)

46、據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號將不出現(xiàn)。</p><p>  ●EA/VPP:當(dāng)EA保持低電平時(shí),訪問外部ROM;注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí)。</p><p>  ●XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  ●XTAL2:來自反向振蕩器的輸出。</p><p>

47、;  3.3 單片機(jī)的最小系統(tǒng)</p><p>  單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng).對51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路. 單片機(jī)最小系統(tǒng)如圖3.4所示,其中有4個(gè)雙向的8位并行I/O端口,分別記作P0、P1、P2、P3,都可用于數(shù)據(jù)的輸入和輸出,P3口具有第二功能為系統(tǒng)提供一些控制信號。時(shí)鐘電路用于產(chǎn)生C51單片機(jī)工作所必須的

48、時(shí)鐘控制信號,內(nèi)部電路在時(shí)鐘信號的控制在下,嚴(yán)格地按照時(shí)序指令工作。C51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,該高增益反向放大器的輸入端為芯片的引腳XTAL1,輸出端為XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。電路中的微調(diào)電容通常選擇為30pF,該電容的大小會(huì)影響到振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體的振蕩頻率為12MHz。</p><p>  把E

49、A腳接高電平,單片機(jī)訪問片內(nèi)程序存儲(chǔ)器,但在PC值超過0FFFH(8Kbyte地址范圍)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。</p><p>  如圖3.3是51系列單片機(jī)的最小系統(tǒng)電路圖。</p><p>  圖3.3 最小系統(tǒng)原理圖</p><p>  3.3.1 晶振電路</p><p>  單片機(jī)內(nèi)由反相放大器所構(gòu)成的時(shí)鐘振

50、蕩電路,XATL1和XATL2分別為振蕩電路的輸入端和輸出端。本系統(tǒng)采用內(nèi)部方式,XATL1和XATL2引腳上外接定時(shí)元件。采用12MHz的石英晶體和兩個(gè)30pF電容C1和C2組成的并聯(lián)諧振回路,內(nèi)部振蕩電路就產(chǎn)生自激振蕩,產(chǎn)生一定的時(shí)鐘信號送到單片機(jī)內(nèi)部的各個(gè)單元。電路中兩個(gè)電容 C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)如圖3.4是晶振電路圖。</p><p>  圖3.4 晶振

51、電路原理圖</p><p>  3.3.2 復(fù)位電路</p><p>  系統(tǒng)的復(fù)位電路如圖3.5所示,在RET輸入端出現(xiàn)高電平時(shí)實(shí)現(xiàn)復(fù)位和初始化。在振蕩器運(yùn)行的情況下,實(shí)現(xiàn)復(fù)位操作,必須使RET引腳至少保持兩個(gè)機(jī)器周期的高電平。CPU在第二個(gè)周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每一個(gè)周期重復(fù)一次,直至RET端電平變低。復(fù)位器件不產(chǎn)生ALE及PSEN信號。當(dāng)RET引腳返回低電平后,CPU從0地址

52、開始執(zhí)行程序。</p><p>  本設(shè)計(jì)采用開關(guān)復(fù)位電路,使用方便,當(dāng)開關(guān)S1按下時(shí),溫度復(fù)位。這樣就不用再重啟單片機(jī)電源就可以實(shí)現(xiàn)復(fù)位。</p><p>  圖3.5 復(fù)位電路原理圖</p><p>  3.4 測溫電路設(shè)計(jì)</p><p>  由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部元件支

53、持,且硬件電路復(fù)雜,制作成本相對較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測溫元件。DS18B20是一種改進(jìn)型智能溫度傳感器,全部傳感器件及轉(zhuǎn)換電路集成在形如三極管的集成電路中,可以滿足-55攝氏度到+125攝氏度范圍的溫度測量,且測量精確,可以在一秒內(nèi)把溫度轉(zhuǎn)化成數(shù)字,測得的溫度值儲(chǔ)存在兩個(gè)八位的RAM中,單片機(jī)可以直接從中讀出數(shù)據(jù)并且轉(zhuǎn)換成十進(jìn)制溫度值,大大提高了系統(tǒng)的抗干擾性,適合惡劣的環(huán)境的現(xiàn)場測溫。其溫度

54、檢測電路圖如圖原理中所示。</p><p>  DS18B20管腳1 GND接地,管腳2 DQ為數(shù)字信號輸入輸出端,接到AT89S52的P3.6端,管腳3GND接電源。DSl8B20數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù)指示器件的溫度信息經(jīng)過單線接口送入DSl8B20或從DSl8B20送出因此從主機(jī)CPU到DSl8B20僅需一條線(和地線)DSl8B20的電源可以由數(shù)據(jù)線本身提供而不需要外部電源因?yàn)槊恳粋€(gè)DSl8B

55、20在出廠時(shí)已經(jīng)給定了唯一的序號因此任意多個(gè)DSl8B20可以存放在同一條單線總線上這允許在許多不同的地方放置溫度敏感器件DSl8B20的測量范圍從-55到+125增量值為0.5可在1秒(典型值)內(nèi)把溫度變換成數(shù)字,每一個(gè)DSl8B20包括一個(gè)唯一的64位長的序號該序號值存放在DSl8B20內(nèi)部的ROM(只讀存貯器)中開始8位是產(chǎn)品類型編碼(DSl8B20編碼均為10H)接著的48位是每個(gè)器件唯一的序號最后8位是前面56位的CRC(循環(huán)

56、冗余校驗(yàn))碼DSl8B20中還有用于貯存測得的溫度值的兩8位存貯器RAM編號為0號和1號,1號存貯器存放溫度值的符號如果溫度為負(fù),則1號存貯器8位全為1否則全為00號存貯器用于存放溫度值的補(bǔ)碼</p><p>  圖3.6 DS18B20原理圖</p><p>  3.5 顯示電路的設(shè)計(jì)</p><p>  在本設(shè)計(jì)中我們采用動(dòng)態(tài)顯示方式驅(qū)動(dòng)LED數(shù)碼管工作,本

57、設(shè)計(jì)應(yīng)用四位一體數(shù)碼管,電路結(jié)構(gòu)簡單,并且可以實(shí)現(xiàn)單片機(jī)I/O口的并用,顯示效果直觀,明亮,調(diào)試容易,成本較低。</p><p>  3.5.1 四位一體數(shù)碼管簡介</p><p>  四位數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。能顯示4個(gè)數(shù)碼管叫四位數(shù)碼管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按發(fā)光二極管單

58、元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)

59、亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。如圖3.7為四位一體數(shù)碼管原理圖,a、b、c、d、e、f、g、h為段引腳,com1、com2、com3、com4分別代表四個(gè)數(shù)碼管的位。</p><p>  圖3.7 為四位一體數(shù)碼管原理圖</p><p>  3.5.2 四位一體數(shù)碼管共陰陽極的區(qū)分方法</p><p>  首先數(shù)碼管有共陰極和共陽極之分,區(qū)別他

60、們的方法是若公共端接地,其它端接電源,若各段測試能亮,說明是共陰的,反之共陽的;若公共端接電源,其他端分別接的,測得各端亮,則說明是共陽的,反之為共陰的。本設(shè)計(jì)采用的是四位一體共陽數(shù)碼管。</p><p>  3.5.3 四位一體數(shù)碼管的驅(qū)動(dòng)方式</p><p>  3.5.3.1 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)</p><p>  靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由

61、一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。</p><p>  3.5.3.2 動(dòng)態(tài)驅(qū)動(dòng)方式</p><p>  數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一

62、種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a、b、c、d、e、f、g、h”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端

63、,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p>  3.5.4 應(yīng)用74LS164驅(qū)動(dòng)數(shù)碼管</p><

64、;p>  74LS164是8位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過兩個(gè)輸入端(A或B)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個(gè)輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。時(shí)鐘 (CLK) 每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到 Q0,Q0是兩個(gè)數(shù)據(jù)輸入端(A和B)的邏輯與,它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長度。主復(fù)位(CLR)輸入端上的一個(gè)低電平將使其

65、它所有輸入端都無效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。如圖3.8為74LS164原理圖。</p><p>  圖3.8 74LS164原理圖</p><p>  3.6 閃光燈設(shè)計(jì)</p><p>  發(fā)光二極管正極與一個(gè)限流電阻串聯(lián),電阻另一端連接電源電壓,發(fā)光二極管負(fù)極連接單片機(jī)P1.x口,當(dāng)P1.x口為低電平時(shí)二極管導(dǎo)通發(fā)光,當(dāng)P1.x口為高

66、電平是不發(fā)光,通過程序控制P1.x為0或1來控制發(fā)光二極管的亮滅。如3.9閃光燈原理圖。</p><p>  圖3.9 閃光燈原理圖</p><p><b>  3.7 報(bào)警電路</b></p><p>  本設(shè)計(jì)采軟件處理報(bào)警,利用有源蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測溫度超過所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。(也可采用

67、發(fā)光二級管報(bào)警電路,如過需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則報(bào)警)報(bào)警電路硬件連接如圖3.10。</p><p>  圖3.10 報(bào)警原理圖</p><p>  第4章 系統(tǒng)軟件的設(shè)計(jì)</p><p>  4.1 系統(tǒng)的總體設(shè)計(jì)思路</p><p>  整個(gè)系統(tǒng)的功能

68、是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(jì)算、顯示、報(bào)警等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。在子程序設(shè)計(jì)中,要求系統(tǒng)結(jié)構(gòu)清晰,盡可能地保證單入口單出口,減少與其他程序之間的耦合,但為了提高這類滯后對象的實(shí)時(shí)性指標(biāo),可以

69、在個(gè)程序適當(dāng)?shù)牟糠诌M(jìn)行揉合。在正常執(zhí)行溫度轉(zhuǎn)換時(shí),同樣需要調(diào)用一段延時(shí),而本系統(tǒng)利用CPU執(zhí)行顯示子程序占有的時(shí)間代替這段延時(shí)??傊到y(tǒng)設(shè)計(jì)時(shí)要協(xié)調(diào)這種時(shí)間滯后,使系統(tǒng)滿足實(shí)時(shí)性要求。</p><p>  本系統(tǒng)采用AT89S52作為核心處理器件,把經(jīng)過DS18B20現(xiàn)場溫度數(shù)據(jù)存入AT89S52的內(nèi)部數(shù)據(jù)存儲(chǔ)器,判斷是否為正溫度。如果為負(fù)溫度,數(shù)碼管則直接顯示當(dāng)前溫度,如果是正溫度,那么讀取溫度值并進(jìn)行溫度值

70、的轉(zhuǎn)換,并與預(yù)先設(shè)定的溫度值進(jìn)行比較,比預(yù)先設(shè)定的溫度值大就報(bào)警,數(shù)碼管顯示當(dāng)前溫度。進(jìn)行溫度控制程序的設(shè)計(jì)應(yīng)考慮一下幾個(gè)問題:實(shí)時(shí)采集溫度,溫度顯示中采用4位LED顯示當(dāng)前溫度,超過上限溫度報(bào)警并閃光燈閃爍。</p><p>  4.2 系統(tǒng)的程序設(shè)計(jì)</p><p>  本系統(tǒng)主程序主要包括兩個(gè)子程序,分別為讀出溫度子程序,溫度數(shù)據(jù)處理子程序。 </p><p&g

71、t;  4.2.1 主程序</p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4.1所示。</p><p>  圖4.1 主程序流程圖</p><p>  4.2.2 系統(tǒng)主流程圖</p><p>  圖4.2

72、 系統(tǒng)主流程圖</p><p>  4.3 系統(tǒng)開發(fā)環(huán)境</p><p>  本系統(tǒng)開發(fā)環(huán)境使用的是KeilSoftware公司推出的uVision3是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時(shí)也是PK51及其它開發(fā)套件的一個(gè)重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進(jìn)的搜索功能外,uVision3還提供了一個(gè)配置向?qū)Чδ埽铀倭藛?dòng)代碼和配置文件的生成

73、。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號等。uVision3提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。如圖4.3是keil 開發(fā)界面圖。</p><p>  圖4.3 keil開發(fā)界面圖</p><p><b>  結(jié)論</b></p><p>  經(jīng)過了四年的學(xué)習(xí),我終于完成基于單

74、片機(jī)的測溫系統(tǒng)設(shè)計(jì)的論文。從開始接觸到論文題目到系統(tǒng)的實(shí)現(xiàn),再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn),這也是我在大學(xué)期間獨(dú)立完成的最大的項(xiàng)目。在這段時(shí)間里,我學(xué)到了很多知識也有很多感受,由于自己本來就運(yùn)用過DXP等相關(guān)軟件進(jìn)行過課程設(shè)計(jì),所以只要搞清楚了測溫的需求和構(gòu)成,畫出電路圖便輕車熟路。于是我便開始了獨(dú)立的學(xué)習(xí)和試驗(yàn),查看相關(guān)的資料和書籍,找到一些書中單片機(jī)測溫度的實(shí)例進(jìn)行參考,使自己非常稚嫩作品一步一步完善起來,每

75、一次改進(jìn)都是我學(xué)習(xí)的收獲,每一次試驗(yàn)的成功都會(huì)讓我興奮好一段時(shí)間。從中我也充分認(rèn)識到了電子產(chǎn)品給我們生活帶來的樂趣。</p><p>  我很珍惜這次的機(jī)會(huì),用心的去完成每個(gè)步驟,努力去達(dá)到所要得到的理想效果,作品完成了,我感覺到自己從課本上學(xué)到的理論知識和實(shí)踐仍有很大的差別,很多元器件根本不知道有什么功效。有的知識,自己感覺已經(jīng)掌握得差不多了,但是實(shí)際操作起來就有問題出現(xiàn)了。我遇到了不少問題,花費(fèi)了很多的時(shí)間。

76、這讓我重新反思我們的學(xué)習(xí),深刻領(lǐng)悟到我們這個(gè)專業(yè)動(dòng)手,實(shí)踐的重要性。我們各方面的能力都上了一層,包括焊接、編程、畫圖等等。這些課程能促進(jìn)我的進(jìn)步,能夠使我對學(xué)習(xí)本專業(yè)增加信心,鍛煉了我們各方面的能力。這次的課程設(shè)計(jì),讓我學(xué)到了很多書本上學(xué)不到的東西,學(xué)到了實(shí)際應(yīng)用時(shí),是取用成本的最小化,做設(shè)計(jì)不僅要考慮大的方面,小的方面也必須做到。</p><p><b>  參考文獻(xiàn)</b></p&

77、gt;<p>  [1] 丁元杰.單片微機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003.</p><p>  [2] 沈德金,陳粵初.單片機(jī)接口電路與應(yīng)用程序?qū)嵗跰]. 北京:北京航天航空大學(xué)出版社,1990. </p><p>  [3] 馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2003. </p><p>  

78、[4] 高峰.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:科學(xué)出版社,2003. </p><p>  [5] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994.</p><p>  [6] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版)[M]. 北京:高等教育出版社,1989.</p><p>  [7] 陳麗芳.單片機(jī)原理與控制技術(shù)[M].江蘇:東南大學(xué)出版社,20

79、03.</p><p>  [8] 黃宇飛,吳江.單片機(jī)單總線技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001,12(1):32-36. </p><p>  [9] 胡振宇,劉魯源,杜振輝.DS18B20接口的C語言程序設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002,51(3):43-47.</p><p>  [10] 趙娜,趙剛,于珍珠.基于51單片機(jī)的溫度測量系統(tǒng)

80、[J].微計(jì)算機(jī)信息,2007,1(2):146-148.</p><p>  [11] Katsuhiko Ogata.Moden Control Engineering[M].Publishing house of electronics industry,2000.</p><p>  [12] G Jiang M Zhang, X Xie, S Li.Application on

81、temperature control of DS18B20[J].Control Engineering of China, 2003.</p><p><b>  附錄</b></p><p><b>  設(shè)計(jì)原理圖</b></p><p><b>  設(shè)計(jì)編程</b></p>&l

82、t;p>  #include<AT89X52.h></p><p>  #include "intrins.h" </p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  unsigne

83、d char SZ[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  uchar data temp_data[2]={0x00,0x00};</p><p>  uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; </p><p>  u

84、char aa,bb,i,j;</p><p>  sbit D1=P1^0;sbit D2=P1^1;</p><p>  sbit D3=P1^2;sbit D4=P1^3;</p><p>  sbit D5=P1^4;sbit D6=P1^5;</p><p>  sbit D7=P1^6;sbit D8=P1^7;</p>

85、;<p>  sbit CLK=P2^0;sbit AB=P2^1;</p><p>  sbit COM1=P2^2;sbit COM2=P2^3;</p><p>  sbit COM3=P2^4;sbit COM4=P2^5;</p><p>  sbit sound=P3^1; sbit DQ=P3^6;

86、 </p><p>  void delay1()</p><p><b>  {</b></p><p>  unsigned char i,j,k;</p><p>  for(i=1;i>0;i--)</p><p>  for(j=10;j>0;j--)</p>

87、<p>  for(k=240;k>0;k--);</p><p><b>  }</b></p><p>  void delayms(uint xms)</p><p><b>  {</b></p><p><b>  uint i,j;</b></

88、p><p>  for(i=xms;i>0;i--){</p><p>  for(j=110;j>0;j--) {</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></

89、p><p>  void senddata(unsigned char num)</p><p><b>  {</b></p><p>  unsigned char c;</p><p>  for(c=0;c<8;c++)</p><p><b>  {</b>&

90、lt;/p><p><b>  CLK=0;</b></p><p>  AB=num&0x01;</p><p><b>  num>>=1;</b></p><p><b>  CLK=1;</b></p><p><b>

91、  } </b></p><p><b>  }</b></p><p>  void delay(uint t)</p><p><b>  {</b></p><p>  for (;t>0;t--);</p><p><b>  }</

92、b></p><p>  void ow_reset(void)</p><p><b>  {</b></p><p>  char presence=1;</p><p>  while(presence)</p><p><b>  {</b></p>

93、<p>  while(presence)</p><p><b>  {</b></p><p>  DQ=1;_nop_();_nop_();//從高拉倒低</p><p>  DQ=0; </p><p>  delay(55

94、); //550 us</p><p>  DQ=1; </p><p>  delay(7); //66 us</p><p>  presence=DQ; //presence=0 復(fù)位成功,繼續(xù)下一步</p>&

95、lt;p><b>  } </b></p><p>  delay(50); //延時(shí)500 us</p><p>  presence=~DQ; </p><p><b>  }</b></p><p>  DQ=1;

96、 //拉高電平</p><p><b>  }</b></p><p><b>  //</b></p><p><b>  //</b></p><p>  /****************DS18B20寫命令函數(shù)************************/</

97、p><p>  //向1-WIRE 總線上寫1個(gè)字節(jié)</p><p>  void write_byte(uchar val)</p><p><b>  { </b></p><p><b>  uchar i;</b></p><p>  for(i=8;i>0;i--

98、)</p><p><b>  {</b></p><p>  DQ=1;_nop_();_nop_(); //從高拉倒低</p><p>  DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us</p><p>  DQ=val&0x01;

99、 //最低位移出</p><p>  delay(7); //66 us</p><p>  val=val/2; //右移1位</p><p><b>  }</b></p

100、><p><b>  DQ=1;</b></p><p><b>  delay(1);</b></p><p><b>  }</b></p><p><b>  //</b></p><p>  /****************D

101、S18B20讀1字節(jié)函數(shù)************************/</p><p>  //從總線上取1個(gè)字節(jié)</p><p>  uchar read_byte(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p>

102、<p>  uchar value=0;</p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  DQ=1;_nop_();_nop_();</p><p>  value>>=1;</p><p>  DQ=0

103、;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p>  DQ=1;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p>  if(DQ)value|=0x80;</p><p>  delay(7);

104、 //66 us</p><p><b>  }</b></p><p><b>  DQ=1;</b></p><p>  return(value);</p><p><b>  }</b></p><p><b>

105、  //</b></p><p>  /****************讀出溫度函數(shù)************************/</p><p><b>  //</b></p><p>  void read_temp()</p><p>  { int x,y;</p><p&

106、gt;  unsigned char g,s,first,second; </p><p>  ow_reset(); //總線復(fù)位</p><p>  delay(20);</p><p>  write_byte(0xcc); //發(fā)命令</p><p>  write_byte(

107、0x44); //發(fā)轉(zhuǎn)換命令</p><p>  ow_reset(); </p><p><b>  delay(1);</b></p><p>  write_byte(0xcc); //發(fā)命令</p><p>  write_byte(0xbe);</p>

108、<p>  temp_data[0]=read_byte(); //讀溫度值的第字節(jié)</p><p>  temp_data[1]=read_byte(); //讀溫度值的高字節(jié)</p><p>  /*if(temp_data[0]>5&&temp_data[1]>2){</p><p><b>  so

109、und=0;</b></p><p><b>  }*/</b></p><p>  display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ;</p><p>  g=display[4]%10;</p><

110、;p>  s=display[4]/10;</p><p>  first=SZ[g];</p><p>  second=SZ[s];</p><p><b>  x=s*10+g;</b></p><p>  if(x>=30){</p><p><b>  aa=0xf

111、e;</b></p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p><b>  P1=aa;</b></p><p>  aa=_crol_(aa,1);</p><p>  delayms(8);&l

112、t;/p><p><b>  sound =0;</b></p><p>  delayms(8);</p><p><b>  sound=1;</b></p><p>  for(y=0;y<5;y++)</p><p><b>  {</b>&l

113、t;/p><p><b>  COM1=0;</b></p><p><b>  COM2=1;</b></p><p>  senddata(first);</p><p>  delay1();</p><p><b>  COM1=1;</b>&l

114、t;/p><p><b>  COM2=0;</b></p><p>  senddata(second);</p><p><b>  delay1();</b></p><p><b>  }</b></p><p><b>  }</

115、b></p><p>  }else if(x<35){</p><p>  /* bb=0xef;</p><p>  for(j=0;j<8;j++)</p><p><b>  {</b></p><p><b>  P1=bb;</b></p

116、><p>  bb=_cror_(bb,1);</p><p>  delayms(8);</p><p>  //sound =0;</p><p>  delayms(8);</p><p>  sound=1; */</p><p><b>  P1=0Xff;</b>&

117、lt;/p><p>  for(y=0;y<5;y++)</p><p><b>  {</b></p><p><b>  COM1=0;</b></p><p><b>  COM2=1;</b></p><p>  senddata(first

118、);</p><p>  delay1();</p><p><b>  COM1=1;</b></p><p><b>  COM2=0;</b></p><p>  senddata(second);</p><p>  delay1();</p>&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論