基于AT89S52單片機溫度控制系統(tǒng)畢業(yè)設計.doc_第1頁
基于AT89S52單片機溫度控制系統(tǒng)畢業(yè)設計.doc_第2頁
基于AT89S52單片機溫度控制系統(tǒng)畢業(yè)設計.doc_第3頁
基于AT89S52單片機溫度控制系統(tǒng)畢業(yè)設計.doc_第4頁
基于AT89S52單片機溫度控制系統(tǒng)畢業(yè)設計.doc_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設計畢業(yè)設計 題 目: 大棚溫度控制系統(tǒng) 系 別: 計算機科學系 班 級: 計 應 091 姓 名: XXXX 學 號: 000000 指導老師: XXX 二一一年十一月十三日 I 目目 錄錄 第第 1 1 章章 緒緒 論論.1 1.1 系統(tǒng)的概述.1 1.2 系統(tǒng)的要求.1 1.3 系統(tǒng)的主要模塊.1 1.3.1 本系統(tǒng)的主要組成部分.1 1.3.2 各部分的功能.2 1.3.3 工作原理.2 第第 2 2 章章 設計的理論基礎設計的理論基礎.3 2.1 AT89C52 的工作原理 .3 2.1.1 CPU 的結構 .3 2.1.2 CPU 的結構 I/O 口結構 .3 2.1.3 程序

2、存儲器.3 2.1.4 定時器.4 2.1.5 中斷系統(tǒng).4 2.2 單總線數字溫度傳感器 DS18B20 檢測電路.5 2.2.1 DS18B20 簡單介紹 .5 2.2.2 DS18B20 的性能特點.5 2.2.3 DS18B20 的測溫原理 .6 2.3 LCD1602 液晶顯示器 .6 2.3.1 LCD1602 簡介 .6 2.3.2 1602LCD 的指令說明及時序 .7 2.4 直流馬達.8 2.4.1 馬達工作的原理.8 2.4.2 馬達的基本構造.9 第第 3 3 章章 系統(tǒng)的硬系統(tǒng)的硬件件組組成成電路電路設設計計.10 II 3.1 系統(tǒng)總硬件設計.10 3.2 時鐘電路

3、.10 3.3 AT89C52 的復位電路 .11 3.4 單總線數字溫度傳感器 DS18B20 檢測電路.11 3.5 LCD1602 顯示模塊 .12 3.6 驅動電路.12 第第 4 4 章章 系統(tǒng)軟件的設計系統(tǒng)軟件的設計.14 4.1 主程序設計 .14 4.2 溫度檢測.14 4.2.1 讀取溫度設計 .14 4.2.2 溫度數據處理設計.16 4.3 液晶顯示器 LCM1602 .17 4.3.1 LCM1602 初始化 .17 4.4 馬達的控制 .21 第第 5 5 章章 系統(tǒng)調系統(tǒng)調試試.22 第第 6 6 章章 總結與展望總結與展望.23 5.1 總結.23 5.2 展望.

4、23 參考文獻參考文獻.24 致致 謝謝.25 附錄附錄 A A:程序:程序 .26 附錄附錄 B B:元件清單:元件清單 .42 附錄附錄 C C:實物照片:實物照片 .42 III 基于單片機 AT89C52 的大棚溫度控制系統(tǒng) 摘 要 蔬菜的生長與溫度息息相關,對于蔬菜大棚來說,最重要的一個管理因素是溫度控制。 溫度不合適,蔬菜則停止生長或者生長速度減慢,從而造成不可估量的損失。所以要將溫 度始終控制在適合蔬菜生長的范圍內。如果僅靠人工控制既耗人力,又容易造成誤差。為 此,在現代化的蔬菜大棚管理中通常有溫度自動控制系統(tǒng),以控制蔬菜大棚溫度,適應生 產需要。 單片機微型計算機是微型計算機的

5、一個重要分支,也是頗具生命力的機種。單片機微 型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。單片機具有體積小、集 成度高、性能穩(wěn)定、控制功能強、易擴展、低功耗、價格便宜等特點,所以單片機市場前 景廣闊。 本設計是通過單片機控制,來實現對蔬菜大棚溫度進行自動控制。系統(tǒng)以 AT89C52 單片 機為基礎,通過數字及模擬式對溫度進行采集并檢測,通過顯示屏顯示當前溫度。當采集到 的溫度高于系統(tǒng)設定值,馬達將帶動風扇的轉動,實現自動控制大棚里的溫度。 【關鍵詞】大棚溫度控制系統(tǒng) AT89C52 DS18B20 LCD1602 直流馬達 IV The Greenhouse Temperatur

6、e Control System Based on AT89C52 MCU Abstract The growth of vegetables and temperature are closely related, for vegetable shed, one of the most important management factor is the temperature control. Temperature not appropriate, then stop the vegetable growth or growth slowed, causing the immeasura

7、ble loss. So will always control temperature in vegetable growth for the range. If only on artificial control both human consumption, and easy to cause the error. Therefore, in modern management of vegetable shed, usually with temperature automatic control system, to control the vegetables canopy te

8、mperature, to adapt to the requirements of production. Single chip microcomputers are microcomputer as an important branch, is also a vitality of the model. Single chip microcomputer hereinafter referred to as the single chip microcomputer, is particularly applicable to control field, so it is also

9、called the micro controller. Single chip microcomputer with small size, high level of integration, stable performance, easy to control function expansion, low power consumption, price cheap and so on, so the single chip microcomputer wide prospect of market. This design is through the single-chip mi

10、crocomputer control, to realize the canopy temperature vegetables for automatic control. System based on single chip microcomputer AT89C52, through the digital and analog temperature in acquisition and detection, through the screen shows the current temperature. When the collected temperature higher

11、 than system setting, motors will drive the rotation of the fan, and realize the automatic control the temperature of the shelter. 【Key words】Temperature control of the greenhouses system AT89C52 DS18B20 LCD1602 DC motor 1 第第 1 1 章章 緒緒 論論 我國南方溫度嚴熱而漫長,只有大力推廣大棚蔬菜的種植來滿足人們日常生活對蔬菜 的需要。隨著人們生活水平的日益增長,對蔬菜的要

12、求也較高,對大棚蔬菜的溫度控制就 是一個重要因素。溫度過高,蔬菜就會停止生長或者糜爛。 本系統(tǒng)仿真就基于單片機 AT89C52 實現對大棚溫度的自動化控制(實物焊接時則采用 存儲器更強大的 AT89S52) 。用數字溫度計 DS18B20 采集,將采集到的溫度用顯示屏顯示, 再根據采集到的溫度作分析來控制馬達的轉或停,從而實現對大棚溫度的控制。 1.1 系統(tǒng)的概述 應用自動控制和電子計算機實現農業(yè)生產和管理的自動化,是農業(yè)現代化的重要標志 之一。近年來電子技術和信息技術的飛速發(fā)展,帶來了溫室控制與管理技術方面的一場革 命,隨著“設施農業(yè)” 、 “虛擬農業(yè)”等新名稱的出現。溫度計算機控制與管理系

13、統(tǒng)正在不 斷吸收自動控制和信息管理領域的理論和方法,結合溫室作物種植的特點,不斷創(chuàng)新,逐 步完善,從而使溫室種植業(yè)實現真正意義上的現代化,產業(yè)化。國內外度計算機控制技術 的發(fā)展善計算機的發(fā)展最早可以追溯到上個世紀的 40 年代,但將計算機用于環(huán)境控制則開 始于 20 世紀 60 年代。20 世紀 80 年代初誕生了第一批溫室控制計算機,此后溫度計算機 控制及管理技術便函先在發(fā)達國家得到廣泛應用,后來各發(fā)展中國家也都紛紛引進,開發(fā) 出適合自己的系統(tǒng)。這在給各國帶來了巨大的經濟效益的同時,也極大地推動了各國農業(yè) 的現代化進程。 本系統(tǒng)以 AT89C52 單片機為控制核心,主要是為了對蔬菜大棚內的溫

14、度的檢測與控制 而設計的。該測控儀具有檢測精度高、使用簡單、成本較低和工作穩(wěn)定可靠等特點,所以 具有一定的應用前景。 1.21.2 系統(tǒng)的要求系統(tǒng)的要求 本系統(tǒng)通過單片機 AT89C52 控制,用 DS18B20 數字溫度計采集溫度。通過 LCD1602 液晶顯示屏顯示當前溫度,當檢測到溫度高于系統(tǒng)設定溫度值,馬達將帶動風扇的轉動, 實現自動控制降低大棚里的溫度。本設計將實現大棚溫度的自動化控制。 用 protues7.7 仿真軟件繪制電路原理圖,再根據電路原理圖焊接電路板。 1.3 系統(tǒng)的主要模塊 1.3.1 本系統(tǒng)的主要組成部分 本系統(tǒng)為一個全自動溫度檢測與控制系統(tǒng),由以下幾個部分組成:A

15、T89C52單片機, 復位電路,溫度檢測電路,顯示電路,馬達。組成圖如圖1-1。 2 圖 1-1 溫度自動控制主要組成部分 由圖1-1所示,本系統(tǒng)的核心部分是AT89C52,此芯片是該電路的樞紐。由它先控制著 溫度的檢測,用檢測到的溫度實現馬達的自動控制,以及顯示。若檢測到的溫度高于設定 的值則驅動馬達轉動。 1.3.2 各部分的功能 AT89C52單片機:它是系統(tǒng)的中央處理器,擔負著系統(tǒng)的控制和運算。溫度檢測裝置: DS18B20數字溫度計對大棚內溫度進行采集,將溫度轉換成數字。顯示設備:主要是用于 顯示檢測到的大棚溫度。馬達:主要用于帶動風扇的轉動。按鍵電路:設置系統(tǒng)時間和參 考溫度值。

16、1.3.3 工作原理 首先對硬件系統(tǒng)端口定義,DS18B20 定義端口為 P1.7, P0 口控制液晶 LCM1602 的顯 示,定義端口 P3.7 為馬達控制端口。首先對溫度采集,將采集到的溫度轉換數字,采集到 的溫度由 LCM 液晶顯示屏顯示。再將采集到的溫度與系統(tǒng)設定溫度值進行比較,而控制 P3.7 的電平輸出。 溫度檢測 裝置 AT89C52顯示設備 馬達控制 復位電路 電源電路 3 第第 2 2 章章 設計的理論基礎設計的理論基礎 整個控制系統(tǒng)分為硬件電路設計和軟件程序設計兩部分。根據系統(tǒng)具體要求,可以對 每一個具體部分進行分析設計。但要實現對各部分的設計,需要充分了解各部分的理論基

17、 礎。本設計系統(tǒng)的基本組成單元包括:單片機控制單元,復位電路,按鍵電路,DS18B20 溫度檢測電路,LCD1602 顯示電路,直流馬達。本章將逐一進行介紹。 2.1 AT89C52 的工作原理 2.1.1 CPU 的結構 CPU 是單片機內部的核心部分,是單片機的指揮和執(zhí)行機構,它決定了單片機的主要 功能特性。從功能上看,CPU 包括兩個基本部分:運算器和控制器。下面說明控制器和運 算器1。 運算器包括算術邏輯運算部件 ALU、累加器 ACCC、B 寄存器、暫存寄存器 TMP1 和 TMP2、程序狀態(tài)寄存器 PSW、BCD 碼運算調整電路等。為了提高數據處理和位操作能力, 片內設有一些專用的

18、寄存器,而且還增強了為處理邏輯電路的功能。在進行位操作是,進 位位 CY 作為位操作累加器,整個位操作系統(tǒng)構成一臺布爾處理機。 2.1.2 CPU 的結構 I/O 口結構 AT89C52 單片機有 4 個 8 位并行 I/O 接口,記作 P0、P1、P2 和 P3,每個端口都是 8 位準雙向口,共占 32 根引腳。每一條 I/O 線都能獨立地用作輸入或輸出。每個端口都包括 一個鎖存器,一個輸出驅動器和輸入緩沖器,作輸出時數據可以鎖存,作輸入時數據可以 緩沖,但是這四個通道的功能完全不同。 在無片外擴展存儲器的系統(tǒng)中,這四個端口的每一位都可以作為準雙向 I/O 端口使用, 在具有片外擴展存儲器系

19、統(tǒng)中,P2 口送出高 8 位地址,P0 口為雙向總線,分時送出低 8 位地址和數據的輸入/輸出。 2.1.3 程序存儲器 程序存儲器用于存放編好的程序和表格常數,通常該區(qū)域具有不同的保護措施,以防 止該區(qū)域的內容被破壞。程序存儲器通過 16 位程序計數器尋址,尋址能力為 64K 字節(jié)。 這似的能在 6K 地址空間內任意尋址,但沒有指令使程序能控制從程序存儲器空間轉移到 數據存儲空間。對 AT89C52 芯片來說,片內有 4K 字節(jié) ROM/EPROM,片外可擴展 60K 字節(jié) EPROM,片內和片外程序存儲器統(tǒng)一編址。 在程序存儲器中,有 6 個地址單元被保留用于某些特定的地址。 如表 2.1

20、 所示: 4 表 2.1 AT89C52 的復位、中斷入口地址 入口地址說明 0000H復位后,PC=0000H 0003H外部中斷入口 000BH定時器 T0 溢出中斷入口 0013H外部中斷入口 001BH定時器 T1 溢出中斷口 0023H串行口中斷入口 數據存儲器用于存放運算的中間結果、數據暫存和緩沖以及標志位等。AT89C51 數據 存儲器空間也分為內片和外片兩大部分,即片內數據存儲器 RAM 和片外數據存儲器 RAM。片內數據存儲器最大可以尋址 256 個單元,片外最大可擴展 64K 字節(jié) RAM,并且 片內使用的是 MOV 指令,片外 64K ROM 空間專門為 MOVX 指令所

21、用。 2.1.4 定時器 AT89C51 單片機的內部有兩個 16 位可變成定時器 0 和定時器 1,它們都有定時或是事 件計數的功能,可用于定時控制、延時、對外部事件計數和檢測等場合。它們具有計數和 定時兩種工作方式以及四種工作模式。兩個特殊功能寄存器用于確定定時器/計數器的功能 和操作方式。定時器 T0 的核心是一個加 1 計數器,它由 8 位寄存器 TH0 和 TH1 組成,可 被變成為 13 位、16 位、兩個分開的 8 位等不同的結構。計數器的輸入脈沖源可以是外部 脈沖源或系統(tǒng)時鐘震蕩器,計數器對著兩個輸入脈沖之一進行遞增計數。 定時器 T0 具有方式 0、方式 1、方式 2 和方式

22、 3 四種工作方式。T1 具有方式 0、方式 1 和方式 2 三種工作方式。不管是定時工作方式還是計數方式,定時器 T0 和 T1 在對內部 時鐘或對外部時間計數時,不占用 CPU 時間,除非定時器/計數器溢出,才可能中斷 CPU 的當前操作。由此可見,定時器是單片機中效率最高而且工作靈活的部件。 2.1.5 中斷系統(tǒng) 中斷是指中央 CPU 正在處理某事情的時候,外部發(fā)生了某一事件,請求 COU 迅速去 處理,于是,CPU 暫時中斷當前的工作,轉入處理所發(fā)生的事件;中斷服務處理完成以后, 再回到原來被中斷的工作,這樣的過程稱為中斷2。 AT89C52 單片機有五個中斷請求源。其中,兩個外部中斷

23、源;兩個片內定時器/計數器 的溢出中斷源 TE0 和 TF1;一個片內串行口接受或發(fā)送中斷源 RI 或 TI。這些中斷請求分 別由單片機的特殊功能寄存器 TCON 和 SCON 的相應位鎖存。當幾個中斷源同時向 CPU 請求中斷,要求 CPU 提供服務的時候,就存在 CPU 優(yōu)先響應哪一個中斷請求,于是一些 微處理器和單片機規(guī)定了每個中斷源的優(yōu)先級別。 5 2.2 單總線數字溫度傳感器 DS18B20 檢測電路 由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉換成對應的溫度,需要比 較多的外部元件支持,且硬件電路復雜,制作成本相對較高。這里采用DALLAS公司的數 字溫度傳感器DS18B2

24、0作為測溫元件。 2.2.1 DS18B20 簡單介紹 DALLAS 最新單線數字溫度傳感器DS18B20是一種新型的“一線器件” ,其體積更 小、更適用于多種場合、且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳 感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為- 55+125 攝氏度,可編程為9位12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率 設定參數以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號 擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方 式產生;多個DS18B2

25、0可以并聯到3 根或2 根線上,CPU只需一根端口線就能與諸多 DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組 成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方 便3。 2.2.2 DS18B20 的性能特點 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理 器與DS18B20的雙向通訊。DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的 三線上,實現組網多點測溫。DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉 換電路集成在形如一只三極管的集成電路內。適應電壓范圍更

26、寬,電壓范圍:3.05.5V, 在寄生電源方式下可由數據線供電。溫范圍55125,在-10+85時精度為 0.5。零待機功耗??删幊痰姆直媛蕿?12位,對應的可分辨溫度分別為0.5、0.25、 0.125和0.0625,可實現高精度測溫。在9位分辨率時最多在93.75ms內把溫度轉換為數 字,12位分辨率時最多在750ms內把溫度值轉換為數字,速度更快。用戶可定義報警設置。 報警搜索命令識別并標志超過程序限定溫度的器件。測量結果直接輸出數字溫度信號,以 一線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。負電壓 特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工

27、作。以上特點使 DS18B20非常適用與多點、遠距離溫度檢測系統(tǒng)。 DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報 警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 4 所示,DQ 為數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供 電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。 6 2.2.3 DS18B20 的測溫原理 DS18B20的測溫原理,低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻 率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其

28、震蕩頻率明顯改變,所產生 的信號作為減法計數器2的脈沖輸入,還隱含著計數門,當計數門打開時,DS18B20就對低 溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量.計數門的開啟時間由高溫 度系數振蕩器來決定,每次測量前,首先將-55 所對應的基數分別置入減法計數器1和溫 度寄存器中,減法計數器1和溫度寄存器被預置在-55 所對應的一個基數值4。 減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置 值減到0時溫度寄存器的值將加1,減法計數器 1的預置將重新被裝入,減法計數器1重新開 始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到減法計數器2計數到0時,停

29、止 溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修 正測溫過程中的非線性其輸出用,于修正減法計數器的預置值,只要計數門仍未關閉就重 復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。 另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時 序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20 發(fā)ROM功能命令發(fā)存儲器操作命令處理數據5。 2.3 LCD1602 液晶顯示器 2.3.1 LCD1602 簡介 字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的

30、2條線是背光電源線 VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,引腳定義如表2.2所示: 表 2.2 引腳接口說明表 編號符號引腳說明編號符號引腳說明 1VSS電源地9D2數據 2VDD電源正極10D3數據 3VL液晶顯示偏壓11D4數據 4RS數據/命令選擇12D5數據 5R/W讀/寫選擇13D6數據 6E使能信號14D7數據 7D0數據15BLA背光源正極 8D1數據16BLK背光源負極 7 第 1 腳:VSS 為地電源。 第 2 腳:VDD 接 5V 正電源。 第 3 腳:VL 為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高, 對比度過高

31、時會產生“鬼影” ,使用時可以通過一個 10K 的電位器調整對比度。 第 4 腳:RS 為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。 第 5 腳:R/W 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當 RS 和 R/W 共同為低電平時可以寫入指令或者顯示地址,當 RS 為低電平 R/W 為高電平時可 以讀忙信號,當 RS 為高電平 R/W 為低電平時可以寫入數據。 第 6 腳:E 端為使能端,當 E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 第 714 腳:D0D7 為 8 位雙向數據線。 第 15 腳:背光源正極。 第 16 腳:背光源負極。 2.3.2 16

32、02LCD 的指令說明及時序 1602 液晶模塊內部的控制器共有 11 條控制指令6,如表 2.3 所示: 表 2.3 控制命令表 序號指令RSR/WD7D6D5D4D3D2D1D0 1清顯示0000000001 2光標返回000000001* 3置輸入模式00000001I/DS 4顯示開/關控制0000001DCB 5光標或字符移位000001S/CR/L* 6置功能00001DLNF* 7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址 8置數據存貯器地址001顯示數據存貯器地址 9讀忙標志或地址01BF 計數器地址 10寫數到 CGRAMDDRAM)10要寫的數據內容 11CGRAM 或

33、 DDRAM 讀數11讀出的數據內容 8 1602 液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。1 為高電 平、0 為低電平。 指令 1:清顯示,指令碼 01H,光標復位到地址 00H 位置。 指令 2:光標復位,光標返回到地址 00H。 指令 3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所 有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令 4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關 顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光 標是否閃爍,高電平閃爍,低電平不閃爍

34、。 指令 5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。 指令 6:功能設置命令 DL:高電平時為 4 位總線,低電平時為 8 位總線 N:低電平時為 單行顯示,高電平時雙行顯示 F: 低電平時顯示 5x7 的點陣字符,高電平時顯示 5x10 的點陣字符。 指令 7:字符發(fā)生器 RAM 地址設置。 指令 8:DDRAM 地址設置。 指令 9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或 者數據,如果為低電平表示不忙。 指令 10:寫數據。 指令 11:讀數據。 LCD1602 讀寫時序如表 2.4 所示: 表 2.4 基本操作時序表 讀狀態(tài)

35、輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字 寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖 輸出無 讀數據輸入RS=H,R/W=H,E=H輸出D0D7=數據 寫數據輸入RS=H,R/W=L,D0D7=數據,E=高脈沖輸出無 2.42.4 直流馬達直流馬達 電動馬達,又稱為馬達或電動機,是一種將電能轉化成機械能,并可再使用機械能產 生動能,用來驅動其他裝置的電氣設備。 電動機種類非常繁多,但可大致分為交流電動機 及直流電動機以用于不同的場合。 2.4.12.4.1 馬達工作的原理 馬達的旋轉原理的依據為佛來明左手定則,當導線置放于磁場內,若導線通上電流, 則導線會切割磁場

36、線使導線產生移動。 電流進入線圈產生磁場,利用電流的磁效應,使電 9 磁鐵在固定的磁鐵內連續(xù)轉動的裝置,可以將電能轉換成力學能。 與永久磁鐵或由另一組 線圈所產生的磁場互相作用產生動力 直流馬達的原理是定子不動,轉子依相互作用所產生 作用力的方向運動7。 電樞:可以繞軸心轉動的軟鐵芯纏繞多圈線圈。 場磁鐵:產生磁場的強力永久磁鐵或電 磁鐵。 集電環(huán):線圈約兩端接至兩片半圓形的集電環(huán),隨線圈轉動,可供改變電流方向的 變向器。每轉動半圈,線圈上的電流方向就改變一次。 電刷:通常使用碳制成,集電環(huán)接 觸固定位置的電刷,用以接至電源。 2.4.22.4.2 馬達的基本構造 電動機的種類很多,以基本結構

37、來說,其組成主要由定子和轉子所構成。 定子在空間 中靜止不動,轉子則可繞軸轉動,由軸承支撐。 定子與轉子之間會有一定空氣間隙,以確 保轉子能自由轉動。 定子與轉子繞上線圈,通上電流產生磁場,就成為電磁鐵,定子和轉 子其中之一亦可為永久磁鐵8。 10 第第 3 3 章章 系統(tǒng)的硬件組成電路設計系統(tǒng)的硬件組成電路設計 系統(tǒng)的硬件組成部分包括:主控制器AT89C52單片機、溫度傳感器DS18B20、顯示電 路LCD1602、馬達、報警裝置等構成。AT89C52連接各模塊的主控制端口,初步選定將要 運用到的電子元器件,再用Protues繪制原理圖,再根據原理圖焊接電路板。 3.1 系統(tǒng)總硬件設計 首先

38、對硬件系統(tǒng) 18B20 定義端口為 P1.3,P2.4,P2.5,P2.6 和 P0 口控制液晶 LCM1602 的 顯示,定義端口 P1.5 為馬達控制端口,P1.7 為喇叭控制端口。首先對溫度采集,將采集到 的溫度轉換數字,采集到的溫度由 LCM 液晶顯示屏顯示。再將采集到的溫度所屬軟件設 置的哪個范圍,而控制 P1.5 的電平輸出。電路原理圖如 3-1 所示: 圖 3-1 電路原理圖 電路原理圖用 Protues7.7 電路仿真軟件繪制而成。用 Protues7.7 電路仿真軟件軟件繪 制電路原理圖方便,快捷。Protues7.7 電路仿真軟件有豐富的元件庫,智能的器件搜索,智 能化的連

39、線,可輸出高質量的圖紙。電路原理圖清晰明了9。 3.2 時鐘電路 AT89C52 芯片內部有一個高增益反向放大器,用于構成震蕩器。反向放大器的輸入端 為 XTAL1,輸出端為 XTAL2。在 TXAL1 和 XTAL2 兩端跨接由石英晶體及兩個電容構成 的自激震蕩器10,如圖 3-2 所示。電容器 C1 和 C2 取 22pF,選用不同的電容量對震蕩頻 11 率有微調作用。但石英晶體本身的標定頻率才是單片機震蕩頻率的決定因素。 圖 3-2 時鐘電路 時鐘電路中,兩個電容都選擇 22pF 的電容,電容各一端接與晶振相連,各一端接地。 選擇的晶振是頻率為 12MHZ。此模塊就是產生像時鐘一樣準確的

40、振蕩電路。 3.3 AT89C52 的復位電路 AT89C52 單片機通常采用上電自動復位和開關手動復位兩種方式。本系統(tǒng)采用上電復 位電路,如圖 3-3 所示,所謂上電復位,是指單片機只要一上電,便自動地進入復位狀態(tài)。 在通電瞬間,電容 C 通過電阻 R 充電,RST 端出現正脈沖,用以復位10。 圖 3-3 復位電路 復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位 信號。為可靠起見,電源穩(wěn)定后還要經一定的延時才撤銷復位信號,以防電源開關或電源 插頭分-合過程中引起的抖動而影響復位。RC 復位電路可以實現上述基本功能,但解決不 了電源毛刺和電源緩慢下降等問題,而其調

41、整 RC 常數改變延時會令驅動能力變差。 3.4 單總線數字溫度傳感器 DS18B20 檢測電路 DQ 為數據輸入/輸出引腳,連接 P1.7。開漏單總線接口引腳。當被用著在寄生電源下, 也可以向器件提供電源,GND 為地信號;VCC 為電源信號。圖 3-4 為 DS18B20 檢測電路。 12 圖 3-4 DS18B20 檢測電路 3.5 LCD1602 顯示模塊 用 AT89C52 的 P0 口作為數據線,用 P2.1、P2.2、P2.3 分別作為 LCD 的 RS 、R/W、E。其中 E 是下降沿觸發(fā)的片選信號,連接 P2.3,R/W 是讀寫信號, 連接 P2.2,RS 是寄存器選擇信號,

42、連接 P2.1。圖 3-5 為 LCD1602 的硬件連接。 圖 3-5 LCD1602 的硬件連接 VEE 用連接一阻值為 10K 的電阻,主要用于調節(jié)對比度的調整。接高電源時對比度 最低,接低電源時,對比度最高。對比度過高時,會產生“鬼影” 。因此連接一 10K 的電 阻用以調整。當 P0 口作為 I/O 用時需要上拉電阻,如圖 3.5 接一排阻,用于上拉11。 3.6 驅動電路 系統(tǒng)使用的是直流馬達,包含周圍磁場、電刷、整流子等元件,電刷和整 流子將外部所供應的直流電源,持續(xù)地供應給轉子的線圈,並適時地改變電流 的方向,使轉子能以同一方向持續(xù)旋轉。直流馬達的優(yōu)點有速度調整容易,啟 動轉矩

43、較大等,但是電刷與整流子保養(yǎng)維修不易。直流馬達廣泛的用在消費電 13 子產品及玩具,如電動刮胡刀、錄音機、CD 唱機等,而大輸出功率的直流電 動機則是用在電車,快速電梯,工作母機等。圖 3-6 為硬件連接圖。 圖 3-6 驅動電路 14 第第 4 4 章章 系統(tǒng)軟件的設計系統(tǒng)軟件的設計 一個應用系統(tǒng)要完成各項功能,首先必須有較完善的硬件作保證。同時還必須得到相 應設計合理的軟件的支持,尤其是微機應用高速發(fā)展的今天,許多由硬件完成的工作,都 可通過軟件編程而代替。甚至有些必須采用很復雜的硬件電路才能完成的工作,用軟件編 和有時會變得很簡單。因此充分利用其內部豐富的硬件資源和軟件資源。 程序設計語

44、言有三種:機器語言、匯編語言、高級語言。本系統(tǒng)運用的是高級語言所 編寫,也就是 C 語言。 4.1 主程序設計 從軟件的功能不同可分為四大類:一是檢測軟件,它是用來檢測溫度。二是顯示部分, 用來顯示所檢測到的溫度。三是控制部分,用來控制馬達。每一個執(zhí)行軟件也就是一個小 的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義。圖 4- 1 為軟件設計流程圖。 圖 4-1 軟件設計流程圖 4.2 溫度檢測 4.2.1 讀取溫度設計 DSl8B20 可以從單總線獲取電源,當信號線為高電平時,將能量貯存在內部電容器中; 當單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由?/p>

45、寄生電源為止。 此外,還可外接 5 V 電源,給 DS18B20 供電12。圖 4-2 大于設定值? 開始 初始化 DS18B20 溫度檢測 LCD1602 顯示 電機帶動風扇轉動 15 DS18B20 的初始化 跳過讀序列號的操作 讀取溫度寄存器 啟動溫度轉換 跳過讀序列號的操作 開 始 DS18B20 的初始化 RET LOW-低八位 HIGH-高八位 圖 4-2 18B20 讀取溫度流程圖 讀取溫度子程序的主要功能是讀出 RAM 中的 9 個字節(jié),在讀出時需進行 CRC 校驗, 校驗有錯時不進行溫度數據的改寫。DS18B20 的各個命令對時序的要求特別嚴格,所以必 須按照所要求的時序才能

46、達到預期的目的,同時,要注意讀進來的是高低位在后,低位在 前,共 12 位數,小數 4 位,整數 7 位,還有一位符號位。 讀取溫度的主程序如下: void ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned char t=0; Init_DS18B20(); WriteOneChar(0 xCC); / 跳過讀序號列號的操作 WriteOneChar(0 x44); / 啟動溫度轉換 delay_18B20(100); / this message is very important Init_DS18B2

47、0(); WriteOneChar(0 xCC); /跳過讀序號列號的操作 WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀 9 個寄存器)前兩個就是溫 度 16 delay_18B20(100); a=ReadOneChar(); /讀取溫度值低位 b=ReadOneChar(); /讀取溫度值高位 temp1=b4; temp2=a temp=(b*256+a)4); /當前采集溫度值除 16 得實際溫度值 4.2.2 溫度數據處理設計 讀出溫度數據后,TempL 的低四位為溫度的小數部分,可以精確到 0.0625, TempL 的高四位和 TempH 的低四位為溫度的

48、整數部分,TempH 的高四位全部為 1 表示負 數,全為 0 表示正數。所以先將數據提取出來,分為三個部分:小數部分、整數部分和符 號部分。小數部分進行四舍五入處理:大于 0.5的話,向個位進 1;小于 0.5的時候, 舍去不要。當數據是個負數的時候,顯示之前要進行數據轉換,將其整數部分取反加一。 還因為 DS18B20 最低溫度只能為-55,所以可以將整數部分的最高位換成一個“-” ,表 示為負數。圖 4-3 為溫度數據處理流程圖。 開始 提取整數部分存入 HT 提取小數部分存入 TempL TempL 右移三位,將精度降低到 0.5 攝氏 度 TempH + 將小數部分整數化 提取符號部

49、分存 入 sign TempL 是否大于 5 temp=?0XF0 RET flag=1 TempH=TempH+1 YN N Y 圖 4-3 溫度數據處理流程 17 由于 DS18B20 轉換后的代碼并不是實際的溫度值,所以要進行計算轉換。溫度高字節(jié) 高 5 位是用來保存溫度的正負,高字節(jié)低 3 位和低字節(jié)來保存溫度值。其中低字節(jié)的低 4 位來保存溫度的小數位。由于本程序采用的是 0.0625 的精度,小數部分的值,可以用后四 位代表的實際數值乘以 0.0625,得到真正的數值,數值可能帶幾個小數位,所以采取小數 舍入,保留一位小數即可。也就說,本系統(tǒng)的溫度精確到了 0.1 度13。 溫度數

50、據處理主程序如下: str0=TempH/100; /十位溫度 str1=(TempH%100)/10; /十位溫度 str2=(TempH%100)%10; /個位溫度,帶小數點 str3=TempL; if(flag_get=1) /定時讀取當前溫度 temp=ReadTemperature(); if(temp/負號標志 temp=temp; / 取反加 1 temp +=1; else str0=0; TempH=temp4; TempL=temp TempL=TempL*6/10;/小數近似處理 flag_get=0; 4.3 液晶顯示器 LCM1602 4.3.1 LCM1602L

51、CM1602 初始化 LCM1602 顯示函數如下14 端口定義如下: #define DATAPORT P0 /定義 P0 口為 LCD 通訊端口 sbit LCM_RS=P20;/數據/命令端 sbit LCM_RW=P21;/讀/寫選擇端 18 sbit LCM_EN=P22; /*液晶顯示子函數 1 正常顯示*/ void displayfun1(void) WriteCommandLCM(0 x0c,1); /顯示屏打開,光標不顯示,不閃爍,檢測忙信 號 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneC

52、har(3,0,hour/10+0 x30); /液晶上顯示小時 DisplayOneChar(4,0,hour%10+0 x30); DisplayOneChar(6,0,minite/10+0 x30);/液晶上顯示分 DisplayOneChar(7,0,minite%10+0 x30); DisplayOneChar(9,0,seconde/10+0 x30); /液晶上顯示秒 DisplayOneChar(10,0,seconde%10+0 x30); DisplayOneChar(4,1,K/10+0 x30); /液晶上顯示設定的溫度 DisplayOneChar(5,1,K%1

53、0+0 x30); DisplayOneChar(11,1,temp1/10+0 x30); /液晶上顯示測得的溫度 DisplayOneChar(12,1,temp1%10+0 x30); DisplayOneChar(14,1,temp2/10+0 x30); if(ON_OFF=0) /若溫控標志為 0 DisplayOneChar(14,0,0 x4f); / 液晶上顯示不控溫的標志 DisplayOneChar(15,0,0 x46); else DisplayOneChar(14,0,0 x4f); / 液晶上顯示控溫的標志 DisplayOneChar(15,0,0 x4e);

54、if(outflag=1) 19 DisplayOneChar(0,0,0 x7c); else DisplayOneChar(0,0,0 xef); /*液晶顯示子函數 2*/ void displayfun2(void) WriteCommandLCM(0 x0c,1); /顯示屏打開,光標不顯示,不閃爍,檢測忙信 號 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneChar(6,0,minite/10+0 x30); DisplayOneChar(7,0,minite%10+0 x30); DisplayOn

55、eChar(9,0,seconde/10+0 x30); DisplayOneChar(10,0,seconde%10+0 x30); DisplayOneChar(4,1,K/10+0 x30); DisplayOneChar(5,1,K%10+0 x30); DisplayOneChar(11,1,temp1/10+0 x30); DisplayOneChar(12,1,temp1%10+0 x30); DisplayOneChar(14,1,temp2/10+0 x30); WriteCommandLCM(0 x0f,1); /顯示屏打開,光標顯示,閃爍,檢測忙信 號 DisplayOn

56、eChar(3,0,hour/10+0 x30); DisplayOneChar(4,0,hour%10+0 x30); /*液晶顯示子函數 3*/ void displayfun3(void) 20 WriteCommandLCM(0 x0c,1); /顯示屏打開,光標不顯示,不閃爍,檢測忙信 號 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneChar(3,0,hour/10+0 x30); DisplayOneChar(4,0,hour%10+0 x30); DisplayOneChar(9,0,second

57、e/10+0 x30); DisplayOneChar(10,0,seconde%10+0 x30); DisplayOneChar(4,1,K/10+0 x30); DisplayOneChar(5,1,K%10+0 x30); DisplayOneChar(11,1,temp1/10+0 x30); DisplayOneChar(12,1,temp1%10+0 x30); DisplayOneChar(14,1,temp2/10+0 x30); WriteCommandLCM(0 x0f,1); /顯示屏打開,光標顯示,閃爍,檢測忙信 號 DisplayOneChar(6,0,minite

58、/10+0 x30); DisplayOneChar(7,0,minite%10+0 x30); /*液晶顯示子函數 4 */ void displayfun4(void) WriteCommandLCM(0 x0c,1); /顯示屏打開,光標不顯示,不閃爍,檢測忙信號 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneChar(3,0,hour/10+0 x30); DisplayOneChar(4,0,hour%10+0 x30); DisplayOneChar(6,0,minite/10+0 x30); 21

59、DisplayOneChar(7,0,minite%10+0 x30); DisplayOneChar(9,0,seconde/10+0 x30); DisplayOneChar(10,0,seconde%10+0 x30); DisplayOneChar(11,1,temp1/10+0 x30); DisplayOneChar(12,1,temp1%10+0 x30); DisplayOneChar(14,1,temp2/10+0 x30); WriteCommandLCM(0 x0f,1); /顯示屏打開,光標顯示,閃爍,檢測忙信 號 DisplayOneChar(4,1,K/10+0 x

60、30); DisplayOneChar(5,1,K%10+0 x30); 4.4 馬達的控制 當被測溫度低于系統(tǒng)設定溫度值時,P3.7 角的輸出信號為 1,馬達不轉動。當被測 溫度高于系統(tǒng)設定溫度值時,P3.7 角的輸出信號為 0,馬達開始轉動。 馬達的控制主程序如下: if(ON_OFF=1) /若溫控標志位 1, 控制 LAMP 動作 if(temp1=K+1)outflag=1;OUT=0; if(temp1K) delay_LCM(1000); if(temp1K)outflag=0;OUT=1; / elseoutflag=0;OUT=1; 22 第第 5 5 章章 系系統(tǒng)統(tǒng)調調試試

溫馨提示

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

評論

0/150

提交評論