環(huán)境管理_環(huán)境監(jiān)測系統(tǒng)實驗報告_第1頁
環(huán)境管理_環(huán)境監(jiān)測系統(tǒng)實驗報告_第2頁
環(huán)境管理_環(huán)境監(jiān)測系統(tǒng)實驗報告_第3頁
環(huán)境管理_環(huán)境監(jiān)測系統(tǒng)實驗報告_第4頁
環(huán)境管理_環(huán)境監(jiān)測系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

信息與通信工程學(xué)院信息與通信工程學(xué)院 單片機系統(tǒng)課程設(shè)計報告單片機系統(tǒng)課程設(shè)計報告 完成日期:完成日期:2012 年年 11 月月 16 日日 目目 錄錄 目目 錄錄.1 一、設(shè)計任務(wù)和要求一、設(shè)計任務(wù)和要求.1 1.1 設(shè)計任務(wù)1 1.2 性能指標(biāo)1 二、設(shè)計方案二、設(shè)計方案.2 2.1.方案設(shè)計.2 2.1.1 單片機控制模塊的選擇論證2 2.1.2 溫度濕度檢測模塊的選擇與論證2 2.1.3 顯示模塊的選擇與論證2 2.2 本設(shè)計采用方案及原理3 三、系統(tǒng)硬件設(shè)計三、系統(tǒng)硬件設(shè)計.4 3.1 單片機最小系統(tǒng)設(shè)計.4 3.2 溫濕度采集電路5 3.3 電源電路6 3.4 光敏電阻接入電路6 3.5 鍵盤電路8 3.6 LCD 顯示電路.8 3.7 報警電路9 3.8 串行接口電路9 四四. .系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.10 4.1 主程序設(shè)計10 4.2 LCD12864 模塊程序.11 4.3 DHT11 模塊程序.12 4.4 光敏電阻模塊程序14 五五. .調(diào)試及性能分析調(diào)試及性能分析.15 5.1 調(diào)試過程中出現(xiàn)的問題15 5.2 性能分析15 六六. .心得體會心得體會.16 參考文獻(xiàn)參考文獻(xiàn).17 附錄附錄 1 1 程序清單程序清單18 附錄附錄 2 2 電路原理圖電路原理圖24 附錄附錄 3 3 PCBPCB 圖圖.25 附錄附錄 4 4 硬件電路板圖硬件電路板圖26 一、設(shè)計任務(wù)和一、設(shè)計任務(wù)和要求要求 1.11.1 設(shè)計任務(wù)設(shè)計任務(wù) 基本要求:基本要求: (1) 利用單片機控制傳感器采集環(huán)境溫濕度,光照強度等參數(shù),并在液晶屏上顯示環(huán)境 參數(shù)值。 (2)系統(tǒng)設(shè)有鍵盤,可實現(xiàn)系統(tǒng)參數(shù)的設(shè)置。 提高部分:提高部分: (1)將上述環(huán)境數(shù)據(jù)記錄在 SD 或 TF 卡上; (2)采集并顯示三軸加速度值; (3)無線傳輸所測環(huán)境參數(shù)。 1.21.2 性能指標(biāo)性能指標(biāo) (1)溫度濕度光照強度顯示:用 LCD12864 進行顯示。 (2)環(huán)境溫度:單位/。 (3)環(huán)境濕度:單位/%RH。 (4)環(huán)境光強:單位/lux (5)鍵盤 (6)報警 二、設(shè)計方案二、設(shè)計方案 .方案設(shè)計方案設(shè)計 .1 單片機控制模塊的選擇論證單片機控制模塊的選擇論證 方案一:單片機選用 STC12C5A60S2,這款單片機有第二串口,有 A/D 轉(zhuǎn)換,有 PWM/PCA 功能,有內(nèi)部 EEPROM 可內(nèi)部實現(xiàn) A/D 轉(zhuǎn)換。 方案二:采用 XC9000 系列的 FPGA。該類器件具有并行處理能力,能快速的響應(yīng)外 部的各種數(shù)字信號。 綜上所述,單片機數(shù)學(xué)運算功能較強。在程序相互調(diào)用方面,處理方便靈活,性能穩(wěn) 定,適合實際應(yīng)用。且單片機技術(shù)發(fā)展較為成熟,價格便宜,而 FPGA 芯片價格較昂貴。 則選擇方案一。 .2 溫度濕度檢測模塊的選擇與論證溫度濕度檢測模塊的選擇與論證 方案一:溫度濕度的采集模塊采用 DHT11。DHT11 是一款數(shù)字輸出的復(fù)合傳感器, 包含一個電阻式感濕元件和 NTC 式溫度檢測元件,可測 2090%RH 濕度,誤差 5%RH,050 攝氏度,誤差 2 攝氏度。 方案二:選用 DS18B20 溫度傳感器和 HS1101 濕度傳感器。DS18B20 是一線式數(shù)字溫 度傳感器,具有獨特的單線式接口方式,測量范圍在 55125,誤差為0.5。最高 精度可達(dá) 0.0625。HS1101 是電容式濕度傳感器,可測相對濕度范圍在 0%100%RH,誤 差為2%RH 綜上所述,雖然方案二的測試范圍和精度都比較好,但 DHT11 綜合性比較強,則選 擇方案一。 .3 顯示模塊的選擇與論證顯示模塊的選擇與論證 方案一:采用 12864 液晶模塊顯示測得的數(shù)據(jù),可顯示較多組的數(shù)據(jù),字體較大,可 清晰讀數(shù),12864 為四行八列中文顯示器,可以很清晰的顯示溫度濕度光照強度等的指標(biāo)。 方案二:采用 1602 液晶模塊顯示所測數(shù)據(jù),1602 液晶接線簡單方便,但所顯示的不 清楚,沒有條理性。 綜上所述選擇方案一。 2.22.2 本設(shè)計采用方案及原理本設(shè)計采用方案及原理 按照系統(tǒng)設(shè)計的功能的要求,初步確定設(shè)計系統(tǒng)由單片機主控模塊、電源模塊、顯示 模塊、DHT11 環(huán)境溫濕度檢測模塊、光敏電阻模塊、報警、按鍵等模塊組成。 原理框圖: 溫度傳感器 DS18B20 光敏電阻LM324 放大電路 CPU 處理器 STC89C51 鍵盤輸入 控制電路 系統(tǒng)電源 12864 液晶 顯示電路 蜂鳴器 報警電路 三、系統(tǒng)硬件設(shè)計三、系統(tǒng)硬件設(shè)計 3.1 單片機最小系統(tǒng)設(shè)計單片機最小系統(tǒng)設(shè)計 圖 3-1-1 圖 3-1-2 圖 3-1-3 采用 STC12C5A60S2 單片機,P0 口接上拉電阻,10K*8 排阻,晶振電路采用 11.0592M,33pF 電容,單片機晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共 用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過 電子調(diào)整頻率的方法保持同步。 3.23.2 溫濕度采集電路溫濕度采集電路 圖 3-2-1 單總線數(shù)字溫濕度傳感器 DHT11。這款傳感器由廣州奧松電子科技有限公司研發(fā),與單片 機的通信十分簡潔方便,無需外接時鐘信號,通信如圖發(fā) 除此之外,它還有很多突出的優(yōu)點: (1)溫濕度傳感器的一體化結(jié)構(gòu)能同時對相對濕度和溫度進行測量,并以數(shù)字信號輸出, 從而減少用戶對信號的預(yù)處理負(fù)擔(dān) (2)獨特的單總線數(shù)據(jù)傳輸線協(xié)議使得讀取傳感器更加便捷,而且還有全部校準(zhǔn)數(shù)據(jù)字節(jié), 編碼方式為 8 位二進制數(shù)。 (3)40 位二進制數(shù)據(jù)輸出,高位先出,格式為:濕度整數(shù)部分 8 位,小數(shù)部分 8 位;溫 度整數(shù)部分 8 位,小數(shù)部分 8 位,最后 8 位為校驗字節(jié),為前 32 位數(shù)據(jù)的和。 (4)寬工作電壓,幾乎與 AT89S52 的電壓相同,為 35.5V,而且功耗較低,通信最大電 流為 2.5mA。 其簡要的性能參數(shù)如下表所示: 從表中可以看出,它的測量范圍較小,但對實驗或民用已經(jīng)足夠了,如果要工業(yè)使用的話, 可選用該公司的同類工業(yè)級產(chǎn)品 AM323,測量范圍為-55.0+125.0 度,測量范圍為 0.0100.0%RH,并且可以和 DHT11 完全互換。 按照說明書的要求,DHT11 與單片機的連接距離小于 20 米時,需要在 VCC 和 DATA 引腳之 間接一個 5K 左右的電阻,則電路如圖所示。 3.33.3 電源電路電源電路 圖 3-3-1 用 J1 USB 供電,D1 為上電指示燈,J2 為六腳按鍵,用來控制板子上電。 3.4 光敏電阻接入電路光敏電阻接入電路 圖 3-4-1 光敏電阻的主要特性及參數(shù) : (1)光電流、亮電阻。光敏電阻器在一定的外加電壓下當(dāng)有光照射時,流過的電流稱為 光電流,外加電壓與光電流之比稱為亮電阻,常用“100LX”表示。 (2)暗電流、暗電阻。光敏電阻在一定的外加電壓下,當(dāng)沒有光照射的時候,流過的電流 稱為暗電流。外加電壓與暗電流之比稱為暗電阻,常用“0LX”表示。 (3)靈敏度。靈敏度是指光敏電阻不受光照射時的電阻值(暗電阻)受光照射時的電阻值 (亮電阻)的相對變化值。 (4)在一定外加電壓下,光敏電阻的光電流和光通量之間的關(guān)系。不同類型光敏電阻光照 特性不同,但光照特性曲線均呈非線性。因此它不宜作定量檢測元件,這是光敏電阻的不 足之處。一般在自動控制系統(tǒng)中用作光電開關(guān)。 (5)光敏電阻的光譜特性光譜特性與光敏電阻的材料有關(guān)。硫化鉛光敏電阻在較寬的光譜 范圍內(nèi)均有較高的靈敏度,峰值在紅外區(qū)域,化鎘、硒化鎘的峰值在可見光區(qū)域。因此, 在選用光敏電阻時,應(yīng)把光敏電阻的材料和光源的種類結(jié)合起來考慮,才能獲得滿意的效 果。 (6)光敏電阻的伏安特性:在一定照度下,加在光敏電阻兩端的電壓與電流之間的關(guān)系稱 為伏安特性。在給定偏壓下,光照度較大,光電流也越大。在一定的光照度下,所加的電壓 越大,光電流越大,而且無飽和現(xiàn)象。但是電壓不能無限地增大,因為任何光敏電阻都受 額定功率、最高工作電和額定電流的限制。超過最高工作電壓和最大額定電流,可能導(dǎo)致 光敏電阻永久性損壞。 (7)當(dāng)光敏電阻受到脈沖光照射時,光電流要經(jīng)過一段時間才能達(dá)到穩(wěn)定值,而在停止光 照后,光電流也不立刻為零,這就是光敏電阻的時延特性。由于不同材料的光敏,電阻 時延特性不同,所以它們的頻率特性也不同,硫化鉛的使用頻率比硫化鎘高得多,但多數(shù) 光敏電阻的時延都比較大,所以,它不能用在要求快速響應(yīng)的場合。 3.5 鍵盤電路鍵盤電路 圖 3-5-1 本設(shè)計的控制輸入部分為簡單的四個按鍵:由于單片機默認(rèn)狀態(tài)下端口引腳為高電平,可 以接上按鍵與地相連。單片機檢測按鍵端口的電平情況來決定是否有按鍵按下和哪個按鍵 被按下,抖動問題采用軟件延時方式,減少硬件電路設(shè)計,電路如圖所示。 3.63.6 LCDLCD 顯示電路顯示電路 由引腳的應(yīng)用考慮,LCD 接為串行顯示,當(dāng)模塊的 PSB 腳接低電平時,模塊即進入串行接 口模式。串行模式使用串行數(shù)據(jù)線 SID 與串行時鐘線 SCLK 來傳送數(shù)據(jù),即構(gòu)成 2 線串行 模式。 圖 3-6-1 3.73.7 報警電路報警電路 圖 3-7-1 根據(jù)蜂鳴器的參數(shù),電壓 1.31.5V,電流 2080mA,電阻 68 知,可用選用集成放大芯 片 LM386 驅(qū)動,但更經(jīng)濟的是用一個三極管 9012 或 8550 驅(qū)動即可,電路如圖所示。 3.8 串行接口電路串行接口電路 圖 3-8-1 四四. .系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 4.14.1 主程序設(shè)計主程序設(shè)計 void main() uchar k,j; LCD_init(); LCD_dis_code(0,1,lcd); LCD_dis_code(1,0,lcd1); LCD_dis_code(2,0,lcd2); LCD_dis_code(3,0,lcd3); while(1) read_io();/讀取溫濕度數(shù)據(jù) /clear_gcrom(); /濕度 for(k=0; k2; k+) lcd_pos(3,k+3); write_data(str1k); /clear_gcrom(); /溫度 for(j=0; j0) write_data(*s); /寫數(shù)據(jù) s+; /*初始化 LCD*/ void Lcd_init(void) delay(50); write_cmd(0x30); /選擇基本指令集 delay(1); write_cmd(0x30); /選擇 8bit 數(shù)據(jù)流 delay(1); write_cmd(0x0c); /開顯示(無游標(biāo)、不反白) delay(1); write_cmd(0x01); /清除顯示,并且設(shè)定地址指針為 00H delay(30); /*串行發(fā)送一個字節(jié)*/ void send_byte(uchar byte) uchar i; for(i=0;i8;i+) SCLK = 0; byte=byte1; /左移一位 先發(fā)送高位的數(shù)據(jù) SID = CY; /移出的位給 SID SCLK = 1;/上升沿觸發(fā)發(fā)送 SCLK = 0; /*寫指令*/ void write_cmd(uchar cmd) delay(1); SID = 0; SCLK = 0; delay(5); P0 = cmd; delay(5); SCLK = 1; delay(5); SCLK = 0; /*寫數(shù)據(jù)*/ void write_data(uchar dat) delay(1); SID = 0; SCLK = 0; P0 = dat; delay(5); SCLK = 1; delay(5); SCLK = 0; /*延時子程序*/ void delay(uint a) uint i; while(a-) for(i=0; i113; i+); 4.34.3 DHT11DHT11 模塊程序模塊程序 uchar receive_byte()/接收一個字節(jié) uchar i,temp; for(i=0;i8; i+) count = 2; while(!io) delay1(); delay1(); delay1(); if (io=1) temp = 1; count = 2; while(io else temp = 0; data_byte=1; data_byte=temp; return (data_byte); /*開始信號*/ void read_io()/開始信號,讀數(shù)據(jù)并校驗 io = 0; delay(18);/主機拉低 18ms io = 1;/DATA 總線由上拉電阻拉高 主機延時 20us delay1(); delay1(); delay1(); delay1(); io = 1;/主機設(shè)置為輸入高電平,判斷從機響應(yīng)信號 if(!io) count = 2; while(!io)/判斷 DHT11 發(fā)出 80us 低電平響應(yīng)信號是否結(jié)束 count = 2; while(io /判斷 DHT11 拉高總線 80us 高電平是否結(jié)束 RH_temp = receive_byte(); RL_temp = receive_byte(); TH_temp = receive_byte(); TL_temp = receive_byte(); CK_temp = receive_byte(); io = 1; num = (RH_temp + RL_temp + TH_temp + TL_temp);/數(shù)據(jù)校驗 if(num = CK_temp) RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; /濕度整數(shù)部分 str10 = (char)(0x30 + RH_data/10); str11 = (char)(0x30 + RH_data%10); /溫度整數(shù)部分 str20 = (char)(0x30 + TH_data/10); str21 = (char)(0x30 + TH_data%10); /*E N D*/ 4.44.4 光敏電阻模塊程序光敏電阻模塊程序 unsigned char adc0804( void ) /讀 AD0804 子程序 unsigned char addata,i; rd=1;wr=1;/int1=1; /讀 ADC0804 前準(zhǔn)備 P1=0xff; /P1 全部置一準(zhǔn)備 cs=0;wr=0;wr=1; /啟動 ADC0804 開始測電壓 rd=0; /開始讀轉(zhuǎn)換后數(shù)據(jù) i=i; i=i; /無意義語句,用于延時等待 ADC0804 讀數(shù)完畢 addata=P1;/讀出的數(shù)據(jù)賦與 addate rd=1;cs=1;/讀數(shù)完畢 addata=addata/2; return(addata);/返回最后讀出的數(shù)據(jù) 五五. .調(diào)試及性能分析調(diào)試及性能分析 5.15.1 調(diào)試過程中出現(xiàn)的問題調(diào)試過程中出現(xiàn)的問題 首先,在調(diào)試時,先下載一個 LCD 顯示程序,但 LCD 沒有結(jié)果,經(jīng)過測量,發(fā)現(xiàn)由 于滑動變阻器的阻值太大,導(dǎo)致 LCD 背光太低,致使 LCD 沒有顯示,把滑動變阻器阻值 調(diào)小后,則程序出現(xiàn)結(jié)果。 5.25.2 性能分析性能分析 此系統(tǒng)實現(xiàn)的是環(huán)境溫濕度光照強度的顯示,以及報警功能,按鍵設(shè)計等。單總線數(shù)字溫 度、濕度傳感器,應(yīng)用單片機原理,LCD 顯示技術(shù),實現(xiàn)了實驗室多點溫濕度參數(shù)的實時 顯示和超限報警系統(tǒng),保障了實驗室環(huán)境的可靠性,有效地提高了實驗成功率。系統(tǒng)集成 度高,操作容易,可靠性好,具有較高的實用價值,實踐表明,該系統(tǒng)能夠?qū)囟?、濕?進行檢測,適合于對數(shù)據(jù)采樣頻率要求不是很高的應(yīng)用場合 六六. .心得體會心得體會 為了設(shè)計出基于單片機的環(huán)境溫濕度檢測系統(tǒng),搜集了大量的芯片手冊,查閱了較多 的圖書資料,復(fù)習(xí)了所學(xué)的課本教材,分兩個階段對系統(tǒng)進行了設(shè)計前期的基本設(shè)計 和后期的探索設(shè)計。 前期的設(shè)計,在種類繁多的溫度和濕度傳感器中選定了由廣州奧松公 司生產(chǎn)的單總線數(shù)字溫濕度傳感器 DHT11,這款傳感器的優(yōu)勢在于通信協(xié)議相對來說比較 簡潔,產(chǎn)品價格低廉,這對設(shè)計低成本,高精度的溫濕度檢測系統(tǒng)十分有必要。 對于功能 方面的要求,在調(diào)查了市場上的同類產(chǎn)品之后,根據(jù)實際需求來設(shè)計的。市場上的溫濕度 檢測系統(tǒng)的功能為,檢測并顯示溫濕度數(shù)據(jù),設(shè)置報警點并報警,與上層監(jiān)控設(shè)備通信。 因此設(shè)計正是,從這幾個方面的要求出發(fā),利用單片機本身的特點,來實現(xiàn)系統(tǒng)的功能。 后期的探索設(shè)計,提升了系統(tǒng)的性能。 由于第一次設(shè)計基于單片機的系統(tǒng),雖然完成了基 本的設(shè)計要求,但在設(shè)計過程中遇到了許多硬件和軟件問題還沒有完全解決,設(shè)計的過程 也是模塊式的,沒有完整系統(tǒng)的總體規(guī)劃,后期的探索設(shè)計只是從理論上進行了可行性分 析,沒有做出相應(yīng)的硬件并調(diào)試符合預(yù)期構(gòu)想。因此,以后還必須加強單片機系統(tǒng)設(shè)計的 能力,畢業(yè)設(shè)計只是一個淺薄的入門。 當(dāng)然,在設(shè)計過程中,應(yīng)虛心聽取他人的建議和意 見,對解決設(shè)計過程中的問題都很有幫助。 展望未來,最終的系統(tǒng)應(yīng)該為基于單片機的多功能環(huán)境檢測系統(tǒng),它不僅可以檢測環(huán) 境的溫度、濕度、照度等所需的環(huán)境變量并顯示在液晶屏幕上,可以根據(jù)設(shè)定的限值進行 報警提示,可以以時間順序存儲大量的檢測數(shù)據(jù),并根據(jù)需要發(fā)送給上層分析處理設(shè)備, 還可以用紅外遙控實行遠(yuǎn)程無線控制,除此之外,電源系統(tǒng)可以適應(yīng)各種供電場合,并存 儲部分電能,斷電后確保系統(tǒng)可繼續(xù)工作一定時間。 參考文獻(xiàn)參考文獻(xiàn) 1李瀚蓀.簡明電路分析.北京:高等教育出版社 2002 2康光華.電子技術(shù)基礎(chǔ)-模擬部分.北京:高等教育出版社 1979 3康光華.電子技術(shù)基礎(chǔ)-數(shù)字部分.北京:高等教育出版社 1980 4馬金龍.信號與系統(tǒng).北京:科學(xué)出版社 2006 5唐穎.單片機原理與應(yīng)用.北京:北京大學(xué)出版社 2008 6鄭莉.董淵.張瑞豐.C+語言程序設(shè)計.北京:清華大學(xué)出版社 2004 7唐文彥.傳感器.北京:機械工業(yè)出版社 2010 8陳爾紹等.電子控制電路實例.北京:電子工業(yè)出版社 2004 9姜威.實用電子系統(tǒng)設(shè)計基礎(chǔ).北京:北京理工大學(xué)出版社 2008 10毛興武等.新型電子器件及其應(yīng)用技術(shù).北京:中國電力出版社 2010 11孟貴華.電子元器件選用入門.北京:機械工業(yè)出版社 2004 12黎小桃等.Protel99 入門與提高.北京:電子工業(yè)出版社 2009 13郭強.液晶顯示模塊應(yīng)用與調(diào)試.北京:電子工業(yè)出版社 2010 14陳濤.單片機應(yīng)用及 C51 程序設(shè)計.北京:機械工業(yè)出版社 2008 15鐘睿.MCS-51 單片機原理及應(yīng)用開發(fā)技術(shù).北京:中國鐵道出版社 2006 附錄附錄 1 1 程序清單程序清單 /*DHT11 與 12864LCD*/ /* DHT11 總線接 P10 */ /* 晶振 11.0592M */ /*/ #include #define uchar unsigned char #define uint unsigned int uchar lcd_x,lcd_y,data_byte=0,count; uint TH_data,TL_data,RH_data,RL_data,CK_data; uint TH_temp,TL_temp,RH_temp,RL_temp,CK_temp; uchar num; void read_io(); void delay(uint a);/延時子函數(shù) void lcd_pos(unsigned char X,unsigned char Y); void LCD_init();/LCD 初始化程序 void LCD_dis_code(uchar x,uchar y,uchar code *s);/顯示函數(shù) void write_data(uchar dat);/寫數(shù)據(jù) void write_cmd(uchar cmd);/寫指令 void delay1();/10us 延時 /*漢字地址表*/ uchar code addr_tab= 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,/第一行漢字位置 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,/第二行漢字位置 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,/第三行漢字位置 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,/第四行漢字位置 ; sbit SID = P01;/讀寫信號 sbit SCLK = P00;/串行時鐘信號 sbit io = P13;/DHT11 總線 uchar code lcd=“環(huán)境監(jiān)測系統(tǒng)“; uchar code lcd1=“溫度: “; uchar code lcd2=“濕度: %RH“; uchar code lcd3=“光強: lux“; uchar str1=“ “; uchar str2=“ “; /*主程序*/ void main() uchar k,j; LCD_init(); LCD_dis_code(0,1,lcd); LCD_dis_code(1,0,lcd1); LCD_dis_code(2,0,lcd2); LCD_dis_code(3,0,lcd3); while(1) read_io();/讀取溫濕度數(shù)據(jù) /clear_gcrom(); /濕度 for(k=0; k2; k+) lcd_pos(3,k+3); write_data(str1k); /clear_gcrom(); /溫度 for(j=0; j2; j+) lcd_pos(2,j+3); write_data(str2j); delay(500); /*延時程序*/ void delay1()/延時 10us unsigned char i; for(i=0; i3; i+); /*顯示程序*/ void lcd_pos(unsigned char X,unsigned char Y) unsigned char pos; if ( X = 1 ) pos = 0x80 ; else if ( X = 2 ) pos = 0x90 ; else if ( X = 3 ) pos = 0x88 ; else pos = 0x98 ; write_cmd(Y | pos);/數(shù)據(jù)指針=80+地址變量 /*DHT11 模塊*/ uchar receive_byte()/接收一個字節(jié) uchar i,temp; for(i=0;i8; i+) count = 2; while(!io) delay1(); delay1(); delay1(); if (io=1) temp = 1; count = 2; while(io else temp = 0; data_byte=1; data_byte|=temp; return (data_byte); /*開始信號*/ void read_io()/開始信號,讀數(shù)據(jù)并校驗 io = 0; delay(18);/主機拉低 18ms io = 1;/DATA 總線由上拉電阻拉高 主機延時 20us delay1(); delay1(); delay1(); delay1(); io = 1;/主機設(shè)置為輸入高電平,判斷從機響應(yīng)信號 if(!io) count = 2; while(!io)/判斷 DHT11 發(fā)出 80us 低電平響應(yīng)信號是否結(jié)束 count = 2; while(io /判斷 DHT11 拉高總線 80us 高電平是否結(jié)束 RH_temp = receive_byte(); RL_temp = receive_byte(); TH_temp = receive_byte(); TL_temp = receive_byte(); CK_temp = receive_byte(); io = 1; num = (RH_temp + RL_temp + TH_temp + TL_temp);/數(shù)據(jù)校驗 if(num = CK_temp) RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; /濕度整數(shù)部分 str10 = (char)(0x30 + RH_data/10); str11 = (char)(0x3

溫馨提示

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

評論

0/150

提交評論