畢業(yè)論文(設計)基于單片機的環(huán)境控制模擬實驗箱(恒溫恒濕控制系統(tǒng))_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘要1</b></p><p><b>  關鍵詞1</b></p><p>  Abstract.1</p><p>  Key words1</p><p><

2、b>  1論文概述2</b></p><p><b>  1.1課題背景2</b></p><p>  1.2課題研究的目的和意義2</p><p>  1.3國內外發(fā)展狀況2</p><p>  1.4研究的主要內容3</p><p>  2系統(tǒng)的總體設計3<

3、/p><p>  2.1 系統(tǒng)設計的原則3</p><p>  2.2 系統(tǒng)的組成3</p><p>  2.3 系統(tǒng)的工作原理4</p><p>  3.系統(tǒng)的硬件設計4</p><p>  3.1單片機的設計4</p><p>  3.1.1 C8051F020單片機概述4</

4、p><p>  3.1.2 C8051F020單片機與80C51主要的不同點5</p><p>  3.2 溫濕度傳感器的設計6</p><p>  3.3 液晶顯示裝置的設計8</p><p>  3.4 輸入控制模塊的設計10</p><p>  3.5 溫濕度控制模塊的設計11</p><

5、;p>  3.5.1溫度控制裝置11</p><p>  3.5.2濕度控制裝置12</p><p>  3.6 模擬箱的設計與組建13</p><p>  4.系統(tǒng)的軟件設計13</p><p>  4.1 模擬箱的設計與組建13</p><p>  4.1.1 Keil概述14</p>

6、<p>  4.1.2 Keil開發(fā)系統(tǒng)整體結構15</p><p>  4.2常用的調試方法15</p><p>  4.2.1單步調試15</p><p>  4.2.2斷點調試16</p><p>  4.3系統(tǒng)軟件流程圖16</p><p>  4.4初始化模塊17</p>

7、<p>  4.5溫濕度檢測模塊17</p><p>  4.6液晶顯示模塊19</p><p>  4.7鍵盤輸入模塊21</p><p>  4.8溫濕度判斷控制模塊24</p><p><b>  結論25</b></p><p><b>  致謝26&l

8、t;/b></p><p><b>  參考文獻27</b></p><p>  基于單片機的環(huán)境控制模擬實驗箱 </p><p> ?。ê銣睾銤窨刂葡到y(tǒng)) </p><p> 

9、 電子信息科學與技術專業(yè)學生 </p><p>  指導教師 </p><p>  摘要:隨著物質生活水平的日益提高和社會經(jīng)濟的不斷發(fā)展,人們對生活品質的要求也日益提高,因此引入了科技住宅這一概念,綠色科技住宅最為吸引人的一點即為24小時的恒溫恒濕,如何有效的控制溫度和濕度,也一直是人們探討的話題。本論文主要闡述了利用C8051F020單片機設計一個模擬智能

10、家居的溫濕度檢測控制系統(tǒng),對室內的溫濕度進行檢測控制并實時顯示。其中溫濕度傳感器采用AM2301數(shù)字溫濕度傳感器,通過C8051F020單片機的處理把溫濕度值顯示在1602液晶上。同時通過4*4矩陣鍵盤設定所需的溫濕度,并實時判斷溫濕度值是否滿足設定的溫濕度范圍,若超出設定范圍,通過C8051F020啟動溫濕度控制系統(tǒng),達到恒溫恒濕的目的。</p><p>  關鍵詞:C8051F020;AM2301;1602液

11、晶;恒溫恒濕 </p><p>  The environmental simulate box based on single-chip microcomputer</p><p>  (Constant temperature and humidity control system) </p><p>  Student majoring in Electron

12、ic and Information Science and Technology Sun Jiajun</p><p>  Tutor Lu Wei</p><p>  Abstract:With the continuous development of material living standards and increasing the social economy

13、, people's quality of life demands are increasing, thus introducing the concept of residential technology, the constant temperature and humidity an attraction for 24 hours for residential green technology, how to eff

14、ectively control the temperature and humidity, has always been people discussion on topic.This paper mainly expounds the temperature and humidity measuring and controlling system us</p><p>  Key words: C8051

15、F020;AM2301;1602LCD;Constant temperature and humidity</p><p>  引言 隨著物質生活水平的日益提高和社會經(jīng)濟的不斷發(fā)展,人們對生活品質的要求也日益提高,因此引入了科技住宅這一概念,綠色科技住宅最為吸引人的一點即為24小時的恒溫恒濕,如何有效的控制溫度和濕度,也一直是人們探討的話題。而基于單片機的溫濕度控制系統(tǒng)的模擬實驗箱對解決這一問題有著非常重大的意

16、義。</p><p><b>  1論文概述</b></p><p><b>  1.1課題背景</b></p><p>  隨著物質生活水平的日益提高和社會經(jīng)濟的不斷發(fā)展,人們對生活品質的要求也日益提高,因此引入了科技住宅這一概念,綠色科技住宅最為吸引人的一點即為24小時的恒溫恒濕,如何有效的控制溫度和濕度,也一直是人們

17、探討的話題。而基于單片機的溫濕度控制系統(tǒng)的模擬實驗箱對解決這一問題有著非常重大的意義。</p><p>  之前的恒溫恒濕家居主要設定一固定的溫濕度,為了充分的利用好恒溫恒濕這一高效技術,就必需有一套科學的,先進的技術處理手段,用以對不同的人在不同的季節(jié)和氣候條件下對溫度和濕度有著截然不同的需求。溫濕度控制對于單片機的應用具有一定的實際意義,它代表了一類自動控制的方法。而且其應用十分廣泛。</p>

18、<p>  1.2課題研究的目的和意義</p><p>  隨著經(jīng)濟和社會的不斷發(fā)展,人們對自己的生活環(huán)境越來越嚴格?;趩纹瑱C的溫濕度監(jiān)測控制統(tǒng)設計,將對環(huán)境的溫濕度監(jiān)測控制系統(tǒng)做詳細的設計與實現(xiàn)。采用高性能的控制芯片C8051F020,向模塊化、高速化、智能化的單片機數(shù)據(jù)采集系統(tǒng)靠近。將此系統(tǒng)應用到智能家居中無疑為人們的日常生活提供了更加適宜的環(huán)境,使人們不用再受室外的氣候和天氣影響,具有十分良好的

19、發(fā)展前景。</p><p>  本系統(tǒng)擬采用的C8051F020為89C51單片機的一款升級衍化產(chǎn)品。89C51單片機是常用于控制的芯片,在智能儀器儀表、工業(yè)檢測控制、機電一體化等方面取得了令人矚目的成果,用其作為溫濕度檢測控制系統(tǒng)的實例也很多。使用89C51單片機能夠實現(xiàn)溫濕度全程的自動檢測與控制,而且89C51單片機易于學習、掌握,性價比高。使用89C51型單片機設計溫濕度檢測控制系統(tǒng),可以及時、精確的反映室

20、內的溫度以及濕度的變化。完成諸如升溫到特定溫度、降溫到特定溫度、在溫度上下限范圍內保持恒溫等多種控制方式,在濕度控制方面也是如此。將此系統(tǒng)應用到智能家居,科技住宅領域中無疑能方便的給人們提供更加舒適的居住環(huán)境。</p><p>  1.3國內外發(fā)展狀況</p><p>  國外在這一領域較為領先,技術也較為成熟,目前這方面主要的發(fā)展方向一是利用計算機仿真技術,與PC機結合,做仿真實驗。二是

21、提高試驗速度,降低試驗成本。多功能化、智能化,更加安全、精確。雖然現(xiàn)在溫濕箱只能模擬兩種參數(shù),但是將來將重點發(fā)展復合式的多功能智能化試驗箱[2]。</p><p>  恒溫恒濕試驗箱的應用越來越廣, 生產(chǎn)、科研對它的要求也越來越高。要求它的性能價格比更高, 使用壽命更長, 使用費用更少(省電) , 響應速度更快。</p><p>  近幾年來,我國從國外引進了大批試驗系統(tǒng),為我國工業(yè)產(chǎn)品的

22、研制和定型發(fā)揮了重要作用,但由于其本身的復雜性,使得試驗箱在運行中出現(xiàn)了許多問題,而且出現(xiàn)了問題不能及時解決,大大延長了試驗周期,影響了產(chǎn)品的研制工作。而產(chǎn)生這些現(xiàn)象的原因是對綜合試驗的工作原理不了解[3]。</p><p>  因此本次課題將從恒溫恒濕箱原理出發(fā),在實現(xiàn)恒溫恒濕控制的基礎上進一步在精度上,加濕方式等方面進行完善和提高。</p><p>  1.4研究的主要內容</p

23、><p>  本研究主要集中于設備的結構、溫控和濕控選擇、控制精度與測試監(jiān)控等方面。主要研究內容如下:</p><p>  溫度檢測與控制:對箱內溫度進行測量,并通過升溫或降溫達到最佳溫度。</p><p>  濕度檢測與控制:對箱內濕度進行測量,并通過噴霧或去濕達到最佳濕度。</p><p>  顯示: LCD顯示相應的溫濕度,并有相應的控制界

24、面。</p><p>  人性化的控制設計:根據(jù)個人具體的生活需求,可通過輸入按鍵或觸摸屏進行溫濕度設置,把溫濕度值控制在一定的范圍內。</p><p><b>  2系統(tǒng)的總體設計</b></p><p>  2.1 系統(tǒng)設計的原則</p><p>  要求單片機系統(tǒng)應具有可靠性高、操作維護方便、性價比高等特點。<

25、;/p><p><b>  可靠性:</b></p><p>  高可靠性是單片機系統(tǒng)應用的前提,在系統(tǒng)設計的每一個環(huán)節(jié),都應該將可靠性作為首要的設計準則。提高系統(tǒng)的可靠性通常從以下幾個方面考慮:使用可靠性高的元器件;設計電路板時布線和接地要合理;對供電電源采用抗干擾措施;輸入輸出通道抗干擾措施;進行軟硬件濾波;系統(tǒng)自診判斷功能等。</p><p>

26、;<b>  操作維護方便:</b></p><p>  在系統(tǒng)的軟硬件設計時,應從操作者的角度考慮操作和維護方便,盡量減少對操作人員專用知識的要求,以利于系統(tǒng)的推廣。因此在設計時,要盡可能減少人機交換接口,多采用操作內置或簡化的方法。同時系統(tǒng)應配有現(xiàn)場故障自動診斷程序,一旦發(fā)生故障能保證有效地對故障進行定位,以便進行維修。</p><p><b>  性價

27、比:</b></p><p>  單片機除體積小、功耗低等特點外,最大的優(yōu)勢在于高性能價格比。一個單片機應用系統(tǒng)能否被廣泛使用,性價比是其中一個關鍵因素。因此,再設計時,除了保持高性能外,盡可能降低成本,如簡化外圍硬件電路,在系統(tǒng)性能和速度允許的情況下盡可能使用軟件功能取代硬件功能等。</p><p><b>  2.2 系統(tǒng)的組成</b></p&g

28、t;<p>  測控系統(tǒng)主要采用SOC單片機C8051F020,選用溫濕度傳感器AM2301,1602LCD顯示器,4*4矩陣鍵盤,以及控制溫度的制熱制冷設備和控制濕度噴霧設備。系統(tǒng)總的組成如圖2.1所示:</p><p><b>  圖2.1</b></p><p>  2.3 系統(tǒng)的工作原理</p><p>  本系統(tǒng)以單片機

29、C8051F020為核心,數(shù)據(jù)采集、傳輸、顯示都要通過單片機。數(shù)據(jù)采集通過單總線的智能數(shù)字溫濕度傳感器AM2301完成;通過單片機把采集的數(shù)據(jù)顯示在LCD上。并通過鍵盤設定控制的溫濕度范圍。在整個系統(tǒng)中采用了AM2301單總線技術,采用C語言進行單片機編程。</p><p>  溫室溫濕度控制系統(tǒng)是以C8051F020單片機作為中央控制裝置,制冷,制熱設備,加濕設備,除濕設備等。</p><p

30、>  C8051F020作為中央控制裝置,負責中心運算和控制,協(xié)調系統(tǒng)各個模塊的工作。</p><p>  矩陣鍵盤:負責設定控制的溫濕度范圍。</p><p>  ? 制冷設備:負責系統(tǒng)的降溫工作。</p><p>  ? 加熱設備:負責系統(tǒng)的加熱工作。</p><p>  ? 噴霧設備:負責系統(tǒng)的加濕工作。</p>

31、<p><b>  3.系統(tǒng)的硬件設計</b></p><p><b>  3.1單片機的設計</b></p><p>  3.1.1 C8051F020單片機概述</p><p>  C8051F系列單片機是完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的CIP-51微控制器內核,采用流水線結構,單周期指

32、令運行速度是8051的12倍,全指令集運行速度是原來的9.5倍。熟悉NCS-51系列單片機的工程技術人員可以很容易地掌握C8051F的應用技術并能進行軟件的移植。但是不能將8051的程序完全照搬的應用于C8051F單片機中,這是因為兩者的內部資源存在較大的差異,必須經(jīng)過加工才能予以使用。其中C8051F020以其功能較全面,應用較廣泛的特點成為C8051F的代表性產(chǎn)品,其性能價格比在目前應用領域也極具競爭力。C8051F020的內部電路

33、包括CIP-51微控制器內核及RAM、ROM、I/O口、定時/計數(shù)器、ADC、DAC、PCA(PrintedCircuitAssembly印制電路組裝)、SPI(SerialPeripheralInterface--串行外設接口)和SMBus(SystemManagementBus)等部件,即把計算機的基本組成單元以及模擬和數(shù)字外設集成在一個芯片上,構成一個完整的片上系統(tǒng)(SoC)。</p><p>  本次所采

34、用的最小開發(fā)板如圖3.1所示:</p><p><b>  圖3.1</b></p><p>  3.1.2 C8051F020單片機與80C51主要的不同點</p><p><b>  運行速度:</b></p><p>  C8051F020的指令運行速度是一般80C51系列單片機的10倍以上。

35、因為其CIP-51中采用了流水線處理結構,已經(jīng)沒有了機器周期時序,指令執(zhí)行的最小時序單位為系統(tǒng)時鐘,大部分指令只要1~2個系統(tǒng)周期即可完成。又由于其時鐘系統(tǒng)比80C51的更加完善,有多個時鐘源,且時鐘源可編程,時鐘頻率范圍為0~25MHz,當CIP-5l工作在最大系統(tǒng)時鐘頻率25MHz時,它的峰值速度可以達到25MI/s,C8051F020已進入了8位高速單片機行列。</p><p>  I/O端口的配置方式:&

36、lt;/p><p>  C8051F020擁有8個8位的I/O端口,大量減少了外部連線和器件擴展,有利于提高可靠性和抗干擾能力。其中低4個I/O端口除可作為一般的通用I/O端口外,還可作為其他功能模塊的輸入或輸出引腳,它是通過交叉開關配置寄存器XBR0、XBR1、XBR2選擇并控制的,可將片內的計數(shù)器/定時器、串行總線、硬件中斷、比較器輸出及其它的數(shù)字信號配置為在端口I/O引腳出現(xiàn),這樣用戶可以根據(jù)自己的特定需要選擇

37、所需的數(shù)字資源和通用I/O口。數(shù)字交叉開關是一個比較大的數(shù)字開關網(wǎng)路,這在所有80C51系列單片機上是一個空白。另外P1MDIN用于選擇P1的輸入方式是模擬輸入還是數(shù)字輸入,復位值為11111111B,即默認為數(shù)字輸入方式。而80C51單片機的I/O引腳是固定分配的,即占用引腳多,配置又不夠靈活。C8051F020通過優(yōu)先權交叉開關譯碼器(如圖2所示)控制數(shù)字開關網(wǎng)路,端口引腳的分配順序是從P0.0開始一直到P3.7。當交叉開關配置寄存

38、器XBR0、XBR1和XBR2中外設的對應使能位被設置為邏輯“1”時,交叉開關將端口引腳分配給外設,例如,如果UARTOEN位(XBR0.2)被設置為邏輯“1”,則</p><p><b>  內部功能:</b></p><p>  C8051F020內部帶有數(shù)據(jù)采集所需的ADC和DAC,其中ADC有兩個,一個是8路12位逐次逼近型ADC,可編程轉換速率,最大為100

39、kS/s.可通過多通道選擇器配置為單端輸入或差分輸入。內有可編程增益放大器PGA用于將輸入的信號放大,提高A/D的轉換精度??删幊淘鲆鏋椋?.5、1、2、4、8或16,復位時默認值為1。另一個是8路8位ADC,可編程轉換速率最大為500kS/s,其可編程放大增益為0.5、1、2、4,復位時默認值為0.5。有2個12位的DAC,用于將12位的數(shù)字量轉換為電壓量,可產(chǎn)生連續(xù)變化的波形,兩路信號可同步輸出。</p><p&

40、gt;<b>  外部接口:</b></p><p>  C8051F020外設還增添了三個串行口??赏瑫r與外界進行串行數(shù)據(jù)通信,SMBus兼容于I2C串行擴展總線;SPI串行擴展接口;兩個增強型UART串口。C8051F020具有基于JTAG接口的在系統(tǒng)調試功能,片內的調試電路通過JTAG接口可提供高速、方便的在系統(tǒng)調試。</p><p>  3.2 溫濕度傳感器的

41、設計</p><p>  1)AM2301產(chǎn)品概述</p><p>  AM2301數(shù)字溫濕度傳感器(如圖3.2)是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電容式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質卓越、超快響應、抗干擾能力強、性價比極高

42、等優(yōu)點。每個AM2301傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。</p><p><b>  圖3

43、.2</b></p><p><b>  2)產(chǎn)品亮點</b></p><p>  超低能耗、傳輸距離遠、全部自動化校準、采用電容式濕敏元件、完全互換、標準數(shù)字單總線輸出、卓越的長期穩(wěn)定性、采用高精度測溫元件。</p><p>  3)單總線接口定義,如圖3.3所示:</p><p><b>  圖

44、3.3</b></p><p>  引腳說明(VDD SDA GND):</p><p>  AM2301的供電電壓范圍為 3.5V - 5.5V,建議供電電壓為 5V。數(shù)據(jù)線 SDA 引腳為三態(tài)結構,用于讀/寫傳感器數(shù)據(jù)。詳細見單總線的通信協(xié)議說明。</p><p><b>  4)單總線接口定義</b></p>&

45、lt;p>  DATA 用于微處理器與 DHT21之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間5ms左右 ,具體格式在下面說明,當前數(shù)據(jù)傳輸為40bit,高位先出。 </p><p>  數(shù)據(jù)格式:40bit數(shù)據(jù)=16bit濕度數(shù)據(jù)+16bit溫度數(shù)據(jù)+8bit校驗和 </p><p>  例子: 接收40bit數(shù)據(jù)如下: </p><p>  0000

46、 0010 1000 1100 0000 0001 0101 11111110 1110</p><p>  濕度數(shù)據(jù) 溫度數(shù)據(jù) 校驗和</p><p>  濕度高8位+濕度低8位+溫度高8位+溫度低8位=的末8位=校驗和</p><p>  例如:0000 0010+1000 1100+0000 0001+0101 1111=1110 1110</p&g

47、t;<p>  濕度=65.2%RH 溫度=35.1℃ </p><p>  當溫度低于0℃時溫度數(shù)據(jù)的最高位置1。 </p><p>  例如:-10.1℃表示為1000 0000 0110 0101 </p><p>  用戶主機(MCU)發(fā)送一次開始信號后,DHT21從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT21發(fā)送響應信號,送出

48、40bit的數(shù)據(jù),并觸發(fā)一次信號采集。</p><p>  3.3 液晶顯示裝置的設計</p><p><b>  圖3.4</b></p><p>  1602液晶(如圖3.4)也叫1602字符型液晶 它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊 它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之

49、間有一個點距的間隔 每行之間也有也有間隔 起到了字符間距和行間距的作用,正因為如此 所以他不能顯示圖形(用自定義CGRAM,顯示效果也不好)1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。</p><p>  

50、1602LCD主要技術參數(shù):</p><p>  顯示容量:16×2個字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V</p><p>  字符尺寸:2.95×4.35(W×H)m

51、m</p><p><b>  圖3.5</b></p><p>  引腳功能說明(如圖3.5):</p><p>  1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下:</p><p>  第1腳:VSS為地電源。</p><p>  第2腳:VDD接5V正電源

52、。</p><p>  第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調整對比度。</p><p>  第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。</p><p>  第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和

53、R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  第15腳:背光源正極。</p><p

54、>  第16腳:背光源負極。</p><p>  1602液晶操作的時序圖(如圖3.6,3.7):</p><p><b>  圖3.6</b></p><p><b>  圖3.7</b></p><p>  3.4 輸入控制模塊的設計</p><p><b&g

55、t;  圖3.8</b></p><p>  如圖3.8所示矩陣鍵盤,每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU 通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實現(xiàn)的。鍵盤處理程序的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時

56、的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。</p><p>  3.5 溫濕度控制模塊的設計</p><p>  3.5.1溫度控制裝置</p><p>  溫度控制裝置主要分為加熱裝置(電熱絲)以及制冷裝置(半導體制冷片)</p>&

57、lt;p>  半導體制冷片實物圖(圖3.9):</p><p><b>  圖3.9</b></p><p>  與單片機連接如圖3.10所示:</p><p><b>  圖3.10</b></p><p><b>  半導體制冷片概述:</b></p>

58、<p>  半導體制冷器的用途很多,可用于制作便攜冷藏/保溫箱、冷熱飲水機等。也用于電子器件的散熱。目前制冷器所采用的半導體材料最主要為碲化鉍,加入不純物經(jīng)過特殊處理而成 N 型或 P 型半導體溫差元件。以市面常見的TEC1-12605為例,其 額定電壓為:12v,額定電流為5A,最大溫差可達60攝氏度,外型尺寸為4 X 4 X 0.4Cm,重約25克。它的工作特點是一面制冷而一面發(fā)熱。</p><p>

59、;  接通直流電源后,電子由負極(-)出發(fā),首先經(jīng)過P型半導體,在此吸收熱量,到了N型半導體,又將熱量放出,每經(jīng)過一個NP 模組,就有熱量由一邊被送到另外一邊,造成溫差,從而形成冷熱端。 </p><p>  特性: 依據(jù)珀爾帖效應制作的溫差電致冷組件重量輕,體積小并具有相對高的致冷量,它特別適用于有限空間的致冷,由于致冷組件是一種固態(tài)熱泵,因而它無需維護,無噪音 ,能在任何位置工作,抗沖擊和抗振動能力強。另外,

60、改變組件工作電流極性時,它又可以致熱,改變電流強度可調整致冷功率。 </p><p>  產(chǎn)品型號 TEC1-12706</p><p>  外形尺寸 40*40*3.8 </p><p>  元件對數(shù) 127</p><p>  引線標準 20AWG UL1569 105℃標準鍍錫導線,PVC絕緣皮,引線長350±5

61、mm,線端部剝皮7±1mm 引線焊在熱面一端。</p><p>  阻值 1.95~2.15Ω(環(huán)境溫度23±1℃,1kHZ Ac測試)</p><p>  最大溫差△Tmax(Qc=0) 65~69℃</p><p>  工作電流Imax 12VDC時4.6A,15.4VDC時6.3A</p>&l

62、t;p>  最大電壓Vmax 15.4VDC</p><p>  最大致冷功率Qcmax 56W </p><p>  承受裝配壓力 98N/cm2</p><p>  工作環(huán)境溫度范圍 -55℃~80℃</p><p>  3.5.2濕度控制裝置</p><p>

63、  由于室內的墻壁一般能有效的吸收空氣中的水蒸氣,從而達到降低濕度的效果,因此在濕度控制方面,主要考慮對空氣的霧化(加濕),選用超聲霧化頭</p><p>  實物如圖3.11所示:</p><p><b>  圖3.11</b></p><p>  與單片機連接如圖3.12所示:</p><p><b>  

64、圖3.12</b></p><p>  超聲霧化頭主要性能參數(shù):</p><p>  工作電壓: 24(V)功率:19(W)(±1W)霧化量:>400cc/har匹配電源 :24(V) DC (直流變壓器)工作頻率: 1700±50(KHZ)換能片直徑 : Φ20mm有效水位 :20mm~75mm工作溫度 :5~45℃彩燈:無燈 水位感

65、應開關:門字型 高H12mm霧化頭直徑:Φ45mm高:H35mm線材規(guī)格:黑色 3.8mmPVC線,電源線長L1400±20mm插頭型號:Φ 5.5×2.1mm母插</p><p>  3.6 模擬箱的設計與組建</p><p>  由于材料和時間關系,無法做出能完全模擬智能家居的模擬箱,暫且以紙盒子代替,另外電熱絲,制冷片,傳感器的安放也要考慮到冷熱空氣的升

66、降等因素,還有制冷片的熱面的散熱問題等都要進行綜合的考慮來制作模擬箱,效果如圖3.13和圖3.14。</p><p><b>  圖3.13</b></p><p><b>  圖3.14</b></p><p><b>  4 系統(tǒng)的軟件設計</b></p><p><

67、b>  4.1軟件簡介</b></p><p>  4.1.1 Keil概述</p><p><b>  圖4.1</b></p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng)(如圖4.1),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易

68、學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。</p><p> 

69、 4.1.2 Keil開發(fā)系統(tǒng)整體結構</p><p>  C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L

70、51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。</p><p>  4.2常用的調試方法</p><p><b>  4.2.1單步調試</b></p><p>

71、  利用Debug工具條中的圖標,可以實現(xiàn)代碼單步運行。</p><p> ?、賁tep Into:單擊Debug工具條中的“Single Step”按鈕,或選擇“Debug→Step Into”。如果下一步遇到函數(shù)調用,Step Into會執(zhí)行到函數(shù)內部的起始位置停下來。如果用戶選擇的是C源程序模式,該命令執(zhí)行一條C指令;否則,該命令執(zhí)行一條匯編指令。</p><p>  ②Step O

72、ver:單擊Debug工具條中的“Step Over”按鈕,或選擇“Debug→Step Over” 。如果遇到函數(shù)調用,Step Over會執(zhí)行到函數(shù)結束,然后停止運行。除非在函數(shù)中間遇到斷點,此時執(zhí)行到斷點位置停止運行。Step Over命令也可以用來調試非函數(shù)調用的執(zhí)行語句。在這種情況下,調試器每執(zhí)行一條語句就停下來。用戶可查看完整的C源程序文件,或同時顯示匯編文件。如果用戶選擇的是C源程序模式,該命令執(zhí)行一條C指令;否則,該命令

73、執(zhí)行一條匯編指令。</p><p> ?、跾tep Out:單擊Debug工具條中的“Step Out”按鈕,或選擇“Debug→Step Out” 。如果當前正運行在子程序中,Step Out會返回到調用函數(shù)的出口位置停下來。如果用戶選擇的是C源程序模式,調用函數(shù)由標準運行C堆棧中的本地幀指針決定;否則,返回調用函數(shù)的指針地址被認為是棧頂?shù)闹?。如果用戶的匯編子程序使用棧來存放其他信息,那么Step Out命令不

74、能正確執(zhí)行。在C6000的處理器上,如果符號信息不可用,則Step Out命令無效。</p><p>  用戶可以通過Multiple Operation對話框來選擇多次單步操作的類型和次數(shù),在CCS中進行程序調試。具體的設置步驟如下。</p><p> ?、龠x擇“Debug→Multiple Operations”。</p><p> ?、陲@示Multiple O

75、perations的對話框。 </p><p> ?、墼贛ultiple Operation對話框的下拉列表中選擇單步運行命令。</p><p>  ④在技術欄中,指定重復執(zhí)行該單步命令的次數(shù)。</p><p> ?、輪螕簟癘K”按鈕。</p><p><b>  4.2.2斷點調試</b></p><

76、;p><b>  圖4.2</b></p><p>  設置斷點(如圖4.2)是調試程序的必要手段。斷點用于停止程序的運行,當程序停止時,用戶可以檢查程序的狀態(tài)、檢查和修改變量值、檢查堆棧等。用戶可以創(chuàng)建和管理一個或多個斷點,斷點可以設在源代碼窗口的某一行,或者設在反匯編窗口的某一條指令處。斷點設置好后可以將它使能或者禁止。斷點分為軟件中斷與硬件中斷。軟件中斷的執(zhí)行通過改變操作碼,而硬

77、件中斷是硬件發(fā)起的。軟件中斷的設置數(shù)量上沒有限制,單硬件中斷的數(shù)量取決于可用的硬件資源。</p><p> ?、偬砑雍蛣h除斷點:在源程序的編輯窗口或者反匯編窗口中,將光標放在預設值斷點的代碼行,單擊右鍵在彈出的菜單中選擇“Toggle Breakpoint”。此時,在該語句的左邊會出現(xiàn)一個紅色的圓點。將光標放在斷點所在行,并再次單擊斷點開關按鈕即可取消該處的斷點。也可以通過選擇“Debug→Breakpoints

78、”,在彈出的斷點管理器中添加和刪除斷點。</p><p> ?、跀帱c調試:斷點設置成功以后,單擊工具欄“Run”按鈕,或者單擊“Debug→Run”</p><p>  程序就可以運行到斷點處,PC指針指到斷點位置,與斷點指針將重疊顯示。斷點設置的目的是查看此時DSP內部的各種寄存器以及存儲器中的值是否正確,一次判斷程序是否運行正常。</p><p> ?、蹟帱c管理

79、器(Breakpoint Management):新的IDE版本和以前相比,建立和配置斷點的界面有了很大的改變。以往,要配置一個斷點,需要打開一個單獨的對話框,然后完成一系列的步驟。新的斷點管理器界面將該單獨窗口里的所有步驟全部留給調試過程。 </p><p>  4.3系統(tǒng)軟件流程圖</p><p&

80、gt;<b>  如圖4.3所示</b></p><p><b>  圖4.3</b></p><p><b>  4.4初始化模塊</b></p><p>  初始化模塊包括單片機的初始化和1602液晶的初始化,以及各個端口的定義等,由于8051單片機的特殊性,因此需要關閉看門狗以及配置交叉開關。&

81、lt;/p><p>  void Init_Device(void)//設置端口,關看門狗</p><p>  { WDTCN=0xde;</p><p>  WDTCN=0xad;</p><p>  P3MDOUT = 0xff;</p><p>  P2MDOUT = 0x7f;</p>&

82、lt;p><b>  DHT=1;</b></p><p>  XBR2 = 0x40;</p><p><b>  }</b></p><p>  4.5溫濕度檢測模塊</p><p><b>  void RH()</b></p><p&

83、gt;<b>  {</b></p><p>  unsigned char count_us=0,Tex;</p><p>  P3MDOUT|=0x01;</p><p><b>  DHT=0;</b></p><p>  delay_us(200);</p><p>

84、  delay_us(200);</p><p>  delay_us(200);</p><p><b>  DHT=1;</b></p><p>  P3MDOUT&=0xfe;</p><p>  delay_us(45);</p><p><b>  if(!DHT)&l

85、t;/b></p><p><b>  {</b></p><p>  while(!DHT)//等待低電平,延時</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b> 

86、 _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  count_us++;</p><p>  if(count_us>=60)</p><p><

87、b>  break;</b></p><p><b>  }</b></p><p>  count_us=0;</p><p>  while(DHT)</p><p><b>  {</b></p><p><b>  _nop_();<

88、/b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  count_us++;</p><p>  if(coun

89、t_us>=60)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  RH_H=read_RH();</p><p>  RH_L=read_RH();</p><p>  Temp_H=read_RH();&

90、lt;/p><p>  Temp_L=read_RH();</p><p>  Tex=read_RH();</p><p>  P3MDOUT|=0x01;</p><p><b>  DHT=1;</b></p><p>  count_us=RH_H+RH_L+Temp_H+Temp_L;<

91、;/p><p>  if(Tex==count_us)</p><p><b>  {</b></p><p>  RH_dat=RH_H;</p><p>  RH_dat<<=8;</p><p>  RH_dat|=RH_L;</p><p>  Temp_d

92、at=Temp_H;</p><p>  Temp_dat<<=8;</p><p>  Temp_dat|=Temp_L;</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b

93、></p><p><b>  4.6液晶顯示模塊</b></p><p>  液晶顯示模塊包括兩部分的顯示,即當前溫濕度的顯示及刷新,設置界面的顯示。</p><p>  效果上:temp:和humi:后面顯示當前的溫濕度,同行的最后通過max和min來顯示當前溫度設定的上下限。</p><p>  當前溫濕度部

94、分顯示:</p><p>  void display(unsigned char x,unsigned char y,unsigned int dat)</p><p><b>  {</b></p><p>  if(dat<1000)</p><p><b>  {</b></p&

95、gt;<p>  if(dat<100)</p><p><b>  {</b></p><p>  write_char(x+0,y,' ');</p><p>  write_char(x+1,y,' ');</p><p>  write_char(x+2,y,d

96、at/10%10+'0');</p><p>  write_char(x+4,y,dat%10+'0');</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p

97、><p>  write_char(x+0,y,' ');</p><p>  write_char(x+1,y,dat/100%10+'0');</p><p>  write_char(x+2,y,dat/10%10+'0');</p><p>  write_char(x+4,y,dat%10

98、+'0');</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  write_ch

99、ar(x+0,y,dat/1000%10+'0');</p><p>  write_char(x+1,y,dat/100%10+'0');</p><p>  write_char(x+2,y,dat/10%10+'0');</p><p>  write_char(x+4,y,dat%10+'0')

100、;</p><p><b>  }</b></p><p>  write_char(x+3,y,'.');</p><p><b>  }</b></p><p><b>  設置部分顯示:</b></p><p>  void dis

101、play_set()</p><p><b>  {</b></p><p>  switch(set_th)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  write_string(10

102、,2,"max");</p><p>  display_8(13,2,max_rh); </p><p>  write_string(10,1,"max");</p><p>  if((set_flag)&&(count_i<10))</p><p><b>  {

103、</b></p><p>  display_clear(14+(unsigned char)set_bit,1);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

104、<p>  display_8(13,1,max_temp);</p><p><b>  }break;</b></p><p><b>  case 1:</b></p><p>  write_string(10,2,"max");</p><p>  displ

105、ay_8(13,2,max_rh);</p><p>  write_string(10,1,"min");</p><p>  if((set_flag)&&(count_i<10))</p><p><b>  {</b></p><p>  display_clear(14

106、+(unsigned char)set_bit,1);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  display_8(13,1,min_temp);</p>&

107、lt;p><b>  }break;</b></p><p><b>  case 2:</b></p><p>  write_string(10,1,"max");</p><p>  display_8(13,1,max_temp);</p><p>  write_

108、string(10,2,"max");</p><p>  if((set_flag)&&(count_i<10))</p><p><b>  {</b></p><p>  display_clear(14+(unsigned char)set_bit,2);</p><p>

109、;<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  display_8(13,2,max_rh);</p><p><b>  }break;</b></p>&

110、lt;p><b>  case 3:</b></p><p>  write_string(10,1,"max");</p><p>  display_8(13,1,max_temp);</p><p>  write_string(10,2,"min");</p><p>

111、;  if((set_flag)&&(count_i<10))</p><p><b>  {</b></p><p>  display_clear(14+(unsigned char)set_bit,2);</p><p><b>  }</b></p><p><b

112、>  else</b></p><p><b>  {</b></p><p>  display_8(13,2,min_rh);</p><p><b>  }break;</b></p><p>  default :break; </p><p>

113、;<b>  }</b></p><p><b>  }</b></p><p><b>  4.7鍵盤輸入模塊</b></p><p>  本次使用的4*4矩陣鍵盤,由0~9,#,*,A,B,C,D組成,因此做以下設定:</p><p><b>  A:設定溫度上限

114、</b></p><p><b>  B:設定溫度下限</b></p><p><b>  C:設定濕度上限</b></p><p><b>  D:設定濕度下限</b></p><p><b>  #:開始設定并確定</b></p>

115、;<p>  *:切換十位和個位的數(shù)字</p><p>  void read_key()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  P0MDOUT=0x0f;</p><p><b>  P0=0xf

116、0;</b></p><p>  if(P0!=0xf0)</p><p><b>  {</b></p><p>  if(!key_flag)</p><p><b>  {</b></p><p>  switch(P0)</p><p&

117、gt;<b>  {</b></p><p>  case 0xe0:</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  P0=scan[i];</p><p>  delay_us(10);</p&

118、gt;<p>  if(P0==scan[i])</p><p>  read_scan=i;</p><p><b>  }break;</b></p><p>  case 0xd0:</p><p>  for(i=0;i<4;i++)</p><p><b>

119、  {</b></p><p>  P0=scan[i];</p><p>  delay_us(10);</p><p>  if(P0==scan[i])</p><p>  read_scan=i+4;</p><p><b>  }break;</b></p>&

120、lt;p>  case 0xb0:</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  P0=scan[i];</p><p>  delay_us(10);</p><p>  if(P0==scan[i])</p&

121、gt;<p>  read_scan=i+8;</p><p><b>  }break;</b></p><p>  case 0x70:</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  

122、P0=scan[i];</p><p>  delay_us(10);</p><p>  if(P0==scan[i])</p><p>  read_scan=i+12;</p><p><b>  }break;</b></p><p>  default :break;</p>

123、<p><b>  }</b></p><p>  switch(read_scan)</p><p><b>  {</b></p><p>  case 0:set_th=3;read_scan=10;break;</p><p>  case 1:set_flag^=1;read

124、_scan=10;break;</p><p>  case 2:read_scan=0;break;</p><p>  case 3:set_bit^=1;read_scan=10;break;</p><p>  case 4:set_th=2;read_scan=10;break;</p><p>  case 5:read_scan

125、=9;break;</p><p>  case 6:read_scan=8;break;</p><p>  case 7:read_scan=7;break;</p><p>  case 8:set_th=1;read_scan=10;break;</p><p>  case 9:read_scan=6;break;</p>

126、;<p>  case 10:read_scan=5;break;</p><p>  case 11:read_scan=4;break;</p><p>  case 12:set_th=0;read_scan=10;break;</p><p>  case 13:read_scan=3;break;</p><p>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論