版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)論文(設計)</p><p><b> ?。ǘ?屆)</b></p><p> 基于單片機的溫度測量儀設計</p><p> 所在學院 </p><p> 專業(yè)班級 電氣工程及其自動化 </p>
2、<p> 學生姓名 學號 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p><p> 溫度控制
3、現(xiàn)在廣泛應用于各個領域。在冶金工業(yè),化工生產(chǎn),電力過程,造紙行業(yè),機械制造和食品加工等諸多領域中,人們都在對溫度進行測量和控制。在工業(yè)中,如何提高溫度控制對象的運行性能一直以來都是控制人員努力想要解決的問題,由于所選器件的不同,還有很多不確定因素難以建立精確的數(shù)學模型,導致溫度的不穩(wěn)定和失控。而隨著單片機的出現(xiàn),很多問題都有了進一步的解決。</p><p> 本系統(tǒng)采用STC89C51單片機來驅(qū)動數(shù)字溫度傳感器
4、DS18B20,進行溫度數(shù)據(jù)的采集、讀取和處理,并通過液晶顯示器LCD1602顯示出來。同時通過RS-232串行口與PC機連接,將溫度數(shù)據(jù)傳送至PC機系統(tǒng)。</p><p> 本系統(tǒng)的軟件設計主要分為以下幾部分:主程序,溫度上下限值設定子程序、溫度讀取子程序、溫度顯示子程序、串口通信子程序、輸出控制子程序和報警子程序等,所有程序編寫都采用C51語言。</p><p> 關(guān)鍵詞:溫度控制
5、;單片機;數(shù)字溫度傳感器;液晶顯示</p><p><b> Abstract</b></p><p> Now, temperature control is widely used in many areas. People are in the temperature measurement and control in industry lighting
6、industry, metallurgical industry, chemical production, power process, paper industry, machinery manufacturing and food processing and many other areas. How to improve the operating performance of temperature control has
7、been the object which control personnel want to solve. As selecting different device, there are many uncertain factors difficult to establish accurate</p><p> The system uses microcontroller STC89C51 to dri
8、ve the digital temperature sensor DS18B20; collect, read and process temperature data, and display through LCD1602. At the same time it sends temperature data to PC through RS-232 serial port.</p><p> This
9、system software is mainly divided into the following several parts: main program, temperature limits setting subroutine, temperature reading subroutine, temperature display subroutine, serial communication subroutine, ou
10、tput control subroutine and alarm subroutine, etc., all programming are using C51 language. </p><p> Key Words: Temperature control; MCU; Digital Temperature Sensor; LCD</p><p><b> 目 錄&
11、lt;/b></p><p><b> 1 引言1</b></p><p> 1.1 背景介紹1</p><p> 1.2 溫度控制的現(xiàn)狀及前景1</p><p> 1.3 課題研究的內(nèi)容2</p><p><b> 2 總體設計3</b><
12、;/p><p> 2.1 課題達到的技術(shù)要求3</p><p><b> 2.2器件選擇3</b></p><p> 2.2.1單片機選擇3</p><p> 2.2.2通信口選擇3</p><p> 2.2.3溫度傳感器選擇4</p><p> 2.2
13、.4顯示方式的選擇4</p><p> 2.3總體設計方案5</p><p><b> 3 硬件設計6</b></p><p> 3.1 單片機主控模塊6</p><p> 3.2 溫度模塊8</p><p> 3.2.1數(shù)字溫度傳感器DS18B208</p>
14、<p> 3.2.2溫度設定模塊10</p><p> 3.2.3溫度顯示模塊11</p><p> 3.3串口通信模塊12</p><p> 3.4外圍控制模塊13</p><p> 3.5報警電路模塊13</p><p><b> 3.6小結(jié)13</b>&l
15、t;/p><p> 4 軟件設計15</p><p> 4.1 系統(tǒng)主程序15</p><p> 4.2溫度測量子程序16</p><p> 4.3讀溫度子程序17</p><p> 4.4溫度轉(zhuǎn)換子程序18</p><p> 4.5計算溫度子程序19</p>
16、<p> 4.6 液晶顯示20</p><p><b> 4.7 小結(jié)21</b></p><p><b> 5制作過程22</b></p><p><b> 6 結(jié)論24</b></p><p> 致謝錯誤!未定義書簽。</p>
17、<p><b> 參考文獻25</b></p><p> 附錄1 系統(tǒng)原理圖26</p><p> 附錄2 程序清單27</p><p><b> 1 引言</b></p><p><b> 1.1 背景介紹</b></p><p
18、> 現(xiàn)代信息技術(shù)的三大基礎是信息采集控制(即溫度控制器技術(shù)),信息傳輸(通信技術(shù))和信息處理(計算機技術(shù))。溫度控制器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度控制器被廣泛用于工農(nóng)業(yè)生產(chǎn),科學研究和生活等領域,而且由于人們生活環(huán)境的需求,溫度控制器的數(shù)量日漸上升[1]。</p><p> 對于溫度控制,以往,在實際的溫度控制系統(tǒng)中,多采用熱敏電阻器或熱電偶測量溫度,后來又有繼電器、PLC、單片機,專用工控機
19、等.實現(xiàn)方法不同的測溫方式有不同的優(yōu)缺點:對于熱敏電阻器這種溫度采集電路有時需要冷端補償電路,這樣就增加了電路的復雜性,而且該種電路易受干擾,使采集到的數(shù)據(jù)準確性不高[2];繼電器具有零電壓導通,零電流關(guān)斷,靈敏度高、控制功率小、電磁兼容性好,耐腐蝕、抗干擾、壽命長、體積小,能以微小的控制信號直接驅(qū)動大電流負載等優(yōu)點,但也存在通態(tài)壓降,需要散熱措施,有輸出漏電流,交直流不能通用,導通后的管壓降大,觸點組數(shù)少,成本高等缺點;PLC主要應用
20、于強電方面的工業(yè)控制,或者整條流水線的控制,相對于單片機的功耗要大,單個CPU比較穩(wěn)定[3],但價格昂貴;單片機適合于實時工業(yè)控制,相對于微機價格較為低廉,可編程性和可擴展性強;專用工控機配置硬盤容量小、數(shù)據(jù)安全性低且存儲選擇性小[4][5]。</p><p> 1.2 溫度控制的現(xiàn)狀及前景</p><p> 溫度控制系統(tǒng)是人類供熱、取暖的主要設備的驅(qū)動來源,它的出現(xiàn)迄今已有兩百余年的
21、歷史。期間,從低級到高級,從簡單到復雜,隨著生產(chǎn)力的發(fā)展和對溫度控制精度要求的不斷提高,溫度控制系統(tǒng)的控制技術(shù)得到迅速發(fā)展。溫度控制器發(fā)展初期是機械式溫度控制器,這類控制器采用金屬片或充氣式膜盒感測溫度,使用波段開關(guān)調(diào)整風速。但這類控制器由于它外觀陳舊,控制精度差,容易打火,功能單一,已被淘汰,現(xiàn)在已被智能電子式溫度控制器全面取代[6]。當前比較流行的溫度控制系統(tǒng)有基于單片機的溫度控制系統(tǒng),基于PLC 的溫度控制系統(tǒng),基于工控機(IPC
22、)的溫度控制系統(tǒng),集散型溫度控制系統(tǒng)(DCS),現(xiàn)場總線控制系統(tǒng)(FCS)等。</p><p> 溫度控制現(xiàn)在廣泛應用于各個領域,在冶金工業(yè),化工生產(chǎn),電力過程,造紙行業(yè),機械制造和食品加工等諸多領域中,人們都在對溫度進行測量和控制,在工業(yè)中,如何提高溫度控制對象的運行性能一直以來都是控制人員努力想要解決的問題,由于所選器件的不同,還有很多不確定因素難以建立精確的數(shù)學模型,導致溫度的不穩(wěn)定和失控。而隨著單片機的
23、出現(xiàn),很多問題都有了進一步的解決,由于單片微處理器具有高精確度、高靈敏度、高響應速度、以及耗能少、機構(gòu)小、可以連續(xù)測量、自動控制、安全可靠等優(yōu)點,非常適合嵌入式控制。同時,其邏輯控制運算是由軟件來進行的,可以容易的實現(xiàn)各種控制規(guī)則,甚至是比較復雜的控制算法的實現(xiàn),而且不受外界的工作環(huán)境的影響。再采用DS18B20數(shù)字溫度傳感器,讓測量溫度更加精確,而且其內(nèi)部集成了A/D轉(zhuǎn)化,使得電路結(jié)構(gòu)更加簡單,減少了溫度測量轉(zhuǎn)換時的精度損失,使得測量
24、更加精確。</p><p> 在當今電子信息時代,電子自動化、信息采集控制在任何行業(yè)都是不可逆轉(zhuǎn)的潮流,電子式溫度控制器全面取代機械式溫度控制器將在未來很短時間內(nèi)實現(xiàn),</p><p> 1.3 課題研究的內(nèi)容</p><p> 本課題主要研究利用溫度傳感器采集外界的溫度模擬量,通過A/D轉(zhuǎn)換器將放大后的模擬量轉(zhuǎn)換為單片機能夠識別的數(shù)字量,并通過液晶顯示進行實
25、時顯示。主要分為以下幾步:</p><p> (1)熟悉多功能溫度計的硬件結(jié)構(gòu),分析多種溫度計的工作原理。</p><p> ?。?)控制器采用單片機STC89C51,溫度傳感器采用DS18B20,并通過液晶顯示進行實時顯示;報警部分運用蜂鳴器報警;外圍控制用繼電器。</p><p> (3)能夠測量和顯示當前環(huán)境溫度等信息;</p><p&
26、gt; 本文主要介紹了基于單片機的溫度測量儀的設計思路和方案,并完成該系統(tǒng)的總體設計、硬件設計和軟件設計。硬件設計部分介紹了主要模塊的工作原理及實現(xiàn)方法。軟件設計部分介紹了主程序、溫度測量及液晶顯示子程序等。</p><p><b> 2 總體設計</b></p><p> 2.1 課題達到的技術(shù)要求</p><p> 系統(tǒng)總體指標
27、及功能要求如下:</p><p> 采用單片機作為主控電路;</p><p><b> 實時采集溫度;</b></p><p><b> 串行口傳送數(shù)據(jù);</b></p><p> 能夠測量和顯示當前環(huán)境溫度。</p><p><b> 2.2器件選擇&l
28、t;/b></p><p> 2.2.1單片機選擇</p><p> 方案一:采用8031單片機,該單片機片內(nèi)不帶程序存儲器,使用時用戶需外接程序存儲器和一片邏輯電路74HC373,外接的程序存儲器多為EPROM的2764系列。用戶若想對寫入到EPROM中的程序進行修改,必須先用一種特殊的紫外線燈將其照射擦除,之后才可寫入。寫入到外接程序存儲器的程序代碼沒有什么保密性可言,不利于
29、本次設計的系統(tǒng)。</p><p> 方案二:采用STC89C51,STC89C51是一種低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU和在線系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應用系統(tǒng)提供高靈
30、活、超有效的解決方案。</p><p> 本設計選用的是方案二。</p><p> 2.2.2通信口選擇</p><p> 方案一無線傳輸:此方案是指PC機與單片機通過無線信道傳輸數(shù)據(jù)。無線傳輸?shù)淖畲髢?yōu)勢是應用范圍廣,受距離約束較小,在一定范圍內(nèi)可以不用考慮距離問題,還可以應用在一些高溫、危險的場合,但性能不太穩(wěn)定。</p><p>
31、 方案二有線傳輸:此方案是指PC機與單片機之間通過電纜線傳輸數(shù)據(jù)。有線傳輸?shù)膬?yōu)勢是性能比較穩(wěn)定,調(diào)試簡單。</p><p> 本系統(tǒng)選用方案二。且選用串口通信,串行口選用了標準RS-232C接口。</p><p> 2.2.3溫度傳感器選擇</p><p> 方案一:采用接觸式溫度傳感器,像熱電偶、熱敏電阻以及鉑熱電阻等,其利用產(chǎn)生的熱電動勢或電阻隨溫度的變化
32、的特性來測量物體的溫度,一般還采用與開關(guān)組合的雙金屬片或磁繼電開關(guān)進行溫度控制。采用熱電偶、熱敏電阻以及鉑熱電阻等測量物體的溫度。如熱敏電阻具有負溫度系數(shù)(NTC),也就是說它的電阻值會隨溫度的下降而升高。其構(gòu)成的溫度傳感器在線路上傳送的是模擬信號,需要進過A/D轉(zhuǎn)換出數(shù)字量后,再由微機處理。</p><p> 方案二采用非接觸式傳感器,其通過檢測光傳感器中紅外線來測量物體的溫度[9]。如數(shù)字溫度傳感器DS18
33、B20,DS18B20具有體積小、功耗低、抗干擾能力強、易與單片機連接等特點,而且它無需任何外圍硬件即可方便地進行溫度測量,它采用1線總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸。對于這種溫度直接通過“一線總線”以數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,減少了外部的硬件電路,具有低成本和易使用的特點[7]。DS18B20采用多種封裝方式,從而使系統(tǒng)設計更靈活、方便。</p><p><b> 本系統(tǒng)
34、采用方案二。</b></p><p> 2.2.4顯示方式的選擇</p><p> 方案一:采用LED顯示,LED數(shù)碼顯示管是一種由LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個LED顯示管,其中7個用于顯示字符,1個用來顯示小數(shù)點,故通常稱之為八段發(fā)光二極管數(shù)碼顯示器。但LED顯示字符少,而且不能顯示漢字。</p><p> 方案二:采用L
35、CD顯示,在單片機系統(tǒng)中應用液晶顯示器作為輸出器件的優(yōu)點有顯示質(zhì)量高、數(shù)字式接口、體積小、重量輕、功耗低。</p><p><b> 本系統(tǒng)采用方案二。</b></p><p><b> 2.3總體設計方案</b></p><p> 本系統(tǒng)通過單片機來驅(qū)動數(shù)字傳感器DS18B20,進行溫度數(shù)據(jù)采集、讀取和處理,并通過
36、液晶顯示器顯示出來。同時通過RS-232串行口與PC機連接,將數(shù)據(jù)傳送至PC機系統(tǒng),當溫度超過上限值則由蜂鳴器報警并由外圍設置控制電路。</p><p> 系統(tǒng)的總體結(jié)構(gòu)框圖如圖2-1所示。</p><p> 圖2-1 總體結(jié)構(gòu)框圖</p><p><b> 3 硬件設計</b></p><p> 本系統(tǒng)就是
37、采用STC89C51單片機芯片作為控制芯片,采用數(shù)字溫度傳感器DS18B20測出當前環(huán)境的溫度,并用液晶顯示器LCD1602顯示出來。</p><p> 3.1 單片機主控模塊</p><p> 由于系統(tǒng)控制方案簡單,數(shù)據(jù)量也不大,考慮到電路的簡單和成本等因素,因此采用單片機STC89C51作為主控芯片。</p><p> 本系統(tǒng)的單片機芯片采用STC89C5
38、1[8],STC89C51系列單片機是從引腳到內(nèi)核都完全兼容標準8051的單片機,有PDIP-40、plcc-44、PQFP-44三種封裝形式。它的主要性能是:8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz 、三級加密程序存儲器 、32個可編程I/O口線、三個16位定時器/計數(shù)器八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器 、雙數(shù)據(jù)指針、掉電標識符 。&
39、lt;/p><p> 本系統(tǒng)采用的是40條管腳的STC89C51單片機,工作電壓范圍是2.0V~3.8V,工作頻率范圍是0~40MHz。</p><p> 單片機STC89C51最小系統(tǒng)如圖3-1所示。</p><p> 圖3-1 單片機最小系統(tǒng)</p><p> 單片機的時鐘產(chǎn)生方法有內(nèi)部時鐘方式和外部時鐘方式兩種[9]。本系統(tǒng)采用的
40、是內(nèi)部時鐘方式。</p><p> STC89C51單片機內(nèi)部有一個高增益反相放大器。XTAL1和XTAL2引腳分別是該放大器的輸入端和輸出端。該放大器與兩個引腳間跨接的石英晶振Y1和微調(diào)電容C3、C2,形成反饋電路,構(gòu)成一個穩(wěn)定的自激振蕩器,如圖3-1所示。C3、C2的取值對振蕩頻率輸出的頻率值、穩(wěn)定性及振蕩電路起振速度有少許影響,電容值一般為18-33pF。在焊接電路板時,晶振和電容應盡可能安裝得與單片機芯
41、片靠近,以減少寄生電容,更好地保證晶振穩(wěn)定和可靠地工作。本系統(tǒng)選用了大小為11.0592MHz的晶振和30pF的陶瓷電容。</p><p> 單片機的復位操作有兩種方式:上電復位和手動復位。本系統(tǒng)采用的是手動復位,這種復位方式更加人性化,不必要切斷電源即可對系統(tǒng)進行復位,如圖3-1所示。</p><p> 單片機在正常工作時,RST應保持低電平。當RST為高電平并且保持一段時間就能實現(xiàn)
42、復位。如果RST一直處于高電平,單片機就會處于循環(huán)復位狀態(tài),無法執(zhí)行程序。上電復位是單片機上電的瞬間,RC電路充電,RST引腳上出現(xiàn)高電平,只要RST端保持兩個機器周期以上的高電平,就能使單片機有效地復位。上電后,只要按下復位按鍵使RST持續(xù)一段時間的高電平,就能使單片機復位。圖3-2中的二極管D2的作用是快速放電。在上電時,二極管截止,電流流經(jīng)電阻到地;在下電時,電容放電,電流反向,二極管導通,把電阻短路,實現(xiàn)快速放電。本系統(tǒng)選用的是
43、11.0592MHz的晶振,因此一個機器周期約為1.0851μs,那么復位的脈沖寬度至少要2.1702μs。另外,實際應用中還要考慮晶振穩(wěn)定時間、電源穩(wěn)定時間、參數(shù)漂移等因素,必須有足夠的余量,增大復位的可靠性。因為晶振從起振到穩(wěn)定大約需要10ms,故復位時間通常定為大于10ms,復位的時間由RC電路的時間常數(shù)τ來決定。用到的計算公式有機器周期T的計算如式3-1所示和時間常數(shù)τ的計算如式3-2所示。其中fosc是晶振頻率。</p&
44、gt;<p> T=1/fosc×12 (3-1)</p><p> τ=RC (3-2)</p><p> RC的典型值為C=10μF,R=8.2KΩ,本系統(tǒng)選用的 C10的值為22μF和R5的值為10K,D2選用1N4007。</p><p&
45、gt;<b> 3.2 溫度模塊</b></p><p> 3.2.1數(shù)字溫度傳感器DS18B20</p><p> 溫度傳感器一般分為接觸式和非接觸式兩大類。接觸式溫度傳感器有熱電偶、熱敏電阻以及鉑熱電阻等利用其產(chǎn)生的熱電動勢或電阻隨溫度的變化的特性來測量物體的溫度,一般還采用與開關(guān)組合的雙金屬片或磁繼電開關(guān)進行溫度控制。非接觸式傳感器是通過檢測光傳感器中紅外
46、線來測量物體的溫度[10]。</p><p> 采用熱敏電阻是實現(xiàn)溫度測量的方法之一。許多熱敏電阻具有負溫度系數(shù)(NTC),也就是說它的電阻值會隨溫度的下降而升高。其構(gòu)成的溫度傳感器在線路上傳送的是模擬信號,需要進過A/D轉(zhuǎn)換出數(shù)字量后,再由微機處理。</p><p> 還可以采用美國Dallas公司生產(chǎn)的DS18B20數(shù)字溫度傳感器來實現(xiàn)。本系統(tǒng)就是采用美國Dallas半導體公司生產(chǎn)
47、的數(shù)字化溫度傳感器DS18B20。它是美國DALLAS公司繼DS1820之后推出的增強型單總線數(shù)字溫度傳感器。DS18B20的1腳為電源地;2腳為數(shù)字信號輸入/輸出端;3腳位外接供電電源輸入端(在寄生電源接線方式時接地)</p><p> DS18B20的內(nèi)部結(jié)構(gòu)如圖3-2所示,主要由4個部分構(gòu)成:64位ROM,溫度傳感器、非易失性溫度報警觸發(fā)器TH和TL、配置寄存器[10]。</p><p
48、> 圖3-2 DS18B20的內(nèi)部結(jié)構(gòu)</p><p> DS18B20工作電壓范圍為3~5.5V,可編程9位-12位A/D轉(zhuǎn)換精度,并可分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量。溫度測量范圍為-55℃~125℃,測溫最高分辨率可達0.0625℃,在-10℃~+85℃范圍內(nèi)其測溫準確度為±0.5℃。被測溫度用符號擴展的16位數(shù)字量方式串行輸出。DS18B20具有體積小、功耗低
49、、抗干擾能力強、易與單片機連接等特點,而且它無需任何外圍硬件即可方便地進行溫度測量。</p><p> 它采用1線總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對STC89C51單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議程序以完成對DS18B20芯片的訪問。</p><p> DS18B20的測溫原理如圖3-3所示,DS18B20內(nèi)部的低溫
50、度系數(shù)振蕩器受溫度的影響很小,能產(chǎn)生穩(wěn)定的頻率信號f0,它把產(chǎn)生的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)振蕩器隨溫度變化,其震蕩頻率明顯改變,它所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。圖中還隱藏著計數(shù)門,當計數(shù)門打開時,DS18B20對f0計數(shù),進而完成溫度測量,計數(shù)門開通時間由高溫度系數(shù)振蕩器決定。每次測溫前,首先將-55℃所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器,減法計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值中。&
51、lt;/p><p> 減法計數(shù)器1對低溫系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置值將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù)。如此循環(huán)知道減法計數(shù)器2計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。芯片內(nèi)部還有斜率累加器,可對頻率的非線性予以補償。測量結(jié)果存入溫度寄存器中[11]。</p&
52、gt;<p> 圖3-3 DS18B20的測溫原理</p><p> DS18B20用于多路溫度測量時電路圖如圖3-4所示,用4只DS18B20同時測量4路溫度,在本系統(tǒng)中,即采用多路溫度測量。P1.2口接DS18B20。</p><p> 圖3-4多路溫度測量原理圖</p><p> 3.2.2溫度設定模塊</p><p&
53、gt; 溫度設定用按鍵來完成,按鍵設定采用C程序完成(以下會具體說明),去抖動設置等都由C程序完成,不需要外圍繁瑣的外部接口電路,設備簡單。</p><p> 液晶顯示數(shù)值設定,變化范圍為00~99,開始設定顯示為30,按S0,數(shù)值加一,按S1數(shù)值減一,按S2數(shù)值歸零,按S3顯示當前溫度,設定值都設定為無符號整形變量與溫度傳感器傳回的數(shù)值進行比較的同時做出相應報警信號提示。</p><p&
54、gt; 按鍵輸入模塊如圖3-5所示:</p><p> 圖3-5鍵盤輸入模塊</p><p> 3.2.3溫度顯示模塊</p><p> 系統(tǒng)通過單片機讀取溫度傳感器轉(zhuǎn)換的溫度值后,需要由溫度顯示模塊顯示測得的溫度。液晶顯示器在日常生活中的應用非常廣泛,主要用來顯示數(shù)字、符號和圖形。在單片機系統(tǒng)中應用液晶顯示器作為輸出器件的優(yōu)點有顯示質(zhì)量高、數(shù)字式接口、體積
55、小、重量輕、功耗低。</p><p> 本設計選用LCD1602,將單片機輸出的數(shù)據(jù)進行動態(tài)顯示。LCD1602是字符型顯示器,LCD1602分為背光和不帶背光兩種,在應用中并無差別,本系統(tǒng)用的是帶背光。</p><p> 1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口如表3-1所示。</p><p> 表3-1 LCD1602引腳
56、接口表</p><p> LCD1602與單片機的連接原理圖如圖3-6所示:</p><p> 圖3-6 LCD1602與單片機的連接原理圖</p><p><b> 3.3串口通信模塊</b></p><p> 單片機內(nèi)部含有一個可編程全雙工串口通信接口,由TXD引腳來傳送串行數(shù)據(jù),而由RXD引腳來接受數(shù)據(jù)。
57、該接口具有UART(通用異步接收和發(fā)送器)的全部功能,它不僅能同時進行數(shù)據(jù)的發(fā)送和接收,也可作為一個同步移位寄存器使用,可構(gòu)成雙機或者多機通信系統(tǒng)。</p><p> 由于TXD引腳和RXD引腳的工作邏輯電平皆為TTL電平(0V~5V),所以在單片機與PC機之間的數(shù)據(jù)通信必須經(jīng)過RS-232信號(+12V~-12V)電平轉(zhuǎn)換。本系統(tǒng)采用MAX232電平轉(zhuǎn)換芯片來實現(xiàn)RS-232標準接口通信電路,其電路連接如圖3
58、-7所示:</p><p> 圖3-7 MAX232串口通信電路 </p><p><b> 3.4外圍控制模塊</b></p><p> 單片機的P1.3口作為外設控制端口,其輸出的控制信號,經(jīng)過NPN晶體管放大,再通過繼電器控制[12],如圖3-8所示。</p><p> 圖3-8外圍控制原理圖</p
59、><p><b> 3.5報警電路模塊</b></p><p> 本系統(tǒng)采用蜂鳴報警電路,此電路由三極管和蜂鳴器組成,當所測溫度超過系統(tǒng)所設定的上下限值時,就由單片機控制輸出信號控制晶體管導通,則蜂鳴器報警。報警圖如圖3-9所示。</p><p> 圖3-9報警電路模塊原理圖</p><p><b> 3.
60、6小結(jié)</b></p><p> 本節(jié)主要介紹了單片機控制模塊、串口通信模塊和溫度傳感器及顯示模塊四部分的結(jié)構(gòu)和工作原理??刂颇K中采用的是STC89C51單片機,采用該單片機主要是因為其高效能,低功耗,而且使本系統(tǒng)的硬件設計簡單化。串口通信電路主要是使單片機與PC之間進行數(shù)據(jù)通信,本系統(tǒng)采用MAX232電平轉(zhuǎn)換芯片來實現(xiàn)RS-232標準接口電平轉(zhuǎn)換。溫度測量使用DS18B20,其內(nèi)部含有A/D轉(zhuǎn)換
61、電路,減少外圍設備,與單片機直接通過“一線總線”以數(shù)字方式傳輸。它能實時測量溫度,并通過液晶進行顯示,溫度顯示使用LCD1602顯示器。</p><p><b> 4 軟件設計</b></p><p> 本系統(tǒng)采用STC89C51單片機為主控部分,把經(jīng)過DS18B20實時測得的溫度數(shù)據(jù)存入STC89C51的內(nèi)部數(shù)據(jù)存儲器,并送至LCD1602液晶顯示,并與設定的
62、溫度上下限值進行比較,然后由單片機輸出的控制信號區(qū)控制外部設備。在對溫度控制程序設計時要考慮到報警部分,當實時測得的溫度值與設定的溫度上下限值進行比較后,如果發(fā)現(xiàn)當前的溫度值超過了設定值,則產(chǎn)生報警信號,蜂鳴器報警與硬件電路相聯(lián)系,本系統(tǒng)的軟件設計主要分為以下幾部分:主程序,溫度上下限值設定子程序、溫度讀取子程序。溫度顯示子程序、串口通信子程序。輸出控制子程序和報警子程序等,所有程序編寫都采用C51語言[13]。</p>
63、<p><b> 4.1 系統(tǒng)主程序</b></p><p> 系統(tǒng)主程序包括初始化,溫度上下限設置,溫度采集,溫度顯示和報警等程序,完成對整個系統(tǒng)的控制。系統(tǒng)主程序流程圖如圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p> 4.2溫度測量子程序</p><p> DS18B
64、20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。它的工作過程包括初始化時序、寫入時序和讀取時序。所以主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:在每一次讀取之前都要對DS18B20進行復位,復位成功之后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。對于復位,主機首先發(fā)出一個480ms的低電平,然后釋放總線變?yōu)楦唠娖?,DS18B20收到信號之后等待16~60ms,后發(fā)出
65、60~240ms的存在脈沖,主機收到信號則便是復位成功。</p><p> 溫度測量程序負責溫度的實時顯示,讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次其流程圖見圖4-2所示:</p><p> 圖4-2 溫度測量子程序流程圖</p><p> 多點測溫程序流程圖如圖4-3所示:</p><p> 圖4-3 多
66、點測溫程序流程圖</p><p><b> 4.3讀溫度子程序</b></p><p> 此程序主要是讀出RAM中的9字節(jié),并進行CRC校驗,其流程圖如圖4-4所示:</p><p> 圖4-4讀溫度子程序流程圖</p><p> 4.4溫度轉(zhuǎn)換子程序</p><p> 溫度轉(zhuǎn)換命令子程
67、序是進行溫度轉(zhuǎn)換,本程序采用1s顯示延時法等待轉(zhuǎn)換的完成,其流程圖如圖4-5所示:</p><p> 圖4-5溫度轉(zhuǎn)換子程序流程圖</p><p> 4.5計算溫度子程序</p><p> 計算溫度子程序流程圖如圖4-6所示:</p><p> 圖4-6計算溫度子程序流程圖</p><p> DS18B20溫
68、度/數(shù)據(jù)對應關(guān)系如表4-1所示:</p><p> 表4-1 DS18B20溫度/數(shù)據(jù)對應關(guān)系</p><p><b> 4.6 液晶顯示</b></p><p> LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,見表4-2。LCD1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。</p><
69、p> 表4-2 LCD控制命令表</p><p> 液晶顯示模塊是一個慢顯示器件,每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預。要顯示字符時要先輸入顯示字符地址。LCD在一行顯示方式下,DDRAM的地址范圍為00H-4FH;在雙行顯示方式下,DDRAM的地址范圍:第一行為00H-27H,第二行為40H-67H
70、。</p><p> 液晶顯示程序流程圖如圖4-7所示。</p><p> 圖4-7 液晶顯示程序流程圖</p><p><b> 4.7 小結(jié)</b></p><p> 本節(jié)主要介紹了溫度測量,轉(zhuǎn)換及液晶顯示程序。溫度測量及液晶顯示程序是單片機讀取當前環(huán)境溫濕度的值,并輸出數(shù)據(jù)給LCD1602顯示。</p
71、><p><b> 5制作過程</b></p><p> 制作過程可分為硬件制作過程和軟件編寫過程。</p><p> 在制作硬件前,先查閱大量與課題相關(guān)的資料,了解溫度測量儀的結(jié)構(gòu)和工作原理。在掌握課題相關(guān)的理論基礎后,根據(jù)要達到的要求,畫出總體框架圖。</p><p> 根據(jù)要完成的功能選擇元器件。解之后,使用P
72、rotel99se電路設計軟件畫出原理圖[14]。在完成原理圖后必須對每個元件進行封裝,這是繪制電路板圖的前提。封裝的尺寸要和實際的元件的尺寸相同。繪制電路板圖必須很仔細,因為這是電路是否能成功的重要環(huán)節(jié)。首先根據(jù)元器件之間的關(guān)系,將元器件放在一個合理的位置,盡量避免線路交叉。布局完成后,采用手動布線。完成后的一部分電路板圖如圖5-1所示。</p><p> 圖5-1 單片機控制及液晶顯示電路板圖</p
73、><p> 然后就是制作PCB電路板。它包括打印圖紙、把圖紙在PCB板上油印、腐蝕,最后打孔,這里的每一道工序都很重要。接著是焊接元器件,焊接的好壞與否將直接影響到后面的軟件調(diào)試,若硬件存在問題,即使程序編寫正確,也不會達到應有的效果。完成的一部分PCB電路板如圖5-2所示。</p><p> 圖5-2 單片機控制及液晶顯示PCB電路板圖</p><p> 最后
74、調(diào)試,先對硬件調(diào)試,硬件調(diào)試基本成功后再進行軟件調(diào)試,C語言程序在Keil uvision3編譯軟件中完成。將各部分程序編譯完成后,將程序下載到STC89C51單片機,觀察硬件是否能實現(xiàn)功能。這些功能的程序不是一次就能完成的,要不斷地修改、編譯和下載程序,不斷地調(diào)試。最后實現(xiàn)所有要求的功能,達到預期的目標。</p><p><b> 6 結(jié)論</b></p><p>
75、; 本系統(tǒng)方案按照任務書的要求,通過查閱大量資料、分析和制作調(diào)試,經(jīng)過幾個月的努力,基本上已經(jīng)達到預期的目標。</p><p> 溫度測量采用單片機處理,是由于單片微處理器具有高精確度、高靈敏度、高響應速度、以及耗能少、機構(gòu)小、可以連續(xù)測量、自動控制、安全可靠等優(yōu)點,非常適合嵌入式控制。同時,其邏輯控制運算是由軟件來進行的,可以容易的實現(xiàn)各種控制規(guī)則,甚至是比較復雜的控制算法的實現(xiàn),而且不受外界的工作環(huán)境的影
76、響。再采用DS18B20數(shù)字溫度傳感器,讓測量溫度更加精確,而且其內(nèi)部集成了A/D轉(zhuǎn)化,使得電路結(jié)構(gòu)更加簡單,減少了溫度測量轉(zhuǎn)換時的精度損失,使得測量更加精確。</p><p> 本系統(tǒng)的主控芯片采用的是STC89C51芯片,它是一種低功耗、高性能CMOS的8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。</p>
77、<p> 在設計的過程中,遇到了很多理論上的疑難和技術(shù)上的問題,在老師的指導和幫助下,一步一步的把問題解決,直到最后完成作品。通過此次設計,我學到了許多在課上無法學到的知識,對電子應用設計也有了新的認識,對自身的理論知識水平和操作能力也有了很大的提高。</p><p><b> 參考文獻</b></p><p> [1]羅淳.《模糊自整定PID的溫室溫
78、度控制器的設計》[D]武漢科技大學</p><p> [2]徐翔.《基于AT89S52單片機與DS18B20的溫度控制系統(tǒng)的設計》[C].中國礦業(yè)大學計算機科學與技術(shù)學院</p><p> [3]巫莉.《電氣控制與PLC應用》[M].中國電力出版社,2008</p><p> [4] 杜生海,邢聞譯.《FPGA設計指南》[M].北京:人民郵電出版社,2007,
79、12</p><p> [5]趙世霞.《VHDL與微機接口設計》[M].北京:清華大學出版社,2004,7</p><p> [6]王志剛.《現(xiàn)代電子線路》[M].第四版.北京:清華大學出版社.2008</p><p> [7] 王任遠,沈占彬.數(shù)字式智能溫度控制器的研究[M]. 平頂山工業(yè)職業(yè)技術(shù)學院,2008年</p><p>
80、[8] 吳金戌,沈慶陽等.8051單片機實踐與應用[M].清華大學出版社.2002年9月</p><p> [9] 楊恢先,黃輝先.單片機原理及應用[M].北京:人民郵電出版社.2006年10月</p><p> [10] 何希才,薛永毅,姜余祥.傳感器技術(shù)及應用[M].北京航空航天大學出版社.2005年4月</p><p> [11] 周琛暉,馮少懷.基于D
81、S18B20的溫度測量系統(tǒng) [M].中國礦業(yè)大學計算機學院。2009年5月</p><p> [12] 林建雄.基于單片機的溫度控制系統(tǒng)研究[M].電力學報,2008年2月</p><p> [13] 趙文博,劉文濤.單片機語言C51程序設計[M].人民郵電出版社.2005年10月</p><p> [14]夏路易,石宗義.電路原理圖與電路板設計教程[M].北
82、京希望電子出版社.2002年6月</p><p> [15]《AppendixF:PID Temperature Control》[J].文章出自www.lakeshore.com</p><p><b> 附錄1 系統(tǒng)原理圖</b></p><p><b> 附錄2 程序清單</b></p><
83、p> #include<reg52.h> //</p><p> #include<math.h></p><p> #include<INTRINS.H></p><p> #define uchar unsigned char</p><p> #define uint un
84、signed int;</p><p> /******************************************************************/</p><p> /* 定義端口 */</p><p> /*******
85、***********************************************************/</p><p> sbit LED1 = P2^7;</p><p> sbit LED2 = P2^6;</p><p> sbit LED3 = P2^5;</p><p> sbit LED4 = P2^4;
86、</p><p> sbit DQ=P1^3;//ds18b20 端口</p><p> /******************************************************************/</p><p> /* 全局變量
87、 */</p><p> /******************************************************************/</p><p> uint temp;</p><p> uchar flag_get,count,num,minute,second;</p><p> uchar
88、 code tab[]={0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,0x20,0xA0,0x60,0x25, 0x3C, 0x23,0x34,0x74,0xF7,0xFF}; //7段數(shù)碼管段碼表共陽</p><p> uchar str[6];</p><p> /**************
89、****************************************************/</p><p> /* 函數(shù)聲明 */</p><p> /********************************************************
90、**********/</p><p> void delay1(uchar MS);</p><p> unsigned int ReadTemperature(void);</p><p> void Init_DS18B20(void);</p><p> unsigned char ReadOneChar(void);<
91、/p><p> void WriteOneChar(unsigned char dat);</p><p> void delay(unsigned int i);</p><p> /******************************************************************/</p><p>
92、/* 主函數(shù) */</p><p> /******************************************************************/</p><p><b> main()</b></p><
93、p><b> {</b></p><p> unsigned char TempH,TempL;</p><p> TMOD|=0x01;//定時器設置</p><p><b> TH0=0xef;</b></p><p><b> TL0=0xf0;</b>&
94、lt;/p><p><b> IE=0x82;</b></p><p><b> TR0=1; </b></p><p><b> count=0;</b></p><p><b> while(1)</b></p><p>&
95、lt;b> {</b></p><p> str[5]=0x3C; //顯示C符號</p><p> str[1]=tab[TempH/100]; //百位溫度</p><p> str[2]=tab[(TempH%100)/10]; //十位溫度</p><p> str[3]=tab[(Temp
96、H%100)%10] & 0xDF; //個位溫度,帶小數(shù)點</p><p> str[4]=tab[TempL];</p><p> if(flag_get==1) //定時讀取當前溫度</p><p><b> {</b></p><p> temp=ReadTemperature();&
97、lt;/p><p> if(temp&0x8000)</p><p><b> {</b></p><p> str[0]=0x40;//負號標志</p><p> temp=~temp; // 取反加1</p><p><b> temp +=1;</b>&
98、lt;/p><p><b> }</b></p><p><b> else</b></p><p><b> str[0]=0;</b></p><p> TempH=temp>>4;</p><p> TempL=temp&
99、0x0F;</p><p> TempL=TempL*6/10;//小數(shù)近似處理</p><p> flag_get=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
100、/p><p> /******************************************************************/</p><p> /* 定時器中斷 */</p><p> /***********************
101、*******************************************/</p><p> void tim(void) interrupt 1 using 1//中斷,用于數(shù)碼管掃描和溫度檢測間隔</p><p><b> {</b></p><p> TH0=0xef;//定時器重裝值</p><p
102、><b> TL0=0xf0;</b></p><p><b> num++;</b></p><p> if (num==50)</p><p><b> {num=0;</b></p><p> flag_get=1;//標志位有效</p>&
103、lt;p><b> second++;</b></p><p> if(second>=60)</p><p> {second=0;</p><p> minute++; </p><p><b> }</b></p><p><b>
104、}</b></p><p><b> count++;</b></p><p> if(count==1)</p><p> {LED4 = 1;</p><p> P0 =str[2];</p><p><b> LED1 = 0;</b></p
105、><p><b> }//數(shù)碼管掃描</b></p><p> if(count==2)</p><p> {LED1 = 1;</p><p> P0 = str[3];</p><p> LED2 = 0;}</p><p> if(count==3)</
106、p><p> { LED2 = 1;</p><p> P0 = str[4];</p><p><b> LED3 = 0;</b></p><p><b> }</b></p><p> if(count==4)</p><p> { LE
107、D3 = 1;</p><p> P0=str[5];</p><p><b> LED4 = 0;</b></p><p> count = 0;</p><p><b> }</b></p><p><b> }</b></p>
108、<p> /******************************************************************/</p><p> /* 延時函數(shù) */</p><p> /****************************
109、**************************************/</p><p> void delay(unsigned int i)//延時函數(shù)</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p
110、><p> /******************************************************************/</p><p> /* 初始化 */</p><p> /***********************
111、*******************************************/</p><p> void Init_DS18B20(void)</p><p><b> {</b></p><p> unsigned char x=0;</p><p> DQ = 1; //DQ復位</p
112、><p> delay(8); //稍做延時</p><p> DQ = 0; //單片機將DQ拉低</p><p> delay(80); //精確延時 大于 480us</p><p> DQ = 1; //拉高總線</p><p> delay(10);</p><p>
113、; x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗</p><p><b> delay(5);</b></p><p><b> }</b></p><p> /***********************************************************
114、*******/</p><p> /* 讀一個字節(jié) */</p><p> /******************************************************************/</p><p> unsigned cha
115、r ReadOneChar(void)</p><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>
116、; {</b></p><p> DQ = 0; // 給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號</p><p><b> if(DQ)</b></p><p> d
117、at|=0x80;</p><p><b> delay(5);</b></p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p> /***************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的溫度測量儀的設計【畢業(yè)設計論文】
- 基于單片機的脈搏測量儀的設計畢業(yè)論文
- 基于51單片機的溫度測量儀設計畢業(yè)設計
- 基于單片機的溫度測量儀設計【開題報告】
- 畢業(yè)設計---基于51單片機的溫度測量儀的設計
- 基于單片機的脈搏測量儀畢業(yè)設計論文
- 畢業(yè)設計(論文)--基于單片機的電容測量儀設計
- 基于單片機的脈搏測量儀設計畢業(yè)設計(論文)
- 基于單片機的溫度測量儀設計【任務書】
- 畢業(yè)設計---基于單片機的電容測量儀設計
- 畢業(yè)設計--基于單片機的電容測量儀設計
- 畢業(yè)設計-----基于單片機的電容測量儀設計
- 基于單片機的脈搏測量儀
- 基于單片機簡易信號測量儀畢業(yè)設計
- 基于單片機的脈搏測量儀的設計
- 基于avr單片機的風速測量儀設計
- 基于avr單片機的風速測量儀設計
- 基于單片機的鋼水溫度測量儀的研制.pdf
- 基于msp430單片機的液位測量儀設計畢業(yè)論文外文翻譯
- 基于單片機的溫度測量系統(tǒng)-畢業(yè)論文
評論
0/150
提交評論