版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
單片機控制的溫濕度檢測系統(tǒng)的軟件設(shè)計案例目錄TOC\o"1-3"\h\u25208單片機控制的溫濕度檢測系統(tǒng)的軟件設(shè)計案例 1102631.1.編程語言的選擇及編程軟件 1296541.1.主程序模塊 1303831.2.溫濕度顯示子程序 3184541.3.溫濕度讀取子程序 5249591.4.溫濕度異常處理子程序 6230621.5.溫濕度上下限調(diào)整子程序 8編程語言的選擇及編程軟件在以單片機為核心的嵌入式系統(tǒng)中,常采用匯編語言和C語言進行軟件開發(fā)。匯編語言所寫的代碼簡短,執(zhí)行速度快,可直接對硬件進行操作,但是要求對單片機硬件結(jié)構(gòu)了解詳細(xì),否則難以讀懂復(fù)雜的程序。而隨著計算機技術(shù)的成熟,應(yīng)用C語言編寫程序進行單片機應(yīng)用系統(tǒng)開發(fā)已經(jīng)成為主流REF_Ref15117\r\h[18]。C語言應(yīng)用靈活方便,可移植現(xiàn)有的模塊程序,不需對單片機硬件深入了解,也可直接對硬件進行操作,并且可以采用模塊化開發(fā),使得一個函數(shù)模塊實現(xiàn)一種功能,大大縮短了開發(fā)周期。KeilC51編譯器是一款采用工業(yè)標(biāo)準(zhǔn),常用于單片機C語言程序開發(fā)的工具。它支持所有8051系列單片機,并具有斷點仿真、存儲器可視化仿真和編譯功能。程序編譯后,可在窗口觀測到具體的警示信息和出錯信息,提示程序存在的語法錯誤。支持以分組模塊的形式進行調(diào)試,并保留了匯編程序高效、快速的優(yōu)點,生成目標(biāo)代碼的效率非常高。故選擇KeilC51作為系統(tǒng)軟件設(shè)計工具REF_Ref22313\r\h[19]。本系統(tǒng)軟件設(shè)計的主要任務(wù)就是在KeilC51開發(fā)環(huán)境中,利用C預(yù)言編寫源程序,對編寫好的源程序進行編譯處理,然后將生成的.HEX寫入單片機進行調(diào)試和仿真。主程序模塊系統(tǒng)程序設(shè)計采用化整為零的軟件設(shè)計方法,針對不同的功能模塊編寫不同的模塊子程序,依次對各個模塊進行調(diào)試仿真,在仿真軟件調(diào)試沒有錯誤后,通過主程序調(diào)用各功能模塊。根據(jù)系統(tǒng)需要實現(xiàn)的功能,將程序劃分成溫濕度顯示子程序、溫濕度讀取子程序、溫濕度異常處理程序、上下限溫濕度閥值調(diào)整子程序。主程序中首先需要對一些參量賦初值,包括軟件初設(shè)的溫濕度最高值和最低值。當(dāng)糧倉環(huán)境含水量較少和溫度較低的情況下,對糧食儲存最為有利。故本系統(tǒng)初設(shè)溫度最高值為25℃,最低值為5℃,濕度最高值為25%RH,濕度最低值為5%RH。然后初始化LCD1602、SHT11,進入while主循環(huán),檢測“設(shè)置”按鍵是否按下,如果沒有按下,則執(zhí)行溫濕度檢測函數(shù),并對檢測到的數(shù)據(jù)進行處理比較,不在設(shè)定范圍內(nèi),則做出相應(yīng)處理;如果“設(shè)置”按鍵按下,則進入修改初始預(yù)設(shè)值函數(shù),對初始預(yù)設(shè)值進行修改;修改完畢,通過“設(shè)置”鍵返回了溫濕度顯示界面。主程序流程圖如圖4-1所示。 圖4-1主程序流程圖溫濕度顯示子程序LCD1602顯示字符首先需要考慮三個方面內(nèi)容:(1)字符產(chǎn)生:在程序只需定義好要顯示的常量,它將在編譯之后生成標(biāo)準(zhǔn)的ASCII代碼,寫入LCD后,通過查找ROM字符庫找出對應(yīng)的字符自動顯示出來。(2)顯示模式的初始化設(shè)置:根據(jù)所需的顯示要求,對光標(biāo)和字符顯示效果進行設(shè)置。(3)確定預(yù)顯示字符位置:可顯示區(qū)域包括從第一行的00H到0FH十六個地址和第二行的40H到4FH十六個地址。編程時將預(yù)顯示位置地址加上80H才是預(yù)顯示位置的指令代碼。本系統(tǒng)顯示方式:檢測界面,第一行第一列開始顯示形如“Temp:023.0C”的溫度字樣,第二行第一列開始顯示形如“Humi:018.6%RH”濕度字樣;按鍵輸入界面,第一行顯示“Temp:H:20CL:10C”,第二行顯示“Humi:H:20%L:10%”。顯示模式設(shè)置:根據(jù)顯示模式指令表,寫入以下設(shè)置命令:“38H”規(guī)定顯示字符數(shù)量和數(shù)據(jù)傳輸接口數(shù)量;“06H”使得光標(biāo)右移一位,即地址加1;“06H”表示開啟顯示,但不顯示光標(biāo);“01H”對當(dāng)前屏幕進行清屏。在每次寫指令之前都需要先檢查LCD是否處于忙碌狀態(tài),LCD的忙碌標(biāo)志位為BF,與D7口線相連,在本系統(tǒng)中與單片機的P0.7引腳相連。當(dāng)檢測到P0.7引腳電平為低電平“0”,表示LCD不忙,執(zhí)行寫入命令;當(dāng)檢測到P0.7引腳電平為高電平“1”,表示LCD處于忙碌狀態(tài),繼續(xù)等待。LCD的驅(qū)動程序流程圖如圖4-2。圖4-2LCD1602驅(qū)動程序流程圖根據(jù)流程圖,LCD顯示子程序中先定義了“l(fā)cd_init()”初始化函數(shù);然后定義了“check_busy()”檢測忙函數(shù)、“l(fā)cd_write_com(com)”寫地址函數(shù)、“l(fā)cd_write_date(date)”寫數(shù)據(jù)函數(shù)。根據(jù)這些基本函數(shù)便可以編寫單個字符顯示函數(shù)lcd_write_char(add,dat)和字符串顯示函數(shù)lcd_write_str(add,*dat)。溫濕度讀取子程序圖4-3為SHT11工作時序圖。使得SHT11進行數(shù)據(jù)采集的過程為:啟動,寫入控制字,讀出測量結(jié)果。圖4-3SHT11工作時序圖(1)啟動傳輸根據(jù)時序圖可知,啟動傳感器SHT11方法為在SCK值為1時,控制單片機將DATA端口電平由高變低,SCK經(jīng)過一個周期后,再使DATA端口電平由低變高。操作完成后,傳感器開始測量。因此,SHT11子程序中需要定義一個啟動函數(shù)transstart(),用于啟動傳輸,如圖4-4。圖4-4啟動函數(shù)程序(2)SHT11連接復(fù)位啟動后,單片機首先控制DATA數(shù)據(jù)線發(fā)出8位測量命令,測量命令中前3位為固定地址碼000,后五位為命令代碼。表4-1為SHT11命令代碼。表4-1SHT11命令代碼命令地址碼命令代碼溫度測量00000011濕度測量00000101讀狀態(tài)寄存器00000111寫狀態(tài)寄存器00000110發(fā)送完8位數(shù)據(jù)后,在SCK第9個上升沿之前,將DATA線拉低,表示傳感器已經(jīng)收到了測量命令REF_Ref22855\r\h[20]。在第九個時鐘之后,傳感器開始測量。因此,程序中設(shè)有連接復(fù)位函數(shù)s_connectionreset()。圖4-5復(fù)位函數(shù)程序(3)讀出測量結(jié)果每讀取一個字節(jié),單片機需將DATA電平拉低,以確認(rèn)成功收到該字節(jié)。溫濕度異常處理子程序初始化SHT11溫濕度傳感器,讀取溫濕度值,隨后進行判讀。當(dāng)環(huán)境溫度大于預(yù)設(shè)溫度最大值25℃時,繼電器1閉合,冷風(fēng)機工作,如果環(huán)境溫度繼續(xù)升高,高于預(yù)設(shè)最高溫度值5℃時,蜂鳴器每間隔600ms報警;當(dāng)環(huán)境溫度小于預(yù)設(shè)溫度最小值10℃時,繼電器2閉合,加熱片工作,如果環(huán)境溫度繼續(xù)降低,低于預(yù)設(shè)最低溫度值5℃時,蜂鳴器每間隔600ms報警;當(dāng)環(huán)境濕度大于預(yù)設(shè)濕度最大值25%RH時,繼電器3閉合,除濕器工作,如果環(huán)境濕度繼續(xù)升高,高于預(yù)設(shè)最高濕度值5%RH時,蜂鳴器每間隔600ms報警;當(dāng)環(huán)境濕度小于預(yù)設(shè)濕度最小值5%RH時,繼電器4閉合,加濕器工作,如果環(huán)境濕度繼續(xù)降低,低于預(yù)設(shè)最低濕度值5%RH時,蜂鳴器每間隔600ms報警;具體流程如圖4-6:圖4-6溫濕度異常處理子程序流程圖程序中設(shè)有延時函數(shù)delay,利用for語句循環(huán)完成系統(tǒng)的延時,可以針對本系統(tǒng)所采用的無源蜂鳴器,通過對其連接的單片機端口置位“1”、“0”和延時操作,即可產(chǎn)生高低電平的方波,驅(qū)動蜂鳴器震動發(fā)聲;針對本系統(tǒng)所采用的的獨立按鍵在閉合和斷開時,可能出現(xiàn)的觸點抖動現(xiàn)象,也可通過延時函數(shù)進行軟件消抖;在對LCD1602進行初始化設(shè)置時,通過延時以確保初始化成功。因此,延時函數(shù)在各個模塊都有所調(diào)用。溫濕度上下限調(diào)整子程序初始化按鍵,如果檢測到“設(shè)置”按鍵S
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園衛(wèi)生食品制度
- 街鎮(zhèn)衛(wèi)生院預(yù)檢分診制度
- 廣東省衛(wèi)生工作制度
- 衛(wèi)生殺蟲劑使用管理制度
- 衛(wèi)生局清潔管理制度
- 加工廠衛(wèi)生規(guī)章制度
- 環(huán)境衛(wèi)生紅黑旗制度
- 紀(jì)念館衛(wèi)生管理制度
- 新廟衛(wèi)生院規(guī)章制度匯編
- 食品實驗室衛(wèi)生管理制度
- 職業(yè)技能認(rèn)定考評員考核試題與答案
- 床上運動及轉(zhuǎn)移技術(shù)課件
- 子宮腺肌癥術(shù)后護理
- 獨資股東協(xié)議書范本
- 2024-2025蘇教版小學(xué)數(shù)學(xué)二年級上冊期末考試測試卷及答案(共3套)
- 光伏發(fā)電項目風(fēng)險
- 風(fēng)力發(fā)電項目分包合同施工合同
- GB/T 8607-2024專用小麥粉
- 新版外國人永久居住身份證考試試題
- 2024年中考數(shù)學(xué)復(fù)習(xí):瓜豆原理講解練習(xí)
- 高一歷史期末試題中國近現(xiàn)代史
評論
0/150
提交評論