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

下載本文檔

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

文檔簡介

1、<p>  ANYANG INSTITUTE OF TECHNOLOGY</p><p>  專 科 畢 業(yè) 論 文</p><p>  基于AT89S52的智能電風(fēng)扇控制系統(tǒng)設(shè)計</p><p>  The Control System Design of Intelligent Fan Based on AT89S52<

2、/p><p>  院 系 名 稱: 電子信息與電氣工程學(xué)院 </p><p>  專 業(yè) 班 級: 08電氣自動化1班 </p><p>  學(xué) 生 姓 名: 李占偉 </p><p>  學(xué) 號: 200802070055 </p><p>  同 組

3、 成 員: 江經(jīng)坤、史 宣 </p><p>  指導(dǎo)教師姓名: 盧春華 </p><p>  指導(dǎo)教師職稱: 講 師 </p><p><b>  2011年5月</b></p><p><b>  目 錄</b>&l

4、t;/p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  引 言III</b></p><p>  第一章 系統(tǒng)方案設(shè)計1</p><p>  第二章 硬件設(shè)計5</p><p&

5、gt;  2.1 控制模塊5</p><p>  2.1.1 AT89S52概述5</p><p>  2.1.2 單片機(jī)最小系統(tǒng)設(shè)計7</p><p>  2.2 溫度檢測反饋模塊8</p><p>  2.2.1 DS18B20基礎(chǔ)知識8</p><p>  2.2.2 溫度檢測電路的設(shè)計11</

6、p><p>  2.3 人體檢測模塊11</p><p>  2.3.1熱釋電紅外傳感器原理11</p><p>  2.3.2 人體檢測電路的設(shè)計12</p><p>  2.4 電風(fēng)扇測速模塊13</p><p>  2.4.1 霍爾傳感器簡述13</p><p>  2.4.2 電風(fēng)

7、扇測速電路的設(shè)計13</p><p>  2.5 電風(fēng)扇調(diào)速模塊14</p><p>  2.5.1 電風(fēng)扇調(diào)速原理14</p><p>  2.5.2 電風(fēng)扇調(diào)速電路的設(shè)計15</p><p>  2.6 顯示模塊15</p><p>  2.6.1 數(shù)碼管顯示原理15</p><p&

8、gt;  2.6.2 顯示電路設(shè)計17</p><p>  2.7 鍵盤模塊18</p><p>  2.7.1 鍵盤的工作原理18</p><p>  2.7.2 獨立式鍵盤的設(shè)計18</p><p>  2.8 計時模塊19</p><p>  2.8.1 AT89S52的內(nèi)部定時器/計數(shù)器19<

9、/p><p>  2.8.2 繼電器控制電路的設(shè)計20</p><p>  2.9 狀態(tài)標(biāo)志模塊20</p><p>  2.9.1 電源指示20</p><p>  2.9.2 電風(fēng)扇啟動提示21</p><p>  第三章 軟件設(shè)計22</p><p>  3.1 溫度檢測子程序2

10、2</p><p>  3.1.1 程序流程圖22</p><p>  3.1.2 子程序設(shè)計22</p><p>  3.2調(diào)速、測速子程序25</p><p>  3.2.1 程序流程圖25</p><p>  3.2.2 子程序設(shè)計25</p><p>  3.3 顯示子程序2

11、9</p><p>  3.3.1 程序流程圖29</p><p>  3.3.2 子程序設(shè)計29</p><p>  3.4 定時子程序31</p><p>  3.4.1 程序流程圖31</p><p>  3.4.2 子程序設(shè)計32</p><p>  第四章 系統(tǒng)測試36&

12、lt;/p><p>  4.1 測試系統(tǒng)的組成36</p><p>  4.2 測試步驟與方法36</p><p>  4.2.1 單片機(jī)最小系統(tǒng)36</p><p>  4.2.2 溫度檢測模塊36</p><p>  4.2.3 人體檢測模塊36</p><p>  4.2.4 電風(fēng)扇

13、測速模塊36</p><p>  4.2.5 電風(fēng)扇調(diào)速模塊37</p><p>  4.2.6 定時模塊37</p><p>  4.3 整體測試37</p><p><b>  結(jié) 論38</b></p><p><b>  致 謝39</b></p

14、><p><b>  參考文獻(xiàn)40</b></p><p><b>  附 錄41</b></p><p>  附錄A 元件清單41</p><p>  附錄B 系統(tǒng)原理圖43</p><p>  附錄C 系統(tǒng)PCB圖44</p><p>  

15、附錄D 實物圖45</p><p>  附錄E 源程序46</p><p>  基于AT89S52的智能電風(fēng)扇控制系統(tǒng)設(shè)計</p><p><b>  摘 要:</b></p><p>  本系統(tǒng)設(shè)計以AT89S52單片機(jī)為核心、通過溫度傳感器和熱釋電紅外傳感器實時采集環(huán)境信息、建立控制系統(tǒng),實現(xiàn)當(dāng)室溫達(dá)到設(shè)定開啟

16、風(fēng)扇的溫度并且人出現(xiàn)在熱釋電紅外傳感器可測范圍時,電風(fēng)扇自動開啟、以初始風(fēng)力運行,當(dāng)溫度變化時由系統(tǒng)控制雙向可控硅實現(xiàn)智能調(diào)速;人離開一段時間后則會自動關(guān)閉電風(fēng)扇;當(dāng)室溫低于設(shè)定溫度時,即使人在熱釋電傳感器可測范圍內(nèi),電風(fēng)扇也處于關(guān)閉狀態(tài)。</p><p>  關(guān)鍵詞:溫度傳感器 熱釋電紅外傳感器 雙向可控硅 </p><p>  The Control System Design

17、of Intelligent Fan Based on AT89S52</p><p><b>  Abstract:</b></p><p>  This system design with AT89S52 SCM as core, through the temperature sensor and pyroelectric infrared sensor re

18、al-time data acquisition environment information, establishing control system, realize when room-temperature reach a set of temperature and open fan man appeared in pyroelectric infrared sensor measurable range, electric

19、 fan automatic open, with initial wind run, When temperature changes by system control bidirectional thyristor intelligent speed ;People to leave a period of time after </p><p>  Key words:Temperature sensor

20、;Pyroelectric infrared sensor;Bidirectional thyristor</p><p><b>  引 言</b></p><p>  電風(fēng)扇曾一度被認(rèn)為是空調(diào)產(chǎn)品沖擊下的淘汰品,其實并非如此,市場人士稱,家用電風(fēng)扇并沒有隨著空調(diào)的普及而淡出市場,近兩年反而出現(xiàn)了市場銷售復(fù)蘇的態(tài)勢。其主要原因:一是電風(fēng)扇和空調(diào)的降溫效果不同——

21、空調(diào)有強(qiáng)大的制冷功能,可以快速有效地降低環(huán)境溫度,但電風(fēng)扇的風(fēng)更溫和,更加適合老人兒童和體質(zhì)較弱的人使用;二是電風(fēng)扇價格低廉且相對省電,低碳環(huán)保,安裝和使用都非常簡單。</p><p>  盡管電風(fēng)扇有其市場優(yōu)勢,但傳統(tǒng)電風(fēng)扇還是有許多地方應(yīng)當(dāng)進(jìn)行改良的,最突出的缺點是它不能根據(jù)溫度的變化實時適量調(diào)節(jié)風(fēng)力大小,對于夜間溫差較大的地區(qū),人們在夏夜使用電風(fēng)扇時可能會遇到這樣的問題:當(dāng)凌晨降溫的時候電風(fēng)扇依然在工作,可

22、是人們因為熟睡而無法察覺,既浪費資源又容易引起感冒,傳統(tǒng)的機(jī)械定時雖然能夠控制電風(fēng)扇在工作一定后關(guān)閉,但定時范圍有限,且無法對溫度變化靈活處理;或者白天人們因事離開后而忘記關(guān)閉電風(fēng)扇,長時間的工作很容易損壞電器甚至引發(fā)火災(zāi)。</p><p>  鑒于以上諸多方面的考慮,我們需要設(shè)計一種實用的智能電風(fēng)扇控制系統(tǒng)來解決和改善這些問題。</p><p>  本系統(tǒng)設(shè)計以單片機(jī)為核心、通過溫度傳感

23、器和熱釋電紅外傳感器實時采集環(huán)境信息、建立控制系統(tǒng),實現(xiàn)當(dāng)室溫達(dá)到設(shè)定開啟風(fēng)扇的溫度并且人出現(xiàn)在熱釋電紅外傳感器可測范圍時,電風(fēng)扇自動開啟、以初始風(fēng)力運行,當(dāng)溫度變化時由系統(tǒng)控制雙向可控硅實現(xiàn)智能調(diào)速;人離開一段時間后則會自動關(guān)閉電風(fēng)扇;人離開一段時間后則自動關(guān)閉電風(fēng)扇;當(dāng)室溫低于設(shè)定溫度時,即使人在熱釋電傳感器可測范圍內(nèi),電風(fēng)扇也處于關(guān)閉狀態(tài)。</p><p>  第一章 系統(tǒng)方案設(shè)計</p>

24、<p>  圖1-1系統(tǒng)組成框圖</p><p><b>  1. 控制模塊</b></p><p>  方案一:單片機(jī)控制系統(tǒng)。以ATMEL公司生產(chǎn)的AT89S52單片機(jī)為核心的最小系統(tǒng),配有穩(wěn)壓電源、復(fù)位電路、蜂鳴器、溫度傳感器、熱釋電紅外傳感器、霍爾傳感器、顯示模塊、風(fēng)扇調(diào)速模塊等外圍模塊。</p><p>  方案二:FPGA

25、最小系統(tǒng)。采用一塊Xinlinx公司生產(chǎn)的Spartan-3系列的XC3S200-4PQ208芯片,配有穩(wěn)壓電源、蜂鳴器、復(fù)位電路、溫度傳感器、熱釋電紅外傳感器、霍爾傳感器、顯示模塊等外圍模塊。</p><p>  根據(jù)題目要求,控制器主要用于各個傳感器信號的接收和辨認(rèn)、定時功能、顯示以及各部分功能的時序分配等,綜合比較實現(xiàn)的控制功能的簡易性與可行性,同時考慮到單片機(jī)與FPGA系統(tǒng)的性價比,最后選擇AT89S52

26、單片機(jī)為核心的最小系統(tǒng)作為本設(shè)計控制系統(tǒng)。</p><p>  2. 溫度檢測反饋模塊</p><p>  方案一:選用LM324A運算放大器,將其設(shè)計成比例控制調(diào)節(jié)器,輸出電壓與熱敏電阻的阻值成正比,再用A/D轉(zhuǎn)換器將模擬信號轉(zhuǎn)換為數(shù)字信號。但這種方案電路復(fù)雜、成本較高,且需要多次檢測后方可使采樣精確,過于煩瑣。</p><p>  方案二:采用DALLAS公司生

27、產(chǎn)的單總線數(shù)字溫度傳感器DS18B20,其直接輸出數(shù)字式溫度信息,方便、抗干擾性強(qiáng),獨特的單線接口方式,使其在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。測量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃。</p><p>  綜合各方面考慮,本系統(tǒng)采用采用更為優(yōu)秀的DS18B20數(shù)字溫度傳感器,降低了成本和電路的復(fù)雜程度,提高了電路的運行質(zhì)量。&

28、lt;/p><p><b>  3. 人體檢測模塊</b></p><p>  為使電風(fēng)扇更具人性化、智能化,遂采用熱釋電紅外傳感器,循環(huán)掃描采集人體紅外信息,以實現(xiàn)當(dāng)室溫達(dá)到設(shè)定開啟風(fēng)扇的溫度并且人出現(xiàn)在熱釋電紅外傳感器可測范圍時,電風(fēng)扇自動開啟,當(dāng)人離開可測范圍一段時間后關(guān)閉電風(fēng)扇。</p><p>  4. 電風(fēng)扇測速模塊</p>

29、<p>  方案一:采用霍爾轉(zhuǎn)速傳感器A3144E。</p><p>  方案二:采用電磁感應(yīng)式無緣傳感器。</p><p>  霍爾轉(zhuǎn)速傳感器在穩(wěn)定性、抗干擾能力、測量頻率范圍等方面都優(yōu)于電磁感應(yīng)式無源傳感器,且其安裝簡單,實用方便,故本系統(tǒng)采用方案一。</p><p>  5. 電風(fēng)扇調(diào)速模塊</p><p>  方案一:抽

30、頭法。抽頭調(diào)速的電動機(jī)有主繞組、中間繞組、和副繞組三種線圈,根據(jù)中間繞組的接線位置不同分為L型、T型和H型。臺扇、壁扇、落地扇多采用抽頭法。然而隨著原材料價格的波動,造成風(fēng)扇電機(jī)的繞組匝數(shù)不足,影響了低檔位繞組的每伏匝數(shù),導(dǎo)致調(diào)速比達(dá)不到標(biāo)準(zhǔn)要求。</p><p>  方案二:電抗器法。通過串入不同感抗值的電抗器從而改變繞組每伏匝數(shù)來調(diào)速,特點是各檔速度調(diào)節(jié)容易,繞線簡單,維修方便,但是卻不能隨心所欲的調(diào)速。&l

31、t;/p><p>  方案三:電容法。通過改變加在副繞組的電壓相角關(guān)系間接改變副繞組的電壓實現(xiàn)控制電機(jī)繞組產(chǎn)生轉(zhuǎn)矩的大小達(dá)到調(diào)速目的,其中主繞組時恒壓,副繞組是變量。電容調(diào)速成本較低電磁噪聲小,但是用壽命短且低檔難啟動吧,</p><p>  方案四:電子調(diào)速。利用可控硅的半導(dǎo)體原理,通過改變加到雙向可控硅控制極觸發(fā)脈沖的占空比來控制雙向可控硅的導(dǎo)通時間,進(jìn)而實現(xiàn)可能告知電機(jī)繞組的產(chǎn)生轉(zhuǎn)矩的時

32、間,來控制、改變風(fēng)扇轉(zhuǎn)速的。其風(fēng)速的大小不受限制、無檔次,可實現(xiàn)無級調(diào)速。</p><p>  比較分析,方案四的無級調(diào)速更適合本系統(tǒng)的智能溫控電風(fēng)扇設(shè)計,故采用此方案。</p><p><b>  6. 顯示模塊</b></p><p>  在系統(tǒng)工作過程中,需要對定時時間和當(dāng)前環(huán)境信息進(jìn)行顯示,有如下兩種顯示方案:</p>&

33、lt;p>  方案一:使用液晶顯示屏顯示時間和當(dāng)前環(huán)境信息。液晶顯示屏(LCD1602)具有輕薄,短小,耗電量低,無輻射危險,平面直角顯示及影像穩(wěn)定不閃爍,可視面積大,畫面效果好,分辨率高,抗干擾能力強(qiáng)等特點。</p><p>  方案二:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有低能耗、低損耗、低壓、長壽命、耐老化、防曬、防潮、防火、防高(低)溫的特點;對外界環(huán)境要求低,易于維護(hù),同時其精度比較高,測量快,精確可靠

34、,操作簡單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。</p><p>  綜合考慮,由于液晶顯示可視距離太近,故本設(shè)計方案二實現(xiàn)顯示功能。</p><p><b>  7. 鍵盤模塊</b></p><p>  方案一:采用4*4矩陣鍵盤。</p><p>  方案二:采用獨立式鍵盤。</p>

35、;<p>  由于設(shè)計中用到的按鍵數(shù)目不多,所以可以直接用AT89S52的通用I/O端口P1口作為鍵盤接口。按鍵只需一端經(jīng)限流電阻接至+5V、另一端接P1口即可,電路簡單且易于編程。故系統(tǒng)采用方案二。</p><p><b>  8. 定時模塊</b></p><p>  本系統(tǒng)在需要時會對電風(fēng)扇進(jìn)行定時運行,有以下定時方案:</p>&l

36、t;p>  方案一:采用DALLAS公司生產(chǎn)的DS1302時鐘芯片。芯片內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,采用同步串行通信,僅需用到三個口線:RES(復(fù)位)、I/O(數(shù)據(jù))、SCLK(串行時鐘),可提供秒、分、時、日、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整。</p><p>  方案二:采用單片機(jī)內(nèi)部定時器/計數(shù)器。本系統(tǒng)采用的AT89S52單片機(jī)內(nèi)部含有三個定時器/計數(shù)器,可實現(xiàn)精確定

37、時/計時。其計數(shù)脈沖的頻率為所選晶振頻率的1/12,本系統(tǒng)使用的晶振頻率為12MHz,則計數(shù)脈沖頻率為1MHz,通過對定時器/計時器的溢出控制,可容易地實現(xiàn)系統(tǒng)所需最小單位為1s的定時/計時功能。</p><p>  綜合考慮,本系統(tǒng)采用方案二,在有效地利用系統(tǒng)資源的同時,又減少了單片機(jī)的外圍電路。</p><p><b>  9. 狀態(tài)標(biāo)志模塊</b></p&

38、gt;<p>  狀態(tài)標(biāo)志模塊的設(shè)計旨在系統(tǒng)上電工作和風(fēng)扇啟動時發(fā)出聲光信號提示。在發(fā)光方面,考慮到電路的簡易程度、功耗和電源的因素,系統(tǒng)采用發(fā)光二極管顯示;在發(fā)聲方面,考慮到體積和功耗的因素,使用蜂鳴器代替普通的揚(yáng)聲器。</p><p><b>  第二章 硬件設(shè)計</b></p><p><b>  2.1 控制模塊 </b>

39、</p><p>  2.1.1 AT89S52概述</p><p>  1. AT89S52 單片機(jī)簡介</p><p>  AT89S52 是一種帶8K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM)、256B片內(nèi)RAM的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51 指令集和輸出管腳相兼容。由

40、于將多功能8 位CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的AT89S52 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  2. AT89S52單片機(jī)封裝類型</p><p>  圖2-1 AT89S52單片機(jī)雙列直插封裝</p><p>  3. AT89S52單片機(jī)各管腳功能</p><p

41、>  VCC:接+5V電源。</p><p><b>  GND:接地。</b></p><p>  XTAL1:片內(nèi)反向振蕩放大器的輸入端。當(dāng)使用片內(nèi)時鐘時,此端接外部石英晶體和微調(diào)電容的一端;當(dāng)使用外部時鐘時,對于HMOS單片機(jī),此引腳接地,對于CHMOS單片機(jī),此引腳作為外部振蕩信號的輸入端。</p><p>  XTAL2:片內(nèi)反

42、向振蕩放大器的輸出端。當(dāng)使用片內(nèi)時鐘時,此端接外部石英晶體和微調(diào)電容的另一端;當(dāng)使用外部時鐘時,對于HMOS單片機(jī),此引腳接外部振蕩源,對于CHMOS單片機(jī),此引腳懸空。</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當(dāng)P1口的管腳第一次寫“1”時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FLASH 編程時,P0口作為原

43、碼輸入口,當(dāng)FLASH 進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4個 TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。此外,P1.0還作為定時器計數(shù)器2的外部計數(shù)輸入(P1.0/T2),P1.1作為定時器/計數(shù)器2的觸發(fā)輸入(

44、P1.1/T2EX)。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收/輸出4個TTL 門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。當(dāng)P2口用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址

45、數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p>  P3口:P3口是一帶內(nèi)部帶上拉電阻的8位雙向I/O口,每腳可接收/輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89S52的一些特殊功能口。P3.

46、0:RXD(串行輸入口);P3.1:TXD(串行輸出口);P3.2:/INT0(外部中斷0輸入);P3.3:/INT1(外部中斷1輸入);P3.4:T0(定時器0外部計數(shù)輸入);P3.5:T1(定時器1外部計數(shù)輸入);P3.6:/WR(外部數(shù)據(jù)存儲器寫選通);P3.7:/RD(外部數(shù)據(jù)存儲器讀選通)。P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST/VPD:RST是復(fù)位信號輸入端,高電

47、平有效。當(dāng)單片機(jī)運行時,在此引腳加上持續(xù)時間大于2個機(jī)器周期(24個時鐘振蕩周期)的高電平時,即可完成復(fù)位操作。在單片機(jī)正常工作時,此引腳應(yīng)為≤0.5V低電平。VPD為此引腳第二功能,即備用電源的輸入端。當(dāng)主電源VCC發(fā)生故障,降低到某一規(guī)定值的低電平時,將+5V電源自動接入RST端,為內(nèi)部RAM提供備用電源,以保證片內(nèi)RAM中的信息不丟失,從而使單片機(jī)在復(fù)位后能繼續(xù)正常運行。</p><p>  ALE/PR

48、OG:ALE引腳輸出為地址鎖存允許信號,當(dāng)單片機(jī)訪問外部存儲器時,用于鎖存地址的低位字節(jié)。當(dāng)單片機(jī)上電正常工作后,即使不訪問外部鎖存器,ALE端仍有正脈沖信號輸出,此頻率為時鐘振蕩器頻率fosc的1/6,可用于初步判斷單片機(jī)芯片的好壞。ALE端可以驅(qū)動8個LS型TTL負(fù)載。應(yīng)當(dāng)注意的是,當(dāng)訪問外部數(shù)據(jù)存儲器時,在1個機(jī)器周期中ALE只出現(xiàn)1次,即丟失1個ALE 脈沖。因此,嚴(yán)格來說,不宜用ALE作精確的時鐘源或定時信號。如想禁止ALE的

49、輸出可在SFR 8EH地址上置0。此時,只有在執(zhí)行MOVX,MOVC指令時ALE才起作用。PROG為此引腳第二功能,在對片內(nèi)EPROM型單片機(jī)編程時,作為編程輸入端。</p><p>  PSEN:外部程序存儲器選通端,接外部程序存儲器的OE(輸出允許)端。在單片機(jī)訪問外部程序存儲器時,此引腳輸出脈沖負(fù)跳沿作為讀外部程序存儲器的選通信號。</p><p>  EA/VPP:EA為外部程序

50、存儲器選擇控制端。當(dāng)EA保持低電平時,單片機(jī)在此期間只訪問外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。當(dāng)EA 端保持高電平時,單片機(jī)在此間訪問內(nèi)部程序存儲器,但在PC(程序計數(shù)器)值超過1FFFH時,即超出片內(nèi)程序存儲器的8KB地址范圍時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  2.1.2 單片機(jī)最小系統(tǒng)

51、設(shè)計</p><p>  單片機(jī)最小系統(tǒng)是單片機(jī)能正常工作的所必須的最基本電路,包括復(fù)位和晶體振蕩電路,為方便今后本系統(tǒng)擴(kuò)展功能,所以最小系統(tǒng)采用雙排針單獨引出I/O口的方式,其電路設(shè)計如圖2-2所示。</p><p>  圖2-2 最小系統(tǒng)設(shè)計電路</p><p>  2.2 溫度檢測反饋模塊</p><p>  2.2.1 DS18B20

52、基礎(chǔ)知識 </p><p>  DS18B20單線數(shù)字溫度傳感器是DALLAS半導(dǎo)體公司開發(fā)的世界上第一片支持“一線總線”接口的溫度傳感器。它具有3引腳TO-92小體積封裝形式。溫度測量范圍為-55℃~+125℃,可編程為9~12位A/D 轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃。被測溫度用符號擴(kuò)展的16 位數(shù)字量方式串行輸出。工作電壓支持3V~5.5V的電壓范圍,既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。DS18

53、B20還支持“一線總線”接口,多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。它還有存儲用戶定義報警溫度等功能。</p><p>  DS18B20 內(nèi)部結(jié)構(gòu)及管腳:</p><p>  DS18B20內(nèi)部結(jié)構(gòu)如圖2-3所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器T

54、H 和TL、配置寄存器。其管腳排列如圖2-4所示,DQ為數(shù)字信號輸入/輸出端,GND為電源地,VDD為外接供電電源輸入端,采用寄生電源方式時,該引腳接地。</p><p><b>  DQ</b></p><p><b>  VDD</b></p><p><b>  GND</b></p>

55、;<p>  圖2-3 DS18B20 內(nèi)部結(jié)構(gòu)</p><p>  圖2-4 DS18B20外形及管腳</p><p>  由于DS18B20只有一根數(shù)據(jù)線,因此它和主機(jī)(單片機(jī))通信是需要串行通信,而AT89S52有兩個串行端口,所以可以不用軟件來模擬實現(xiàn)。經(jīng)過單線接口訪問DS18B20必須遵循如下協(xié)議:初始化、ROM操作命令、存儲器操作命令和控制操作。要使傳感器工作,一

56、切處理均從序列開始。</p><p>  主機(jī)發(fā)送(Tx)--復(fù)位脈沖(最短為480μs的低電平信號)。接著主機(jī)便釋放此線并進(jìn)入接收方式(Rx)。總線經(jīng)過4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測到I/O引腳上的上升沿之后,DS18B20等待15-60μs,并且接著發(fā)送脈沖(60-240μs的低電平信號)。然后以存在復(fù)位脈沖表示DS18B20已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM命令和存儲操作命令的數(shù)據(jù)。DS

57、18B20通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于處理數(shù)據(jù)位和進(jìn)行何種指定操作的命令。它有寫時間片和讀時間片兩種。</p><p>  寫時間片:當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時,產(chǎn)生寫時間片。有兩種類型的寫時間片:寫1時間片和寫0時間片。所有時間片必須有60微秒的持續(xù)期,在各寫周期之間必須有最短為1微秒的恢復(fù)時間。</p><p>  讀時間片:從DS18B20讀數(shù)據(jù)時,使用

58、讀時間片。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時產(chǎn)生讀時間片。數(shù)據(jù)線在邏輯低電平必須保持至少1微秒;來自DS18B20的輸出數(shù)據(jù)在時間下降沿之后的15微秒內(nèi)有效。為了讀出從讀時間片開始算起15微秒的狀態(tài),主機(jī)必須停止把引腳驅(qū)動拉至低電平。在時間片結(jié)束時,I/O引腳經(jīng)過外部的上拉電阻拉回高電平,所有讀時間片的最短持續(xù)期為60微秒,包括兩個讀周期間至少1μs的恢復(fù)時間。</p><p>  一旦主機(jī)檢測到DS18

59、B20的存在,它便可以發(fā)送一個器件ROM操作命令。所有ROM操作命令均為8位長。</p><p>  DS18B20芯片功能命令表如下:</p><p>  表2-1 DS18B20功能命令表</p><p>  DS18B20是用12位存儲溫度,最高位為符號位,下表為它的溫度存儲方式:</p><p>  表2-1 DS18B20溫度存儲地

60、址分配</p><p>  這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在DS18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。</p><p>  2.2.2 溫度檢測電路的設(shè)計</p><p&

61、gt;  DS18B20為單總線數(shù)字溫度傳感器,其與單片機(jī)的連接很簡單,電路如圖2-5所示。</p><p>  圖2-5 DS18B20溫度檢測電路</p><p>  2.3 人體檢測模塊</p><p>  2.3.1熱釋電紅外傳感器原理</p><p>  人體熱釋電紅外檢測模塊是一種能夠感應(yīng)人體靠近或遠(yuǎn)離的傳感器,模塊將對人體的人體

62、紅外熱輻射的信號轉(zhuǎn)化成電信號,人體都有恒定的體溫,一般在37℃左右,會輻射出中心波長為9~10um的特定紅外線,而探測元件的波長靈敏度在0.2~20um范圍內(nèi)幾乎穩(wěn)定不變。在傳感器頂端開設(shè)了一個裝有菲涅爾透鏡的窗口,可通過光的波長范圍為7~10um,正好適合于人體紅外輻射的探測,這樣便形成了一種專門用作探測人體輻射的紅外線傳感器。</p><p>  人體熱釋電紅外檢測模塊的菲涅爾透鏡將熱釋電紅外信號折射在PIR

63、(熱釋電紅外傳感器)上,探測區(qū)域內(nèi)紅外線能量的變化,由PIR將其轉(zhuǎn)換成電信號,即熱電轉(zhuǎn)換。實質(zhì)上熱釋電紅外傳感器是對溫度敏感的傳感器。它由陶瓷氧化物或壓電晶體元件組成,在元件兩個表面做成電極。在環(huán)境溫度有ΔT的變化時,由于有熱釋電效應(yīng),在兩個電極上會產(chǎn)生電荷ΔQ,即在兩電極之間產(chǎn)生微弱的電壓ΔV。</p><p>  因此在被動紅外探測器的可測范圍內(nèi),當(dāng)無人體移動時,熱釋電紅外感應(yīng)器感應(yīng)到的只是背景溫度,當(dāng)人體進(jìn)

64、入探測區(qū)時,通過菲涅爾透鏡,熱釋電紅外感應(yīng)器感應(yīng)到的是人體溫度與背景溫度的差異,信號被采集到伺服系統(tǒng)以后,由軟件對新采集的數(shù)據(jù)與系統(tǒng)內(nèi)存中已經(jīng)存在的前期探測數(shù)據(jù)進(jìn)行延時比較,以判斷是否真的有人等紅外線源進(jìn)入探測區(qū)。</p><p>  本系統(tǒng)采用的市售人體熱釋電紅外采集模塊,外形如圖2-6所示。內(nèi)部集成了熱釋電紅外傳感器和紅外傳感信號處理器BISS0001。有VCC(+5V)、OUT和GND三個引腳。模塊上電后,

65、當(dāng)有人進(jìn)入探測區(qū)域時,其信號端口便產(chǎn)生一個電平跳變,并維持?jǐn)?shù)秒鐘,我們就是利用這個跳變來判斷是否有人在可測區(qū)內(nèi)。</p><p>  2.3.2 人體檢測電路的設(shè)計</p><p>  本系統(tǒng)采用的市售人體熱釋電紅外采集模塊,有VCC(+5V)、OUT和GND三個引腳,接入電路如圖2-7所示。</p><p>  模塊上電后,當(dāng)有人進(jìn)入探測區(qū)域時,其信號端口便產(chǎn)生一

66、個電平跳變,并維持?jǐn)?shù)秒鐘,我們就是利用這個跳變來判斷是否有人在可測區(qū)內(nèi)。</p><p>  圖2-6 人體熱釋電紅外采集模塊外形圖</p><p>  圖2-7 人體熱釋電紅外檢測電路</p><p>  2.4 電風(fēng)扇測速模塊</p><p>  2.4.1 霍爾傳感器簡述</p><p>  根據(jù)霍爾效應(yīng),人們用

67、半導(dǎo)體材料制成的元件叫霍爾元件。它具有對磁場敏感、結(jié)構(gòu)簡單、體積小、頻率響應(yīng)寬、輸出電壓變化大和使用壽命長等優(yōu)點,因此,在測量、自動化、計算機(jī)和信息技術(shù)等領(lǐng)域得到廣泛的應(yīng)用。</p><p>  霍爾傳感器A3144是Allegro MicroSystems公司生產(chǎn)的寬溫、開關(guān)型霍爾效應(yīng)傳感器,其工作溫度范圍可達(dá)-40℃~150℃。它由電壓調(diào)整電路、反相電源保護(hù)電路、霍爾元件、溫度補(bǔ)償電路、微信號放大器、施密特觸

68、發(fā)器和OC門輸出極構(gòu)成,通過使用上拉電阻可以將其輸出接入CMOS邏輯電路。其輸入為磁感應(yīng)強(qiáng)度,輸出是一個數(shù)字電壓訊號。該芯片具有尺寸小、穩(wěn)定性好、靈敏度高等特點,有兩種封裝形式,一種是3腳貼片微小型封裝,后綴為“LH”;另一種是3腳直插式封裝,后綴為“UA”。</p><p>  霍爾傳感器的外形圖和管腳圖如圖2-8所示。磁場由磁鋼提供,所以霍爾傳感器和磁鋼需要配對使用。</p><p>

69、  霍爾元件和磁鋼 管腳圖</p><p>  圖2-8 霍爾傳感器的外形圖</p><p>  2.4.2 電風(fēng)扇測速電路的設(shè)計</p><p>  轉(zhuǎn)速的測量方法很多,根據(jù)脈沖計數(shù)來實現(xiàn)轉(zhuǎn)速測量的方法主要有M法(測頻法)、T法(測周期法)和MPT法(頻率周期法),該系統(tǒng)采用了M法(測頻法)。由于轉(zhuǎn)速是以單位時間內(nèi)轉(zhuǎn)數(shù)來衡量,在變換

70、過程中多數(shù)是有規(guī)律的重復(fù)運動實際測量時,要把霍爾傳感器固定在電風(fēng)扇后的隔離架上,與霍爾探頭相對的電風(fēng)扇的扇葉邊沿固定一塊磁鋼,電風(fēng)扇每轉(zhuǎn)一周,受磁鋼所產(chǎn)生的磁場的影響,霍爾傳感器便發(fā)出一個脈沖信號,其頻率和轉(zhuǎn)速成正比。將此脈沖信號接到AT89S52單片機(jī)的P3.2[]上,設(shè)定T0定時,每分鐘所計的進(jìn)入P3.2的脈沖個數(shù)即為電機(jī)的轉(zhuǎn)速。</p><p>  霍爾傳感器為輸出端開路元件,所以需外接上拉電阻,其電路如圖

71、2-9所示。</p><p>  圖2-9 霍爾測速電路</p><p>  2.5 電風(fēng)扇調(diào)速模塊</p><p>  2.5.1 電風(fēng)扇調(diào)速原理</p><p>  電風(fēng)扇調(diào)速是整個控制系統(tǒng)中的一個重要的方面。電風(fēng)扇的調(diào)速方法有很多種,如抽頭法、電抗器法、電容法、電子調(diào)速法等。</p><p>  本系統(tǒng)采用電子調(diào)

72、速法。通過控制雙向可控硅的導(dǎo)通時間,使輸出端電壓發(fā)生改變,從而使施加在電風(fēng)扇的輸入電壓發(fā)生改變,以調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,實現(xiàn)各檔位風(fēng)速的無級調(diào)速。</p><p>  可控硅的導(dǎo)通條件如下:</p><p>  1)陽-陰極間加正向電壓;</p><p>  2)控制極-陰極間加正向觸發(fā)電壓;</p><p>  3)陽極電流IA 大于可控硅的最小

73、維持電流IH。</p><p>  本系統(tǒng)采用了過零雙向可控硅型光耦MOC3041,集光電隔離、過零檢測、過零觸發(fā)等功能于一身,避免了輸入輸出通道同時控制雙向可控硅觸發(fā)的缺陷, 簡化了輸出通道隔離驅(qū)動電路的結(jié)構(gòu)。其工作原理是:單片機(jī)根據(jù)響應(yīng)的參數(shù)設(shè)置, 在單片機(jī)的P1.7口輸出一個低電平,使光電耦合器導(dǎo)通, 同時觸發(fā)雙向可控硅, 使工作電路導(dǎo)通工作。給定時間內(nèi),負(fù)載得到的功率為:</p><p

74、><b> ?。?-1)</b></p><p>  式中: P 為負(fù)載得到的功率/kW; n 為給定時間內(nèi)可控硅導(dǎo)通的正弦波個數(shù); N 為給定時間內(nèi)交流正弦波的總個數(shù); U 為可控硅在一個電源周期全導(dǎo)通時所對應(yīng)的電壓有效值/V; I 為可控硅在一個電源周期全導(dǎo)通時所對應(yīng)的電流有效值/A。由式(2-1)可知,當(dāng)U, I, N為定值時,只要改變n值的大小即可控制功率的輸出,從而達(dá)到調(diào)節(jié)電

75、機(jī)轉(zhuǎn)速的目的。</p><p>  2.5.2 電風(fēng)扇調(diào)速電路的設(shè)計</p><p>  本體統(tǒng)所設(shè)計的可控硅觸發(fā)電路如圖2-10所示。</p><p>  圖2-10 電風(fēng)扇調(diào)速電路</p><p><b>  2.6 顯示模塊</b></p><p>  2.6.1 數(shù)碼管顯示原理</p

76、><p>  常用的數(shù)碼管為8段式,其每一段對應(yīng)一個發(fā)光而二極管,分為共陽極和共陰極兩種。如圖2-11所示為共陰極數(shù)碼管內(nèi)部結(jié)構(gòu)。其所有二極管陰極連在一起并接地,當(dāng)某個發(fā)光二極管的陽極為高電平時,此發(fā)光二極管被點亮,相應(yīng)的段被顯示。同樣,共陽極數(shù)碼管則是所有陽極相連并接高電平,當(dāng)某個發(fā)光二極管的陰極為低電平時,即被點亮,相應(yīng)的段被顯示。將每段按一定的順序分別命名為a、b、c、d、e、f、g、dp,為其提供剛好一個字節(jié)

77、的不同的段碼(即字型碼)即可控制數(shù)碼管相應(yīng)的段被點亮顯示出不同的字型。</p><p>  圖2-11 共陰極數(shù)碼管結(jié)構(gòu)</p><p>  由N個數(shù)碼管按一定的方式連在一11起即可形成一個N位的數(shù)碼管,也分為共陽極和共陰極,其顯示方式可分為靜態(tài)顯示和動態(tài)顯示。如圖2-12所示為4位數(shù)碼管的構(gòu)成。</p><p>  圖2-12 4位數(shù)碼管結(jié)構(gòu)</p>

78、<p>  N位數(shù)碼管工作于靜態(tài)顯示方式時,各個數(shù)碼管的共陰極(或共陽極)連在一起并接地(或接+5V),各個段選端分別連接不同的8位I/O口或經(jīng)不同的鎖存器與I/O口相連。各個數(shù)碼管的顯示字符已經(jīng)確定則將維持不變,指導(dǎo)送入另一個字符的段碼為止,在同一時間里,每一位顯示的字符可以各不相同,因此,靜態(tài)顯示的亮度都較高。這種顯示方式編程容易,但占用I/O口或鎖存器較多,隨著顯示位數(shù)的增多,資源浪費將會更嚴(yán)重。因此,在顯示位數(shù)較多的

79、情況下,一般不采用靜態(tài)顯示,而是采用動態(tài)顯示。</p><p>  N位數(shù)碼管動態(tài)顯示時,其所有的段選端都連在一起,有1個8位I/O口控制,形成段碼線的多路復(fù)用,而各位的共陽極(或共陰極)也即位選端則由不同的I/O線控制,形成各位的分時選通。因此,在同一時刻,如果各位的位選端都處于選通狀態(tài),則各個數(shù)碼管將顯示相同的字符。若要各位都夠同時顯示出與本位相應(yīng)的顯示字符,就必須采用動態(tài)顯示,即在某一時刻,只讓某一位的位選

80、端處于選通狀態(tài),而其他各位都不選通,同時段碼線上輸出相應(yīng)位要顯示的字符的段碼;在下一時刻只讓下一位的位選端處于選通狀態(tài),在段碼線上再輸出其要顯示的字符的段碼。如此循環(huán)下去,只要每位顯示的間隔時間足夠短,利用發(fā)光二極管的余暉效應(yīng)和人眼的視覺暫留作用,就可以造成多位同時亮的假象,達(dá)到同時顯示不同字符的效果。這種顯示方式節(jié)省硬件資源,但占用CPU時間較多,適于顯示位數(shù)較多的情況。</p><p>  2.6.2 顯示電

81、路設(shè)計</p><p>  本系統(tǒng)采用4位共陽極數(shù)碼管動態(tài)顯示的方案以節(jié)省硬件資源,降低電路復(fù)雜度。設(shè)計電路如圖2-13所示。</p><p>  圖2-13 4位數(shù)碼管動態(tài)顯示連接電路</p><p>  單片機(jī)的P0口輸出段選碼,其位選端經(jīng)過4個9012 PNP三極管驅(qū)動與電源端Vcc相連,而9012的通斷則通過編程對P2.4~P2.7輸出高低電平來控制。其中,

82、當(dāng)某位輸出為低電平時對應(yīng)的與之連接那個9015導(dǎo)通,當(dāng)單片機(jī)輸出段選碼時,對應(yīng)的那位數(shù)碼管就會顯示相應(yīng)的段碼的內(nèi)容,當(dāng)P2.4~P2.7輪流不斷的輸出低電平,并且P0口在不同的位選中時輸出段碼時,4位數(shù)碼管就會輪流顯示不同的值,如果掃描時間足夠的短,那么利用其余暉和我們的視覺暫留效應(yīng),就會看到4位數(shù)碼管同時在發(fā)亮而且在顯示不同的內(nèi)容。</p><p><b>  2.7 鍵盤模塊</b>&l

83、t;/p><p>  2.7.1 鍵盤的工作原理</p><p>  鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實現(xiàn)向單片機(jī)輸入數(shù)據(jù)、傳送命令等功能,是人工干預(yù)單片機(jī)工作的主要手段,可分為獨立式鍵盤和行列式(矩陣)鍵盤。</p><p>  獨立式鍵盤就是各按鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線上電平的狀態(tài)就可以很容易地判斷出哪個鍵被按下。易識別且編程簡單,但在按鍵數(shù)目較多

84、時,獨立式鍵盤就需要較多的輸入口線且電路結(jié)構(gòu)復(fù)雜。故此種鍵盤適用于按鍵較少或操作速度較高的場合。</p><p>  行列式(矩陣)鍵盤用于按鍵較多的場合,有行線和列線組成,按鍵位于行、列的交叉點上。最常用的4*4的行、列結(jié)構(gòu)的鍵盤即可提供16個按鍵,與獨立式鍵盤相比可節(jié)約大量I/O口線。行列式鍵盤中行、列為多鍵共用,各按鍵均影響該鍵所在行和列的電平,因此各按鍵彼此將相互發(fā)生影響,所以必須將行、列信號配合起來并作

85、適當(dāng)處理,才能確定按下鍵的位置。</p><p>  2.7.2 獨立式鍵盤的設(shè)計</p><p>  由于本系統(tǒng)為智能化設(shè)計,需要的按鍵數(shù)目很少,所以系統(tǒng)采用簡單的獨立式鍵盤,與單片機(jī)的P1口相連,電路如圖2-14所示。</p><p>  圖2-14 獨立式鍵盤電路</p><p><b>  2.8 計時模塊</b>

86、;</p><p>  2.8.1 AT89S52的內(nèi)部定時器/計數(shù)器</p><p><b>  一.定時器/計數(shù)器</b></p><p>  AT89S52單片機(jī)內(nèi)部有三個16位的可編程定時器/計數(shù)器,定時器0(T0) 、定時器1(T1)和定時器2(T2),可編程選擇其作為定時器或計數(shù)器使用。此外,工作方式、定時時間、計數(shù)值、啟動、中斷請

87、求等都可以由程序設(shè)定。</p><p>  定時/計數(shù)器由定時器0、定時器1、定時器方式寄存器TMOD和定時器控制寄存器TCON組成。</p><p>  定時器0,定時器1是16位加法計數(shù)器,分別由兩個8位專用寄存器組成:定時器0由TH0和TL0組成,定時器1由TH1和TL1組成。TL0、TL1、TH0、TH1的訪問地址依次為8AH8DH,每個寄存器均可單獨訪問。定時器0或定時器1用作計

88、數(shù)器時,對芯片引腳T0(P3.4)或T1(P3.5)上輸入的脈沖計數(shù),每輸入一個脈沖,加法計數(shù)器加1;其用作定時器時,對內(nèi)部機(jī)器周期脈沖計數(shù),由于機(jī)器周期是定值,故計數(shù)值確定時,時間也隨之確定。</p><p>  TMOD、TCON與定時器0、定時器1間通過內(nèi)部總線及邏輯電路連接,TMOD用于設(shè)置定時器的工作方式,TCON用于控制定時器的啟動與停止。</p><p>  二.定時器/計數(shù)

89、器的初始化</p><p>  由于定時/計數(shù)器的功能是由軟件編程確定的,所以,一般在使用定時器/計數(shù)前都要對其進(jìn)行初始化。初始化驟如下:</p><p>  (1)確定工作方式——對TMOD或T2MOD賦值。</p><p>  (2)預(yù)置定時或計數(shù)的初值——直接將初值寫入TH0、TL0或TH1、TL1或TH2、TL2。</p><p> 

90、 定時/計數(shù)器的初值因工作方式的不同而不同。設(shè)最大計數(shù)值為M,則各種工作方式下的M值如下:</p><p>  方式0:M=213=8192</p><p>  方式1:M=216=65536</p><p>  方式2:M=28=256</p><p>  方式3:定時器0分成兩個8位計數(shù)器,所以兩個定時器的M值均為256。</p&g

91、t;<p>  因定時/計數(shù)器工作的實質(zhì)是做“加1”計數(shù),所以,當(dāng)最大計數(shù)值M值已知時,初值X可計算如下:</p><p><b>  X=M計數(shù)值</b></p><p>  (3)根據(jù)需要開啟定時/計數(shù)器中斷——直接對IE寄存器賦值。</p><p>  (4)啟動定時/計數(shù)器工作——將TR0或TR1置“1”。</p&g

92、t;<p>  GATE=0時,直接由軟件置位啟動;GATE=1時,除軟件置位外,還必須在外中斷引腳處加上相應(yīng)的電平值才能啟動。</p><p>  2.8.2 繼電器控制電路的設(shè)計</p><p>  本系統(tǒng)中由單片機(jī)內(nèi)部定時器T2設(shè)置定時時間,由繼電器做開關(guān)控制電路。當(dāng)定時時間到時,單片機(jī)即控制繼電器切斷風(fēng)扇電機(jī)的電源,風(fēng)扇停止轉(zhuǎn)動。繼電器控制電路的設(shè)計如圖2-15所示。

93、</p><p>  圖2-15 繼電器控制電風(fēng)扇開斷電路</p><p>  2.9 狀態(tài)標(biāo)志模塊</p><p>  2.9.1 電源指示</p><p>  當(dāng)電風(fēng)扇從手動模式調(diào)至智能模式時,系統(tǒng)上電,采用發(fā)光二極管作為提示,說明切換模式成功。其電路設(shè)計如圖2-16所示。</p><p>  圖2-16 電源指示

94、燈</p><p>  2.9.2 電風(fēng)扇啟動提示</p><p>  當(dāng)環(huán)境達(dá)到開啟溫度且人在探測范圍內(nèi)時,單片機(jī)控制電風(fēng)扇開始以初始速度運行,并由蜂鳴器發(fā)聲以提示電風(fēng)扇啟動成功。其電路如圖2-17所示。</p><p>  圖2-17 電風(fēng)扇啟動發(fā)聲電路</p><p><b>  第三章 軟件設(shè)計</b><

95、/p><p>  3.1 溫度檢測子程序</p><p>  3.1.1 程序流程圖</p><p><b>  N</b></p><p>  Y </p><p&g

96、t;  圖3-1 溫度檢測模塊流程圖</p><p>  3.1.2 子程序設(shè)計</p><p>  #include <reg52.h></p><p>  sbit DQ = P3^0; //定義18B20端口DQ</p><p>  sbit wei1 =P2^4;</p><p>  sbit

97、 wei2 =P2^5;</p><p>  sbit wei3 =P2^6;</p><p>  sbit wei4 =P2^7;</p><p>  unsigned char code LEDData1 [ ] = {0xc0, 0xf9, 0xa4, </p><p>  0xb0, 0x99, 0x92, 0x82, 0xf8, 0

98、x80, 0x90};//0-9數(shù)字</p><p>  unsigned char code LEDData2 [ ] = {0x40, 0x79, 0x24, </p><p>  0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; //0-9帶點數(shù)字</p><p>  unsigned char T;//定義變量保存當(dāng)前溫

99、度值</p><p>  ///////////////////////////////////////////////////</p><p>  void Delay(unsigned int time)//延時函數(shù)</p><p><b>  {</b></p><p>  while( time-- );<

100、/p><p><b>  }</b></p><p>  ///////////////////////////////////////////////////</p><p>  Init_18B20()//初始化18B20</p><p><b>  {</b></p><p&g

101、t;  unsigned char x = 0;</p><p>  DQ = 1; //DQ復(fù)位</p><p>  Delay(10); //稍做延時</p><p>  DQ = 0; //單片機(jī)將DQ拉低</p><p>  Delay(80); //延時大于480us</p><p>  DQ

102、= 1; //拉高總線</p><p>  Delay(10);</p><p>  x = DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗</p><p>  Delay(20);</p><p><b>  }</b></p><p>  /////////

103、//////////////////////////////////////////</p><p>  unsigned char ReadOneChar()//讀一個字節(jié)</p><p><b>  {</b></p><p>  unsigned char i = 0;</p><p>  unsigned cha

104、r dat = 0;</p><p>  for (i = 8; i > 0; i--)</p><p><b>  {</b></p><p>  DQ = 0; // 給脈沖信號</p><p>  dat >>= 1;</p><p>  DQ = 1; // 給脈沖信號&

105、lt;/p><p><b>  if(DQ)</b></p><p>  dat |= 0x80;</p><p>  Delay(15);</p><p><b>  }</b></p><p>  return (dat);</p><p><b

106、>  }</b></p><p>  ///////////////////////////////////////////////////</p><p>  void WriteOneChar(unsigned char dat)//寫一個字節(jié)</p><p><b>  {</b></p><p>

107、;  unsigned char i = 0;</p><p>  for (i = 8; i > 0; i--)</p><p><b>  {</b></p><p><b>  DQ = 0;</b></p><p>  DQ = dat&0x01;</p><

108、;p><b>  Delay(5);</b></p><p><b>  DQ = 1;</b></p><p><b>  dat>>=1;</b></p><p><b>  }</b></p><p><b>  }<

109、;/b></p><p>  ///////////////////////////////////////////////////</p><p>  void Read_Display()//讀取并顯示溫度</p><p><b>  {</b></p><p>  unsigned int a = 0, b

110、= 0, c = 0, t = 0;</p><p>  float tt = 0;</p><p>  Init_18B20();</p><p>  WriteOneChar(0xCC); // 跳過讀序號列號的操作</p><p>  WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換</p><p> 

111、 Init_18B20();</p><p>  WriteOneChar(0xCC); //跳過讀序號列號的操作</p><p>  WriteOneChar(0xBE); //讀取溫度寄存器</p><p>  a = ReadOneChar();</p><p>  b = ReadOneChar();</p><p

112、><b>  t = b;</b></p><p><b>  t <<= 8;</b></p><p>  t = t | a;</p><p>  tt = t * 0.0625;</p><p>  t = tt * 10 + 0.5; //放大10倍輸出并四舍五入</

113、p><p>  T = t / 10;//保存當(dāng)前溫度</p><p>  a = t / 100; //十位</p><p>  b = t / 10 - a * 10; //個位 </p><p>  c = t - a * 100 - b * 10; //小數(shù)位</p><p>

114、  P0 = 0xc6; //顯示"C"字符</p><p><b>  wei1 = 0;</b></p><p>  Delay(100);</p><p><b>  wei1 = 1;</b></p><p>  P0 = LEDData1[c]; //顯示小數(shù)位&l

115、t;/p><p><b>  wei2 = 0;</b></p><p>  Delay(100);</p><p><b>  wei2 = 1;</b></p><p>  P0 = LEDData2[b]; //顯示個位</p><p><b>  wei3 =

116、 0;</b></p><p>  Delay(100);</p><p><b>  wei3 = 1;</b></p><p>  P0 = LEDData1[a]; //顯示十位</p><p><b>  wei4 = 0;</b></p><p>  

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論