冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計_第1頁
冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計_第2頁
冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計_第3頁
冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計_第4頁
冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、hefei university 電子系專業(yè)導論論文電子系專業(yè)導論論文 題題 目目 冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計 班班 級級 1010 級自動化(級自動化(1 1)班)班 姓姓 名名 學學 號號 10050730281005073028 10050740231005074023 10050750111005075011 完成時間完成時間 2013/6/302013/6/30 指導老師指導老師 丁健丁健 胡晨曦胡晨曦 微型計算機控制技術課程設計任務書 論文 題目 冬暖式溫室大棚環(huán)境監(jiān)測系統(tǒng)設計設計 類型 導師 姓名 主要內容及目標 在國家大力發(fā)展農業(yè)的背景之下,我

2、們所做的這個項目是很有意義的。應用所學單片 機知識,將所學應用到實踐中,培養(yǎng)實踐與動手能力,真正把理論轉化為實踐。通過單片 機課程設計,熟練掌握 keil c 語言的編程方法,將理論聯系到實踐中去,提高我們的動 腦和動手的能力。 系統(tǒng)主要功能是監(jiān)測大棚的溫度并顯示,用測得的光敏電阻的阻值表征光照強度 ,應 用于普通冬暖式溫室大棚的溫度監(jiān)測和光照自動控制,另有定時功能可以設定允許觸發(fā)的 時間范圍。 應用 51 單片機作為核心處理器,使用 ds18b20 傳感器將所收集的信號傳送給單片機, 然后實現溫度的顯示,用光敏電阻在光照下阻值的變化轉化成電壓變化輸入到單片機,進 行處理轉化將其限定在一定范圍

3、內,超出范圍就會發(fā)出警報??梢远〞r只允許在設定的時 間范圍內觸發(fā)單片機引起報警及相關裝置的動作。 具有的設計條件 1 pc 機一臺,教學實驗箱一臺; 計劃學生數及任務 3 人 (1):明確課題功能。 (2):把復雜問題分解為若干模塊,確定各模塊處理方法,畫出流程圖。 (3):存儲器資源分配 (4):編制程序,根據流程圖來編制源程序 (5):對程序進行匯編,調試和修改,直到程序運行結果正確為止。 計劃設計進程 一、總體方案設計 二、控制系統(tǒng)的建模和數字控制器設計 三、硬件的設計和實現 1、 選擇計算機字長(選用 51 內核的單片機) 2、 設計支持計算機工作的外圍電路(eprom、ram、i/o

4、 端口、鍵盤、顯示接口電路等); 3、 設計輸入信號接口電路; 4、 設計輸出控制電路; 5、 其它相關電路的設計或方案(電源、通信等)。 四、軟件設計 1、 分配系統(tǒng)資源,編寫系統(tǒng)初始化和主程序模塊框圖; 2、 其它程序模塊(顯示與鍵盤等處理程序)框圖。 五、編寫課程設計說明書,繪制完整的系統(tǒng)電路圖(a3 幅面)。 目錄目錄 一、設計簡介一、設計簡介.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.1 at89c52 的工

5、作原理.3 2.1.1 cpu的結構.3 2.1.2 cpu的結構i/o口結構.3 2.1.3 程序存儲器.3 2.1.4 定時器.4 2.1.5 中斷系統(tǒng).4 2.2 單總線數字溫度傳感器 ds18b20 檢測電路.4 2.2.1 ds18b20簡介.4 2.2.2 ds18b20 的性能特點.4 2.2.3 ds18b20的測溫原理.5 2.3 lcd1602 液晶顯示器.6 2.3.1 lcd1602簡介.6 2.3.2 lcd1602的指令說明及時序.7 2.4 直流馬達.8 2.4.1 馬達工作的原理.8 2.4.2 馬達的基本構造.9 2.5 蜂鳴器.9 三、三、系統(tǒng)的硬件組成電路

6、設計系統(tǒng)的硬件組成電路設計.9 3.1 系統(tǒng)總硬件設計.10 3.2 單總線數字溫度傳感器 ds18b20 檢測電路.10 3.3 lcd1602 顯示模塊.11 四、四、 系統(tǒng)軟件的設計系統(tǒng)軟件的設計.11 4.1 主程序設計.12 4.2 溫度檢測.13 4.2.1讀取溫度設計.13 4.2.2 溫度數據處理設計.14 4.3 液晶顯示器 lcd1602.16 4.3.1 lcd1602初始化.16 4.4 馬達的控制.17 4.5 報警器的啟動.18 五、五、總結總結.18 六、六、參考文獻參考文獻.1 附錄附錄 a a.2 附錄附錄 b b.9 摘要摘要 我國南方溫度炎熱而漫長,大力推

7、廣大棚蔬菜的種植來滿足人們日常生活對蔬 菜的需要。隨著人們生活水平的日益增長,對蔬菜的要求也較高,對大棚蔬菜的溫 度控制就是一個重要因素。溫度過高,蔬菜就會停止生長或者糜爛。 本系統(tǒng)就基于單片機 at89c52 實現對大棚溫度的自動化控制。用數字溫度模塊 ds18b20 采集,將采集到的溫度用顯示屏顯示,再根據采集到的溫度,控制馬達的 轉速,從而實現對大棚溫度的控制。當溫度大于 35,喇叭產生報警信號。 關鍵字關鍵字:溫度 自動 控制 正文正文 一、設計簡介一、設計簡介 1.11.1 系統(tǒng)的概述系統(tǒng)的概述 應用自動控制和電子計算機實現農業(yè)生產和管理的自動化,是農業(yè)現代化的重 要標志之一。近年來

8、電子技術和信息技術的飛速發(fā)展,帶來了溫室控制與管理技術 方面的一場革命,隨著“設施農業(yè)” 、 “虛擬農業(yè)”等新名稱的出現。溫度計算機控 制與管理系統(tǒng)正在不斷吸收自動控制和信息管理領域的理論和方法,結合溫室作物 種植的特點,不斷創(chuàng)新,逐步完善,從而使溫室種植業(yè)實現真正意義上的現代化, 產業(yè)化。 本系統(tǒng)以 at89c52 單片機為控制核心的測控儀,主要是為了對蔬菜大棚內的溫 度,地檢測與控制而設計的。該測控儀具有檢測精度高、使用簡單、成本較低和工 作穩(wěn)定可靠等特點,所以具有一定的應用前景。 1.21.2 系統(tǒng)的要求系統(tǒng)的要求 本系統(tǒng)通過單片機 at89c52 控制,用 ds18b20 數字溫度模塊

9、采集溫度。通過 lcd1602 液晶顯示屏顯示當前溫度,當溫度高于 20,馬達將帶動風扇的轉動,實 現自動控制大棚里的溫度。當檢測到的溫度高于 35時,發(fā)出報警信號。本設計將 實現大棚溫度的自動化控制。 1.31.3 系統(tǒng)的主要模塊系統(tǒng)的主要模塊 1.3.1 本系統(tǒng)的主要組成部分 本系統(tǒng)為一個全自動溫度檢測與控制系統(tǒng),由以下幾個部分組成:at89c52 單 片機,溫度檢測,顯示電路,馬達,及報警裝置等組成。組成圖如圖 1-1。 圖 1-1 溫度自動控制構成圖 由圖 1-1 所示,本系統(tǒng)的核心部分是 at89c52,此芯片是該電路的樞紐。由它 先控制著溫度的檢測,用檢測到的溫度實現馬達的自動控制

10、,以及顯示。若檢測到 的溫度高于設定的值,則發(fā)出報警信號。 1.3.2 各部分的功能 at89c52 單片機:它是系統(tǒng)的中央處理器,擔負著系統(tǒng)的控制和運算。溫度檢 測裝置:ds18b20 數字溫度模塊對大棚內溫度進行采集,將溫度轉換成數字。顯示 設備:主要是用于顯示檢測到的大棚溫度。馬達:主要用于帶動風扇的轉動。報警 裝置:產生報警信號。 1.3.3 工作原理 首先對硬件系統(tǒng) ds18b20 定義端口為 p1.3,p2.4,p2.5,p2.6 和 p0 口控制液晶 lcd1602 的顯示,定義端口 p1.5 為馬達控制端口,p1.7 為喇叭控制端口。首先對溫 度采集,將采集到的溫度轉換數字,采

11、集到的溫度由 lcd 液晶顯示屏顯示。再將采 集到的溫度所屬軟件設置的哪個范圍,而控制 p1.5 的電平輸出。 二、二、設計的理論基礎設計的理論基礎 整個控制系統(tǒng)由軟件程序設計。根據系統(tǒng)具體要求,可以對具體部分進行分析 設計。但要實現對各部分的設計,需要充分了解各部分的理論基礎。本設計系統(tǒng)的 基本組成單元包括:單片機控制單元,ds18b20 溫度檢測電路,lcd1602 顯示屏,直 流馬達,蜂鳴器報警裝置。 2.12.1 at89c52at89c52 的工作原理的工作原理 2.1.1 cpu 的結構 cpu 是單片機內部的核心部分,是單片機的指揮和執(zhí)行機構,它決定了單片機 的主要功能特性。從功

12、能上看,cpu 包括兩個基本部分:運算器和控制器1。 2.1.2 cpu 的結構 i/o 口結構 at89c52 單片機有 4 個 8 位并行 i/o 接口,記作 p0、p1、p2 和 p3,每個端口都 是 8 位準雙向口,共占 32 根引腳。每一條 i/o 線都能獨立地用作輸入或輸出。每個 端口都包括一個鎖存器,一個輸出驅動器和輸入緩沖器,作輸出時數據可以鎖存, 作輸入時數據可以緩沖,但是這四個通道的功能完全不同。如圖 2-1。 圖 2-1 at89c52 引腳及管腳功能 2.1.3 程序存儲器 程序存儲器通過 16 位程序計數器尋址,尋址能力為 64k 字節(jié)。這能在 6k 地址 空間內任意

13、尋址,但沒有指令使程序能控制從程序存儲器空間轉移到數據存儲空間。 對 at89c52 芯片來說,片內有 8k 字節(jié) rom/eprom,片外可擴展 60k 字節(jié) eprom,片 內和片外程序存儲器統(tǒng)一編址。 2.1.4 定時器 定時器 t0 具有方式 0、方式 1、方式 2 和方式 3 四種工作方式。t1 具有方式 0、方式 1 和方式 2 三種工作方式。不管是定時工作方式還是計數方式,定時器 t0 和 t1 在對內部時鐘或對外部時間計數時,不占用 cpu 時間,除非定時器/計數器溢 出,才可能中斷 cpu 的當前操作。由此可見,定時器是單片機中效率最高而且工作 靈活的部件。 2.1.5 中斷

14、系統(tǒng) 中斷是指中央 cpu 正在處理某事情的時候,外部發(fā)生了某一事件,請求 cpu 迅 速去處理,于是,cpu 暫時中斷當前的工作,轉入處理所發(fā)生的事件;中斷服務處 理完成以后,再回到原來被中斷的工作,這樣的過程稱為中斷2。 2.22.2 單總線數字溫度傳感器單總線數字溫度傳感器 ds18b20ds18b20 檢測電路檢測電路 由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉換成對應的溫度, 需要比較多的外部元件支持,且硬件電路復雜,制作成本相對較高。這里采用 dallas 公司的數字溫度傳感器 ds18b20 作為測溫元件。 2.2.1 ds18b20 簡介 ds18b20 數字溫度傳感

15、器采用 ds18b20 可組網數字溫度傳感器芯片封裝二成, 具有耐磨耐碰,體積小使用方便,封裝形式多樣等優(yōu)點,適用于各種狹小空間設備 數字溫度和控制領域3。 2.2.2 ds18b20 的性能特點 適應電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數據線 供電。 獨特的單線接口方式,ds18b20 在與微處理器連接時僅需要一條口線即可 實現微處理器與 ds18b20 的雙向通訊。 ds18b20 支持多點組網功能,多個 ds18b20 可以并聯在唯一的三線上,實現組網多點測溫。 ds18b20 在使用中不需 要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。

16、 溫范圍55125,在-10+85時精度為0.5。零待機功耗。 可編 程的分辨率為 912 位,對應的可分辨溫度分別為 0.5、0.25、0.125和 0.0625,可實現高精度測溫。 在 9 位分辨率時最多在 93.75ms 內把溫度轉換為 數字,12 位分辨率時最多在 750ms 內把溫度值轉換為數字,速度更快。 ds18b20 內部結構主要由四部分組成:64 位光刻 rom、溫度傳感器、非揮發(fā)的 溫度報警觸發(fā)器 th 和 tl、配置寄存器。ds18b20 的管腳排列、各種封裝形式,dq 為數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器 件提供電源;gnd 為地信

17、號;vdd 為可選擇的 vdd 引腳。當工作于寄生電源時,此引 腳必須接地。 圖 3-1 ds18b20 的引腳功能圖 圖 3-2 ds18b20 的內部結構圖 2.2.3 ds18b20 的測溫原理 ds18b20 的測溫原理,低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生 固定頻率的脈沖信號送給減法計數器 1,高溫度系數晶振隨溫度變化其震蕩頻率明 顯改變,所產生的信號作為減法計數器 2 的脈沖輸入,還隱含著計數門,當計數門 打開時,ds18b20 就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫 度測量.計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55 所對應

18、的基數分別置入減法計數器 1 和溫度寄存器中,減法計數器 1 和溫度寄存器 被預置在-55 所對應的一個基數值4。 另外,由于 ds18b20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此 讀寫時序很重要。系統(tǒng)對 ds18b20 的各種操作必須按協議進行。操作協議為:初始 化 ds18b20發(fā) rom 功能命令發(fā)存儲器操作命令處理數據5。 2.32.3 lcd1602lcd1602 液晶顯示器液晶顯示器 2.3.1 lcd1602 簡介 字符型 lcd1602 通常有 14 條引腳線或 16 條引腳線的 lcd,多出來的 2 條線是 背光電源線 vcc(15 腳)和地線 gnd(16 腳

19、),其控制原理與 14 腳的 lcd 完全一樣,引 腳定義如表 2-1 所示: 表 2-1 引腳接口說明表 編號符號引腳說明編號符號引腳說明 1vss 電源地 9d2 數據 2vdd 電源正極 10d3 數據 3vl 液晶顯示偏壓 11d4 數據 4rs 數據/命令選擇 12d5 數據 5r/w 讀/寫選擇 13d6 數據 6e 使能信號 14d7 數據 7d0 數據 15bla 背光源正極 8d1 數據 16blk 背光源負極 第 1 腳:vss 為地電源。 第 2 腳:vdd 接 5v 正電源。 第 3 腳:vl 為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比 度最高,對比度過

20、高時會產生“鬼影” ,使用時可以通過一個 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

21、 lcd1602 的指令說明及時序 lcd1602 液晶模塊內部的控制器共有 11 條控制指令6,如表 2-2 所示: 表 2-2 控制命令表 序號指令 rsr/wd7d6d5d4d3d2d1d0 1 清顯示 0000000001 2 光標返回 000000001* 3 置輸入模式 00000001i/ds 4 顯示開/關控制 0000001dcb 5 光標或字符移位 000001s/c r/l* 6 置功能 00001dlnf* 7 置字符發(fā)生存貯器地址 0001 字符發(fā)生存貯器地址 8 置數據存貯器地址 001 顯示數據存貯器地址 9 讀忙標志或地址 01bf 計數器地址 10 寫數到 c

22、gramddram) 10 要寫的數據內容 11 cgram 或 ddram 讀數 11 讀出的數據內容 lcd1602 液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。 1 為高電平、0 為低電平。 指令 1:清顯示,指令碼 01h,光標復位到地址 00h 位置。 指令 2:光標復位,光標返回到地址 00h。 指令 3:光標和顯示模式設置 i/d:光標移動方向,高電平右移,低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令 4:顯示開關控制。 d:控制整體顯示的開與關,高電平表示開顯示,低 電平表示關顯示 c:控制光標的開與關,高電平表示有光標

23、,低電平表示無光標 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動光標。 指令 6:功能設置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:低 電平時為單行顯示,高電平時雙行顯示 f: 低電平時顯示 5x7 的點陣字符,高電平 時顯示 5x10 的點陣字符。 指令 7:字符發(fā)生器 ram 地址設置。 指令 8:ddram 地址設置。 指令 9:讀忙信號和光標地址 bf:為忙標志位,高電平表示忙,此時模塊不能 接收命令或者數據,如果為低電平表示不忙。 指令 10:寫數據。 指令 11:讀數據。 lcd160

24、2 讀寫時序如表 2-3 所示: 表 2-3 基本操作時序表 讀狀態(tài)輸入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.1 馬達工作的原理 馬達的旋轉原理的依據為佛

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

26、.4.2 馬達的基本構造 電動機的種類很多,以基本結構來說,其組成主要由定子和轉子所構成。 定子 在空間中靜止不動,轉子則可繞軸轉動,由軸承支撐。 定子與轉子之間會有一定空 氣間隙,以確保轉子能自由轉動。 定子與轉子繞上線圈,通上電流產生磁場,就成 為電磁鐵,定子和轉子其中之一亦可為永久磁鐵8。 2.52.5 蜂鳴器蜂鳴器 蜂鳴器是一種一體化結構的電子訊響器。蜂鳴器主要分為壓電式蜂鳴器和電磁 化蜂鳴器兩種類型。本系統(tǒng)采用的是電磁式蜂鳴器9。 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源 后,振蕩器產生的音頻信號電流通過電磁鐵圈,使電磁鐵線圈產生磁場,振動膜片 在電磁線圈

27、和磁鐵的相互作用下,周期性地振動發(fā)聲。蜂鳴器發(fā)聲原理是電流通過 電磁鐵圈,使電磁線圈產生磁場來驅動振動膜發(fā)聲的。程序中改變單片機引腳輸出 波形的頻率,就可以調整控制蜂鳴器音調,產生各種不同音色、音調的聲音。另外, 改變輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小。 三、三、系統(tǒng)的硬件組成電路設計系統(tǒng)的硬件組成電路設計 系統(tǒng)的硬件組成部分包括:主控制器 at89c52 單片機、溫度傳感器 ds18b20、 顯示電路 lcd1602、馬達、報警裝置等構成。 3.13.1 系統(tǒng)總硬件設計系統(tǒng)總硬件設計 首先對硬件系統(tǒng) ds18b20 定義端口為 p1.3,p2.4,p2.5,p2.6 和 p

28、0 口控制液晶 lcd1602 的顯示,定義端口 p1.5 為馬達控制端口,p1.7 為喇叭控制端口。首先對溫 度采集,將采集到的溫度轉換數字,采集到的溫度由 lcm 液晶顯示屏顯示。再將采 集到的溫度所屬軟件設置的哪個范圍,而控制 p1.5 的電平輸出。電路原理圖如 3-1 所示: 圖 3-1 電路原理圖 3.23.2 單總線數字溫度傳感器單總線數字溫度傳感器 ds18b20ds18b20 檢測電路檢測電路 dq 為數據輸入/輸出引腳,連接 p1.3。開漏單總線接口引腳。當被用著在寄生 電源下,也可以向器件提供電源,gnd 為地信號;vcc 為電源信號。圖 3-2 為 ds18b20 檢測電

29、路。 圖 3-2 ds18b20 檢測電路 3.33.3 lcd1602lcd1602 顯示模塊顯示模塊 用 at89c52 的 p0 口作為數據線,用 p2.4、p2.5、p2.6 分別作為 lcd 的 e、r/w、rs。其中 e 是下降沿觸發(fā)的片選信號,連接 p2.6,r/w 是讀寫信號,連接 p2.5,rs 是寄存器選擇信號,連接 p2.4。圖 3-3 為 lcd1602 的硬件連接。 圖 3-3 lcd1602 的硬件連接 vee 用連接阻值為 10k 的電阻,主要用于調節(jié)對比度的調整。接正電源時對比 度最低,接地電源時,對比度最高。對比度過高時,會產生“鬼影” 。因此連接一 10k

30、的電阻用以調整10。 四、四、 系統(tǒng)軟件的設計系統(tǒng)軟件的設計 一個應用系統(tǒng)要完成各項功能,首先必須有較完善的硬件做保證。同時還必須 得到相應設計合理的軟件的支持,尤其是微機應用高速發(fā)展的今天,許多由硬件完 成的工作,都可通過軟件編程而代替。甚至有些必須采用很復雜的硬件電路才能完 成的工作,用軟件編和有時會變得很簡單。因此充分利用其內部豐富的硬件資源和 軟件資源。 程序設計語言有三種:機器語言、匯編語言、高級語言。本系統(tǒng)運用的是高級 語言所編寫,也就是 c 語言。 4.14.1 主程序設計主程序設計 從軟件的功能不同可分為四大類:一是檢測軟件,它是用來檢測溫度。二是顯 示部分,用來顯示所檢測到的

31、溫度。三是調控部分,用來控制馬達的轉速。四是當 溫度大于 35,蜂鳴器發(fā)出報警信號。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模 塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義。圖 4-1 為軟 件設計流程圖。 開始 初始化 溫度檢測 lcd 溫度顯示 結束 馬達帶動 風扇 發(fā)出警報 信號 大于 20 度大于 35 度 小于 20 度 圖 4-1 軟件設計流程圖 4.24.2 溫度檢測溫度檢測 4.2.1 讀取溫度設計 dsl8b20 可以從單總線獲取電源,當信號線為高電平時,將能量貯存在內部電 容器中;當單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由?寄生電源為止。此

32、外,還可外接 5 v 電源,給 ds18b20 供電11。圖 4-2 圖 4-2 ds18b20 讀取溫度流程圖 讀取溫度子程序的主要功能是讀出 ram 中的 9 個字節(jié),在讀出時需進行 crc 校 驗,校驗有錯時不進行溫度數據的改寫。ds18b20 的各個命令對時序的要求特別嚴 格,所以必須按照所要求的時序才能達到預期的目的,同時,要注意讀進來的是高 低位在后,低位在前,共 12 位數,小數 4 位,整數 7 位,還有一位符號位。讀取溫 度的主程序如下: unsigned int readtemperature(void) unsigned char a=0; unsigned int b=

33、0; unsigned int t=0; init_ds18b20(); writeonechar(0 xcc); / 跳過讀序號列號的操作 writeonechar(0 x44); / 啟動溫度轉換 delay(200); init_ds18b20(); writeonechar(0 xcc); /跳過讀序號列號的操作 writeonechar(0 xbe); /讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是 溫度 a=readonechar(); /低位 b=readonechar(); /高位 b4; templ=temp templ=templ*6/10;/小數近似處理 flag

34、_get=0; 4.34.3 液晶顯示器液晶顯示器 lcd1602lcd1602 4.3.1 lcd1602 初始化 端口定義如下: sbit rs = p24;/pin4 sbit rw = p25; /pin5 sbit e = p26;/pin6 #define data p0 /數據端口 函數顯示子碼:用數組和指針將字符逐個顯示出來13。 /*/ void showchar(unsigned char pos,unsigned char c) unsigned char p; if (pos=0 x10) p=pos+0 xb0; /是第二行則命令代碼高 4 位為 0 xc else

35、p=pos+0 x80; /是第二行則命令代碼高 4 位為 0 x8 writecommand (p);/write command writedata (c); /write data /* */ void showstring (unsigned char line,char *ptr) unsigned char l,i; l=line4; for (i=0;i20) mdelay(30); fan=0; mdelay(150);/占空比為 0.9375 4.54.5 報警器的啟動報警器的啟動 當溫度低于 35時,蜂鳴器不工作。當檢測到的溫度高于 35時,蜂鳴器發(fā)出 頻率為 2hz 的報

36、警聲。 報警聲控制的主程序如下: if(temph35) /產生報警信號 tru=0; mdelay(10); 頻率為 2hz fan=0; mdelay(150); 五、五、總結總結 通過這次對大棚溫度自動控制的設計與制作,讓我們合作完成了一個完整的設 計,雖然這次的實習做的溫度顯示以及馬達的控制都相對比較簡單,但是也給將來 進入硬件開發(fā)有了一個起點的基礎。在這次實習的過程,剛開始的時候,真的有點 不知所措,因為學習完單片機已有數日,以及微機原理課程,一些知識已忘記。幸 好有三個星期的時間來準備。畫電路原理圖,一開始就覺得有點煩,因為 protues 軟件安裝的版本較低,做起來非常的費時又費

37、力,一些芯片,還不可以仿真。常常 有解決不了的問題,就上網查詢,或者閱覽資料書。雖然這項工作枯燥無味,但鍛 煉了我們的意志,耐性,堅韌,和團隊協作的能力。因為常會碰到很難解決的問題, 所以要堅持不懈。這次設計是一個學習新知識、鞏固加深所學課本理論知識的過程, 它培養(yǎng)了我們綜合運用知識的能力,獨立思考和解決問題的能力。它不僅加深了我 對單片機技術課程的理解,還讓我感受到了電子設計的樂趣,也讓我更好的運用 word 文檔,對我來說,這次課程設計是非常有意義的。 任務分配:本設計由闞侃同學完成硬件電路設計,由曹東同學完成程序編譯, 由詹躍斌同學完成報告編寫,本設計是由小組三人通力合作完成的一份課程設

38、計。 六、六、參考文獻參考文獻 1 謝自美,尹仕,肖看,趙云娣,羅杰.電子線路綜合設計m.武漢:華中科 技大學出版社, 2007. 2 楊旭方.單片機控制與應用實訓教程m.北京: 電子工業(yè)出版社, 2010.5. 3 夏繼強. 單片機應用設計培訓教程m.北京:北京航空航天大學出版社, 2008. 4 高峰.單片機微型計算機與接口技術m.北京:科學出版社.2003 5 李廣弟, 朱月秀, 王秀山. 單片機基礎m.北京:北京航空航天大學出版 社, 2001.7. 6 胡漢才.單片機原理及其接口技術m.北京: 清華大學出版社, 2004 7 求是科技.單片機典型模塊設計實例導航m.北京: 人民郵電出

39、版社, 2004 8 王化詳,張淑英.傳感器原理m天津: 天津大學出版社, 2002.5 9 王港元.電工電子實踐指導m江西: 江西科學技術出版社, 2005.6 10 楊素行著.模擬電子技術基礎(第二版) m.北京: 高等教育出版社, 2006. 11 陳靜.單片機應用系統(tǒng)中的編程語言j.淮北職業(yè)技術學院學報.2009.8(1): 43-44. 12 仝慶華.基于 proteus 單片機虛擬實驗室j.山西大同大學學報(自然科學 版).2009.25(2):23-25. 13 包敬海,侯昭武,吳國輝.基于 at89c52 單片機設計智能鍋爐控制系統(tǒng)j. 北京中國科技信息.2009 14 周紅麗

40、,張?zhí)扉_等基于單片機的九路溫度監(jiān)控系統(tǒng)j 青島:微計算 機信息2008. 15 劉華東,張亞華.單片機原理與應用(第二版)m.北京:電子工業(yè)出版社. 2006:1-5. 附錄附錄 a a *- 名稱:基本單片機 at89c52 的大棚溫度自控系統(tǒng) -*/ #include #includestdio.h #include #include #includelcd1602.h #define uchar unsigned char #define uint unsigned int; /*/ /* 定義端口 */ /*/ sbit dq=p13;/ds18b20 端口 sbit fan=p15;

41、 /風扇端口 sbit tru=p17;/喇叭的端口 sfr dataled=0 x80;/顯示數據端口 /*/ /* 全局變量 */ /*/ uint temp,i,temph; uchar flag_get,count,num,minute,second,x; long str6; /*/ /* 函數聲明 */ /*/ void delay1(uchar ms); unsigned int readtemperature(void); void init_ds18b20(void); unsigned char readonechar(void); void writeonechar(un

42、signed char dat); void delay(unsigned int i); /*/ /* 延時函數聲明 */ /*/ void mdelay(unsigned char j) unsigned int i; for(;j0;j-) for(i=0;i20) mdelay(10); fan=0; mdelay(150); for(i=1;i4; templ=temp templ=templ*6/10;/小數近似處理 flag_get=0; /*/ /* 定時器中斷 */ /*/ void tim(void) interrupt 1 using 1/中斷,用于溫度檢測間隔 th0=

43、0 xef;/定時器重裝值 tl0=0 xf0; num+; if (num=50) num=0; flag_get=1;/標志位有效 second+; if(second=60) second=0; /*/ /* 延時函數 */ /*/ void delay(unsigned int i)/延時函數 while(i-); /*/ /* 初始化 */ /*/ void init_ds18b20(void) unsigned char x=0; dq = 1; /dq 復位 delay(8); /稍做延時 dq = 0; /單片機將 dq 拉低 delay(80); /精確延時 大于 480us

44、 dq = 1; /拉高總線 delay(10); x=dq; /稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay(5); /*/ /* 讀一個字節(jié) */ /*/ unsigned char readonechar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) dq = 0; / 給脈沖信號 dat=1; dq = 1; / 給脈沖信號 if(dq) dat|=0 x80; delay(5); return(dat); /*/ /* 寫一個字節(jié) */ /*/ void writeonech

45、ar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) dq = 0; dq = dat delay(5); dq = 1; dat=1; delay(5); /*/ /* 讀取溫度 */ /*/ unsigned int readtemperature(void) unsigned char a=0; unsigned int b=0; unsigned int t=0; init_ds18b20(); writeonechar(0 xcc); / 跳過讀序號列號的操作 writeonechar(0 x44); / 啟動溫度轉換

46、delay(200); init_ds18b20(); writeonechar(0 xcc); /跳過讀序號列號的操作 writeonechar(0 xbe); /讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度 a=readonechar(); /低位 b=readonechar(); /高位 b=8; t=a+b; return(t); 附錄附錄 b b #include #include #include sbit rs = p24;/pin4 sbit rw = p25; /pin5 sbit e = p26;/pin6 #define data p0 /數據端口 unsigned char tem5; unsigned char secondline unsigned char firstline unsign

溫馨提示

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

評論

0/150

提交評論