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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  四位數(shù)數(shù)字溫度計(jì)的設(shè)計(jì)</p><p><b>  作者姓名:</b></p><p>  專業(yè)名稱:電氣工程及其自動(dòng)化</p><p>  指導(dǎo)教師: 講師</p><p><b>  摘要</b></p><p>  在這個(gè)信息化高速發(fā)展的

2、時(shí)代,單片機(jī)作為一種最經(jīng)典的微控制器,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),作為電氣工程及其自動(dòng)化專業(yè)的學(xué)生,我們學(xué)習(xí)了單片機(jī),就應(yīng)該把它熟練應(yīng)用到生活之中來。</p><p>  溫度計(jì),是測(cè)溫儀器的總稱,可以準(zhǔn)確的判斷和測(cè)量溫度。溫度計(jì)現(xiàn)在廣泛應(yīng)用于醫(yī)療、科研、制造、生活等各個(gè)方面,要求也越來越高。一般的老式的溫度計(jì)是利用液體、氣體受溫度的影響而熱脹冷縮等的現(xiàn)象為設(shè)計(jì)

3、的依據(jù)。但是這種溫度計(jì)的精度和準(zhǔn)確性卻不一定很好。</p><p>  而隨著科學(xué)技術(shù)的發(fā)展,現(xiàn)在又推出了一些新式的電阻溫度計(jì)、溫差電偶溫度計(jì)、輻射溫度計(jì)和光測(cè)溫度計(jì)、雙金屬溫度計(jì)等,它們則是依據(jù)熱敏電阻、電磁輻射等的影響設(shè)計(jì)的,應(yīng)用領(lǐng)域更廣,性能更好。而溫度計(jì)的發(fā)展趨勢(shì)就是精度越來越準(zhǔn)確,使用越來越方便,范圍越來越廣等。所以我們應(yīng)該把一些現(xiàn)行的比較先進(jìn)的技術(shù)應(yīng)用于溫度計(jì)的設(shè)計(jì)和制造。</p>&l

4、t;p>  本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。本文設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。但是此溫度計(jì)也有著測(cè)溫范圍有限制,測(cè)溫精度會(huì)因?yàn)闇囟葌鞲衅鞯牟煌兴绊?,不過用于一般的生活、工作等是可以勝任的。</p><p>  關(guān)鍵詞: 數(shù)字控制 溫度傳感器 單片機(jī) 數(shù)字

5、顯示 報(bào)警溫度</p><p><b>  Abstract</b></p><p>  In this information age, the high-speed development of the microcontroller as one of the most classic micro controller, microcontroller tec

6、hnology has spread to our life, work, research, each domain, has become a more mature technology, as electrical engineering and automation specialized student, we studied the microcontroller, you should do it skilled app

7、lication to life.</p><p>  The thermometer, is the floorboard of temperature measurement instrument, can accurate judgment and measure temperatures. The thermometer now widely used in medical treatment, scie

8、ntific research, manufacturing, life, and other aspects, demand more and more is also high. General old-fashioned thermometer is by using liquid, gas and heat bilges cold shrink the influence of the temperature of the ph

9、enomenon such as the basis for design. But this thermometer precision and accuracy is not necessaril</p><p>  But with the development of science and technology, now again launched some new resistance thermo

10、meters, temperature electric dipoles thermometer, thermometer and light measurement thermometer, two-metal thermometer, etc., which is based on thermistors and electromagnetic radiation effect of design, application fiel

11、d better performance and more. And the development trend of the thermometer is more accurate, use precision more and more convenient, more widely, etc. So we should put some current o</p><p>  This paper wil

12、l introduce a kind of digital thermometer based on single-chip microcomputer control, the thermometer belongs to the multifunctional thermometer, can install fluctuation alarm, when the temperature is not setting tempera

13、ture range, can report to the police. This paper designed digital thermometer readings is convenient, with wide range of temperature, temperature measurement precision, the digital display characteristics, wide applicati

14、on scope. But this thermometer also has a temp</p><p>  Keywords: digital control,temperature sensor,microcontroller,</p><p>  digital display,alarming temperature</p><p><b> 

15、 目錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p><b>  目錄IV</b></p><p><b>  前言1</b></p><p><b>  1

16、單片機(jī)簡(jiǎn)介2</b></p><p>  1.1 主要性能4</p><p>  1.2 引腳說明5</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計(jì)9</p><p>  2.1 數(shù)字溫度計(jì)設(shè)計(jì)方案論證9</p><p>  2.2 總體設(shè)計(jì)框圖10</p><p>  

17、2.2.1 主控制器11</p><p>  2.2.2 顯示電路11</p><p>  2.2.3 溫度傳感器12</p><p>  2.3 DS18B20溫度傳感器與單片機(jī)的接口電路17</p><p>  2.4 系統(tǒng)整體硬件電路設(shè)計(jì)18</p><p>  2.4.1 主板電路18</p&

18、gt;<p>  2.4.2 顯示電路19</p><p>  3 系統(tǒng)軟件設(shè)計(jì)20</p><p>  3.1 初始化程序20</p><p>  3.2 讀出溫度子程序22</p><p>  3.3 讀、寫時(shí)序子程序23</p><p>  3.4 溫度處理子程序26</p>

19、<p>  3.5 顯示程序28</p><p>  3.6 延時(shí)程序29</p><p><b>  總結(jié)30</b></p><p><b>  致謝31</b></p><p><b>  參考文獻(xiàn)32</b></p><p&g

20、t;  附件1 源程序代碼33</p><p>  附件2 整體原理圖39</p><p><b>  前言</b></p><p>  隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方

21、便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>  本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,可廣泛用于食品庫(kù)、冷庫(kù)、糧庫(kù)、溫室大棚等需要控制溫度的地方。目前,該產(chǎn)品已在溫控系統(tǒng)中得到廣泛的應(yīng)用。</p><p>  本系統(tǒng)是一個(gè)基于單片

22、機(jī)AT89S52的數(shù)字溫度計(jì)的設(shè)計(jì),用來測(cè)量環(huán)境溫度,測(cè)量范圍為-50℃—110℃度。整個(gè)設(shè)計(jì)系統(tǒng)分為4部分:?jiǎn)纹瑱C(jī)控制、溫度傳感器、數(shù)碼顯示以及鍵盤控制電路。整個(gè)設(shè)計(jì)是以AT89S52為核心,通過數(shù)字溫度傳感器DS18B20來實(shí)現(xiàn)環(huán)境溫度的采集和A/D轉(zhuǎn)換,同時(shí)因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機(jī)進(jìn)行數(shù)據(jù)處理,但同時(shí)也對(duì)編程提出了更高的要求。單片機(jī)把采集到的溫度進(jìn)行相應(yīng)的轉(zhuǎn)換后,使之能夠方便地在數(shù)碼管上輸出。LED采用四

23、位一體共陰的數(shù)碼管。</p><p>  此設(shè)計(jì)的重點(diǎn)在于編程,程序要實(shí)現(xiàn)溫度的采集、轉(zhuǎn)換、顯示和上下限溫度報(bào)警,其外圍電路所用器件較少,相對(duì)簡(jiǎn)單,實(shí)現(xiàn)容易。</p><p><b>  1 單片機(jī)簡(jiǎn)介</b></p><p>  單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫M

24、CU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 </p><p>  早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹?jiǎn)單可

25、靠而性能不錯(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提

26、高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端[1]的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。 </p><p>  

27、單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)。現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計(jì)算的總和,甚至比人類的

28、數(shù)量還要多。 </p><p>  單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 </p><p>  單片機(jī)內(nèi)部也用和電腦

29、功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。 </p><p>  它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控

30、制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。 </p><p>  單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是

31、如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!</p><p>  而本設(shè)計(jì)使用的單片機(jī)則是屬于51系列單片機(jī)中的AT89S52,下面是它的一些簡(jiǎn)介。</p><p><b>  1.1 主要性能</b></p><p>  首先,我先介紹一些AT89S5

32、2芯片的主要性能:</p><p>  與MCS-51單片機(jī)產(chǎn)品兼容; </p><p>  8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器; </p><p>  1000次擦寫周期; </p><p>  全靜態(tài)操作:0Hz-33MHz; </p><p>  三級(jí)加密程序存儲(chǔ)器; </p><p>

33、  32個(gè)可編程I/O口線; </p><p>  三個(gè)16位定時(shí)器/計(jì)數(shù)器; </p><p><b>  六個(gè)中斷源; </b></p><p>  全雙工UART串行通道; </p><p>  低功耗空閑和掉電模式; </p><p>  掉電后中斷可喚醒; </p><

34、;p><b>  看門狗定時(shí)器; </b></p><p><b>  雙數(shù)據(jù)指針; </b></p><p><b>  掉電標(biāo)識(shí)符。</b></p><p><b>  1.2 引腳說明</b></p><p>  AT89S52 是一種低功耗、

35、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程 </p><p>  圖1.1 AT89S52引腳圖 DIP封裝</p><p>  Flash 存儲(chǔ)器。使用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT8

36、9S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作

37、。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 </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é)

38、;在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(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)。 </p><p>  此外,P1.0和P1.

39、1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 </p><p><b>  引腳號(hào)第二功能: </b></p><p>  P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 </p><p>  P1.1 T2EX

40、(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制) </p><p>  P1.5 MOSI(在系統(tǒng)編程用) </p><p>  P1.6 MISO(在系統(tǒng)編程用) </p><p>  P1.7 SCK(在系統(tǒng)編程用) </p><p>  P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)

41、TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(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編程和校

42、驗(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ì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程

43、和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p>  端口引腳 第二功能:</p><p>  P3.0 RXD(串行輸入口) </p><p>  P3.1 TXD(串行輸出口) </p><p>  P3.2 INTO(外中斷0) </p><p>  P3.3 INT1(外中斷1) </p>&

44、lt;p>  P3.4 TO(定時(shí)/計(jì)數(shù)器0) </p><p>  P3.5 T1(定時(shí)/計(jì)數(shù)器1) </p><p>  P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) </p><p>  P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p>  此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。 </p>

45、<p>  RST:復(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存

46、儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(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í)

47、,每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(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í),該引腳加上+

48、12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。 </p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 </p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p>  2.1 數(shù)字溫度計(jì)設(shè)計(jì)方案論證</p>&l

49、t;p>  由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,

50、就可以滿足設(shè)計(jì)要求。</p><p>  2.2 總體設(shè)計(jì)框圖</p><p>  溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2.1所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用4位共陰LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。</p><p>  圖2.1 總體設(shè)計(jì)框圖</p><p>  2.2.1 主控制器</p&g

51、t;<p>  單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。</p><p>  AT89S52單片機(jī)芯片具有以下特性:</p><p>  1)指令集合芯片引腳與Intel公司的8052兼容;</p><p>  2)4KB片內(nèi)在系統(tǒng)可編程FLASH程序存儲(chǔ)器;<

52、;/p><p>  3)時(shí)鐘頻率為0~33MHZ;</p><p>  4)128字節(jié)片內(nèi)隨機(jī)讀寫存儲(chǔ)器(RAM);</p><p>  5)6個(gè)中斷源,2級(jí)優(yōu)先級(jí);</p><p>  6)2個(gè)16位定時(shí)/記數(shù)器;</p><p>  7)全雙工串行通信接口;</p><p><b> 

53、 8)監(jiān)視定時(shí)器;</b></p><p><b>  9)兩個(gè)數(shù)據(jù)指針;</b></p><p>  2.2.2 顯示電路</p><p>  顯示電路采用4位共陰LED數(shù)碼管,從P0口輸出段碼,P2.0—P2.3作片選端。但在焊電路板的時(shí)候發(fā)現(xiàn)數(shù)碼管亮度不夠,所以在P2.0—P2.3端口接四個(gè)10K的電阻和四個(gè)NPN的三極管,以

54、使數(shù)碼管高亮顯示。</p><p>  2.2.3 溫度傳感器</p><p>  DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:</p><p>  ●獨(dú)特的單線接口僅需要一個(gè)端口

55、引腳進(jìn)行通信,無須經(jīng)過其它變換電路;</p><p>  ●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p>  ●內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器ROM;</p><p>  ●可通過數(shù)據(jù)線供電,內(nèi)含寄生電源,電壓范圍為3.0~5.5V;</p><p><b>  ●零待機(jī)功耗;</b>

56、</p><p>  ●溫度以9或12位數(shù)字;</p><p>  ●用戶可定義報(bào)警設(shè)置; </p><p>  ●報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;</p><p>  ●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;</p><p>  ●測(cè)溫范圍為-55℃~+12

57、5℃,測(cè)量分辨率為0.0625℃①采用單總線專用技術(shù)。</p><p>  DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2.2所示。</p><p>  圖2.2 DS18B20內(nèi)部結(jié)構(gòu)</p><p>  64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多

58、個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入用戶報(bào)警上下限。</p><p>  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如表2.1所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫

59、度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如表2.1所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。</p><p>  表2.1 DS18B20字節(jié)定義</p><p>  由下面表2.2可見

60、,DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。</p><p>  表2.2 DS18B20溫度轉(zhuǎn)換時(shí)間表:</p><p>  高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p&

61、gt;  當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p>  當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再

62、計(jì)算十進(jìn)制數(shù)值。表2.3是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。</p><p>  DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。</p><p>  在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)

63、。主機(jī)ROM的前56位來計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。</p><p>  DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振

64、蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p>  減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)

65、晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。</p><p>  表2.3 一部分溫度對(duì)應(yīng)值表:</p><p>  2.3 DS18B20溫度傳感器與單片機(jī)的接口電路</p><p>

66、  圖2.3 DS18B20與單片機(jī)的接口電路</p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖2.3所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉,多個(gè)DS18B20可以將2口串接到一條總線上,而本設(shè)計(jì)只用了一個(gè)DS1

67、8B20。</p><p>  當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  2.4 系統(tǒng)整體硬件電路設(shè)計(jì)</p><p>  2.4.1 主板電路</p><p>  系統(tǒng)整體

68、硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等,單片機(jī)主板電路如圖2.4 所示:</p><p>  圖2.4 單片機(jī)主板電路</p><p>  圖2.4中包括時(shí)鐘振蕩電路和按鍵復(fù)位電路,按鍵復(fù)位電路是上電復(fù)位加手動(dòng)復(fù)位,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。另外擴(kuò)展電路中,蜂鳴器可以在被測(cè)溫度不在上下

69、限范圍內(nèi)時(shí),發(fā)出報(bào)警鳴叫聲音,同時(shí)LED數(shù)碼管將沒有被測(cè)溫度值顯示,這時(shí)可以調(diào)整報(bào)警上下限,從而測(cè)出被測(cè)的溫度值。</p><p>  2.4.2 顯示電路</p><p>  顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源比較少,只用P0和P3口,串口的發(fā)送和接收,采用4位共陰LED數(shù)碼管,從P0口輸出段碼,P2.0—P2.3作片選端。但在焊電路板的時(shí)候發(fā)現(xiàn)數(shù)碼管亮度不夠,所

70、以在P2.0—P2.3端口接四個(gè)10K的電阻和四個(gè)NPN的三極管,期望增加驅(qū)動(dòng)電流,以使數(shù)碼管高亮顯示。</p><p>  圖2.5 溫度顯示電路</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p><p>  系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。</p>

71、<p><b>  3.1 初始化程序</b></p><p>  圖3.1 初始化程序</p><p><b>  、</b></p><p>  圖3.2 初始化程序流程圖</p><p>  3.2 讀出溫度子程序</p><p>  讀出溫度子程序的主要功

72、能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.3示</p><p>  圖3.3讀溫度程序流程圖</p><p>  3.3 讀、寫時(shí)序子程序</p><p>  讀寫的程序是本次設(shè)計(jì)中的重點(diǎn)和難點(diǎn),通過我們對(duì)其時(shí)序的分析,從而寫出高效的程序。</p><p>

73、;  圖3.4 寫1,0時(shí)序</p><p>  圖3.5 讀0,1時(shí)序</p><p>  圖3.6 寫時(shí)序子程序流程圖 圖3.7 讀時(shí)序子程序</p><p><b>  流程圖</b></p><p>  3.4 溫度處理子程序</p><p> 

74、 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.8所示。</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y<

75、/b></p><p>  圖3.8 溫度處理程序流程圖</p><p><b>  3.5 顯示程序</b></p><p>  此函數(shù)實(shí)現(xiàn)的對(duì)數(shù)碼管顯示的處理,其亮點(diǎn)在于可以直接對(duì)數(shù)碼管進(jìn)行操作,其本身是個(gè)兩變量函數(shù),第一個(gè)變量是要開通的位選,第二個(gè)變量是要顯示的數(shù)據(jù),這樣我們可以直接方便而又簡(jiǎn)單直觀的對(duì)數(shù)碼管進(jìn)行操作。程序流程圖如圖

76、3.9。</p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖3.9 顯示數(shù)據(jù)刷新流程圖</p><p><b>  3.6 延時(shí)程序</b></p><p>  延時(shí)程序主要分為短延時(shí)和長(zhǎng)延時(shí),短延時(shí)如

77、果要求十分的精確可以采用定時(shí)器,如果要求不太高的話可以采用普通函數(shù)的疊加,可以近似時(shí)間的延時(shí)。長(zhǎng)延時(shí)同樣的道理,不過要求不是很精確的話,可以采取語言結(jié)構(gòu)的循環(huán)來實(shí)現(xiàn)延時(shí)。具體程序如下:</p><p>  近乎精確的短延時(shí),采用標(biāo)準(zhǔn)庫(kù)里的_nop_()函數(shù),此函數(shù)一個(gè)延時(shí)為22微秒左右;</p><p>  void delay15(uint n)</p><p>

78、<b>  { </b></p><p><b>  do</b></p><p><b>  {</b></p><p>  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p>  _nop_();

79、_nop_();_nop_();_nop_();_nop_();_nop_();</p><p><b>  n--;</b></p><p><b>  }</b></p><p><b>  while(n);</b></p><p><b>  }</b&

80、gt;</p><p>  //長(zhǎng)延時(shí),用于不太嚴(yán)格的延時(shí)</p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)&l

81、t;/p><p>  for(y=50;y>0;y--);</p><p><b>  }</b></p><p>  表3.1 delay15()延時(shí)函數(shù)的取值采樣:</p><p><b>  總結(jié)</b></p><p>  終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然沒有

82、完全達(dá)到設(shè)計(jì)要求,但從心底里說,還是高興的,畢竟這次設(shè)計(jì)傾注了汪老師和我太多的心血。</p><p>  在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,以前寫的那幾次,數(shù)據(jù)加減時(shí),我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)

83、直接加減,顯示處理時(shí)在用對(duì)不同的位,求商或求余,感覺效果比較好。還有時(shí)序的問題,通過這次的設(shè)計(jì)我明白了時(shí)序才真正是數(shù)字芯片的靈魂,所有的程序我們都可以通過對(duì)其時(shí)序的理解來實(shí)現(xiàn)對(duì)其操作,同時(shí)體會(huì)到了單總線結(jié)構(gòu)的魅力。</p><p>  從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這

84、次課程設(shè)計(jì)中的最大收獲。</p><p>  而且在本次設(shè)計(jì)的過程中,自己去查詢資料,以及對(duì)資料的整理,與老師的探討都使我受益匪淺。在查找資料的過程中讓我懂得了自己一個(gè)人時(shí)如何去學(xué)習(xí),如何去篩選其中最有用的一部分。而與汪老師的交流探討中,我則學(xué)會(huì)了如何去與人合作完成一件事,這對(duì)我在以后的工作中與其他人合作奠定了基礎(chǔ)。同時(shí)也在汪老師的指導(dǎo)和幫助下了解了與人合作的優(yōu)勢(shì)。人都是群居動(dòng)物,在以后的工作與生活中一定會(huì)需要?jiǎng)e

85、人的合作,而這次畢業(yè)設(shè)計(jì)則是一個(gè)預(yù)演。相信通過此次畢業(yè)設(shè)計(jì),今后我一定會(huì)做得跟好。</p><p><b>  致謝</b></p><p>  非常感謝某某老師在我大學(xué)的最后學(xué)習(xí)階段——畢業(yè)設(shè)計(jì)階段給我的指導(dǎo)。從最初的定題,到資料收集,到寫作、修改,到論文定稿,某某老師給了我耐心的指導(dǎo)和無私的幫助。在此,我向某某老師表示我誠(chéng)摯的謝意。同時(shí),感謝所有的任課老師和所有的

86、同學(xué)在這四年來給我的指導(dǎo)和幫助,是你們教會(huì)了我專業(yè)知識(shí),如何學(xué)習(xí),如何與人相處。正是由于你們,我才能在各方面取得顯著的進(jìn)步,在此向你們表示我由衷的謝意,并祝所有老師培養(yǎng)出更多的優(yōu)秀人才,桃李滿天下!</p><p>  通過這一階段的努力,我的畢業(yè)論文《四位數(shù)數(shù)字溫度表的設(shè)計(jì)》終于完成了,這意味著我的大學(xué)生活即將結(jié)束。在大學(xué)階段,我在學(xué)習(xí)上和思想上都收益非淺,這除了自身的努力外,與各位老師、同學(xué)和朋友、親人們的關(guān)

87、心、支持和鼓勵(lì)是分不開的。</p><p>  在本論文的寫作過程中,我的導(dǎo)師某某老師傾注了大量的心血,從寫作提綱,到一遍又一遍的指出每稿中的問題,嚴(yán)格把關(guān),循循善誘,在此我表示衷心的感謝。同時(shí)我還要感謝在我學(xué)習(xí)期間給我極大關(guān)心和支持的各位老師、同學(xué)、朋友和親人們。</p><p>  寫畢業(yè)論文是一次在學(xué)習(xí)的過程,畢業(yè)論文的完成同樣也意味著新的學(xué)習(xí)生活的開始。我將銘記我曾是一名電氣學(xué)子,

88、在今后的工作中把學(xué)校的優(yōu)良傳統(tǒng)發(fā)揚(yáng)光大。</p><p><b>  參考文獻(xiàn)</b></p><p>  DS18B20數(shù)據(jù)手冊(cè)[M].</p><p>  求是科技編著8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)北京[M]: 人民郵電出版社, 2006.</p><p>  余發(fā)山, 王福忠. 單片機(jī)原理及應(yīng)用技

89、術(shù)[M]. 中國(guó)礦業(yè)大學(xué)出版社, 2003.</p><p>  趙巧娥, 魏文. AT89C2051單片機(jī)的LED數(shù)顯接口技術(shù)[J]. 電力學(xué)報(bào), 2000.</p><p>  夏林甫. 小型非接觸式數(shù)字溫度計(jì)[M]. 電子元件與材料, 1988.</p><p>  薛振東.  一種新型實(shí)用數(shù)字溫度計(jì)的設(shè)計(jì)與制作[J]. 電子儀器儀表用戶,

90、 1997.</p><p>  陳思, 基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)[J]. 信息與電腦(理論版), 2010.</p><p>  顧春祿, 賈姝娟, 劉茹敏. 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)[J]. 科協(xié)論壇(下半月) , 2010.</p><p>  潘洪, 一種實(shí)用多功能數(shù)字溫度計(jì)的設(shè)計(jì)[J]. 魅力中國(guó), 2010.</p><p>

91、;  劉洋, 吳雙, 趙永剛. 熱電偶溫度傳感器的研究與發(fā)展現(xiàn)狀[M]. 中國(guó)儀器儀表, 2003,11:1-3.</p><p>  周美娟, 單片機(jī)技術(shù)及系統(tǒng)設(shè)計(jì)[M]. 北京:清華大學(xué)出版社, 2007.</p><p>  王幸之, 鐘愛琴等. 《AT89系列單片機(jī)原理與接口技術(shù)》[M]. 北京:北京航空航天大學(xué)出版社, 2004.</p><p>  王美

92、玲; 付佳; 肖烜. 創(chuàng)新型實(shí)驗(yàn)項(xiàng)目——數(shù)字溫度計(jì)的設(shè)計(jì)[J]. 實(shí)驗(yàn)室研究與探索, 2010.</p><p>  周學(xué)軍. 基于AT89C2051的數(shù)字溫度計(jì)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2010.</p><p>  張志勇; 衛(wèi)勇; 單慧勇. 一種基于單片機(jī)控制的數(shù)字溫度計(jì)的設(shè)計(jì)[J]. 天津農(nóng)學(xué)院學(xué)報(bào), 2007.</p><p>  附件1 源程序代

93、碼</p><p>  #include <reg52.h></p><p>  #include<intrins.h></p><p>  #include<math.h></p><p>  #define uchar unsigned char</p><p>  #defi

94、ne uint unsigned int</p><p>  #define duaP2</p><p>  #define max36</p><p>  //#define min 0</p><p>  sbit DQ=P1^7;</p><p>  sbit din=P0^7;</p>

95、;<p>  sbit beep=P3^0;</p><p>  /*uchar tab[]={0xc0,0xf9,0xa4,0xB0,0x99,</p><p>  //"0" "1" "2" "3""4";</p><p>  0x92,0x

96、82,0xF8,0x80,0x90,0xff,0xbf,0xc6}; //共陽(yáng); </p><p>  // "5" "6""7""8""9" "滅""-" 'c' */</p><p>  uchar

97、tab[]={0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x00,0x40}; </p><p>  uchar tab2[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,</p><p>  0

98、x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};</p><p>  uchar d1,d2,ht,bai,b,shi,ge;</p><p><b>  uint tem;</b></p><p>  //近乎精確的短延時(shí),采用標(biāo)準(zhǔn)庫(kù)里的_nop_()函數(shù),此函數(shù)一個(gè)延時(shí)為22微秒左右;</p>

99、<p>  void delay15(uint n)</p><p><b>  { </b></p><p><b>  do</b></p><p><b>  {</b></p><p>  _nop_();_nop_();_nop_();_nop_();_n

100、op_();_nop_();_nop_();</p><p>  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p><b>  n--;</b></p><p><b>  }</b></p><p><b>  while(

101、n);</b></p><p><b>  }</b></p><p>  //長(zhǎng)延時(shí),用于不太嚴(yán)格的延時(shí)</p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;&

102、lt;/b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=50;y>0;y--);</p><p><b>  }</b></p><p><b>  //初始化函數(shù)</b></p><p>  void init(

103、)</p><p><b>  {</b></p><p>  uchar x=1;</p><p><b>  while(x)</b></p><p><b>  {</b></p><p><b>  DQ=1;</b><

104、;/p><p><b>  _nop_();</b></p><p><b>  DQ=0;</b></p><p>  delay15(23); //最小480us;</p><p><b>  DQ=1;</b></p><p>  delay15(2)

105、;//存在檢測(cè)高電平最小15us; </p><p><b>  x=DQ;</b></p><p>  delay15(22);// 存在檢測(cè)低電平最小240us;</p><p><b>  x=~DQ;</b></p><p><b>  }</b></p&g

106、t;<p><b>  DQ=1; </b></p><p><b>  }</b></p><p>  void write(uchar dat)</p><p><b>  {</b></p><p><b>  uchar i;</b>

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

108、;</p><p>  DQ=dat&0x01;</p><p>  _nop_();_nop_();_nop_();_nop_();_nop_();</p><p>  delay15(3);</p><p><b>  dat>>=1;</b></p><p><

109、;b>  }</b></p><p><b>  DQ=1;</b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p><b>  //讀一個(gè)字節(jié);</b></p>

110、<p><b>  read()</b></p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  uchar dat=0;</p><p>  for(i=8;i>0;i--)</p>&

111、lt;p><b>  {</b></p><p><b>  DQ=1;</b></p><p><b>  dat>>=1;</b></p><p><b>  _nop_();</b></p><p><b>  DQ=0;

112、</b></p><p>  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p>  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//十五微秒不變;</p><p><b>  DQ=1;</b

113、></p><p>  _nop_();_nop_();_nop_();_nop_();</p><p><b>  if(DQ)</b></p><p>  dat|=0x80;</p><p>  delay15(3);</p><p><b>  }</b>

114、</p><p><b>  DQ=1;</b></p><p>  return(dat);</p><p><b>  } </b></p><p><b>  //讀溫度函數(shù) </b></p><p><b>  readT()</

115、b></p><p><b>  {</b></p><p><b>  init();</b></p><p>  delay15(20);</p><p>  write(0xcc);</p><p>  write(0x44);</p><p&

116、gt;  delay15(900);//yanshi20ms</p><p><b>  init();</b></p><p>  write(0xcc);</p><p>  write(0xbe);</p><p>  d1=read();</p><p>  d2=read();</

117、p><p>  ht=d2<<4; </p><p>  ht+=(d1&0xf0)>>4;</p><p><b>  }</b></p><p>  //顯示函數(shù),n,m可以實(shí)現(xiàn)對(duì)任意的管子賦值;</p><p>  //n為第幾位數(shù)碼管,m為

118、送的數(shù)值;</p><p>  void display(uchar n,uchar m)</p><p><b>  {</b></p><p>  uchar temp=0x01;//根據(jù)板子 的硬件 連接圖賦值;</p><p>  temp=_crol_(temp,n);</p><p>

119、  dua=temp; //////////////</p><p>  P0=tab[m];</p><p><b>  delay(1);</b></p><p><b>  if(n==2)</b></p><p><b>  {</b></p>&l

120、t;p>  din=1;//根據(jù)數(shù)碼管的陰陽(yáng)顯示選值;</p><p><b>  } </b></p><p>  delay15(50);</p><p>  dua=0x00;/////////////////</p><p><b>  }</b></p><p

溫馨提示

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