2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(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><b>  本科畢業(yè)設(shè)計(jì)</b></p><p><b> ?。ㄗ匀豢茖W(xué))</b></p><p>  2011年5月25日</p><p><b>  本科畢業(yè)設(shè)計(jì)</b></p><p><b>  室溫檢測(cè)系統(tǒng)的設(shè)計(jì)</b><

2、/p><p>  2011年 5月12日</p><p><b>  摘 要</b></p><p>  為了達(dá)到測(cè)量和檢測(cè)多處溫度值,就要求主系統(tǒng)連接多個(gè)溫度傳感器,由于主系統(tǒng)和配件之間連接器上的空閑引腳通常極為有限,要想在不增加連接器復(fù)雜度和成本的條件下給系統(tǒng)增加外設(shè)識(shí)別和控制功能就成為一項(xiàng)極具挑戰(zhàn)性的任務(wù)。作為擁有1-Wire的DS18B20

3、器件能夠滿足這些要求。本文介紹一種基于數(shù)字溫度傳感器DS18B20的主從分布式多路測(cè)溫系統(tǒng)、該系統(tǒng)以PC為主機(jī), 采用ATMEL公司的AT89C52單片機(jī)做從機(jī),二者之間通過MAX232通訊總線連接,數(shù)字溫度傳感器通過與單片機(jī)P3.0至P3.3分別連接,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,可應(yīng)用于倉(cāng)庫(kù)測(cè)溫、樓宇空調(diào)控制制和生產(chǎn)過程監(jiān)控等領(lǐng)域。</p><p>  關(guān)鍵詞:DS18B20;

4、數(shù)碼顯示;溫度測(cè)量。</p><p><b>  Abstract</b></p><p>  In order to achieve measurement and testing various temperature, It requires the main system linked to a number of temperature sensors, A

5、s the main system and accessories between the connector pins are usually very limited spare, not to increase the connector complexity and cost of the conditions to increase the peripheral system to identify and control h

6、as become one of the greatest challenges of task. As with 1-Wire the DS18B20 device can meet these requirements. This paper introduces a digita</p><p>  Keywords: DS18B20 ;digital display tube ;Tem

7、perature survey</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractI</p><p><b>  1 緒論1</b></p><p>  1.1 論文研

8、究意義1</p><p>  1.2溫度檢測(cè)領(lǐng)域的發(fā)展現(xiàn)狀1</p><p>  1.3本課題的主要研究?jī)?nèi)容2</p><p>  1.4本設(shè)計(jì)的結(jié)構(gòu)安排2</p><p>  2 室溫檢測(cè)系統(tǒng)原理3</p><p>  2.1 室內(nèi)溫度檢測(cè)系統(tǒng)的構(gòu)成3</p><p>  2.2硬

9、件的選擇3</p><p>  2.2.1 單片機(jī)及其管腳說明3</p><p>  2.2.2 七段數(shù)碼顯示管4</p><p>  2.2.3 溫度傳感器的選擇5</p><p>  2.2.4 MAX7219簡(jiǎn)介6</p><p>  3 電路硬件設(shè)計(jì)7</p><p>  3

10、.1溫度采集模塊的設(shè)計(jì)7</p><p>  3.2 單片機(jī)最小系統(tǒng)8</p><p>  3.3 數(shù)碼顯示模塊9</p><p>  3.4 串口通信模塊的設(shè)計(jì)9</p><p>  3.5 總原理圖9</p><p><b>  4軟件設(shè)計(jì)10</b></p>&l

11、t;p>  4.1 室溫檢測(cè)系統(tǒng)子程序介紹11</p><p>  4.1.1 單片機(jī)初始化程序11</p><p>  4.1.2 DS18B20初始化程序11</p><p>  4.1.3 DS18B20讀數(shù)據(jù)程序12</p><p>  4.1.4 DS18B20寫數(shù)據(jù)程序13</p><p>

12、  4.1.5 DS18B20讀取溫度程序14</p><p>  4.2 串口通信模塊的調(diào)試15</p><p>  4.3 VB顯示程序設(shè)計(jì)16</p><p>  5 Protues軟件仿真16</p><p>  5.1 Protues軟件介紹16</p><p>  5.2 功能特點(diǎn)16</

13、p><p>  5.3 Protues的電路仿真功能17</p><p>  5.4 溫度顯示模塊的仿真17</p><p><b>  結(jié)論18</b></p><p><b>  參考文獻(xiàn)19</b></p><p><b>  致謝19</b>

14、;</p><p><b>  附錄21</b></p><p>  1. 室溫檢測(cè)系統(tǒng)總原理圖21</p><p>  2. DS18B20溫度采集源程序22</p><p>  3.MAX7219控制數(shù)碼管顯示源程序27</p><p>  4.VB顯示程序29</p>

15、<p><b>  1 緒論 </b></p><p>  在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時(shí)無刻不在與溫度打著交道。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展對(duì)是否能掌握溫度有著絕對(duì)的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。 </p><p>  1.1

16、 論文研究意義</p><p>  溫度在人類日常生活中扮演著極其重要的角色,同時(shí)在工農(nóng)業(yè)生產(chǎn)過程中,溫度檢測(cè)具有十分重要的意義?,F(xiàn)階段溫度檢測(cè)主要是有線定點(diǎn)溫度檢測(cè),其溫度檢測(cè)原理為單片機(jī)利用溫度傳感器檢測(cè)溫度,并在數(shù)碼管或LCD 上進(jìn)行溫度顯示。由于無存儲(chǔ)功能,許多實(shí)時(shí)測(cè)量的溫度數(shù)據(jù)無法存儲(chǔ),需要人工記錄,缺少了數(shù)據(jù)存儲(chǔ)的便利性。另外,在某些環(huán)境惡劣的工業(yè)環(huán)境,以人工方式直接操作設(shè)置儀表測(cè)量溫度也不現(xiàn)實(shí),因此

17、采用多點(diǎn)布線進(jìn)行溫度檢測(cè)尤為必要。</p><p>  目前有些設(shè)計(jì)能夠?qū)崿F(xiàn)溫度采集,但功耗過高是其最大的缺點(diǎn)。在實(shí)際溫度控制過程中既要求系統(tǒng)具有穩(wěn)定性、實(shí)時(shí)性,又需要使系統(tǒng)功耗低及保證溫度的均勻性,因此設(shè)計(jì)一種低功耗的多點(diǎn)溫度檢測(cè)系統(tǒng)很有意義。本文提出一種采用低功耗單片機(jī)AT89C52 單片機(jī)實(shí)現(xiàn)的多點(diǎn)溫度測(cè)量系統(tǒng),解決了上述問題。該系統(tǒng)能實(shí)現(xiàn)對(duì)溫度智能化的檢測(cè),能夠同時(shí)進(jìn)行多點(diǎn)溫度檢測(cè),是可以實(shí)現(xiàn)遠(yuǎn)程控制的溫

18、度檢測(cè)系統(tǒng)。低功耗、實(shí)時(shí)性的溫度檢測(cè)是該設(shè)計(jì)的最大特點(diǎn)。</p><p>  1.2溫度檢測(cè)領(lǐng)域的發(fā)展現(xiàn)狀</p><p>  傳統(tǒng)的溫度檢測(cè)采取對(duì)測(cè)量點(diǎn)分區(qū)取樣的人工方法,工作量大,可靠性差。近年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展和測(cè)量技術(shù)的提高,傳統(tǒng)的人工查看溫度的方法,已逐步被電子檢測(cè)設(shè)備所取代。</p><p>  溫度檢測(cè)如今已經(jīng)廣泛應(yīng)用于人類生產(chǎn)、生活的各個(gè)領(lǐng)域,

19、如家電、汽車、材料、電力電子、工業(yè)生產(chǎn)等。在半導(dǎo)體集成電路芯片和數(shù)字技術(shù)沒有廣泛運(yùn)用的過去,實(shí)現(xiàn)對(duì)溫度的測(cè)量和監(jiān)控,只能依賴于對(duì)溫敏電子元器件的模擬物理量進(jìn)行測(cè)量,進(jìn)而轉(zhuǎn)換為直觀的測(cè)量結(jié)果。從硬件電路設(shè)計(jì)方面來說,開發(fā)起來很麻煩,費(fèi)工費(fèi)時(shí)??垢蓴_的問題也較突出。由于體積相對(duì)大一些,使用起來也不是很方便。</p><p>  目前,國(guó)際上的溫度傳感器正從模擬式向數(shù)字式、由集成化向智能化的方向飛速發(fā)展。如今,隨著數(shù)字

20、溫度傳感器的誕生,曾經(jīng)令人眼花繚亂的電路、密密麻麻焊接在一起的元器件,如今已經(jīng)被一個(gè)小小的、毫不起眼的數(shù)字傳感器 代替了。MAXIM, DALLAS(已被MAXIM收購(gòu))等世界上有實(shí)力的公司根據(jù)不同應(yīng)用領(lǐng)域的不同需求推出了多款產(chǎn)品,性能良好、價(jià)格低廉,使得我們對(duì)數(shù)字溫度傳感器有了足夠的選擇。而且在很多應(yīng)用領(lǐng)域中,基于溫度的檢測(cè)和監(jiān)控系統(tǒng)已經(jīng)不僅僅是一個(gè)獨(dú)立的系統(tǒng),更多的時(shí)候是某個(gè)更大監(jiān)控系統(tǒng)的一個(gè)組成部分。有時(shí)跟上位機(jī)相連,有時(shí)又與PC

21、機(jī)連接,甚至可能連接在互聯(lián)網(wǎng)上以實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)、控制和訪問。數(shù)字化、智能化的傳感器集采樣、A/D轉(zhuǎn)換、電平兼容、總線地址、閾值報(bào)警、數(shù)據(jù)雙向通信、接口協(xié)議眾多功能于一身,這為其廣泛應(yīng)用于不同的環(huán)境提供了便捷的條件。</p><p>  總而言之,數(shù)字化、智能化傳感器的出現(xiàn)和廣泛使用,已經(jīng)成為溫度檢測(cè)監(jiān)控系統(tǒng)的一個(gè)發(fā)展潮流和趨勢(shì)。隨著時(shí)間的流逝,這種技術(shù)將發(fā)展得更加完善,應(yīng)用前景也會(huì)更加廣闊。</p>

22、<p>  1.3本課題的主要研究?jī)?nèi)容</p><p>  本文結(jié)合室內(nèi)的環(huán)境和當(dāng)前溫度檢測(cè)的流行趨勢(shì)提出了溫度自動(dòng)檢測(cè)系統(tǒng)的設(shè)計(jì)。詳細(xì)描述了系統(tǒng)的結(jié)構(gòu)和軟、硬件設(shè)計(jì)。</p><p>  論文的主要研究?jī)?nèi)容:</p><p>  (1)溫度的檢測(cè)模塊設(shè)計(jì),四路DS18B20溫度采集的硬件和軟件的實(shí)現(xiàn)。</p><p> ?。?)溫

23、度數(shù)據(jù)的處理和軟件實(shí)現(xiàn)。</p><p>  (3)溫度的顯示模塊硬件與軟件的實(shí)現(xiàn)。</p><p> ?。?)溫度值在上位機(jī)上顯示的實(shí)現(xiàn)。</p><p> ?。?)溫度顯示模塊的仿真。</p><p>  本文研究的溫度檢測(cè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,連接方便,各個(gè)模塊分工明確,便于室內(nèi)等場(chǎng)合的溫度檢測(cè),也可以很方便的擴(kuò)展為大規(guī)模的溫度檢測(cè)系統(tǒng),或者做

24、為一個(gè)大型系統(tǒng)的一個(gè)小模塊來使用。</p><p>  1.4本設(shè)計(jì)的結(jié)構(gòu)安排</p><p>  本設(shè)計(jì)就是采用單片機(jī)實(shí)現(xiàn)溫度檢測(cè)系統(tǒng)。本設(shè)計(jì)的結(jié)構(gòu)安排如下:</p><p>  第1章主要介紹了本論文的研究意義、溫度檢測(cè)領(lǐng)域的發(fā)展?fàn)顩r與本課題的主要研究?jī)?nèi)容。</p><p>  第2章主要介紹室內(nèi)溫度檢測(cè)系統(tǒng)的構(gòu)成及硬件的選擇,包括單片機(jī)

25、、數(shù)碼管、溫度傳感器等的選擇和使用。</p><p>  第3章介紹電路硬件設(shè)計(jì),分為溫度采集模塊、單片機(jī)最小系統(tǒng)、數(shù)碼顯示模塊與串口通信模塊。</p><p>  第4章介紹了本設(shè)計(jì)的軟件實(shí)現(xiàn)。包括溫度采集程序、數(shù)碼顯示程序、串口通信程序與電腦VB顯示屆面程序。</p><p>  第5章介紹了本設(shè)計(jì)的仿真。本設(shè)計(jì)對(duì)Protues軟件進(jìn)行了介紹,并對(duì)溫度顯示模塊進(jìn)

26、行了仿真,畫出了仿真圖。</p><p>  下面,就逐章進(jìn)入本設(shè)計(jì)的全過程。</p><p>  2 室溫檢測(cè)系統(tǒng)原理</p><p>  2.1 室內(nèi)溫度檢測(cè)系統(tǒng)的構(gòu)成</p><p>  室內(nèi)溫度檢測(cè)系統(tǒng)的構(gòu)成大體上可以分為4部分:一是溫度參數(shù)的測(cè)量,二是測(cè)量數(shù)據(jù)的處理和控制,三是數(shù)據(jù)的顯示,四是數(shù)據(jù)與上位機(jī)的傳輸。本系統(tǒng)的設(shè)計(jì)方案流程

27、圖如圖1所示。</p><p>  圖1 室內(nèi)溫度檢測(cè)系統(tǒng)設(shè)計(jì)方案</p><p><b>  2.2硬件的選擇</b></p><p>  2.2.1 單片機(jī)及其管腳說明</p><p>  室內(nèi)溫度檢測(cè)系統(tǒng)中數(shù)據(jù)處理和控制部分采用Atmel公司的AT89C52單片機(jī),AT89C52是一種低功耗、高性能CMOS8位微

28、控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。AT89C52相對(duì)于常見的AT89C51,性能有了較大提升,價(jià)格基本不變甚至比89C51更低,并且增加了很多新功能。</p><p>  下面指出了各個(gè)管腳的用途</p><p><b>  VCC:供電電壓。</b></p>

29、;<p><b>  GND:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8個(gè)TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),PO輸出原碼,此時(shí)P0外部必須被拉高。</p>

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

31、時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高8位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻

32、的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C52的一些特殊功能口,P3管腳備選功能如下:</p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>

33、;  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器械外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存

34、儲(chǔ)器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲(chǔ)器,地址鎖存允許的輸出電平用于鎖存地址的位字節(jié)。</p><p>  /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。

35、在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /EA/VPP:在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。<

36、/p><p>  2.2.2 七段數(shù)碼顯示管</p><p>  七段數(shù)碼管在工業(yè)控制中有著很廣泛的應(yīng)用,例如用來顯示溫度、數(shù)量、重量、日期、時(shí)間,還可以用來顯示比賽的比分等,具有顯示醒目、直觀的優(yōu)點(diǎn)。無論是共陰極還是共陽極的數(shù)碼管,都分段碼和位碼,要想讓它亮必須驅(qū)動(dòng)它!以共陽極數(shù)碼管為例,即首先要選中你想要點(diǎn)亮的數(shù)碼管的位,要想讓4個(gè)數(shù)碼管全亮須4個(gè)位全選中,所謂選中的含義就是給高電平(共陽

37、極)。數(shù)碼管分8個(gè)段,即段碼,第個(gè)段的亮滅都對(duì)應(yīng)著一個(gè)數(shù)字或字母,想讓哪一段亮就給哪段送高電平。其中掃描分靜態(tài)掃描和動(dòng)態(tài)掃描!靜態(tài)掃描比動(dòng)態(tài)掃描簡(jiǎn)單些。動(dòng)態(tài)掃描他在每個(gè)時(shí)間只能點(diǎn)亮一位數(shù)碼管,但是由于掃描頻率的設(shè)置,單片機(jī)的速度是很快的,但幾十MS內(nèi)就能讓4位數(shù)碼管循環(huán)亮滅很多次,這些人的肉眼是分辨不出來的,數(shù)碼管的亮度可以通過軟件設(shè)置(掃描頻率的設(shè)置)調(diào)整。</p><p>  數(shù)碼管都有a、b、c、d、e、f

38、、g七個(gè)筆劃和一個(gè)小數(shù)點(diǎn)DP,這八個(gè)聯(lián)對(duì)應(yīng)二極管陽極,陰極都聯(lián)在一起(稱共陰極)。以四位數(shù)碼管矩陣為例,四個(gè)數(shù)碼管的a、b、c、d、e、f、g七個(gè)筆劃和一個(gè)小數(shù)點(diǎn)DP電極分別并聯(lián)在一起。當(dāng)c行高電平,3列低電平,其他行列都為高阻態(tài)時(shí),第三個(gè)數(shù)碼管的c筆劃亮,通過掃描方式在1/20秒內(nèi)四個(gè)數(shù)碼管的筆劃該亮的都亮一次,由于視覺暫留,就會(huì)看到結(jié)果。本設(shè)計(jì)是由MAX7219驅(qū)動(dòng)數(shù)碼管通過V+引腳和ISET引腳之間所接的外部電阻RSET控制MAX

39、7219,RSET越大,段電流越小,但是其最小值不應(yīng)該小于9530Ω。溫度采集數(shù)據(jù)的顯示用共陰四位一體數(shù)碼管,而傳感器標(biāo)號(hào)的數(shù)碼顯示則用共陰LED單個(gè)數(shù)碼顯示。</p><p>  2.2.3 溫度傳感器的選擇</p><p>  在室溫檢測(cè)系統(tǒng)中溫度測(cè)量是主要環(huán)節(jié)。這部分關(guān)鍵在于溫度傳感器的選擇,以下提供了兩種選擇方案:</p><p>  方案一:使用AD741

40、6作為傳感器</p><p>  AD7416的內(nèi)部寄存器結(jié)構(gòu)和引腳特性:</p><p>  AD7416是封裝在一個(gè)SO-8 芯片中的完整的溫度計(jì)。它包括一個(gè)帶隙溫度傳感器和一個(gè)用來監(jiān)視并將溫度數(shù)字化10 位A/D轉(zhuǎn)換器,其精度達(dá)0.25 ℃,溫度測(cè)量范圍- 55 ℃至 +125 ℃。其工作電源電壓在2.7~5.5V之間,具有標(biāo)準(zhǔn)I C總線接口。由于采用低功耗CMOS技術(shù),它具備掉電工

41、作模式。其地址引腳,AD7416可以級(jí)聯(lián)至多8 片在同一個(gè)I C上。</p><p>  Vcc(2.7~5.5V) 和GND提供工作電源。同系列芯片還有AD7415等。</p><p>  AD7416的引腳配置如圖2所示。</p><p>  SDA- 串行地址/數(shù)據(jù)雙向 I/O端。漏極開路,使用時(shí)須接上拉電阻。</p><p>  SC

42、L- 串行時(shí)鐘輸入端。2.7V時(shí)可達(dá)100kHz,5V時(shí)達(dá)400kHz。</p><p>  OTI- 溫輸出,漏極開路??勺鳛橹袛噍敵鲂盘?hào)。在系統(tǒng)構(gòu)成時(shí),降低功耗起見,上拉電阻取值至少大于10kΩ。</p><p>  A0、A1、A2為地址引腳,AD7416可以級(jí)聯(lián)至多8 片在同一個(gè)IC上。</p><p>  Vcc(2.7V~5.5V)和GND提供工作電源。

43、</p><p>  方案二:使用DS18B20作為傳感器</p><p>  由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微</p><p>  處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀器、</p><p>  圖2 AD7416的引腳圖</p><

44、p>  測(cè)控系統(tǒng)和大型設(shè)備中。與傳統(tǒng)的熱敏電阻溫度傳感器不同,它能夠直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式,可以分別在93.75ms和750ms 內(nèi)將溫度值轉(zhuǎn)化9位和12位的數(shù)字量。它具有體積小、接口方便、傳輸距離遠(yuǎn)等特點(diǎn),內(nèi)含寄生電源。 </p><p><b>  系統(tǒng)有如下特點(diǎn): </b></p><p>  (1

45、)不需要備份電源,可通過信號(hào)線供電,電源電壓范圍從3.3~5V;</p><p>  (2)送串行數(shù)據(jù),不需要外部元件; </p><p>  (3)溫度測(cè)量范圍從-55℃~+125℃,-10~+85℃時(shí)測(cè)量精度為±0.5℃,測(cè)量分辨率為0.0625℃,; </p><p>  (4)通過編程可實(shí)現(xiàn)9~12 位的數(shù)字值讀數(shù)方式(出廠時(shí)被設(shè)置為12 位);

46、</p><p>  (5)在93.75ms 和750ms 內(nèi)將溫度值轉(zhuǎn)化9位和12 位的數(shù)字量; </p><p>  (6)系統(tǒng)的抗干擾性好,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如環(huán)境控制、設(shè)備過程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等。</p><p><b>  方案比較</b></p><p>  由于DS18B20結(jié)構(gòu)更加簡(jiǎn)單

47、,內(nèi)含寄生電源,可以為兩種供電方式:寄生電源和外電源供電。管腳也只用了3個(gè),體積更小,所以接口方便。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。經(jīng)過比較測(cè)試,本次畢業(yè)設(shè)計(jì)選用DS18B20作為溫度傳感器。</p><p>  2.2.4 MAX7219簡(jiǎn)介</p><p>  MAX7219 是MAXIM 公司的7段共陰極LED數(shù)碼管驅(qū)動(dòng)器,每一片MAX7219最多可驅(qū)動(dòng)8位LED,且集BC

48、D碼譯碼器、多路掃描器、段驅(qū)動(dòng)和位驅(qū)動(dòng)電路于一體,內(nèi)含8×8位雙口靜態(tài)SRAM,可保存8位LED 數(shù)據(jù),不僅使用方便,連線簡(jiǎn)單,而且還可串聯(lián),大大簡(jiǎn)化了硬件電路設(shè)計(jì),減少軟件的工作量。MAX7219 具有典型的三線串行接口,命令與數(shù)據(jù)組成16位字串,從DOUT引腳輸出,當(dāng)每一個(gè)CLK 脈沖上升沿到來時(shí),串行數(shù)據(jù)從DIN引腳進(jìn)入MAX7219內(nèi)部移位寄存器,最先收到的是高位。在第16個(gè)CLK 上升沿,LOAD引腳若變?yōu)楦唠娖?,則

49、數(shù)據(jù)就會(huì)被鎖存到內(nèi)部寄存器中,再過半個(gè)脈沖, 數(shù)據(jù)在CLK下降沿從DOUT引腳輸出。</p><p><b>  3 電路硬件設(shè)計(jì) </b></p><p>  本文介紹一種基于數(shù)字溫度傳感器DS18B20的主從分布式多路測(cè)溫系統(tǒng),該系統(tǒng)以PC為主機(jī), 采用ATMEL公司的AT89C52單片機(jī)做從機(jī),二者之間通過MAX232通訊總線連接,數(shù)字溫度傳感器通過與單片機(jī)P3

50、.2至P3.5分別連接,將所測(cè)得數(shù)據(jù)由單片機(jī)傳送至數(shù)碼管分別顯示。MAX7219作為數(shù)碼管驅(qū)動(dòng),控制數(shù)碼顯示。單段數(shù)碼管DS1顯示當(dāng)前傳送溫度數(shù)據(jù)的傳感器標(biāo)號(hào),而四段數(shù)碼管DS2顯示該路傳感器所測(cè)得的溫度值。數(shù)字溫度傳感器所測(cè)得的數(shù)據(jù)通過串口通信模塊上傳到上位機(jī)。該系統(tǒng)框圖如圖3所示。</p><p>  圖3 室溫檢測(cè)系統(tǒng)框圖</p><p>  3.1溫度采集模塊的設(shè)計(jì)</p&

51、gt;<p>  在單片機(jī)AT89C52的P3.5至P3.2上分別接數(shù)字溫度傳感器J1、J2、J3、J4?!S18B20的1腳接地,3腳接+5V電源并上拉26.1K電阻。DS18B20 處于寫存儲(chǔ)器操作和溫度A/D 變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10 As。主機(jī)控DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟: 初始化、ROM 操作指令、存儲(chǔ)器操作指令。根據(jù)DS18B20的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分

52、別編寫3個(gè)子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始。四位DS18B20溫度采集模塊電路圖如圖4所示。</p><p>  圖4 四位DS18B20溫度采集模塊電路圖</p><p>  3.2 單片機(jī)最小系統(tǒng)</p><p>  圖5為單片機(jī)最小系統(tǒng)的設(shè)計(jì),S2為復(fù)位鍵,Vcc、S2、

53、R45、R46與C16組成了復(fù)位電路,其基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直致系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。復(fù)位鍵按下后系統(tǒng)上程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開始運(yùn)行程序。Y2、C14、C15組成了單片機(jī)的晶振電路。單片機(jī)P3.2~P3.5外接4個(gè)溫度傳感器DS18

54、B20,接收上傳的數(shù)據(jù)。P2.0接MAX7219的串行數(shù)據(jù)輸入端DIN,P2.1接MAX7219的片選端LOAD,P2.2接入MAX7219的時(shí)鐘輸入端。P3.0與P3.1則與串口通信模塊中的MAX232連接,實(shí)現(xiàn)TTL電平和RS-232C接口電平之間的轉(zhuǎn)換。</p><p>  圖5 單片機(jī)最小系統(tǒng)電路圖</p><p>  3.3 數(shù)碼顯示模塊</p><p>

55、;  單片機(jī)獲取溫度后,由MAX7219控制分別將各路溫度值顯示到數(shù)碼管上。數(shù)碼管DS1上顯示DS18B20的標(biāo)號(hào),數(shù)碼管DS2上則顯示所測(cè)得該路的溫度值。電路圖如圖6所示。</p><p>  圖6 數(shù)碼顯示模塊電路圖</p><p>  3.4 串口通信模塊的設(shè)計(jì)</p><p>  串口通信原理圖如圖7所示。AT89C52單片機(jī)通過串行口直接接收PC機(jī)傳送來

56、的串行數(shù)據(jù),然后把接收到的數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器。由于PC機(jī)的串行口都是RS-232C標(biāo)準(zhǔn)的接口,所以,其輸入輸出在電平上和采用TTL電平的AT89C52在接口時(shí)會(huì)產(chǎn)生電平不同的問題。為了解決這個(gè)問題,在PC機(jī)和單片機(jī)的串行通信電路中加入了MAX232芯片,以實(shí)現(xiàn)TTL電平和RS-232C接口電平之間的轉(zhuǎn)換。這樣PC機(jī)和AT89C52單片機(jī)進(jìn)行串行通信時(shí)就可以順利進(jìn)行了。</p><p>  圖7 串口通信原理圖&

57、lt;/p><p><b>  3.5 總原理圖</b></p><p><b>  總原理圖見附錄1。</b></p><p>  軟件設(shè)計(jì) </p><p>  本節(jié)主要介紹了室溫檢測(cè)系統(tǒng)的軟件部分的實(shí)現(xiàn),包括溫

58、度采樣程序、串口通信程序、串口調(diào)試過程與VB顯示界面的設(shè)計(jì)。本軟件設(shè)計(jì)主要使用函數(shù)調(diào)用,因此本節(jié)4.1中主要介紹了主函數(shù)中主要調(diào)動(dòng)的子函數(shù)。本系統(tǒng)采用P3口四路分別接四個(gè)數(shù)字傳感器DS18B20,在DS18B20初始化后采集P3.2至P3.5四路溫度,然后把采集的溫度發(fā)送到MAX7219,依次在數(shù)碼管上顯示。單片機(jī)通過特殊功能寄存器SBUF對(duì)串行接收或串行發(fā)送寄存器進(jìn)行訪問。此程序中,首先把DS18B20與單片機(jī)初始化,單片機(jī)讀取溫度傳

59、感器DS18B20測(cè)得溫度后,存入特殊功能寄存器SBUF中,由TXD來發(fā)送溫度數(shù)據(jù)給上位機(jī)。上位機(jī)接收由單片機(jī)發(fā)送來的數(shù)據(jù)后,在VB顯示界面上顯示四路DS18B20的溫度。</p><p>  室溫檢測(cè)系統(tǒng)軟件流程圖如圖8所示。</p><p>  圖8 室溫檢測(cè)系統(tǒng)軟件流程圖</p><p>  4.1 室溫檢測(cè)系統(tǒng)子程序介紹</p><p&

60、gt;  4.1.1 單片機(jī)初始化程序</p><p>  程序開始前,需要先將單片機(jī)初始化。以下程序?yàn)閱纹瑱C(jī)初始化程序。</p><p>  1.要設(shè)置定時(shí)器/計(jì)數(shù)器工作方式寄存器TMOD,定時(shí)器1設(shè)置為方式2,8位初值自動(dòng)重裝的8位定時(shí)器/計(jì)數(shù)器。定時(shí)器0設(shè)置為方式1,為16位定時(shí)器/計(jì)數(shù)器。</p><p>  2.在單片機(jī)與上位機(jī)通信時(shí),要設(shè)置串行口控制寄存

61、器SCON,串口工作方式設(shè)置成方式1,10位異步收發(fā)(8位數(shù)據(jù)),其中1位起始位,8位數(shù)據(jù)位,1位停止位,TXD(P3.1)為數(shù)據(jù)發(fā)送引腳,RXD(P3.0)為數(shù)據(jù)接收引腳,波特率是可變的(由定時(shí)器1的溢出率控制)。REN應(yīng)置為1,允許串行接收。</p><p>  3.為定時(shí)器1中的TH1與TL1裝入初值,本設(shè)計(jì)中設(shè)置的波特率為4800bps。</p><p>  4.開啟全局中斷,開啟

62、定時(shí)器中斷。</p><p>  unsigned char ReadOneChar(int sel)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  unsigned char dat = 0;</p><p>  for (

63、i=8;i>0;i--)</p><p><b>  {</b></p><p>  P3 &= ~(0x01<<sel); // 給脈沖信號(hào)</p><p><b>  dat>>=1;</b></p><p>  P3 |= 0x01<<sel;

64、 // 給脈沖信號(hào)</p><p>  if(P3&(0x01<<sel))</p><p>  dat|=0x80;</p><p>  delayus(4);</p><p><b>  } </b></p><p>  return(dat);</p>

65、;<p><b>  }</b></p><p>  4.1.2 DS18B20初始化程序</p><p>  DS18B20初始化時(shí),一般有四個(gè)步驟:初始化命令;傳送ROM命令;傳送RAM命令;數(shù)據(jù)交換命令。下面具體介紹了DS18B20初始化的具體時(shí)序:</p><p>  1.先將數(shù)據(jù)線置高電平1.</p>&l

66、t;p>  2.延時(shí)(該時(shí)間要求不是很嚴(yán)格,但是要盡可能短一點(diǎn))。</p><p>  3.數(shù)據(jù)線接到低電平0。</p><p>  4.延時(shí)750us(該時(shí)間范圍可以在480~960us).</p><p>  5.數(shù)據(jù)線拉到高電平1。</p><p>  6.延時(shí)等待。如果初始化成功則在15~60ms內(nèi)產(chǎn)生一個(gè)由DS18B20返回的

67、低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意,不能無限地等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷。</p><p>  7.若CPU讀到數(shù)據(jù)線上的低電平0后,還要進(jìn)行延時(shí),其延時(shí)的時(shí)間從發(fā)出高電平算起(第5步的時(shí)間算起)最少要480us。</p><p>  8.將數(shù)據(jù)線再次拉到高電平1后結(jié)束。</p><p>  以下程序是本設(shè)計(jì)中DS18B20的初始化

68、程序。</p><p>  void Init_DS18B20(void)</p><p><b>  {</b></p><p>  P3 |= SET; //復(fù)位</p><p>  delayus(8); //稍做延時(shí)</p><p>  P3 &= ZERO; //單

69、片機(jī)將總線拉低</p><p>  delayus(80); //精確延時(shí) 大于 480us</p><p>  P3 |= SET; //拉高總線</p><p>  delayus(14);//稍做延時(shí)后 </p><p>  delayus(20);</p><p><b>  }</b&g

70、t;</p><p>  4.1.3 DS18B20讀數(shù)據(jù)程序</p><p>  DS18B20讀數(shù)據(jù)時(shí),分8個(gè)步驟:</p><p>  1.將數(shù)據(jù)線拉高到1。</p><p><b>  2.延時(shí)2us。</b></p><p>  3.將數(shù)據(jù)線拉低到0。</p><p&

71、gt;<b>  4.延時(shí)6us。</b></p><p>  5.將數(shù)據(jù)線拉高到1。</p><p><b>  6.延時(shí)4us。</b></p><p>  7.讀數(shù)據(jù)線的狀態(tài)設(shè)置一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。</p><p><b>  延時(shí)30us。</b></p&

72、gt;<p>  8.重復(fù)1~7步驟,直到讀取完一個(gè)字節(jié)。</p><p>  以下是DS18B20讀取一字節(jié)數(shù)據(jù)的程序。</p><p>  unsigned char ReadOneChar(int sel)</p><p><b>  {</b></p><p>  unsigned char i=0

73、;</p><p>  unsigned char dat = 0;</p><p>  for (i=8;i>0;i--)</p><p><b>  {</b></p><p>  P3 &= ~(0x01<<sel); // 給脈沖信號(hào)</p><p><b&

74、gt;  dat>>=1;</b></p><p>  P3 |= 0x01<<sel; // 給脈沖信號(hào)</p><p>  if(P3&(0x01<<sel))</p><p>  dat|=0x80;</p><p>  delayus(4);</p><p&g

75、t;<b>  } </b></p><p>  return(dat);</p><p><b>  }</b></p><p>  4.1.4 DS18B20寫數(shù)據(jù)程序</p><p>  DS18B20寫數(shù)據(jù)時(shí),分7個(gè)步驟:</p><p>  1.數(shù)據(jù)線先置

76、低電平0。</p><p>  2.延時(shí)確定的時(shí)間15us。</p><p>  3.按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。</p><p>  4.延時(shí)時(shí)間為45us。</p><p>  5.將數(shù)據(jù)線拉到高電平1。</p><p>  6.重復(fù)1~5步驟,直到發(fā)送完整個(gè)字節(jié)。</p><

77、;p>  7.最后將數(shù)據(jù)線拉高到1。</p><p>  以下是DS18B20寫數(shù)據(jù)的程序。</p><p>  void WriteOneChar(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><

78、p>  for (i=8; i>0; i--)</p><p><b>  {</b></p><p>  P3 &= ZERO;</p><p>  (dat&0x01)?(P3 |= SET):(P3 &= ZERO);</p><p>  delayus(5);</p>

79、;<p>  P3 |= SET;</p><p><b>  dat>>=1;</b></p><p><b>  }</b></p><p>  delayus(4);</p><p><b>  }</b></p><p>

80、;  4.1.5 DS18B20讀取溫度程序</p><p>  在讀取溫度過程中,首先要向DS18B20中寫入命令,使其開始獲取溫度并轉(zhuǎn)換。程序中WriteOneChar(0xCC)、WriteOneChar(0x44)這兩句命令為寫跳過讀ROM指令與寫溫度轉(zhuǎn)換指令,待啟動(dòng)溫度轉(zhuǎn)換后,重新初始化DS18B20,再寫入讀取溫度數(shù)據(jù)的命令,就可以讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù)了。由于溫度在寄存器中是12位的,所以需要分

81、兩次讀取。以下是讀取溫度的程序。</p><p>  void readtemp(void)</p><p><b>  {</b></p><p>  unsigned char a=0;</p><p>  unsigned char b=0;</p><p>  unsigned int t

82、=0;</p><p>  float tt=0;</p><p><b>  int i;</b></p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); // 跳過讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0x44)

83、; // 啟動(dòng)溫度轉(zhuǎn)換</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); //跳過讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度</p><p>  for(i = 3; i >=0; i

84、--)</p><p><b>  {</b></p><p>  a=ReadOneChar(i);</p><p>  b=ReadOneChar(i);</p><p><b>  t=b;</b></p><p><b>  if(t<8)</b

85、></p><p><b>  {</b></p><p>  fu[i]=0;//fu為0則數(shù)據(jù)為正</p><p><b>  t<<=8;</b></p><p><b>  t=t|a;</b></p><p><b>

86、;  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  fu[i]=1;//數(shù)據(jù)為負(fù)</p><p><b>  t<<=8;</b></p><p><b

87、>  t=t|a;</b></p><p><b>  t=~t;</b></p><p><b>  t=t+1;</b></p><p><b>  }</b></p><p>  tt=t*0.0625;</p><p>  t=

88、 tt*10 ;//放大10倍輸出并四舍五入</p><p>  temp_data[i] = t;</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.2 串口通信模塊的調(diào)試</p><p>  為了能夠在電腦端看到單片機(jī)

89、發(fā)出的數(shù)據(jù),我們必須借助一個(gè)WINDOWS軟件進(jìn)行觀察,這里我們利用一個(gè)免費(fèi)的電腦串口調(diào)試軟件。</p><p>  軟件界面如圖9所示,我們先要設(shè)置一下串口通訊的參數(shù),將波特率調(diào)整為4800bps,勾選十六進(jìn)制顯示。串口選擇為COM1,當(dāng)然將網(wǎng)站提供的52單片機(jī)實(shí)驗(yàn)板的串口也要和電腦的COM1連接,將燒寫有程序的單片機(jī)插入單片機(jī)實(shí)驗(yàn)板的萬能插座中,并接通52單片機(jī)實(shí)驗(yàn)板的電源。</p><p

90、>  圖9 電腦串口調(diào)試界面</p><p>  4.3 VB顯示程序設(shè)計(jì)</p><p>  在上位機(jī)做好VB顯示界面,接受下位機(jī)發(fā)送的數(shù)據(jù),做到正確顯示。如單擊串口開關(guān)就能顯示測(cè)的P3.2至P3.5口上測(cè)得的溫度。</p><p>  VB顯示界面如圖10所示。</p><p>  圖10 VB顯示界面</p>&

91、lt;p>  5 Protues軟件仿真</p><p>  5.1 Protues軟件介紹</p><p>  Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但

92、已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2

93、010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。</p><p><b>  5.2 功能特點(diǎn)</b></p><p>  Proteus與其他的仿真軟件相比較,在下面的優(yōu)點(diǎn):</p><p>  1.能仿真模擬電路、數(shù)字電路、數(shù)模混合電路;</p

94、><p>  2.能繪制原理圖、PCB圖;</p><p>  3.幾乎包括實(shí)際中所有使用的儀器</p><p>  4.其最大的亮點(diǎn)在于能夠?qū)纹瑱C(jī)進(jìn)行實(shí)物級(jí)的仿真。從程序的編寫,編譯到調(diào)試,目標(biāo)版的仿真一應(yīng)俱全。支持匯編語言和C語言的編程。還可配合Keil C實(shí)現(xiàn)程序的聯(lián)合調(diào)試,將Proteus中繪制的原理圖作為實(shí)際中的目標(biāo)板,而用Keil C集成環(huán)境實(shí)現(xiàn)對(duì)目標(biāo)板的

95、控制,與實(shí)際中通過硬件仿真器對(duì)目標(biāo)板的調(diào)試幾乎完全相同,并且支持多顯示器的調(diào)試,即Proteus運(yùn)行在一臺(tái)計(jì)算機(jī)上,而Keil C運(yùn)行在另一臺(tái)計(jì)算機(jī)上,通過網(wǎng)絡(luò)連接實(shí)現(xiàn)遠(yuǎn)程的調(diào)試。</p><p>  5.3 Protues的電路仿真功能</p><p>  在Protues繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。

96、 </p><p>  Protues是單片機(jī)課堂教學(xué)的先進(jìn)助手。 </p><p>  Protues不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。 </p><p>  它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)

97、教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。 </p><p>  課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于Protues提供了實(shí)驗(yàn)室無法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái) </p><p>  隨著科技的發(fā)展,“計(jì)算機(jī)仿真技術(shù)”已

98、成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)??墒乖O(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。 </p><p>  使用Proteus 軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì), 是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;在單片機(jī)課程設(shè)計(jì)和全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽中,

99、我們使用 Proteus 開發(fā)環(huán)境對(duì)學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識(shí)更容易接受,更容易提高。實(shí)踐證明,在使用 Proteus 進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。因此,Proteus 有較高的推廣利用價(jià)值。</p><p>  5.4 溫度顯示模塊的仿真</p><p>  本設(shè)計(jì)對(duì)溫度顯示模塊使用Pr

100、otues軟件進(jìn)行了仿真畫好仿真電路圖后,將Keil軟件中調(diào)試好的程序所產(chǎn)生的hex文件下載到單片機(jī)中,點(diǎn)擊開始仿真按鈕,軟件開始仿真。仿真圖如圖11所示。圖上顯示的是第三路DS18B20所測(cè)得的溫度,數(shù)值為18攝氏度。仿真開始后,單位的數(shù)碼管會(huì)交替顯示1、2、3、4,而四位的數(shù)碼管會(huì)顯示此路DS18B20測(cè)得的溫度。各路DS18B20的溫度值可以根據(jù)需要設(shè)定,顯示也會(huì)隨之改變。</p><p>  圖11 溫

101、度顯示模塊仿真圖</p><p><b>  結(jié)論</b></p><p>  本次畢業(yè)設(shè)計(jì)的主要任務(wù)是通過DS18B20單線數(shù)字溫度傳感器和單片機(jī)實(shí)現(xiàn)多點(diǎn)測(cè)溫,在其中添加了數(shù)碼顯示溫度的功能,采集的數(shù)據(jù)通過串口上傳給PC上位機(jī),并在上位機(jī)上顯示所測(cè)的各點(diǎn)溫度值。實(shí)現(xiàn)遠(yuǎn)程多點(diǎn)溫度遙測(cè)功能!它可以實(shí)時(shí)在電腦上監(jiān)控室內(nèi)各點(diǎn)的溫度。通過指導(dǎo)老師的指導(dǎo)和自己的努力,最終實(shí)現(xiàn)了

102、這一課題!但是由于時(shí)間的關(guān)系,設(shè)計(jì)的軟、硬件的許多功能還有待完善和改進(jìn)。在畢業(yè)設(shè)計(jì)的整個(gè)過程中,讓我熟悉了單片機(jī)開發(fā)的每個(gè)步驟,它不但檢查了我的整個(gè)知識(shí)面的掌握程度,知道了自己的不足,讓我更加牢固的掌握了單片機(jī)方面的相關(guān)知識(shí)!也讓我學(xué)會(huì)了在遇到問題時(shí),如何冷靜的思考問題,學(xué)習(xí)、解決問題!更讓我懂得了學(xué)習(xí)貴在堅(jiān)持,學(xué)到了更多以前沒有學(xué)到過的知識(shí)。</p><p>  此次畢業(yè)設(shè)計(jì)是我們從大學(xué)畢業(yè)生走向未來工程師重要

103、的一步。從最初的選題,開題到畫硬件原理圖再到軟件調(diào)試直到完成設(shè)計(jì)。其間,查找資料,老師指導(dǎo),與同學(xué)交流,反復(fù)修改設(shè)計(jì),每一個(gè)過程都是對(duì)自己能力的一次檢驗(yàn)和充實(shí)。</p><p>  畢業(yè)設(shè)計(jì)收獲很多,比如學(xué)會(huì)了查找相關(guān)資料相關(guān)標(biāo)準(zhǔn),分析芯片功能,提高了自己的畫圖與編程能力,懂得了許多經(jīng)驗(yàn)公式的獲得是前人不懈努力的結(jié)果。同時(shí),仍有很多課題需要后輩去努力去完善。</p><p>  但是畢業(yè)設(shè)

104、計(jì)也暴露出自己專業(yè)基礎(chǔ)的很多不足之處。比如缺乏綜合應(yīng)用專業(yè)知識(shí)的能力,對(duì)材料的不了解,等等。</p><p>  這次實(shí)踐是對(duì)自己大學(xué)四年所學(xué)的一次大檢閱,使我明白自己知識(shí)還很淺薄,雖然馬上要畢業(yè)了,但是自己的求學(xué)之路還很長(zhǎng),以后更應(yīng)該在工作中學(xué)習(xí),努力使自己成為一個(gè)對(duì)社會(huì)有所貢獻(xiàn)的人。</p><p><b>  參考文獻(xiàn)</b></p><p&

105、gt;  胡振宇.劉魯源,杜振輝.DS18B20 接口的C 語言程序設(shè)計(jì)[J].單片機(jī)與入式系應(yīng)用,2002.7.1.</p><p>  金偉正.單線數(shù)字溫度傳感器的原理與應(yīng)用[J]。電子技術(shù)應(yīng)用.2000.(6).</p><p>  李朝青.單片機(jī)原理及接口技術(shù)[M].北京:航空航天大學(xué)出版社,1994.</p><p>  廖衛(wèi)東.Visual Basic

106、編程手冊(cè) [M].北京:機(jī)械工業(yè)出版社, 1996.</p><p>  周月霞,孫傳友.DS18B20 硬件連接及軟件編程[J].傳感器世界,2001 (12) .</p><p>  單線數(shù)字溫度傳感器資料[M].武漢:武漢力源電子有限公司,1996.</p><p>  賈東耀,汪仁煌.數(shù)字溫度傳感器在倉(cāng)庫(kù)溫度檢測(cè)系統(tǒng)的應(yīng)用[J].傳感器世界,2001.<

107、;/p><p>  徐淑華.單片微型機(jī)原理及應(yīng)用[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1994.</p><p>  何立民.單片計(jì)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:航空航天大學(xué)出版社,1990.1.</p><p>  劉君華.智能傳感器系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,1999.1.</p><p>  沙占有.智能化集成溫度傳感器原理與應(yīng)用

108、[M].北京:機(jī)械工業(yè)出版社,2002.7:84-102.</p><p><b>  致謝</b></p><p><b>  附錄</b></p><p>  1. 室溫檢測(cè)系統(tǒng)總原理圖</p><p>  2. DS18B20溫度采集源程序</p><p>  #inc

109、lude<reg52.h></p><p>  #include<stdio.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  #define SET 0x0f</p><p&

110、gt;  #define ZERO 0xf0</p><p>  sbit DQ =P3^5; //定義通信端口</p><p>  uint aa=0;flag=0;</p><p>  int temp_data[4];</p><p>  int fu[5];</p><p>  unsigned int t

111、emp1;</p><p>  int back[5];</p><p>  void Init_Max7219(void) ;</p><p>  void Write_Max72191(unsigned char address,unsigned char dat);</p><p>  void delay(int z)</p&g

112、t;<p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(i=z;i>0;i--)</p><p>  for(j=110;j>0;j--);</p><p><b>  }</b></

113、p><p>  void delayus(unsigned int i)</p><p><b>  {</b></p><p>  while(i--);</p><p><b>  }</b></p><p>  void init(void)</p><

114、p><b>  {</b></p><p>  TMOD=0x21; //定時(shí)器1為方式2,定時(shí)器0為方式1</p><p>  SCON=0x50;</p><p>  //TH0=(65536-50000)/256;</p><p>  //TL0=(65536-50000)%256;</p>&

115、lt;p><b>  TH1=0xf3;</b></p><p><b>  TL1=0xf3;</b></p><p><b>  EA=1;</b></p><p><b>  TR1=1;</b></p><p><b>  //ET

116、0=1;</b></p><p><b>  //TR0=1;</b></p><p><b>  }</b></p><p>  void Init_DS18B20(void)</p><p><b>  {</b></p><p>  P

117、3 |= SET; //復(fù)位</p><p>  delayus(8); //稍做延時(shí)</p><p>  P3 &= ZERO; //單片機(jī)將總線拉低</p><p>  delayus(80); //精確延時(shí) 大于 480us</p><p>  P3 |= SET; //拉高總線</p><

118、;p>  delayus(14);</p><p><b>  //稍做延時(shí)后 </b></p><p>  delayus(20);</p><p><b>  }</b></p><p>  unsigned char ReadOneChar(int sel)</p><

119、;p><b>  {</b></p><p>  unsigned char i=0;</p><p>  unsigned char dat = 0;</p><p>  for (i=8;i>0;i--)</p><p><b>  {</b></p><p>

120、;  P3 &= ~(0x01<<sel); // 給脈沖信號(hào)</p><p><b>  dat>>=1;</b></p><p>  P3 |= 0x01<<sel; // 給脈沖信號(hào)</p><p>  if(P3&(0x01<<sel))</p><p&

121、gt;  dat|=0x80;</p><p>  delayus(4);</p><p><b>  } </b></p><p>  return(dat);</p><p><b>  }</b></p><p><b>  //寫一個(gè)字節(jié)</

溫馨提示

  • 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. 眾賞文庫(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)論