版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 題 目 : 單片機(jī)控制的溫度測(cè)試儀的設(shè)計(jì)</p><p> 學(xué)院名稱 : 電氣工程學(xué)院</p><p> 班 級(jí) : 本09通信工程02班</p><p> 學(xué) 號(hào) : </p&g
2、t;<p> 學(xué)生姓名 : </p><p> 指導(dǎo)老師 : </p><p> 教研室主任 : </p><p><b> 二零一二年六月</b></p><p> 單片機(jī)控制的溫度測(cè)量?jī)x設(shè)計(jì)</p>
3、<p><b> 摘要</b></p><p> 由于單片機(jī)技術(shù)領(lǐng)域正得到越來(lái)越廣泛你的應(yīng)用,世界上許多集成電路生產(chǎn)廠家相繼 </p><p> 推出了各種類型的單片機(jī),其中,STC89C52單片機(jī)以優(yōu)越的性能,成熟的技術(shù),迅速占領(lǐng)了相關(guān)市場(chǎng)。STC89C52
4、單片機(jī)最小系統(tǒng)主要由STC89C52,RS232串口電路,晶振電路,復(fù)位電路等組成,其優(yōu)點(diǎn)是功能強(qiáng),體積小,可靠性高,造價(jià)低和開發(fā)周期短,在日常中也發(fā)揮了很大的作用。本系統(tǒng)是利用STC89C52單片機(jī),溫度傳感器DS18B20,蜂鳴器等元器件,構(gòu)成一個(gè)溫度檢測(cè)的單片機(jī)小系統(tǒng)。</p><p> 關(guān)鍵字:STC89C52單片機(jī) DS18B20 最小系統(tǒng) 溫度檢測(cè) 報(bào)警</p><
5、;p><b> Abstract</b></p><p> Because single chip technology is getting more and more extensive application of you, many of the world's integrated circuit manufacturers successively Rolled
6、 out of the various types of single chip microcomputer, among them, STC89C52 single-chip microcomputer with superior performance, mature technology, quickly occupied the relevant market. STC89C52 single chip minimize sys
7、tem mainly by the STC89C52, RS232 serial interface circuit, crystals circuit, reset circuit and other components, its adva</p><p> Keyword: STC89C52 single chip DS18B20 Minimum system Temperature det
8、ection Alarm</p><p><b> 目 錄</b></p><p> 1 系統(tǒng)方案設(shè)計(jì)及論證4</p><p> 1.1 設(shè)計(jì)任務(wù)與要求4</p><p><b> 1.2設(shè)計(jì)分析4</b></p><p> 1.3 各模塊方案論證
9、5</p><p> 1.3.1 控制器模塊5</p><p> 1.3.2 顯示模塊5</p><p> 1.3.3 溫度檢測(cè)模塊5</p><p> 2 單元電路介紹6</p><p> 2.1 STC89C52單片機(jī)介紹6</p><p> 2.2 溫度傳
10、感器DS18B20介紹10</p><p> 2.2.1 DS18B20測(cè)溫原理11</p><p> 2.2.2 DS18B20 的管腳排列及封裝11</p><p> 2.2.3 DS18B20內(nèi)部構(gòu)成12</p><p> 2.3 四位共陽(yáng)數(shù)碼管介紹13</p><p> 2.4 報(bào)
11、警電路14</p><p> 3 系統(tǒng)整體電路圖15</p><p> 3.1 系統(tǒng)原理圖15</p><p> 4 軟件設(shè)計(jì)16</p><p> 6 心得體會(huì)18</p><p><b> 參考文獻(xiàn):19</b></p><p><b&
12、gt; 附錄20</b></p><p> 附錄1:元器件清單20</p><p> 附錄2:程序清單21</p><p> 附錄3 任務(wù)書26</p><p> 1 系統(tǒng)方案設(shè)計(jì)及論證</p><p> 1.1 設(shè)計(jì)任務(wù)與要求</p><p> 題目:一個(gè)典
13、型單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)</p><p> 要求:輸入信號(hào)為傳感器、電壓、電流、開關(guān)等形式,單片機(jī)型號(hào)可以自己選擇(51,128,430等),輸出控制信號(hào)為模擬電壓或者數(shù)字信號(hào),控制對(duì)象可以是電機(jī)(直流電機(jī),步進(jìn)電機(jī))、開關(guān)、顯示器等。</p><p><b> 1.2設(shè)計(jì)分析</b></p><p> 要成功實(shí)現(xiàn)設(shè)計(jì)任務(wù)與要求,系統(tǒng)必須具備
14、以下功能模塊:?jiǎn)纹瑱C(jī)最小系統(tǒng)、溫度檢測(cè)模塊、顯示模塊。本系統(tǒng)由溫度傳感器DS18B20檢測(cè)溫度,通過(guò)單片機(jī)采集分析數(shù)據(jù),然后送到數(shù)碼管上顯示。</p><p><b> 整體系統(tǒng)框圖如下:</b></p><p> 圖1.1 整體系統(tǒng)框圖</p><p> 1.3 各模塊方案論證
15、 </p><p> 1.3.1 控制器模塊</p><p> 方案一:采用FPGA作為主控制器。FPGA內(nèi)部具有獨(dú)立的I/O 接口和邏輯單元,使用靈活,適用性強(qiáng),且相對(duì)單片機(jī)來(lái)說(shuō),還有速度快,外圍電路較少,集成度高的特點(diǎn),因此特別適用于復(fù)雜邏輯電路設(shè)計(jì)。但是FPGA的成本偏高,算術(shù)運(yùn)算能力不強(qiáng),而且由于本設(shè)計(jì)對(duì)輸出處理的速度要求不高,所以FPGA高速處理的優(yōu)勢(shì)得不到充分體現(xiàn)。&l
16、t;/p><p> 方案二:采用ARM7TDMI-S微控制器LPC2148。32位的LPC2148工作電壓為3.3V,典型工作電流為53mA,工作頻率可高達(dá)60MHz,具有45個(gè)可承受5V電壓的I/O口,內(nèi)置寬范圍的串行通信接口,采用3級(jí)流水線工作模式,具有掉電和空閑兩種低功耗工作模式。</p><p> 方案三:采用STC89C52RC單片機(jī)作為主控制器,其有40個(gè)引腳,32個(gè)獨(dú)立的I/
17、O 口,二個(gè)外部中斷,三個(gè)定時(shí)/計(jì)數(shù)器,雖然相對(duì)FPGA來(lái)說(shuō)在功能和速度上有點(diǎn)差異, 但單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、可用軟件較簡(jiǎn)單的實(shí)現(xiàn)各種算法和邏輯控制,并且由于其成本低、體積小、技術(shù)成熟和功耗小等優(yōu)點(diǎn),開發(fā)過(guò)程中可以利用的資源和工具豐富。</p><p> 由于是單片機(jī)課程設(shè)計(jì),系統(tǒng)擬采用方案三,使用STC89C52RC單片機(jī)作為本系統(tǒng)的主控制器。</p><p> 1.3
18、.2 顯示模塊</p><p> 方案一:使用數(shù)碼管進(jìn)行顯示,按鍵用于切換顯示??刹捎弥芰⒐旧a(chǎn)的ZLG7290芯片來(lái)配合控制器對(duì)數(shù)碼管和按鍵進(jìn)行控制,該芯片具有I2C 串行接口,只需占用控制器3個(gè)管腳,便可方便地控制數(shù)碼管顯示和檢測(cè)按鍵。 </p><p> 方案二:用12864液晶,12864液晶能同時(shí)顯示64個(gè)字符或32個(gè)漢字,工作電壓為5V,顯示內(nèi)容多,操作方便,顯示清晰
19、,不需額外電路。</p><p> 方案選擇:由于不需要顯示漢字,只需要顯示溫度數(shù)字,綜合考慮選擇方案一 </p><p> 1.3.3 溫度檢測(cè)模塊</p><p> 方案一:采用熱敏電阻,利用溫度不同其電阻值不同的特性,用A/D轉(zhuǎn)換器測(cè)量其兩端的電壓便能知道溫度的高低。這種設(shè)計(jì)簡(jiǎn)單,但是測(cè)量復(fù)雜,不夠精確。</p><p> 方
20、案二:采用溫度和濕度轉(zhuǎn)換器DHT11同時(shí)測(cè)量溫度和濕度,該芯片的溫度誤差為正負(fù)2度,誤差過(guò)大。</p><p> 方案三:采用數(shù)字溫度傳感器DS18B20,耐磨耐碰,體積小,接口電路簡(jiǎn)單,測(cè)量精度高。通過(guò)編程便能完成溫度數(shù)據(jù)的處理</p><p> 綜合分析,本系統(tǒng)擬采用方案三,采用DS18B20完成測(cè)溫部分。</p><p><b> 2 單元電
21、路介紹</b></p><p> 2.1 STC89C52單片機(jī)介紹</p><p> STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的
22、MCS-51指令集和輸出管腳相兼容。單片機(jī)總控制電路如下圖1—1:</p><p> 圖1—1單片機(jī)總控制電路</p><p><b> 1.時(shí)鐘電路</b></p><p> STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘
23、電路,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。</p><p> 外部方式的時(shí)鐘電路RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,
24、產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。</p><p> ?。╝)內(nèi)部方式時(shí)鐘電路 (b)外部方式時(shí)鐘電路</p><p><b> 圖1—2時(shí)鐘電路</b></p><p><b> 2.復(fù)位及復(fù)位電路</b></p><p><b> ?。?)復(fù)位操作</b
25、></p><p> 復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。</p><p> 除PC之外,復(fù)位操作還對(duì)其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表1-1所示。</p><p> 表
26、1-1 一些寄存器的復(fù)位狀態(tài)</p><p> ?。?)復(fù)位信號(hào)及其產(chǎn)生</p><p> RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖1—3所示:</p><p> 圖1—3復(fù)位信號(hào)的電路邏輯圖&
27、lt;/p><p> 整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。</p><p> 復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。</p><p> 上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,其電路如圖1—
28、4(a)所示。這佯,只要電源Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。</p><p> 按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖1—4(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的,其電路如圖1—4(c)所示:</p><p> ?。╝)上電復(fù)位
29、 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位</p><p><b> 圖1—4復(fù)位電路</b></p><p> STC89C52具體介紹如下:</p><p> ?、?主電源引腳(2根)</p><p> VCC(Pin40):電源輸入,接+5V電源</p><p> G
30、ND(Pin20):接地線</p><p> ?、谕饨泳д褚_(2根)</p><p> XTAL1(Pin19):片內(nèi)振蕩電路的輸入端</p><p> XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p><p><b> ?、劭刂埔_(4根)</b></p><p> RST/VPP
31、(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p> ALE/PROG(Pin30):地址鎖存允許信號(hào)</p><p> PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)</p><p> EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。</p>
32、;<p> ?、芸删幊梯斎?輸出引腳(32根)</p><p> STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p> PO口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7</p><p> P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O
33、口線,名稱為P1.0~P1.7 </p><p> P2口(Pin21~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7 </p><p> P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7</p><p> STC89C52主要功能如表1-2所示:</p><p> 表1-2 STC89C
34、52主要功能</p><p> 2.2 溫度傳感器DS18B20介紹</p><p> 該芯片采用美國(guó)DALLAS公司生產(chǎn)的 DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。</p><p> 其主要有以下應(yīng)用特點(diǎn):</p><p> ?、侏?dú)特的單
35、線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 </p><p> ?、跍y(cè)溫范圍 -55℃~+125℃,固有測(cè)溫分辨率0.5℃。 </p><p> ?、壑С侄帱c(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。 </p&
36、gt;<p> ?、芄ぷ麟娫? 3~5V/DC </p><p> ?、菰谑褂弥胁恍枰魏瓮鈬? </p><p> ?、逌y(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送 </p><p> ⑦不銹鋼保護(hù)管直徑Φ6 </p><p> ?、噙m用于DN15~25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測(cè)溫
37、 ?、針?biāo)準(zhǔn)安裝螺紋 M10X1, M12X1.5, G1/2”任選 </p><p> ⑩PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。</p><p> DS18B20采用獨(dú)特的一線接口,只需要一條口線通信。多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用,無(wú)需外部元件,可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無(wú)需備用電源 測(cè)量溫度范圍為-55 ° C至+
38、125 ℃ 。華氏相當(dāng)于是-67 ° F到257華氏度 -10 ° C至+85 ° C范圍內(nèi)精度為±0.5 ° C</p><p> 圖2.2(a) DS18B20溫度格式表</p><p> 圖2.2(b) DS18B20與單片機(jī)接口圖</p><p> 2.2.1 DS18B20測(cè)溫原理</p&
39、gt;<p> 圖1.2.1 DS18B20 的內(nèi)部測(cè)溫電路框圖</p><p> 低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,為計(jì)數(shù)器提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B2
40、0就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃ 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55℃ 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)
41、行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值。</p><p> 2.2.2 DS18B20 的管腳排列及封裝</p><p> 圖2.2. 2 DS18B20 實(shí)物管腳分布圖<
42、/p><p> DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端,電源</p><p> 電 3.0~5.5V (在寄生電源接線方式時(shí)接地)。</p><p> 2.2.3 DS18B20內(nèi)部構(gòu)成</p><p> DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻 ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器
43、 TH 和 TL 、配置寄存器。</p><p> 光刻 ROM 中的 64 位序列號(hào)是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。 64 位光刻 ROM 的排列是:開始 8 位(地址: 28H )是產(chǎn)品類型標(biāo)號(hào),接著的 48 位是該 DS18B20 自身的序列號(hào),并且每個(gè) DS18B20 的序列號(hào)都不相同,因此它可以看作是該 DS18B20 的地址序列碼;最后 8 位則是前面 56 位的循
44、環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1 )。由于每一個(gè) DS18B20 的 ROM 數(shù)據(jù)都各不相同,因此微控制器就可以通過(guò)單總線對(duì)多個(gè) DS18B20 進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20的目的</p><p> 圖2.2.3DS18B20內(nèi)部結(jié)構(gòu)圖</p><p> 2.3 四位共陽(yáng)數(shù)碼管介紹 </p><p> 數(shù)
45、碼管按連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。本系統(tǒng)采用的是共陽(yáng)數(shù)碼管。下面是其原理圖。 </p><p> 圖3(a)共陽(yáng)數(shù)管原理圖</p><p> 如圖是一個(gè)四
46、位一體共陽(yáng)數(shù)碼管,BIT1-BIT4是四位數(shù)碼管的正極。A-G分別對(duì)應(yīng)個(gè)段的負(fù)極。其內(nèi)部框圖如下:</p><p> 圖3(b) 共陽(yáng)數(shù)碼管內(nèi)部框圖</p><p><b> 2.4 報(bào)警電路</b></p><p> 當(dāng)溫度超過(guò)程序設(shè)定的最大溫度時(shí),蜂鳴器會(huì)發(fā)出報(bào)警聲</p><p> 圖4(a)蜂鳴器連接電
47、路 </p><p> 圖4中蜂鳴器使用的是PNP三極管進(jìn)行驅(qū)動(dòng)控制的,此蜂鳴器為電磁式有源蜂鳴器。三極管的集電極通過(guò)蜂鳴器接5V電源,基極是控制端,發(fā)射極接地,當(dāng)單片機(jī)的P2.3輸出低電平時(shí),三極管導(dǎo)通,蜂鳴器發(fā)聲。蜂鳴器為感性原件,也可以在兩端并接一個(gè)二極管來(lái)起到泄放作用。</p><p> 3 系統(tǒng)整體電路圖</p><p><b> 3.1
48、 系統(tǒng)原理圖</b></p><p><b> 圖3.1系統(tǒng)原理圖</b></p><p> 3.2 系統(tǒng)PCB圖</p><p> 圖3.2系統(tǒng)PCB圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 發(fā)送端軟件設(shè)計(jì)流程圖如下圖所
49、示。</p><p><b> 5 調(diào)試 </b></p><p> 完成程序下載后進(jìn)行調(diào)試時(shí),四位數(shù)碼管只有中間兩位顯示,經(jīng)過(guò)排查,發(fā)現(xiàn)是由于虛焊導(dǎo)致,重新焊接后,數(shù)碼管能正確顯示溫度,將打火機(jī)靠近溫度傳感器DS18B20時(shí),明顯看到數(shù)碼管上溫度數(shù)字不斷升高,當(dāng)超過(guò)程序中設(shè)定的35°時(shí)發(fā)生報(bào)警。</p><p><b&g
50、t; 6 心得體會(huì)</b></p><p> 通過(guò)兩周的單片機(jī)課程設(shè)計(jì)我學(xué)到了很多在課本上學(xué)不到的東西,要完成一個(gè)設(shè)計(jì),不僅需要豐富的知識(shí),還要有嚴(yán)謹(jǐn)?shù)膽B(tài)度。制作實(shí)物毫無(wú)疑問(wèn)增強(qiáng)了自己的動(dòng)手能力,制作PCB板得整個(gè)流程我都完整的經(jīng)歷了一遍,其中的一些細(xì)節(jié)問(wèn)題還真是不能忽視,比如不小心虛焊了就不能實(shí)現(xiàn)功能,還要花很多時(shí)間來(lái)排查問(wèn)題??傊ㄟ^(guò)這次設(shè)計(jì),我懂得了理論與實(shí)踐的相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持
51、,耐心和努力,我想這為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。</p><p> 我想單片機(jī)這門課程的重要性對(duì)于我們專業(yè)來(lái)說(shuō)是不言而喻的。所以通過(guò)這樣一次課程設(shè)計(jì)我體會(huì)到了自己這方面知識(shí)還不是很扎實(shí),特別是對(duì)于編寫程序方面,我還有很多問(wèn)題,我還要加強(qiáng)平常的練習(xí)和學(xué)習(xí) ,進(jìn)一步提高自己。</p><p><b> 參考文獻(xiàn): </b></p><p
52、> 黃智偉.凌陽(yáng)單片機(jī)課程設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社,2007.6</p><p> 胡漢才,單片機(jī)原理及其接口技術(shù),清華大學(xué)出版社</p><p> 黃智偉.無(wú)線數(shù)字收發(fā)電路設(shè)計(jì)[M].北京:電子工業(yè)出版社.2004年</p><p> 黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽制作實(shí)訓(xùn)[M].北京:北京航空航天大學(xué)出版社,2006.</p
53、><p> 黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽 技能訓(xùn)練(第2版)[M].北京:北京航空航天大學(xué)出版社,2011.1,全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽“十二五”規(guī)劃教材</p><p> 黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽 電路設(shè)計(jì)(第2版)[M].北京:北京航空航天大學(xué)出版社,2011.1,全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽“十二五”規(guī)劃教材</p><p><b> 附錄<
54、/b></p><p><b> 附錄1:元器件清單</b></p><p><b> 表附-1元器件清單</b></p><p><b> 附錄2:程序清單</b></p><p> #include < reg51.h ></p>&
55、lt;p> #include < intrins.h ></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit DQ = P3^7 ; //定義DS18B20端口DQ</p><p> sbit
56、 BEEP=P3^6 ; //蜂鳴器驅(qū)動(dòng)線</p><p> sbit wei1 =P2^4;</p><p> sbit wei2 =P2^5;</p><p> sbit wei3 =P2^6;</p><p> sbit wei4 =P2^7;</p><p> bit presence ;<
57、/p><p> unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,</p><p> 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ;///*小數(shù)位表,四舍五入*/</p><p> unsigned char data temp_
58、data[2] = {0x00,0x00} ;</p><p> unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00} ;</p><p> uchar code table[]={0xc0,0xf9,0xa4,0xb0,</p><p> 0x99,0x92,0x82,0xf8,</
59、p><p> 0x80,0x90,0x88,0x83,</p><p> 0xc6,0xa1,0x86,0x8e};</p><p> uchar code table1[]={0x40,0x79,0x24,0x30,</p><p> 0x19,0x12,0x02,0x78,</p><p> 0x00,0x1
60、0,0x08,0x03,</p><p> 0x46,0x21,0x06,0x0e,0x3f/*(橫杠和小數(shù)點(diǎn)*/,0x7f/*(只顯示小數(shù)點(diǎn)*/};</p><p> void beep() ;</p><p> unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00}
61、;</p><p> #define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;</p><p> /**************延時(shí)1MS*******************************/</p><p> void delay_ms(int ms)</p><
62、p><b> {</b></p><p> unsigned char y ;</p><p> while(ms--)</p><p><b> {</b></p><p> for(y = 0 ; y<250 ; y++)</p><p><b
63、> {</b></p><p><b> _nop_() ;</b></p><p><b> _nop_() ;</b></p><p><b> _nop_() ;</b></p><p><b> _nop_() ;</b>
64、;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*us級(jí)延時(shí)函數(shù) */</p><
65、p> /*******************************************************************/</p><p> void delay_us(unsigned int num)</p><p><b> {</b></p><p> while( --num ) ;</p&g
66、t;<p><b> }</b></p><p> /*初始化ds1820 */</p><p> /*******************************************************************/</p><p&g
67、t; Init_DS18B20(void)</p><p><b> {</b></p><p> //DQ = 1 ; //DQ復(fù)位</p><p> //Delay(8) ; //稍做延時(shí)</p><p> DQ = 0 ; //單片機(jī)將DQ拉低</p><p&
68、gt; delay_us(600) ; //精確延時(shí) 大于 480us</p><p> DQ = 1 ; //拉高總線</p><p> delay_us(8) ;</p><p> presence = DQ ; //如果=0則初始化成功 =1則初始化失敗</p><p> delay_us(100) ;&
69、lt;/p><p><b> DQ = 1 ;</b></p><p> return(presence) ; //返回信號(hào),0=presence,1= no presence</p><p><b> }</b></p><p> /* 讀一個(gè)字節(jié) */
70、</p><p> /*******************************************************************/</p><p> ReadOneChar(void)</p><p><b> {</b></p><p> unsigned char i = 0 ;&
71、lt;/p><p> unsigned char dat = 0 ;</p><p> for (i = 8 ; i > 0 ; i--)</p><p><b> {</b></p><p> DQ = 0 ; // 給脈沖信號(hào)</p><p> dat >>= 1 ;&
72、lt;/p><p> DQ = 1 ; // 給脈沖信號(hào)</p><p><b> if(DQ)</b></p><p> dat |= 0x80 ;</p><p> delay_us(4) ;</p><p><b> }</b></p><p&
73、gt; return (dat) ;</p><p><b> }</b></p><p> /* 寫一個(gè)字節(jié) */</p><p> /************************************************************
74、*******/</p><p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i = 0 ;</p><p> for (i = 8 ; i > 0 ; i--)</p><
75、;p><b> {</b></p><p><b> DQ = 0 ;</b></p><p> DQ = dat&0x01 ;</p><p> delay_us(5) ;</p><p><b> DQ = 1 ;</b></p>&l
76、t;p><b> dat>>=1 ;</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 讀取溫度 */</p><p> /*******
77、************************************************************/</p><p> void Read_Temperature(void)</p><p><b> {</b></p><p> Init_DS18B20() ;</p><p> Writ
78、eOneChar(0xCC) ; // 跳過(guò)讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0x44) ; // 啟動(dòng)溫度轉(zhuǎn)換</p><p> Init_DS18B20() ;</p><p> WriteOneChar(0xCC) ; //跳過(guò)讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0xB
79、E) ; //讀取溫度寄存器</p><p> temp_data[0] = ReadOneChar() ; //溫度低8位</p><p> temp_data[1] = ReadOneChar() ; //溫度高8位</p><p><b> }</b></p><p> /* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示
80、 */</p><p> /*******************************************************************/</p><p> void Disp_Temperature()</p><p><b> {&
81、lt;/b></p><p> display[4]=temp_data[0]&0x0f ;</p><p> display[0]=ditab[display[4]] ; //查表得小數(shù)位的值</p><p> display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&am
82、p;0x0f)<<4) ;</p><p> display[3]=display[4]/100 ;</p><p> display[1]=display[4]%100 ;</p><p> display[2]=display[1]/10 ;</p><p> display[1]=display[1]%10 ;<
83、;/p><p> P0 = table[display[3]];</p><p><b> wei1=0;</b></p><p><b> wei2=1;</b></p><p><b> wei3=1;</b></p><p><b>
84、 wei4=1;</b></p><p> delay_us(100);</p><p><b> wei1=1;</b></p><p> P0 = table[display[2]];</p><p><b> wei1=1;</b></p><p>
85、;<b> wei2=0;</b></p><p><b> wei3=1;</b></p><p><b> wei4=1;</b></p><p> delay_us(100);</p><p><b> wei2=1;</b></p&
86、gt;<p> P0 = table1[display[1]];</p><p><b> wei1=1;</b></p><p><b> wei2=1;</b></p><p><b> wei3=0;</b></p><p><b> w
87、ei4=1;</b></p><p> delay_us(100);</p><p><b> wei3=1;</b></p><p> P0 = table[display[0]];</p><p><b> wei1=1;</b></p><p>&l
88、t;b> wei2=1;</b></p><p><b> wei3=1;</b></p><p><b> wei4=0;</b></p><p> delay_us(100);</p><p><b> wei4=1;</b></p>
89、<p><b> }</b></p><p> /*******************************************************************/</p><p> /* 蜂鳴器響一聲 */</p><p> /********************
90、***********************************************/</p><p> void beep()</p><p><b> {</b></p><p> unsigned char y ;</p><p> for (y=0 ;y<100 ;y++)</p&g
91、t;<p><b> {</b></p><p> delay_us(30) ;</p><p> BEEP=!BEEP ; //BEEP取反</p><p><b> }</b></p><p> BEEP=1 ;
92、 //關(guān)閉蜂鳴器</p><p> //delay_us(40000) ;</p><p><b> }</b></p><p> /* 主函數(shù) */</p><p> /************************************/</p><p> v
93、oid main()</p><p><b> {</b></p><p> uchar warn_temp;</p><p> Read_Temperature() ;</p><p> delay_ms(200); //延時(shí)200ms,跳過(guò)傳感器初始化時(shí)的溫度</p><p>
94、<b> do</b></p><p><b> {</b></p><p> Read_Temperature() ;</p><p> warn_temp=display[2]*10+display[1];</p><p> if(warn_temp>34) //35度時(shí)報(bào)
95、警</p><p><b> {</b></p><p> Disp_Temperature() ;</p><p><b> beep() ;</b></p><p><b> }</b></p><p> Disp_Temperature(
96、) ; </p><p><b> }</b></p><p> while(!presence) ;</p><p><b> do</b></p><p><b> {</b></p><p> Init_DS18B20() ;<
97、/p><p><b> beep() ;</b></p><p><b> }</b></p><p> while(presence) ;</p><p><b> }</b></p><p><b> 附錄3 任務(wù)書</b&g
98、t;</p><p> 南華大學(xué)電氣工程學(xué)院 </p><p> 《單片機(jī)課程設(shè)計(jì)》任務(wù)書</p><p> 設(shè)計(jì)題目: 一個(gè)典型的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) </p><p> 專 業(yè): 本09通信01/02班 </p><p> 學(xué)生姓名: 學(xué)
99、 號(hào): </p><p> 起迄日期: 2012年5月27日 ~2012年6月9日 </p><p> 指導(dǎo)教師: </p><p> 教研室主任: </p><p> 《單片機(jī)課程設(shè)計(jì)》任務(wù)書</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制的數(shù)字溫度計(jì)
- 單片機(jī)溫度控制課程設(shè)計(jì)
- msp430單片機(jī)溫度單片機(jī)課程設(shè)計(jì)--溫度測(cè)試系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)--基于單片機(jī)的小電阻測(cè)試儀
- 課程設(shè)計(jì)--基于單片機(jī)的小電阻測(cè)試儀
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的溫度控制智能電風(fēng)扇
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)溫度測(cè)量系統(tǒng)設(shè)計(jì)
- 反應(yīng)測(cè)試儀-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)---溫度測(cè)試系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制各種器件
- 單片機(jī)課程設(shè)計(jì)-- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—基于51單片機(jī)的溫度監(jiān)控系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---雞舍溫度控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的控制循環(huán)燈設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論