版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 51單片機(jī)溫度測量與控制系統(tǒng)</p><p><b> 摘 要</b></p><p> 隨著現(xiàn)代信息技術(shù)和工農(nóng)業(yè)的快速發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個基于51單片機(jī)的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機(jī)下的
2、硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對各部分的電路也進(jìn)行了介紹,該系統(tǒng)可以方便的實現(xiàn)實時溫度采集和顯示,并可根據(jù)需要設(shè)定上下限報警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與51單片機(jī)結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場
3、溫度測量,有廣泛的應(yīng)用前景。</p><p> 關(guān)鍵字: 51單片機(jī)、溫度、DS18B20、數(shù)碼管、 C51</p><p><b> Abstract</b></p><p> With the rapid development of modern information technology and industry and ag
4、riculture, microcontroller technology has spread to our life, work, scientific research, each domain, has become a relatively mature technology, this paper introduces a temperature measurement system based on 51 single c
5、hip, detailed description of the use of digital temperature sensor DS18B20 temperature measurement system development, key the connection to the sensor under the SCM hardware, software programming and </p><p&g
6、t; Key words:The 51 single chip microcomputer、Temperature、DS18B20、Digital tube、C51</p><p><b> 目 錄</b></p><p> 概論…………………………………………………………1</p><p> 設(shè)計背景………………………………………
7、……………1</p><p> 總體設(shè)計……………………………………………………2</p><p> 1.3 設(shè)計要求……………………………………………………3</p><p> 設(shè)計理論基礎(chǔ)………………………………………………4</p><p> 2.1 51單片機(jī)……………………………………………………4</
8、p><p> 2.2 溫度傳感器 DS18B20………………………………………7</p><p> 2.3 鎖存器 74HC573……………………………………………10</p><p> 2.4 LED 數(shù)碼管…………………………………………………11</p><p> 硬件電路設(shè)計…………………………………………
9、……13</p><p> 3.1 單片機(jī)最小的系統(tǒng)…………………………………………13</p><p> 3.2 溫度采集電路………………………………………………14</p><p> 3.3 溫度控制電路………………………………………………16</p><p> 3.4 鍵盤電路…………………………
10、…………………………17</p><p> 3.5 顯示電路……………………………………………………18</p><p> 軟件程序設(shè)計………………………………………………19</p><p> 4.1 程序初始化…………………………………………………19</p><p> 4.2 延時子函數(shù)………………………
11、…………………………19</p><p> 4.3 按鍵設(shè)定子函數(shù)……………………………………………20</p><p> 4.4 溫度顯示子函數(shù)……………………………………………21</p><p> 4.5 溫度采集子函數(shù)……………………………………………21</p><p> 4.6 溫度控制子函
12、數(shù)……………………………………………23</p><p> 4.7 主函數(shù)………………………………………………………24</p><p> 總結(jié)全文……………………………………………………25</p><p> 結(jié)束語………………………………………………………25</p><p> 致謝詞…………………………………………………
13、……25</p><p> 參考文獻(xiàn)……………………………………………………26</p><p> 附錄…………………………………………………………27</p><p><b> 概 論</b></p><p><b> 設(shè)計背景</b></p><p> 溫度是
14、表征物體冷熱程度的物理量,溫度是工農(nóng)業(yè)生產(chǎn)、科學(xué)試驗以及日常生活中需要普遍進(jìn)行測量和控制的一個重要物理量,由此對溫度進(jìn)行檢測的意義就越來越大。溫度采集控制系統(tǒng)在工業(yè)生產(chǎn)、科學(xué)研究和人們的生活領(lǐng)域中,得到了廣泛應(yīng)用。在工業(yè)生產(chǎn)過程中,很多時候都需要對溫度進(jìn)行嚴(yán)格的監(jiān)控,以使得生產(chǎn)能夠順利的進(jìn)行,產(chǎn)品的質(zhì)量才能夠得到充分的保證。使用自動溫度控制系統(tǒng)可以對生產(chǎn)環(huán)境的溫度進(jìn)行自動控制,保證生產(chǎn)的自動化、智能化能夠順利、安全進(jìn)行,從而提高企業(yè)的生
15、產(chǎn)效率,所以溫度的測量及控制對保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、節(jié)約能源、生產(chǎn)安全、促進(jìn)國民經(jīng)濟(jì)的發(fā)展起到非常重要的作用。由于溫度測量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。而且隨著科學(xué)技術(shù)和生產(chǎn)的不斷發(fā)展,溫度傳感器的種類還是在不斷增加豐富來滿足生產(chǎn)生活中的需要。</p><p> 溫度采集控制系統(tǒng)是在嵌入式系統(tǒng)設(shè)計的基礎(chǔ)上發(fā)展起來的。嵌入式系統(tǒng)雖然起源于微型計算機(jī)時代,但是微型計算機(jī)的體積、價位、可靠性,
16、都無法滿足廣大對象對嵌入式系統(tǒng)的要求,因此,嵌入式系統(tǒng)必須走獨立發(fā)展道路。這條道路就是芯片化。將計算機(jī)做在一個芯片上,從而開創(chuàng)了嵌入式系統(tǒng)獨立發(fā)展的單片機(jī)時代。自從70年代Intel公司推出第一批單片機(jī)以來,80年代單片機(jī)技術(shù)進(jìn)入快速發(fā)展時期,近年來,隨著大規(guī)模集成電路的發(fā)展,單片機(jī)繼續(xù)朝快速、高性能方向發(fā)展,從4位、8位單片機(jī)發(fā)展到16位、32位單片機(jī)。單片機(jī)主要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機(jī),小至日常生活中的冰箱、
17、彩電,單片機(jī)都可以大顯其能。</p><p> 單片機(jī)是將微處理器、存儲器、定時/計數(shù)器、I/O接口電路等集成在一個芯片上的大規(guī)模集成電路,本身即是一個小型化的微機(jī)系統(tǒng)。單片機(jī)技術(shù)與傳感與測量技術(shù)、信號與系統(tǒng)分析技術(shù)、電路設(shè)計技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計算機(jī)操作系統(tǒng)、匯編語言程序設(shè)計、高級語言程序設(shè)計、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號處理、自動控制、誤差分析、儀器儀表結(jié)構(gòu)設(shè)
18、計和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同時,單片機(jī)具有較強(qiáng)的治理功能。采用單片機(jī)對整個測量電路進(jìn)行治理和控制,使得整個系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修方便。 因此將單片機(jī)與溫度測量技術(shù)相結(jié)合,利用單片機(jī)強(qiáng)大的數(shù)據(jù)處理和過程控制能力,實現(xiàn)一定的功能不但有重要的實際意義,而且已經(jīng)成為一種趨勢。</p><p><b> 總體設(shè)計</b
19、></p><p> 本論文設(shè)計是基于單片機(jī)的溫度控制系統(tǒng),系統(tǒng)框圖如圖1.2所示 ,包括6部分:主機(jī)單片機(jī)系統(tǒng)、溫度采集電路、顯示電路、報警電路、鍵盤電路、溫度控制電路。采用STC89C51為主機(jī)芯片,由數(shù)字溫度傳感器DS18B20采集數(shù)據(jù)經(jīng)過I/O口讀入CPU處理,把CPU處理的一組溫度數(shù)據(jù)送到LED數(shù)碼管顯示,另一組數(shù)據(jù)與按鍵設(shè)定的溫度值進(jìn)行比較判斷,當(dāng)溫度高于或低于設(shè)定溫度時,開始報警并啟動相應(yīng)控
20、制程序(溫度高于設(shè)定溫度時,啟動冷卻模塊;當(dāng)溫度低于設(shè)定溫度時,啟動加熱模塊),達(dá)到自動控制溫度的目的。</p><p> 圖1.2 系統(tǒng)框圖</p><p><b> 設(shè)計要求</b></p><p> 要求單片機(jī)溫度測控系統(tǒng)完成以下功能:</p><p><b> 基本功能</b>&l
21、t;/p><p><b> 測量溫度實時顯示。</b></p><p><b> 設(shè)定目標(biāo)溫度值。</b></p><p> 超過上下限溫度報警。</p><p><b> 溫度自動控制。</b></p><p><b> 參數(shù)要求<
22、;/b></p><p> 溫度測量范圍0-99℃。</p><p> 溫度測量誤差<±1℃。</p><p> 溫度控制誤差<±3℃。</p><p><b> 設(shè)計理論基礎(chǔ)</b></p><p> 本設(shè)計的主要任務(wù)是能對溫度自動檢測和控制,而設(shè)
23、計中是采用單片機(jī)來控制,因此要有溫度的采集電路、溫度顯示控制電路、鍵盤電路、報警電路等。要實現(xiàn)系統(tǒng)設(shè)計要用到的知識點有單片機(jī)的原理及其應(yīng)用,溫度傳感器的原理及其應(yīng)用,鍵盤和顯示電路設(shè)計等,本章將做主要介紹。</p><p> 2.1 51單片機(jī)</p><p> 2.1.1 51單片機(jī)概述</p><p> 51系列單片機(jī)無論是在片內(nèi)容量、I∕O口功能、系
24、統(tǒng)擴(kuò)展能力方面,還是在指令系統(tǒng)和CPU的處理功能方面,都比其前輩要強(qiáng)得多。尤其是它所特有的布爾處理機(jī),在邏輯處理和控制方面具有突出的優(yōu)勢。</p><p> AT89C51是ATMEL公司MCS—51系列兼容單片中的代表作品,它內(nèi)部集成了功能強(qiáng)大的中央處理器、21個專用控制寄存器、4KB的程序存儲器、128字節(jié)的數(shù)據(jù)存儲器、4組8位的并行I∕O口、兩個16位的可編程定時∕計數(shù)器、一個全雙工的串行口和布爾處理器。
25、</p><p> MCS—51系列中最典型的代表是8051、8031和8751,它們的指令系統(tǒng)完全兼容,僅在內(nèi)部結(jié)構(gòu)和應(yīng)用特性方面稍有差異。8051內(nèi)部的程序存儲器為掩膜ROM,可根據(jù)特殊要求和用途在制造芯片時就將專用程序固化進(jìn)去,成為專用單片機(jī)。8031內(nèi)部沒有ROM,使用時需要外接EPROM芯片,其他與8051完全相同。而8751是片內(nèi)ROM采用EPROM形式的8051,能方便地改寫程序??梢姡?051和
26、8751本身即可構(gòu)成一個小而完整的微機(jī)系統(tǒng),而8031還需要外加一片EPROM才能構(gòu)成系統(tǒng)。本設(shè)計采用的國產(chǎn)宏晶STC單片機(jī)及其低功耗、廉價、穩(wěn)定性能,占據(jù)著國內(nèi)51單片機(jī)較大市場。</p><p> 2.1.2 8051單片機(jī)內(nèi)部結(jié)構(gòu)</p><p> MCS—51是51系列單片機(jī)的典型代表。Intel的MCS—51和Atmel的AT89C51采用的均是哈佛結(jié)構(gòu)的形式。</p&
27、gt;<p> 51單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等若干單元,片外擴(kuò)展能力通過數(shù)據(jù)總線、地址總線和控制總線實現(xiàn)。其特點如下:</p><p> ?。?)面向控制的8位中央處理器(CPU)</p><p> ?。?)具有布爾處理能力</p><p> ?。?)64KB程序存儲器
28、空間</p><p> ?。?)64KB數(shù)據(jù)存儲器空間</p><p> ?。?)4KB片內(nèi)程序存儲器(ROM)</p><p> (6)128B內(nèi)部數(shù)據(jù)存儲器(RAM)</p><p> ?。?)一組特殊功能寄存器(SFR)</p><p> ?。?) 32根雙向并可按位尋址的I∕O口線</p>&l
29、t;p> (9)2個16位定時器∕計數(shù)器</p><p> ?。?0) 5個中斷源,具有2個優(yōu)先級</p><p> (11)一個全雙工異步串行口</p><p> ?。?2)片內(nèi)振蕩器和時鐘電路</p><p><b> 51單片機(jī)引腳特性</b></p><p> 在外形上51系
30、列單片機(jī)有多種封裝,比較常用的是DIP封裝方式,如圖2.1.1所示。</p><p> 其中,XTAL1(18腳)和XTAL2(19腳)為時鐘引腳,并且51單片機(jī)的時鐘可由內(nèi)部方式或外部方式產(chǎn)生。如圖2.1.2所示為兩種時鐘產(chǎn)生方式。</p><p> 對于8051系列的單片機(jī)來說,控制引腳通常包括復(fù)位引腳、ALE∕PROG引腳、PSEN引腳、EA∕VPP引腳、以及WR和RD引腳。&l
31、t;/p><p> 51系列單片機(jī)有四個雙向8位I∕O口P0—P3,其中P0為三態(tài)雙向口,負(fù)載能力位8個LSTTL門電路,既可以作地址∕數(shù)據(jù)復(fù)用總線使用,也可以作通用I∕O口,P1—P3為準(zhǔn)雙向口,負(fù)載能力為4個LSTTL門電路。同時P1口在Flash編程和驗證程序時,它輸入低八位地址。P2口既可以作地址總線口使用,又可以作通用I∕O口使用。P3口是雙功能口,作通用I/O口使用時,其結(jié)構(gòu)與操作與P1口相同,作第二功
32、能口使用時,每一位都有其特殊的功能。</p><p> 圖2.1.1 DIP 封裝引腳排列</p><p> 圖2.1.2 51單片機(jī)的時鐘連接方式</p><p> 2.1.4 51單片機(jī)存儲器組織</p><p> 單片機(jī)在存儲系統(tǒng)的設(shè)計上普遍采用哈佛結(jié)構(gòu),將程序存儲器和數(shù)據(jù)存儲器分開,有不同的尋址機(jī)構(gòu)和尋址方式。以AT89
33、C51為例,它的片內(nèi)集成了4KB的Flash程序存儲器和128B的RAM數(shù)據(jù)存儲器,當(dāng)系統(tǒng)存儲空間不足時,可以通過片上總線引腳擴(kuò)展外部存儲器。</p><p> 從物理上看,AT89C51可分為4個存儲空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。從邏輯上,可分為3個邏輯空間:片內(nèi)外統(tǒng)一編址的64KB程序存儲器地址空間、256B的片內(nèi)數(shù)據(jù)存儲器地址空間和64KB外部數(shù)據(jù)存儲器地址空間。通
34、過不同的指令形式和尋址方式,可以實現(xiàn)對三個不同的邏輯空間的訪問。</p><p> 程序存儲器以程序計數(shù)器PC作地址指針,是控制器的一部分。AT89C51內(nèi)部的程序存儲器地址為0000H~0FFFH,外部最大可擴(kuò)展64KB的程序存儲器。正常工作時,程序從內(nèi)部Flash開始運行,當(dāng)PC值超過0x0FFFH時,自動轉(zhuǎn)到外部擴(kuò)展的存儲區(qū)0x1000H~0xFFFFH地址空間去執(zhí)行程序。</p><
35、p> 數(shù)據(jù)存儲器分為片內(nèi)和片外兩種,兩者無論在物理上還是在邏輯上,其地址空間是彼此獨立的。片內(nèi)數(shù)據(jù)存儲器地址范圍為00H~FFH,片外數(shù)據(jù)存儲器地址空間為0000H~FFFFH,其中00H~FFH這部分地址是沖突的。所以要通過不同的指令來分別訪問片內(nèi)和片外的數(shù)據(jù)存儲器。</p><p> 2.2 溫度傳感器DS18B20</p><p> DS18B20是美國DALLAS半導(dǎo)
36、體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系
37、統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果。</p><p> 2.2.1 DS18B20的引腳介紹 </p><p> TO-92封裝的DS18B20的引腳排列見圖2.2,其引腳功能描述見表2.2。 </p><p> 圖2.2( DS18B20底視圖)
38、 </p><p> 表2.2 DS18B20詳細(xì)引腳功能描述 </p><p> DS18B20的使用方法 </p><p> 由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。 &l
39、t;/p><p> 由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令
40、的傳輸都是低位在先。 </p><p> DS18B20的復(fù)位時序 </p><p> DS18B20的讀時序 </p><p> 對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。</p><p> 對于DS18B20的讀時隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS1
41、8B20在完成一個讀時序過程,至少需要60us才能完成。 </p><p> DS18B20的寫時序 </p><p> 對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。 </p><p> 對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO
42、總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。 </p><p> 2.2.3 DS18B20工作過程</p><p> DS18B20工作過程一般遵循以下協(xié)議:初始化——ROM操作命令——存儲器操作命令——處理數(shù)據(jù)。</p><p> 鎖存器74HC573</p><p> 圖2.3.1 7
43、4HC573</p><p> 74HC573的八個鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時,Q 輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時,新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動器和工作寄
44、存器。</p><p> 圖2.3.2 74HC573引腳功能圖</p><p><b> LED數(shù)碼管</b></p><p> LED數(shù)碼管由7個發(fā)光二極管組成,此外,還有一個圓點型發(fā)光二極管(在圖中以dp表示),用于顯示小數(shù)點。通過七段發(fā)光二極管亮暗的不同組合,可以顯示多種數(shù)字、字母以及其它符號。LED數(shù)碼管中的發(fā)光二極管共有兩
45、種連接方法:</p><p> ?。?)共陰極接法:把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極。使用時公共陰極接地,這樣陽極端輸入高電平的段發(fā)光二極管就導(dǎo)通點亮,而輸入低電平的則不點亮。本設(shè)計采用的LED顯示器為共陰極接法</p><p> ?。?)共陽極接法:把發(fā)光二極管的陽極連在一起構(gòu)成公共陽極。使用時公共陽極接+5V。這樣陰極端輸入低電平的段發(fā)光二極管就導(dǎo)通點亮,而輸入高電平的則不點亮。
46、</p><p> 為了顯示數(shù)字或符號,要為LED顯示器提供代碼,因為這些代碼是為顯示字形的,因此稱之為字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點位,共計八段。因此提供給LED顯示器的字形代碼正好一個字節(jié)。若a、b、c、d、e、f、g、dp 8個顯示段依次對應(yīng)一個字節(jié)的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7。LED數(shù)碼管顯示十六進(jìn)制數(shù)時所需的字形代碼如圖2.4.2所示</p>
47、<p> 圖2.4.2 7段LED顯示字符及段碼表</p><p> LED顯示器是單片機(jī)應(yīng)用系統(tǒng)中常見的輸出器件,而在單片機(jī)的應(yīng)用上也是被廣泛運用的。如果需要顯示的內(nèi)容只有數(shù)碼和某些字母,使用LED數(shù)碼管是一種較好的選擇。LED數(shù)碼管顯示清晰、成本低廉、配置靈活,與單片機(jī)接口簡單易行。</p><p><b> 硬件電路設(shè)計</b></p&
48、gt;<p> 3.1 單片機(jī)最小的系統(tǒng)</p><p> 目前的單片機(jī)開發(fā)系統(tǒng)只能夠仿真單片機(jī),卻沒有給用戶提供一個通用的最小系統(tǒng)。由設(shè)計的要求,只要做很小集成度的最小系統(tǒng)應(yīng)用在一些小的控制單元。其應(yīng)用特點是:</p><p> ?。?)全部I/O口線均可供用戶使用。 </p><p> (2)內(nèi)部存儲器容量有限(只有4KB地址空間)。 &l
49、t;/p><p> (3)應(yīng)用系統(tǒng)開發(fā)具有特殊性</p><p> 圖 3.1 單片機(jī)最小系統(tǒng)圖</p><p> 單片機(jī)最小系統(tǒng)如圖3.1所示,其中有4個雙向的8位并行I/O端口,分別記作P0、P1、P2、P3,都可以用于數(shù)據(jù)的輸出和輸入,P3口具有第二功能為系統(tǒng)提供一些控制信號。時鐘電路用于產(chǎn)生MCS-51單片機(jī)工作所必須的時鐘控制信號,內(nèi)部電路在時鐘信號
50、的控制下,嚴(yán)格地按時序指令工作。MCS-51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,該高增益反向放大器的輸入端為芯片的引腳XTAL1,輸出端為XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成了一個穩(wěn)定的自激振蕩器。電路中的微調(diào)電容通常選擇為30pF左右,該電容的大小會影響到振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體的振蕩頻率為12MHz。</p><p> 3.2 溫度采集電路<
51、/p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。</p><p> 在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接10KΩ
52、左右的上拉電阻.我們采用的是第一種連接方法,如圖3.2.1所示:把DS18B20的數(shù)據(jù)線與單片機(jī)的P23腳連接,再加上上拉電阻。</p><p> 圖 3.2.1 溫度采集電路圖</p><p> DS18B20有六條控制命令,如表3.2所示:</p><p> 表3-2 DS18B20控制命令</p><p> CPU對DS1
53、8B20的訪問流程是:先對DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對存儲器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。</p><p> 3.3
54、溫度控制電路</p><p> 圖 3.3 溫度控制電路</p><p> 溫度控制電路如圖3.3所示,先通過鍵盤設(shè)定溫度,再把實際測量的溫度和設(shè)定的溫度進(jìn)行比較,來控制P1.0、P1.1、P1.2端口的高低電平。把P1.0、P1.1、P1.2端口與ULN2003的連接來控制溫度和報警。當(dāng)測量的溫度超過了設(shè)定的最高溫度, P1.0、P1.1、P1.2由低電平變成高電平,啟東溫度控制電
55、路模塊和報警,反之, P1.0、P1.1、P1.2由高電平變成低電平,就停止溫度控制電路模塊和報警。只要控制單片機(jī)的P1.0、P1.1、P1.2口的高低電平就可以控制溫度。</p><p><b> 鍵盤電路</b></p><p> 按鍵有矩陣鍵盤和獨立式鍵盤兩種形式。由于本設(shè)計中所需要的按鍵并不多,所以采用獨立鍵盤就能夠滿足本次設(shè)計所需,而且節(jié)約硬件電路、操作
56、方便。根據(jù)選用原則:以最少的按鍵,實現(xiàn)盡可能多的功能。系統(tǒng)需要設(shè)定溫度值,因此根據(jù)所需功能和要求,系統(tǒng)采用的是3個獨立式按鍵,分別為S1鍵、S2鍵和S3鍵,S3鍵為溫度設(shè)定鍵,S1鍵起數(shù)字加功能,S2起數(shù)字減功能。鍵盤電路圖如3.4所示</p><p> 圖3.4 鍵盤電路圖</p><p><b> 顯示電路</b></p><p>
57、 通過74HC573和74HC138芯片將主機(jī)處理的溫度信息顯示在LED數(shù)碼管上。圖3.5則為溫度控制系統(tǒng)的單片機(jī)顯示部分。而顯示部分在整個的設(shè)計過程中的作用也是很大的。</p><p> 圖3.5 溫度顯示電路圖</p><p><b> 軟件程序設(shè)計</b></p><p> 本溫度控制系統(tǒng)軟件最基本要求是:軟件結(jié)構(gòu)清晰、簡潔、流程
58、合理;各功能程序?qū)崿F(xiàn)模塊化,這樣便于調(diào)試、鏈接,又便于移植、修改。此外,還應(yīng)考慮系統(tǒng)的控制要求,做到采樣時間短,控制精度高。本文采用C語言編寫,全部程序如下,相關(guān)功能有文字介紹。</p><p><b> 4.1 程序初始化</b></p><p> #include<reg52.h></p><p> #define uch
59、ar unsigned char</p><p> #define uint unsigned int</p><p> #define jump_ROM 0xCC</p><p> #define start 0x44</p><p> #define read_EEROM 0xBE</p><p> s
60、bit DQ = P2^3; //DS18B20數(shù)據(jù)口</p><p> sbit KEY1 = P3^2; </p><p> sbit KEY2 = P3^3;</p><p> sbit KEY3 = P3^4; //3個按鍵</p><p> sbit qdjr = P1^
61、0 //加熱信號</p><p> sbit QDZL = P1^1 //制冷信號</p><p> Sbit bjmk = P1^2 //報警信號</p><p> unsigned char TMPH,TMPL; </p><p> unsigned int cltemp; //溫度數(shù)
62、據(jù)</p><p> unsigned char mbtemp; //設(shè)定溫度數(shù)據(jù)</p><p> ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> 4.2.1延時子函數(shù),延時時間Nus</p><p> void d
63、elay(uint N)</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0; i<N; i++)</p><p><b> ;</b></p><p><b>
64、 }</b></p><p> 4.2.2延時子函數(shù),延時時間為 1ms * x</p><p> void Delay_1ms(uint i)//1ms延時</p><p><b> {</b></p><p> uchar x,j;</p><p> for(j=0;j
65、<i;j++)</p><p> for(x=0;x<=148;x++);</p><p><b> }</b></p><p> 4.3 按鍵設(shè)定子函數(shù),設(shè)定溫度</p><p> void KEY()</p><p><b> {</b></
66、p><p> if(KEY1==0 || KEY2==0 || KEY3==0)</p><p><b> {</b></p><p> Delay_1ms(20); </p><p> if(KEY1==0 || KEY2==0 || KEY3==0)</p><p>&l
67、t;b> {</b></p><p> if(KEY1 == 0)</p><p><b> { </b></p><p> mbtemp = mbtemp++; //設(shè)定溫度加</p><p> if(mbtemp == 100)</p><p><b>
68、 {</b></p><p><b> mbtemp=0</b></p><p><b> } </b></p><p><b> }</b></p><p> else if(KEY2 == 0)</p><p><b&
69、gt; {</b></p><p> mbtemp = mbtemp--; //設(shè)定溫度減</p><p> if(mbtemp == 0)</p><p><b> {</b></p><p><b> mbtemp=99</b></p><p
70、><b> } </b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> mbtemp = mbtemp;</p><p
71、><b> }</b></p><p><b> }</b></p><p> Delay_1ms(50);</p><p> } </p><p><b> }</b></p><p><b> }<
72、;/b></p><p> 4.4 溫度顯示子函數(shù),數(shù)碼管顯示</p><p> void display()</p><p><b> {</b></p><p> P0 = table[mbtemp/10%10];</p><p><b> P2 = 4;</b
73、></p><p> Delay_1ms(1);</p><p> P0 = table[mbtemp%10];</p><p><b> P2 = 5;</b></p><p> Delay_1ms(1);</p><p> P0 = table[cltemp/10%10];&l
74、t;/p><p><b> P2 = 6;</b></p><p> Delay_1ms(1);</p><p> P0 = table[cltemp%10];</p><p><b> P2 = 7;</b></p><p> Delay_1ms(1);</p&
75、gt;<p> P0 = 0x00;</p><p><b> P2 = 0;</b></p><p><b> }</b></p><p> 4.5.1 溫度采集相關(guān)子函數(shù),復(fù)位DS18B20</p><p> uchar Reset(void)</p>&l
76、t;p><b> {</b></p><p> uchar deceive_ready;</p><p><b> DQ = 0;</b></p><p> delay(29);</p><p><b> DQ = 1;</b></p><p
77、><b> delay(3);</b></p><p> deceive_ready = DQ;</p><p> delay(25);</p><p> return(deceive_ready);</p><p><b> }</b></p><p>
78、4.5.2 溫度采集相關(guān)子函數(shù),從DS18B20讀一個位值</p><p> uchar read_bit(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p><b> DQ = 0;</b></p
79、><p><b> DQ = 1;</b></p><p> for(i=0; i<3; i++);</p><p> return(DQ);</p><p><b> }</b></p><p> 4.5.3 溫度采集相關(guān)子函數(shù),向DS18B20寫一位</
80、p><p> void write_bit(uchar bitval)</p><p><b> {</b></p><p> DQ=0;if(bitval==1)</p><p><b> DQ=1;</b></p><p><b> delay(5);&l
81、t;/b></p><p><b> DQ=1;</b></p><p><b> }</b></p><p> 4.5.4 溫度采集相關(guān)子函數(shù),從DS18B20讀一個字節(jié)</p><p> uchar read_byte(void)</p><p><b
82、> {</b></p><p> uchar i,m,receive_data;</p><p><b> m = 1;</b></p><p> receive_data = 0;</p><p> for(i=0; i<8; i++)</p><p><
83、b> {</b></p><p> if(read_bit())</p><p><b> {</b></p><p> receive_data = receive_data + (m << i);</p><p><b> }</b></p>
84、<p><b> delay(6);</b></p><p><b> }</b></p><p> return(receive_data);</p><p><b> }</b></p><p> 4.5.5 溫度采集相關(guān)子函數(shù),向DS18B20寫一個
85、字節(jié)</p><p> void write_byte(uchar val)</p><p><b> {</b></p><p> uchar i,temp;</p><p> for(i=0; i<8; i++)</p><p><b> {</b><
86、;/p><p> temp = val >> i;</p><p> temp = temp & 0x01;</p><p> write_bit(temp);</p><p><b> delay(5);</b></p><p><b> }</b>
87、;</p><p><b> }</b></p><p> 4.6 溫度控制子函數(shù),溫度自動控制功能</p><p> void zdkz()</p><p><b> {</b></p><p> if(cltemp>50||cltemp<5)<
88、/p><p><b> {</b></p><p> Bjmk=1; //超過上下限報警</p><p><b> }</b></p><p> if(cltemp>mbtemb||cltemp<=50)</p><p><b&g
89、t; {</b></p><p> qdjr=1; //啟動加熱模塊</p><p><b> qdzl=0;</b></p><p><b> }</b></p><p> If(cltemp<mbtemp||cltemp>=5)</p&
90、gt;<p><b> {</b></p><p> Qdzl=1; //啟動制冷模塊</p><p><b> qdjr=0;</b></p><p><b> }</b></p><p><b> }</b><
91、;/p><p> 4.7 主函數(shù),循環(huán)調(diào)用子函數(shù)</p><p> void main()</p><p><b> {</b></p><p> mbtemp = 20;</p><p> P3=0xff; </p><p> P1=0x00;
92、//初始化</p><p> while(1) //子涵數(shù)反復(fù)調(diào)用</p><p><b> {</b></p><p><b> Reset();</b></p><p> write_byte(jump_ROM);</p><p> write_b
93、yte(start);</p><p><b> Reset();</b></p><p> write_byte(jump_ROM);</p><p> write_byte(read_EEROM);</p><p> TMPL = read_byte();</p><p> TMPH
94、 = read_byte();</p><p> cltemp = TMPL / 16 + TMPH * 16; //調(diào)用溫度采集子函數(shù)</p><p> zdkz(); //調(diào)用溫度控制子函數(shù) </p><p> display(); //調(diào)用溫度顯示子函數(shù)</p><p> KEY
95、(); //調(diào)用按鍵設(shè)定子函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p><b> 總結(jié)全文</b></p><p><b> 5.1 結(jié)束語</b></p>
96、<p> 在本次設(shè)計中,我們所學(xué)過的理論知識接受了實踐的檢驗,增強(qiáng)我的綜合運用所學(xué)知識的能力及動手能力,為以后的學(xué)習(xí)和工作打下了良好的基礎(chǔ)。本文以AT89C51系列單片機(jī)為核心,用51單片機(jī)作為控制器件,基本上實現(xiàn)了溫度的自動控制,通過本次的設(shè)計,我感覺到單片機(jī)的應(yīng)用將來會越來越廣泛,學(xué)習(xí)并使用單片機(jī)為核心進(jìn)行設(shè)計,將為我們電子工作者打開一扇通往電子設(shè)計新出路的大門。</p><p> 通過幾個
97、月的設(shè)計,我也有很深的感觸:當(dāng)今社會在飛速發(fā)展,科學(xué)技術(shù)發(fā)展的速度更是迅猛無比,尤其是單片機(jī)技術(shù)在未來社會發(fā)展中一定會起著十分重要的作用,而通過本次設(shè)計無論是從硬件實現(xiàn)還是到整個程序的完成,無不是對我個人專業(yè)能力的一次提高和體現(xiàn)。而本次設(shè)計主要是完成兩方面工作,軟件程序設(shè)計和硬件電路板設(shè)計。軟件設(shè)計包括用單片機(jī)設(shè)計語言設(shè)計控制系統(tǒng)并仿真、實現(xiàn)。硬件設(shè)計包括繪制電路原理圖,生成圖后制作電路板、插件焊件、再做硬件測試。通過這些都使我對采用單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(論文)51單片機(jī)溫度測量與控制系統(tǒng)
- 畢業(yè)論文——mcs-51單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計畢業(yè)論文
- 單片機(jī)溫度控制系統(tǒng)畢業(yè)論文
- 單片機(jī)溫度控制系統(tǒng)畢業(yè)論文
- 單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 單片機(jī)多點溫度控制系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文外文翻譯-單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--51單片機(jī)實現(xiàn)的步進(jìn)機(jī)控制系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 基于at89s51單片機(jī)單片機(jī)控制空調(diào)溫度系統(tǒng)-畢業(yè)論文
- 基于51單片機(jī)的溫度控制系統(tǒng)
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計畢業(yè)論文
- 基于單片機(jī)溫度控制系統(tǒng)的設(shè)計畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計畢業(yè)論文
評論
0/150
提交評論