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

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題 目 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì) </p><p>  專 業(yè) 應(yīng)用電子技術(shù) </p><p><b>  二0一二年五月</b></p><p>  基于單片機(jī)的溫度控

2、制系統(tǒng)設(shè)計(jì)</p><p><b>  [摘 要]:</b></p><p>  文章介紹了基于單片機(jī)溫度控制的硬件設(shè)計(jì)和軟件設(shè)計(jì),它在很多領(lǐng)域都廣泛運(yùn)用,而該系統(tǒng)硬件部分的重心在于單片機(jī)。文章以溫度采集系統(tǒng)為例, DS18B20溫度測(cè)量系統(tǒng)是以AT89C51單片機(jī)作為控制核心,智能溫度傳感器DS18B20為控制對(duì)象,用LM016L液晶顯示,運(yùn)用C語言實(shí)現(xiàn)系統(tǒng)的各種功

3、能。設(shè)計(jì)完成了DS18B20的溫度采集電路、顯示電路、溫度處理電路、報(bào)警提示電路。借助仿真工具Proteus和單片機(jī)編程軟件Keil實(shí)現(xiàn)了系統(tǒng)軟、硬件的交互仿真,實(shí)現(xiàn)了課題設(shè)計(jì)目的。</p><p>  本課題所設(shè)計(jì)的溫度控制系統(tǒng)可實(shí)現(xiàn)對(duì)遠(yuǎn)程環(huán)境的溫度測(cè)量與監(jiān)控,適用于電力工業(yè)、農(nóng)業(yè)、煤礦、火災(zāi)、高層建筑等場(chǎng)所,還可以用于環(huán)境惡劣的工業(yè)控制現(xiàn)場(chǎng)。</p><p>  [關(guān)鍵詞]:數(shù)字溫度傳

4、感器DS18B20;單片機(jī);LMO16L ;Proteus仿真;Keil</p><p>  Based on SCM multi-channel data acquisition system design</p><p>  Abstract: this paper introduces the data acquisition based on single chip compute

5、r hardware design and software design, its existence has a very important role in many areas. This paper introduces is the focus of the data acquisition system, and the system hardware part is the center of gravity of th

6、e microcontroller. In this paper, the more temperature gathering system for example, DS18B20 temperature measuring system is based on AT89C51 single chip microcomputer as control core, intelligent te</p><p>

7、  This subject design temperature control system can realize to the remote environment temperature measurement and monitoring, used in electric power industry, coal mine, fire, high-rise buildings and other places, can a

8、lso be used for the environmental bad industrial control field.</p><p>  Keywords: digital temperature sensor DS18B20; SCM; Proteus simulation; Keil</p><p><b>  目錄</b></p><

9、;p><b>  [摘 要]:1</b></p><p><b>  第一章緒論3</b></p><p>  1.1課題研究的目的和意義3</p><p>  1.2 課題內(nèi)容3</p><p><b>  第二章系統(tǒng)設(shè)計(jì)4</b></p>&l

10、t;p>  2.1系統(tǒng)的總設(shè)計(jì)4</p><p><b>  2.2功能模塊4</b></p><p><b>  第三章硬件設(shè)計(jì)5</b></p><p>  3.1單片機(jī)主控制單元5</p><p>  3.2溫度信號(hào)采集單元8</p><p>  3.3

11、液晶顯示屏輸出12</p><p>  3.3.1 1602LCD的基本參數(shù)及引腳功能13</p><p>  3.3.2 1602LCD的指令說明及時(shí)序14</p><p>  3.3.3 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表17</p><p>  3.4蜂鳴器報(bào)警電路18</p><p> 

12、 第四章軟件設(shè)計(jì)19</p><p><b>  4.1主程序19</b></p><p>  4.2溫度采集子程序20</p><p>  4.3數(shù)據(jù)處理子程序25</p><p>  4.4顯示子程序26</p><p>  4.5溫度處理及蜂鳴器報(bào)警子程序27</p>

13、<p>  第五章仿真測(cè)試29</p><p>  5.1 Keil C51 的使用29</p><p>  5.2 Proteus 的仿真33</p><p><b>  結(jié)束語:37</b></p><p><b>  致謝:38</b></p><p

14、><b>  參考文獻(xiàn):39</b></p><p><b>  第一章緒論</b></p><p>  1.1課題研究的目的和意義</p><p>  溫度是一個(gè)永恒的話題和人們生活環(huán)境有著密切關(guān)系的物理量,也是一種在生產(chǎn)、科研、生活中需要測(cè)量和控制的重要物理量,是國際單位制七個(gè)基本量之一。溫度的變化會(huì)給我們的生

15、活、工作、生產(chǎn)等帶來重大影響,因此對(duì)溫度的測(cè)量及控制至關(guān)重要。其測(cè)量控制一般使用各式各樣形態(tài)的溫度傳感器。隨著現(xiàn)代計(jì)算機(jī)和自動(dòng)化技術(shù)的發(fā)展,作為各種信息的感知、采集、轉(zhuǎn)換、傳輸相處理的功能器件,溫度傳感器的作用日顯突出,已成為自動(dòng)檢測(cè)、自動(dòng)控制系統(tǒng)和計(jì)量測(cè)試中不可缺少的重要技術(shù)工具,其用途已遍及工農(nóng)業(yè)生產(chǎn)和日常生活的各個(gè)領(lǐng)域。</p><p>  然而,隨著科學(xué)測(cè)量的發(fā)展,數(shù)據(jù)采集及其應(yīng)用也受到了人們的關(guān)注,數(shù)據(jù)

16、采集系統(tǒng)得到迅速的發(fā)展,被廣泛應(yīng)用于各種領(lǐng)域。數(shù)據(jù)采集系統(tǒng)起始于20世紀(jì)50年代,1956年美國首先研究了用在軍事上的測(cè)試系統(tǒng)。</p><p>  盡管現(xiàn)在以微機(jī)為核心的可編程數(shù)據(jù)采集與處理采集技術(shù)的發(fā)展方向得到了迅速的發(fā)展,而且組成一個(gè)數(shù)據(jù)采集系統(tǒng)只需要一塊數(shù)據(jù)采集卡,把它插在微機(jī)的擴(kuò)展槽內(nèi)并輔以應(yīng)用軟件,就能實(shí)現(xiàn)數(shù)據(jù)采集功能,但這并不會(huì)對(duì)基于單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響。相較于數(shù)據(jù)采集板卡成本和功能的

17、限制,單片機(jī)具多功能、高效率、高性能、低電壓、低功耗、低價(jià)格等優(yōu)點(diǎn),這就使得以單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)在許多領(lǐng)域得到了廣泛的應(yīng)用。</p><p><b>  1.2 課題內(nèi)容</b></p><p>  數(shù)據(jù)采集也是從一個(gè)或多個(gè)信號(hào)獲取對(duì)象信息的過程, 它研究信息數(shù)據(jù)的采集、存儲(chǔ)、處理等問題。它是對(duì)傳感器信號(hào)的測(cè)量與處理, 以微型計(jì)算機(jī)等高技術(shù)為基礎(chǔ)而形成的一門綜

18、合應(yīng)用技術(shù)。</p><p>  該文以溫度采集為例,以AT89C51單片機(jī)為核心,在單片機(jī)中編寫對(duì)各個(gè)硬件設(shè)備的控制程序,先通過單片機(jī)與DS18B20溫度傳感器建立一個(gè)聯(lián)系,使DS18B20溫度傳感器開始工作檢測(cè)所在環(huán)境的溫度值,再通過LCD液晶顯示器顯示DS18B20溫度傳感器檢測(cè)到的溫度值,最后根據(jù)對(duì)溫度范圍的控制設(shè)置一溫度上下限溫度值用于報(bào)警提示。當(dāng)然數(shù)據(jù)的采集和顯示都需要相應(yīng)硬件和軟件共同來完成,該系統(tǒng)

19、難點(diǎn)是對(duì)溫度傳感器的溫度采集并顯示,而對(duì)采集到的溫度通過軟件程序設(shè)定來進(jìn)行控制就相對(duì)來說容易多了。</p><p><b>  第二章系統(tǒng)設(shè)計(jì)</b></p><p><b>  2.1系統(tǒng)的總設(shè)計(jì)</b></p><p>  本設(shè)計(jì)使用單片機(jī)作為控制核心,采用單個(gè)溫度傳感器對(duì)溫度進(jìn)行檢測(cè),以液晶顯示屏顯示檢測(cè)溫度,通過繼

20、電器對(duì)加熱降溫系統(tǒng)進(jìn)行控制:溫度過高或者過低,蜂鳴器報(bào)警提示;溫度偏低進(jìn)行爐溫加熱處理;溫度偏高進(jìn)行電機(jī)降溫處理;。系統(tǒng)總體控制框圖如圖2.1所示:</p><p>  圖2.1系統(tǒng)總體控制框圖</p><p><b>  2.2功能模塊</b></p><p>  根據(jù)總系統(tǒng)的結(jié)構(gòu)可以將其分為五個(gè)功能模塊:單片機(jī)主控制模塊、溫度信號(hào)采集模塊、

21、溫度處理模塊、液晶屏溫度顯示模塊、蜂鳴器報(bào)警模塊。單片機(jī)主控制模塊即整個(gè)系統(tǒng)的核心模塊,是一個(gè)AT89C51芯片,主要通過執(zhí)行其程序存儲(chǔ)器Rom中的程序來對(duì)其4個(gè)并行I/O口進(jìn)行讀寫操作完成對(duì)其他模塊的控制。溫度信號(hào)采集模塊是由一個(gè)溫度信號(hào)采集器組成,主要是溫度信號(hào)采集并將數(shù)據(jù)傳回給單片機(jī)主控制模塊。傳感器采集的溫度值通過傳回給主控制模塊AT89C51單片機(jī)進(jìn)行處理,然后送入液晶顯示器進(jìn)行溫度顯示。溫度處理模塊是由繼電器控制,加熱爐和電

22、機(jī)分別來對(duì)溫度進(jìn)行升溫、降溫處理。液晶屏溫度顯示模塊當(dāng)然就是對(duì)溫度的當(dāng)前值進(jìn)行顯示。蜂鳴器報(bào)警模塊就是對(duì)當(dāng)采集的溫度值大于或者小于用戶自定義的遇界溫度值進(jìn)行報(bào)警提示。</p><p><b>  第三章硬件設(shè)計(jì)</b></p><p>  3.1單片機(jī)主控制單元</p><p>  主控制單元是單片機(jī)選用市場(chǎng)上常見的美國ATMEL公司的AT89

23、C51作為控制元件,以下是一些AT89C51的介紹:AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)

24、標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如下所示</p><p><b>  主要特性:</b></p><p>  ·與MCS-51 兼容

25、 </p><p>  ·4K字節(jié)可編程FLASH存儲(chǔ)器 </p><p>  ·壽命:1000寫/擦循環(huán) </p><p>  ·數(shù)據(jù)保留時(shí)間:10年 </p><p>  ·全靜態(tài)工作:0Hz-24MHz </p><p>  ·三級(jí)程序存儲(chǔ)器鎖定 </p&g

26、t;<p>  ·128×8位內(nèi)部RAM </p><p>  ·32可編程I/O線 </p><p>  ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 </p><p><b>  ·5個(gè)中斷源 </b></p><p><b>  ·可編程串行通道 &

27、lt;/b></p><p>  ·低功耗的閑置和掉電模式 </p><p>  ·片內(nèi)振蕩器和時(shí)鐘電路</p><p><b>  管腳說明:</b></p><p>  VCC:供電電壓。 </p><p><b>  GND:接地。 </b>&

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

29、1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。P1口可作為低八位地址接收。 </p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。P2口當(dāng)用于外部程序存儲(chǔ)

30、器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口可接收高八位地址信號(hào)和控制信號(hào)。 </p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。P3口也可作為AT89C51的一些特殊

31、功能口,如下表所示: </p><p><b>  管腳 備選功能 </b></p><p>  P3.0 RXD(串行輸入口) </p><p>  P3.1 TXD(串行輸出口) </p><p>  P3.2 /INT0(外部中斷0) </p><p>  P3.3 /INT1(外部中斷1)

32、 </p><p>  P3.4 T0(記時(shí)器0外部輸入) </p><p>  P3.5 T1(記時(shí)器1外部輸入) </p><p>  P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) </p><p>  P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 &

33、lt;/p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。 </p><p>  PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。

34、但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 </p><p>  EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p>  XTAL1:

35、反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 </p><p>  XTAL2:來自反向振蕩器的輸出。 </p><p>  所用單片機(jī)AT89C51,見下圖3.1所示:</p><p>  圖3.1AT89C51</p><p> ?。?)時(shí)鐘電路:如下圖3.2連接即可構(gòu)成自激振蕩電路,振蕩頻率取決于適應(yīng)晶體的振蕩頻率,范圍可取1.2~1

36、2MHZ,C1、C2主要起頻率微調(diào)和穩(wěn)定作用,電容可取5~30pF。</p><p><b>  圖3.2時(shí)鐘電路</b></p><p> ?。?)復(fù)位電路:如下圖3.3</p><p><b>  圖3.3復(fù)位電路</b></p><p>  3.2溫度信號(hào)采集單元</p><

37、;p>  對(duì)于溫度的采集需要用到DS18B20一總線溫度傳感器,以下DS18B20的一些介紹:</p><p>  DSl8B20溫度傳感器是美國DALLAS半導(dǎo)體公司繼DSl820之后最新推出的只用改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)要求通過簡單的編程實(shí)現(xiàn)9~l2位的數(shù)字直讀方式??梢苑謩e存93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DSl8B20讀

38、出的信息或?qū)懭隓Sl8B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接DSl8B20供電,而無需額外電源。因而使用DSl8B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測(cè)溫精度,轉(zhuǎn)換時(shí)時(shí)間,傳輸距離,分辨率等方面較DSl820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果。DSl8B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如3.4所示:</p>&l

39、t;p>  圖3.4 DSl8B20的內(nèi)部結(jié)構(gòu)圖</p><p>  DS18B20的內(nèi)部結(jié)構(gòu)主要有四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DSl8B20有2種封裝形式:3腳PR-35直插式和8腳SOIC貼片式管腳排列如圖3.5所示:</p><p>  圖3.5 DS18B20的管腳</p><p>  DS1

40、8B20的引腳說明如下:</p><p><b>  GND :地</b></p><p><b>  DQ :數(shù)據(jù)I/O</b></p><p><b>  VDD :電源</b></p><p><b>  NC :空腳</b></p>

41、<p>  64位激光ROM開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào)共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DSl8B20可以采用一線進(jìn)行通信的原因。64位激光ROM的機(jī)構(gòu)如表3.1所示:</p><p>  表3.1 64位激光ROM</p><p>  LSB MSB LSB MSB LSB

42、 MSB </p><p>  DSl8B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除EEPRAM。后者用于存儲(chǔ)TH,TL值。數(shù)據(jù)先寫入RAM,經(jīng)校驗(yàn)后再傳給EEPRAM。而配置寄存器為高速暫存器中的第5個(gè)字節(jié),他的內(nèi)容用與確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DSl8B20 工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置D

43、Sl8B20在工作模式還是在測(cè)試模式。在DSl8B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),Rl和R0決定溫度轉(zhuǎn)換精度位數(shù)。如表3.2所示。</p><p><b>  表3.2內(nèi)部存儲(chǔ)器</b></p><p>  由表3.3可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置寄存器外,還有其

44、他8個(gè)字節(jié)組成,其分配如表4所示。其中溫度信息(第l,2字節(jié)),TH和TL值第3,4節(jié),第6~8字節(jié),表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有的8字節(jié)的CRC碼,可用來保證通信正確。</p><p>  表3.3溫度數(shù)據(jù)轉(zhuǎn)換與時(shí)間</p><p>  當(dāng)DSl8B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換,如表3.4所示。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展到二進(jìn)制補(bǔ)碼形式儲(chǔ)存在高速暫存存儲(chǔ)

45、器的第l,2字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前面,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。</p><p>  表3.4高速暫存存儲(chǔ)器</p><p>  在DSl8B20完成溫度變換之后,溫度值與貯存TH和TL內(nèi)的觸發(fā)值相比較因?yàn)檫@些寄存器僅僅是8位

46、,所以0.5℃位在比較時(shí)被忽略。TH或TL的最高有較位直接對(duì)應(yīng)于l6位溫度奇存器的符號(hào)位。如果溫度測(cè)量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測(cè)量更新此標(biāo)志。只要告警標(biāo)志置位,DSl8B20將對(duì)告警搜索命令做出響應(yīng)。這允許并聯(lián)連接許多DSl8B20,同時(shí)進(jìn)行溫度測(cè)量。如果某處溫度超過極限,那么可以識(shí)別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。部分溫度轉(zhuǎn)換如表3.5所示:</p><p&

47、gt;  表3.5部分溫度轉(zhuǎn)換</p><p><b>  參數(shù)特性:</b></p><p> ?。?)獨(dú)特的單線接口只需l個(gè)接口引腳即可通信</p><p> ?。?)多點(diǎn)綜合測(cè)溫能力使分布式溫度檢測(cè)應(yīng)用得以簡化</p><p>  (3)不需要外部元件</p><p> ?。?)可用數(shù)據(jù)線供

48、電</p><p><b> ?。?)需備份電源</b></p><p> ?。?)測(cè)量范圍從-55℃至+125℃增量值為0.5℃</p><p> ?。?)以9位數(shù)字值方式讀出溫度</p><p> ?。?)在1秒(典型值)內(nèi)把溫度變換為數(shù)字</p><p> ?。?)用戶可定義的非易失性的溫度

49、告警設(shè)置</p><p> ?。?0)告警搜索命令識(shí)別和尋址溫度在編定的極限之外器件溫度告警情況</p><p> ?。?1)應(yīng)用范圍包括恒溫控制工業(yè)系統(tǒng)消費(fèi)類產(chǎn)品溫度計(jì)或任何熱敏系統(tǒng)</p><p><b>  極限參數(shù):</b></p><p> ?。?)任何引腳相對(duì)于地的電壓-0.5V至+7.0V</p>

50、;<p> ?。?)運(yùn)用溫度-55℃至+125℃</p><p> ?。?)貯存溫度-55。C至+125℃</p><p> ?。?)焊接溫度260℃/l0秒</p><p>  如圖3.6所示,為單片機(jī)與DS18B20的接口電路。DS18B20只有三個(gè)引腳,一個(gè)接地,一個(gè)接電源,一個(gè)數(shù)字輸入輸出引腳接單片機(jī)的P3.0口電源與數(shù)字輸入輸出腳間需要接一個(gè)

51、4.7K的電阻。當(dāng)然如果單片機(jī)的I/O口內(nèi)部自帶有上拉電阻就可以不加上拉電阻了。</p><p>  圖3.6 DS18B20與單片機(jī)接口電路</p><p>  DSl8B20使用中注意到事項(xiàng):</p><p>  DSl8B20雖然具有測(cè)溫系統(tǒng)簡單,測(cè)溫精度高、連接方便、占用I/O 口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下問題:</p><p

52、>  (1)在實(shí)際片使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v左右,如果電壓過低,會(huì)使所測(cè)得到溫度與實(shí)際溫度出現(xiàn)偏高現(xiàn)象,使溫度輸出定格在85℃。</p><p> ?。?)連接DSl8B20的總線電纜是有長度限制的。當(dāng)采用普通信號(hào)電纜傳輸長度超過50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)發(fā)生錯(cuò)誤,當(dāng)采用雙絞線帶屏蔽電纜為總線電纜時(shí),正常通訊距離可達(dá)l50m,當(dāng)采用每米膠合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離可以進(jìn)一步加長。這

53、種情況主要由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,存進(jìn)行長距離測(cè)量時(shí)要充分考慮總線分布電容和阻抗匹配問題。根據(jù)要求設(shè)計(jì)的溫度采集單元如圖3.7所示:</p><p>  圖3.7溫度采集單元</p><p>  在本系統(tǒng)要采用一條總線上掛單個(gè)DS18B20器件。在P1.0口接DS18B20溫度傳感器。由于只采用單個(gè)傳感器,故無需讀出DS18B20溫度傳感器的序列號(hào),在程序中直接跳過R

54、OM。</p><p>  3.3液晶顯示屏輸出</p><p>  液晶顯示的原理是利用液晶的物理特性,通過電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。</p><p>  3.3.1 1602

55、LCD的基本參數(shù)及引腳功能</p><p>  1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖3.8所示:</p><p>  圖3.8 1602LCD尺寸圖</p><p>  1602LCD主要技術(shù)參數(shù):</p><p>  顯示容量:16&#

56、215;2個(gè)字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V</p><p>  字符尺寸:2.95×4.35(W×H)mm</p><p><b>  引腳功能說明</b&

57、gt;</p><p>  1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3.6所示:</p><p>  表3.6:引腳接口說明表</p><p>  第1腳:VSS為地電源。</p><p>  第2腳:VDD接5V正電源。</p><p>  第3腳:VL為液晶顯示器對(duì)比度調(diào)整

58、端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀

59、忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  第15腳:背光源正極。</p><p>  第16腳:背光源負(fù)極。</p><p>  3

60、.3.2 1602LCD的指令說明及時(shí)序</p><p>  1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表3.7所示:</p><p>  表3.7:控制命令表</p><p>  1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)</p><p>  指令1:清顯示,指令碼01H

61、,光標(biāo)復(fù)位到地址00H位置。</p><p>  指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。</p><p>  指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。</p><p>  指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制

62、光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。</p><p>  指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。</p><p>  指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符

63、。</p><p>  指令7:字符發(fā)生器RAM地址設(shè)置。</p><p>  指令8:DDRAM地址設(shè)置。</p><p>  指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。</p><p><b>  指令10:寫數(shù)據(jù)。</b></p>

64、<p><b>  指令11:讀數(shù)據(jù)。</b></p><p>  與HD44780相兼容的芯片時(shí)序表3.8如下:</p><p>  表3.8:基本操作時(shí)序表</p><p>  讀寫操作時(shí)序如圖3.9和3.10所示:</p><p><b>  圖3.9讀操作時(shí)序</b></p&

65、gt;<p>  圖3.10 寫操作時(shí)序</p><p>  3.3.3 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表</p><p>  液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3.11是1602的內(nèi)部顯示地址。</p>&l

66、t;p>  圖3.11 1602LCD內(nèi)部顯示地址</p><p>  例如第二行第一個(gè)字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。</p><p>  在對(duì)液晶模塊的初始化

67、中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。</p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如圖3.12所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)

68、模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”</p><p>  圖3.12字符代碼與圖形對(duì)應(yīng)圖</p><p>  連接顯示電路如圖3.13所示:</p><p><b>  圖3.13</b></p><p>  3.4蜂鳴器報(bào)警電路</p><p>  蜂鳴器報(bào)警電路由一

69、個(gè)報(bào)警器與一個(gè)I/O口P2.2相連,通過對(duì)I/O通過輸入高低電平來控制報(bào)警器的響鈴。P2.2為低電平時(shí)報(bào)警并紅燈亮。見下圖3.14:</p><p>  圖3.14蜂鳴器報(bào)警電路</p><p><b>  第四章軟件設(shè)計(jì)</b></p><p><b>  4.1主程序</b></p><p> 

70、 系統(tǒng)主流程圖如圖4.1所示,主要完成是調(diào)用LCD液晶顯示器的初始化及18b20初始化,對(duì)溫度的采集、轉(zhuǎn)化并顯示以及對(duì)相應(yīng)溫度的控制處理。主程序相當(dāng)于一條主線,將各個(gè)準(zhǔn)備子程序模塊組合在一起,以實(shí)現(xiàn)功能要求,將當(dāng)前溫度值顯示在液晶顯示器上。</p><p><b>  N</b></p><p><b>  Y</b></p>&l

71、t;p>  圖4.1主函數(shù)流程圖</p><p>  4.2溫度采集子程序</p><p>  溫度采集子程序主要是實(shí)現(xiàn)對(duì)溫度的采集及對(duì)溫度數(shù)據(jù)進(jìn)行處理傳回給單片機(jī)在進(jìn)行顯示。本系統(tǒng)用的DS18B20溫度傳感器要進(jìn)行溫度檢測(cè)就需要對(duì)它進(jìn)行初始化、寫指令操作,讀數(shù)據(jù)操作以及讀溫度前的準(zhǔn)備工作等。因此溫度采集子程序又由對(duì)DS18B20溫度傳感器的初始化子程序、寫指令子程序、讀數(shù)據(jù)子程序、

72、讀溫度數(shù)據(jù)前的準(zhǔn)備子程序組成。</p><p>  根據(jù)DS18B20時(shí)序如下:</p><p>  對(duì)DS18B20的初始化時(shí)序,如圖4.2:</p><p>  圖4.2 DS18B20的初始化時(shí)序</p><p>  主機(jī)首先發(fā)出一個(gè)480-960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有

73、低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。</p><p>  作為從器件的DS18B20在一上電后就一直在檢測(cè)總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測(cè)到就一直在檢測(cè)等待。對(duì)DS18B20的寫操作如圖4.3:</p>&l

74、t;p>  圖4.3. DS18B20的寫操作</p><p>  接下來就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取0或1的過程。因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫1、讀0和讀1的。寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機(jī)先把總線拉低1微秒表示寫周期開始。隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫

75、周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到總線被拉底后等待15微秒然后從15us到45us開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。</p><p>  對(duì)DS18B20的讀操作如圖4.4:</p><p>  圖4.4. DS18B20的讀</

76、p><p>  對(duì)18B20以上這些操作的程序流程圖如下圖4.5所示:</p><p><b>  圖4.5</b></p><p>  對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。讀時(shí)隙是從主機(jī)把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測(cè)到總線被拉低1微秒后,便開始送出

77、數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。</p><p>  DS18B20 單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,如果出現(xiàn)序列混亂, 1-

78、WIRE 器件將不響應(yīng)主機(jī),因此讀寫時(shí)序很重要。微控制器控制 DS18B20 完成溫度的轉(zhuǎn)換必須經(jīng)過以下步驟 :</p><p> ?。ǎ保┟看巫x寫前對(duì) DS18B20 進(jìn)行復(fù)位初始化。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500us,然后釋放,DS18B20 收到信號(hào)后等待16us~60us 左右,然后發(fā)出60us~240us 的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。</p><p&

79、gt; ?。ǎ玻┌l(fā)送一條 ROM 指令,見表4.1:</p><p>  表4.1發(fā)送ROM指令</p><p> ?。?)發(fā)送存儲(chǔ)器指令,見表4.2:</p><p>  表4.2發(fā)送存儲(chǔ)器指令</p><p>  現(xiàn)在要讓DS18B20進(jìn)行一次溫度的轉(zhuǎn)換,那具體的操作就是:</p><p>  1、主機(jī)先作個(gè)復(fù)位操

80、作,</p><p>  2、主機(jī)再寫跳過ROM的操作(CCH)命令,</p><p>  3、然后主機(jī)接著寫個(gè)轉(zhuǎn)換溫度的操作命令,后面釋放總線至少一秒,讓DS18B20完成轉(zhuǎn)換的操作。在這里要注意的是每個(gè)命令字節(jié)在寫的時(shí)候都是低字節(jié)先寫,例如CCH的二進(jìn)制為11001100,在寫到總線上時(shí)要從低位開始寫,寫的順序是“零、零、壹、壹、零、零、壹、壹”。整個(gè)操作的總線狀態(tài)如4.5圖。<

81、/p><p>  圖4.5轉(zhuǎn)換時(shí)總線狀態(tài)</p><p>  讀取RAM內(nèi)的溫度數(shù)據(jù)。同樣,這個(gè)操作也要接照三個(gè)步驟。</p><p>  1、主機(jī)發(fā)出復(fù)位操作并接收DS18B20的應(yīng)答(存在)脈沖。</p><p>  2、主機(jī)發(fā)出跳過對(duì)ROM操作的命令(CCH)。</p><p>  3、主機(jī)發(fā)出讀取RAM的命令(BE

82、H),隨后主機(jī)依次讀取DS18B20發(fā)出的從第0一第8,共九個(gè)字節(jié)的數(shù)據(jù)。如果只想讀取溫度數(shù)據(jù),那在讀完第0和第1個(gè)數(shù)據(jù)后就不再理會(huì)后面DS18B20發(fā)出的數(shù)據(jù)即可。同樣讀取數(shù)據(jù)也是低位在前的。整個(gè)操作的總線狀態(tài)如4.6圖: </p><p>  圖4.6讀取RAM內(nèi)的溫度數(shù)據(jù)</p><p>  在這里說明一下,第二步跳過對(duì)ROM操作的命令是在總線上只有一個(gè)器件時(shí),若總線上不止一個(gè)器件,

83、那么跳過ROM操作命令將會(huì)使幾器件同時(shí)響應(yīng),這樣就會(huì)出現(xiàn)數(shù)據(jù)沖突。因本系統(tǒng)只采用一條總線上掛一個(gè)DS18B20器件就不需要通過識(shí)別DS18B20的序列號(hào)。</p><p>  4.3數(shù)據(jù)處理子程序</p><p>  數(shù)據(jù)處理也就是先對(duì)DS18B20采集得到的溫度值進(jìn)行的一些變換,使其轉(zhuǎn)換成真實(shí)值并成為十進(jìn)制數(shù),然后再進(jìn)行變化使其能在液晶顯示器上顯示。temp是系統(tǒng)定</p>

84、<p>  義的一無符號(hào)整型變量,用于存儲(chǔ)溫度值,方便于對(duì)溫度值的處理具體的流程圖見圖4.7所示:</p><p>  圖4.7數(shù)據(jù)處理子程序流程圖</p><p><b>  4.4顯示子程序</b></p><p>  顯示子程序主要功用是將傳感器測(cè)得的溫度值顯示出來,本系統(tǒng)用的是LCD液晶顯示器,而LCD液晶顯示器要顯示出數(shù)據(jù)

85、在之前需要對(duì)液晶顯示器進(jìn)行初始化,寫指令,寫數(shù)據(jù)等操作因?yàn)楸鞠到y(tǒng)液晶顯示器只寫不讀,所以沒有附加讀操作的時(shí)序圖。所以R/W管腳一直處于低電平,在硬件中就直接接地,在軟件中就不用操作此管腳的信號(hào)了,就只需要控制RS和E管腳就可以了。根據(jù)時(shí)序圖LCD液晶顯示器的寫指令,寫數(shù)據(jù)以及初始化的流程圖如圖4.8所示:</p><p>  圖4.8 LCD液晶顯示子程序流程圖</p><p>  4.5

86、溫度處理及蜂鳴器報(bào)警子程序</p><p>  蜂鳴器報(bào)警在本系統(tǒng)中由單片機(jī)的P2^2管腳電平的高低來控制蜂鳴器報(bào)警。單片機(jī)的P2^2管腳低電平蜂鳴器報(bào)警,單片機(jī)的P2^2管腳高電平蜂鳴器不報(bào)警。通過對(duì)讀到并且進(jìn)行了數(shù)據(jù)處理的溫度值進(jìn)行判斷是否大于或者小于某一報(bào)警值而進(jìn)行報(bào)警,直到讀到的溫度值不在報(bào)警溫度值之中就停止報(bào)警。本系統(tǒng)以大于60℃小于1℃蜂鳴器報(bào)警為例,T為讀到并且進(jìn)行了數(shù)據(jù)處理的溫度真實(shí)值。當(dāng)P2^0

87、為低電平時(shí),系統(tǒng)由三極管驅(qū)動(dòng)繼電器線包,并由繼電器來驅(qū)動(dòng)大功率的加熱爐,做升溫處理。相應(yīng)的,當(dāng)P2^1為低電平時(shí),繼電器驅(qū)動(dòng)電機(jī)風(fēng)扇工作,降溫處理。溫度處理及鳴器報(bào)警子程序見4.9圖:</p><p>  圖 4.9溫度處理及蜂鳴器報(bào)警子程序</p><p><b>  第五章仿真測(cè)試</b></p><p>  5.1 Keil C51 的使

88、用</p><p>  Keil軟件是美國Keil Software 公司出品的51 系列兼容單片機(jī)C語言和匯編語言軟件開發(fā)系統(tǒng) ,而且是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20

89、M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)</p><p>  Keil有以下幾個(gè)特點(diǎn):</p><p>  1、全功能的源代碼編輯器;</p><p>  2、器件庫用來配置開發(fā)工具設(shè)置;</p><p>  3、項(xiàng)目管理器用來創(chuàng)建和維護(hù)用戶的項(xiàng)目;</p><p>  4、集成的M

90、AKE工具可以匯編、編譯和連接用戶嵌入式應(yīng)用;</p><p>  5、所有開發(fā)工具的設(shè)置都是對(duì)話框形式的;</p><p>  6、真正的源代碼級(jí)的對(duì)CPU和外圍器件的調(diào)試器;</p><p>  7、高級(jí)GDI(AGDI)接口用來在目標(biāo)硬件上進(jìn)行軟件調(diào)試以及和Monitor-51進(jìn)行通信。</p><p>  在KEIL軟件中編程的步驟如

91、下:</p><p>  首先打開KeilUvision2,在KEIL系統(tǒng)中,每做個(gè)獨(dú)立的程序,都視為工程。首先從菜單中的工程中“新建工程”,建立我們將要做的工程項(xiàng)目如圖5.1:</p><p><b>  圖5.1</b></p><p>  接下來Keil環(huán)境要求我們?yōu)?2工程選擇一個(gè)單片機(jī)型號(hào);我們選擇Ateml公司的89C51,“確定”

92、后工程就算建立好了如圖5.2和5.3所示:</p><p><b>  圖5.2</b></p><p><b>  圖5.3</b></p><p>  建立了工程項(xiàng)目以后現(xiàn)在就要為工程添加程序,點(diǎn)擊“文件”中的新建,新建一個(gè)空白文檔;這個(gè)空白文檔就是我們編寫單片機(jī)程序的場(chǎng)所。在這里可以進(jìn)行編輯、修改等操作。根據(jù)題意,在

93、文檔中寫入代碼,寫完后再檢查一下,然后保存,然后再將保存好的文檔添加到工程中,具體做法如圖5.4所示:</p><p><b>  圖5.4</b></p><p>  程序文件添加完畢后,對(duì)其進(jìn)行編譯當(dāng)前程序、編譯修改過的文件并生成應(yīng)用程序、重新編譯所有文件并生成應(yīng)用程序后,再點(diǎn)擊TARGET,則其頁面為圖5.5:</p><p><b

94、>  圖5.5</b></p><p>  再點(diǎn)擊圖案上的Output鍵如圖5.5</p><p><b>  圖5.6</b></p><p>  接下來就是點(diǎn)擊上圖中的select folder for objects鍵,得到下圖將其產(chǎn)生的HEX文件存儲(chǔ)在E盤zh文件夾中圖5.6</p><p>&

95、lt;b>  圖5.7</b></p><p>  最后一步就是將HEX文件燒錄到單片機(jī)里如圖5.7</p><p>  5.2 Proteus 的仿真</p><p>  Proteus是英國Labcenter electronics公司研發(fā)的EDA設(shè)計(jì)軟件,是一個(gè)基于ProSPICE混合模型仿真器的,完整的嵌入式系統(tǒng)軟、硬件設(shè)計(jì)仿真下臺(tái)。<

96、;/p><p>  Proteus不僅可以做數(shù)字電路、模擬電路、數(shù)?;旌想娐返姆抡?,還可進(jìn)行多種CPU的仿真,涵蓋了51、PIC、AVR、HCll、ARM等處理器,真正實(shí)現(xiàn)了在計(jì)算機(jī)上從原理設(shè)計(jì)、電路分析、系統(tǒng)仿真、測(cè)試到PCB板完整的電子設(shè)計(jì),實(shí)現(xiàn)了從概念到產(chǎn)品的全過程。</p><p>  Proteus ISIS的工作界而是一種標(biāo)準(zhǔn)的Windows界面,如圖5.8包括:標(biāo)題欄、主菜單、標(biāo)

97、準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口圖5.8所示:</p><p>  圖5.8 rotuse ISIS 工作界面</p><p><b>  原理圖繪制:</b></p><p>  (1)新建文件:打開Protuse,點(diǎn)FILE,在彈出的下拉菜單中選擇NE

98、WDESIGN,在彈出的圖幅選擇對(duì)話框中選Landscape A4。</p><p>  (2)元器件選取:按設(shè)計(jì)要求,在對(duì)象選擇窗口中點(diǎn)P,彈出PICK DEVICES對(duì)話框,在KEYWORDS中填寫要選擇的元器件,然后在右邊對(duì)話框中選中要選的元器件,則元器件列存對(duì)象選擇的窗口中。</p><p>  本設(shè)計(jì)所需選用的元器件如下:</p><p>  AT89C5

99、1:單片機(jī)</p><p>  LM016L:圖形液晶</p><p>  RES、RESPACK-8:電阻、上拉電阻</p><p>  CRYSTAL:晶振 CAP:電容</p><p>  DS18B20:溫度傳感器</p><p>  RESISTOR:電阻</p><p>  S

100、OUNDER:蜂鳴器</p><p>  LED_:發(fā)光二極管</p><p>  RLY_SPCO:繼電器</p><p>  HEATER:加熱爐</p><p><b>  MOTOR:電機(jī)</b></p><p>  (3)按設(shè)計(jì)連接原理圖,如圖5.9所示:</p><

101、p>  圖5.9 Proutes中系統(tǒng)仿真原理圖</p><p>  在圖形編輯窗口內(nèi),將鼠標(biāo)置于單片機(jī)上,單擊鼠標(biāo)右鍵,選中該對(duì)象,單擊鼠標(biāo)左鍵,進(jìn)入對(duì)象屬性編輯頁面,如圖5.10所示:</p><p>  在“Program File”中,通過打開按鈕,添加編譯工程文件產(chǎn)生后綴為.hex 的文件。然后將晶振頻率改為12MHz,點(diǎn)擊確定。最后點(diǎn)擊左下角的運(yùn)行按鈕運(yùn)行仿真就OK了。&

102、lt;/p><p><b>  圖5.10</b></p><p><b>  結(jié)束語:</b></p><p>  通過廣泛查閱各類文獻(xiàn)資料與實(shí)際調(diào)研走訪,深入了解溫度控制和數(shù)據(jù)采集系統(tǒng)在現(xiàn)實(shí)生活、生產(chǎn)中的廣泛應(yīng)用與研究意義。本文以溫度信號(hào)多路采集為例,介紹了用DSl8B20溫度傳感器溫度的采集,用單片機(jī)AT89C51控制D

103、S18B20溫度傳感器進(jìn)行溫度的采集再將溫度值傳回單片機(jī)進(jìn)行處理在送到LM016L顯示屏顯示。對(duì)所選取的系統(tǒng)分析各單元電路的設(shè)計(jì),以及各電路與單片機(jī)的接口技術(shù)。著重分析系統(tǒng)軟件的設(shè)計(jì)過程,使用單片機(jī)C語言進(jìn)行程序沒計(jì)。本文是采用模塊化的方式進(jìn)行敘述,對(duì)各模塊的設(shè)計(jì)進(jìn)行了比較詳細(xì)地闡述。本次設(shè)計(jì)的基于DSl8B20的溫度測(cè)量系統(tǒng)是一個(gè)分布式的溫度測(cè)量系統(tǒng),它可以遠(yuǎn)程對(duì)溫度實(shí)現(xiàn)測(cè)量和監(jiān)控,廣泛應(yīng)用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場(chǎng)合

104、。</p><p>  經(jīng)過這一次畢業(yè)設(shè)計(jì),我學(xué)了不少的知識(shí),學(xué)會(huì)了怎樣查閱資料和利用工具,學(xué)會(huì)了用C語言來進(jìn)行單片機(jī)的程序編寫以及熟練地使用PROTEUS仿真軟件和KEIL開發(fā)工具。通過這次畢業(yè)設(shè)計(jì),最主要的還是學(xué)會(huì)了根據(jù)硬件要求用C語言對(duì)單片機(jī)進(jìn)行程序編寫,以前課本學(xué)習(xí)的是用匯編語言對(duì)單片機(jī)進(jìn)行程序編寫,現(xiàn)在學(xué)會(huì)了用C語言編寫程序?qū)烧咭槐容^發(fā)現(xiàn)C語言要好編寫得多,而且移植性也很好,沒有匯編那么繁瑣。其次我也

105、對(duì)一些常見電子原件和產(chǎn)品有了一些了解,雖然只是了解但是能從以前的茫然到現(xiàn)在的了解并且能簡單運(yùn)用也是一個(gè)很大的進(jìn)步,同時(shí)通過這一次畢業(yè)設(shè)計(jì)也使我發(fā)現(xiàn)了自己知識(shí)面的嚴(yán)重不足,對(duì)很多東西都很陌生需要重復(fù)學(xué)習(xí)。我也深刻地認(rèn)識(shí)到只有將書本與具體的實(shí)踐相結(jié)合,才會(huì)有真正的收獲,才能鞏固自己的所學(xué),認(rèn)識(shí)到自己的不足,同時(shí)我們也要有一種積極學(xué)習(xí)的態(tài)度,時(shí)代在進(jìn)步我們也要跟著時(shí)代前進(jìn),要不斷學(xué)習(xí),不斷創(chuàng)新,用自己的知識(shí)與行動(dòng)來證明自己的價(jià)值。</p

106、><p><b>  致謝:</b></p><p>  經(jīng)過兩個(gè)月的努力,我的畢業(yè)設(shè)計(jì)順利完成了。在這里,我向所有指導(dǎo)過我的老師和幫助過我的同學(xué),對(duì)他們表示深深的謝意。在本文的撰寫過程中,周老師作為我的指導(dǎo)老師,他治學(xué)嚴(yán)謹(jǐn),視野廣闊,為我營造了一種良好的學(xué)術(shù)氛圍。通過輔導(dǎo)講解,使我接受了全新的思想觀念,樹立了明確的學(xué)術(shù)目標(biāo),領(lǐng)會(huì)了基本的思考方式,了解通用的研究方法。其嚴(yán)

107、以律己、寬以待人的崇高風(fēng)范,樸實(shí)無華、平易近人的人格魅力,與無微不至、感人至深的人文關(guān)懷,令人如沐春風(fēng),倍感溫馨。正是由于他在百忙之中多次審閱全文,對(duì)細(xì)節(jié)進(jìn)行修改,并為本文的撰寫提供了許多中肯而且寶貴的意見,本文才得以成型。最后,我還要認(rèn)真地謝謝我身邊所有的朋友和同學(xué),謝謝你們,你們對(duì)我的關(guān)心、幫助和支持是我不斷前進(jìn)的動(dòng)力之一,我的大學(xué)生活因?yàn)橛心銈兌泳省?#160;</p><p><b>  

108、參考文獻(xiàn):</b></p><p>  [1] 胡漢才.單片機(jī)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,1996 </p><p>  [2] 沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析[M].北京:北京航空航天大學(xué)出版社,2003</p><p>  [3] 張永楓.單片機(jī)應(yīng)用實(shí)訓(xùn)教程[M].西安:西安電子科技大學(xué)出版社,2005</p>&

109、lt;p>  [4]百度http://www.56doc.com/electron/scm/3936.html</p><p>  [5] ]百度http://www.wsdxs.cn/html/lunwenzhidao/</p><p>  附錄 1 系統(tǒng)C語言程序</p><p>  #include <reg51.h> // 51 系類單

110、片機(jī)頭文件</p><p>  #include <intrins.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  sbit sw=P2^0; //定義升溫</p><p&g

111、t;  sbit jw=P2^1; //定義降溫</p><p>  sbit beep = P2^2; //定義揚(yáng)聲器</p><p>  sbit SB1=P2^3;</p><p>  sbit SB2=P2^4;</p><p>  sbit rs=P2^5; //lcd的控制</p><p&

112、gt;  sbit rw=P2^6;</p><p>  sbit e=P2^7;</p><p>  sbit DQ=P1^0;</p><p>  sbit DQ1=P1^1;</p><p>  bit flag=1; </p><p>  uchar T=0,temp1=0,temp2=0,flag_dis

113、=0;</p><p>  uchar table[]={"wait for component.... "};</p><p>  uchar table1[]={'0','1','2','3','4','5','6','7','8&

114、#39;,'9'};</p><p>  uchar table2[]={"T= "};</p><p>  /******************************************************</p><p>  * 函數(shù):1602模塊</p><p>  **********

115、*********************************************/</p><p>  void delay(uint z) //延時(shí)</p><p>  {uchar x,y;</p><p>  for(x=50;x>1;x--)</p><p>  for(y=z;y>1;y--);<

116、;/p><p><b>  }</b></p><p>  void lcd_writecom(uchar com) //寫地址函數(shù)</p><p><b>  { rs=0;</b></p><p><b>  rw=0;</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)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論