環(huán)境監(jiān)測系統(tǒng)試驗(yàn)報告_第1頁
環(huán)境監(jiān)測系統(tǒng)試驗(yàn)報告_第2頁
環(huán)境監(jiān)測系統(tǒng)試驗(yàn)報告_第3頁
環(huán)境監(jiān)測系統(tǒng)試驗(yàn)報告_第4頁
環(huán)境監(jiān)測系統(tǒng)試驗(yàn)報告_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、信息與通信工程學(xué)院單片機(jī)系統(tǒng)課程設(shè)計(jì)報告完成日期:2012年11月16日目 錄 1一、設(shè)計(jì)任務(wù)和要求 11.1 設(shè)計(jì)任務(wù) 11.2 性能指標(biāo) 1二、設(shè)計(jì)方案 22.1 .方案設(shè)計(jì) 22.1.1 單片機(jī)控制模塊的選擇論證 22.1.2 溫度濕度檢測模塊的選擇與論證 22.1.3 顯示模塊的選擇與論證 22.2 本設(shè)計(jì)采用方案及原理 3三、系統(tǒng)硬件設(shè)計(jì) 41.1 單片機(jī)最小系統(tǒng)設(shè)計(jì) 41.2 溫濕度采集電路 51.3 電源電路 61.4 光敏電阻接入電路 71.5 鍵盤電路 81.6 LCD顯示電路 81.7 報警電路 91.8 串行接口電路 104 .系統(tǒng)軟件設(shè)計(jì) 104.1 主程序設(shè)計(jì) 104

2、.2 LCD12864模塊程序 114.3 DHT11模塊程序 124.4 光敏電阻模塊程序 145 .調(diào)試及性能分析 155.1 調(diào)試過程中出現(xiàn)的問題 155.2 性能分析 156 .心得體會 16參考文獻(xiàn) 17附錄1程序清單 18附錄2電路原理圖 24附錄3PCB圖 25附錄4硬件電路板圖 26一、設(shè)計(jì)任務(wù)和要求1.1 設(shè)計(jì)任務(wù)基本要求:(1)利用單片機(jī)控制傳感器采集環(huán)境溫濕度,光照強(qiáng)度等參數(shù),并在液晶屏上顯示環(huán)境參數(shù)值。(2)系統(tǒng)設(shè)有鍵盤,可實(shí)現(xiàn)系統(tǒng)參數(shù)的設(shè)置。提高部分:(1)將上述環(huán)境數(shù)據(jù)記錄在 SD或TF卡上;(2)采集并顯示三軸加速度值;(3)無線傳輸所測環(huán)境參數(shù)。1.2 性能指標(biāo)

3、(1)溫度濕度光照強(qiáng)度顯示:用LCD12864進(jìn)行顯示。(2)環(huán)境溫度:單位/ C。(3)環(huán)境濕度:單位/%RH(4)環(huán)境光強(qiáng):單位/lux(5)鍵盤(6)報警一、設(shè)計(jì)萬案2.1 .方案設(shè)計(jì)2.1.1 單片機(jī)控制模塊的選擇論證方案一:單片機(jī)選用 STC12C5A60S2這款單片機(jī)有第二串口,有 A/D轉(zhuǎn)換,有PWM/PCA 功能,有內(nèi)部EEPROMT內(nèi)部實(shí)現(xiàn)A/D轉(zhuǎn)換。方案二:采用XC9000系列的FPGA該類器件具有并行處理能力,能快速的響應(yīng)外部的 各種數(shù)字信號。綜上所述,單片機(jī)數(shù)學(xué)運(yùn)算功能較強(qiáng)。在程序相互調(diào)用方面, 處理方便靈活,性能穩(wěn)定,適合實(shí)際應(yīng)用。且單片機(jī)技術(shù)發(fā)展較為成熟,價格便宜,

4、而FPGA芯片價格較昂貴。則選擇方案一。2.1.2 溫度濕度檢測模塊的選擇與論證方案一:溫度濕度的采集模塊采用DHT11 DHT11是一款數(shù)字輸出的復(fù)合傳感器,包含一個電阻式感濕元件和 NTC式溫度檢測元件,可測2090%RH1度,誤差5%RH050攝氏度, 誤差2攝氏度。方案二:選用 DS18B20溫度傳感器和 HS1101濕度傳感器。DS18B20是一線式數(shù)字溫度傳感器,具有獨(dú)特的單線式接口方式,測量范圍在55c125C,誤差為± 0.5 C。最高精度可達(dá)0.0625 C。HS1101是電容式濕度傳感器,可測相對濕度范圍在 0%100%RH誤差為 ±2%RH綜上所述,雖

5、然方案二的測試范圍和精度都比較好,但DHT11綜合性比較強(qiáng),則選擇方案一。2.1.3 顯示模塊的選擇與論證方案一:采用12864液晶模塊顯示測得的數(shù)據(jù),可顯示較多組的數(shù)據(jù),字體較大,可清 晰讀數(shù),12864為四行八列中文顯示器,可以很清晰的顯示溫度濕度光照強(qiáng)度等的指標(biāo)。方案二:采用1602液晶模塊顯示所測數(shù)據(jù),1602液晶接線簡單方便,但所顯示的不清楚,沒有條理性。綜上所述選擇方案一。2.2 本設(shè)計(jì)采用方案及原理電源模塊、顯示模按照系統(tǒng)設(shè)計(jì)的功能的要求,初步確定設(shè)計(jì)系統(tǒng)由單片機(jī)主控模塊、 塊、DHT11環(huán)境溫濕度檢測模塊、光敏電阻模塊、報警、按鍵等模塊組成。原理框圖:蜂鳴器*報警電路12864

6、液晶顯示電路三、系統(tǒng)硬件設(shè)計(jì)3.1單片機(jī)最小系統(tǒng)設(shè)計(jì)Pl .0之1 E鼠科第卻40JPl.lDI.J Pl.4 Pl.:DI.6產(chǎn) l.U.弛LQU PlLADCl Pl.iDC P1.3.ADC3 P1.4.AIX:4 口If. AI心 Pl.tf.ADCtf Pl: ADC一P3.C-.JUO), uv ADQ.PO.O ADI PO I AD2P0.2 AD3.P03 AD4,P6.4 AD5,PO.5 ADdPOd 皿7m了 EX_LT>叫 M.l PC'.2 P0.3X 4 K 5Pl.-RFTRXDM 6M.7TTOaP3.1.TXD Pj IffiTO P3.11N

7、TL 於4 Tt PS.i.Tl P女也斛飛 瞌* EJ> XTAL-<T C匯LEnrron*rm Tvi尿A11PZ* A14P1.4AL;/. Pl, 5 AUPi.4 All 21.3 A1QP1J._P2 "P1$T1%5MT%典4中P13鼻P2 2L鳥 工守XT AL IA9.P2.1AB PIO_£2 1U1STC12C *注KK*5單片機(jī)圖 3-1-1XI11晶振電路圖 3-1-2RL復(fù)位電路圖 3-1-3采用STC12C5A60S彈片機(jī),P0 口接上拉電阻,10K*8排阻,晶振電路采用 11.0592M, 33pF電容,單片機(jī)晶振的作用是為系統(tǒng)

8、提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。3.2 溫濕度采集電路QHTIL溫濕度傳感器電路圖 3-2-1單總線數(shù)字溫濕度傳感器 DHT11這款傳感器由廣州奧松電子科技有限公司研發(fā),與單片機(jī)的通信十分簡潔方便,無需外接時鐘信號,通信如圖發(fā)F 片 HL AT39S5?發(fā)起通信和接收數(shù)據(jù)圖2-5年總糙數(shù)字血濕度特建制DHT11與出H機(jī)誨常除此之外,它還有很多突出的優(yōu)點(diǎn)(1)溫濕度傳感器的一體化結(jié)構(gòu)能同時對相對濕度和溫度進(jìn)行測量,并以數(shù)字信號輸出,從而減少用戶對信號的預(yù)處理負(fù)擔(dān)(2)獨(dú)特的單總線數(shù)據(jù)傳輸線

9、協(xié)議使得讀取傳感器更加便捷,而且還有全部校準(zhǔn)數(shù)據(jù)字節(jié),編碼方式為8位二進(jìn)制數(shù)。(3) 40位二進(jìn)制數(shù)據(jù)輸出,高位先出,格式為:濕度整數(shù)部分8位,小數(shù)部分8位;溫度整數(shù)部分8位,小數(shù)部分8位,最后8位為校驗(yàn)字節(jié),為前32位數(shù)據(jù)的和。(4)寬工作電壓,幾乎與 AT89S52的電壓相同,為35.5V ,而且功耗較低,通信最大電流為 2.5mA。其簡要的性能參數(shù)如下表所示:表zt溫濕度傳感患Dffni性能型數(shù)惻顯花用測昵精以肥盤精度分辨率W裝2K0-50 rC±*2V11 針中排直插從表中可以看出,它的測量范圍較小,但對實(shí)驗(yàn)或民用已經(jīng)足夠了,如果要工業(yè)使用的話,可選用該公司的同類工業(yè)級產(chǎn)品A

10、M323,測量范圍為 -55.0+125.0 度,測量范圍為0.0100.0%RH,并且可以和 DHT11完全互換。按照說明書的要求,DHT11與單片機(jī)的連接距離小于20米時,需要在 VCC口 DATA弓|腳之間接一個5K左右的電阻,則電路如圖所示。JIII5 IV<C 13.3 電源電路VCC電源電路圖 3-3-1用J1 USB供電,D1為上電指示燈,J2為六腳按鍵,用來控制板子上電。3.4 光敏電阻接入電路(1)光電流、亮電阻。光敏電阻器在一定的外加電壓下當(dāng)有光照射時,流過的電流稱為光電流,外加電壓與光電流之比稱為亮電阻,常用“100LX”表示。(2)暗電流、暗電阻。光敏電阻在一定的

11、外加電壓下,當(dāng)沒有光照射的時候,流過的電流稱為暗電流。外加電壓與暗電流之比稱為暗電阻,常用“0LX”表示。(3)靈敏度。靈敏度是指光敏電阻不受光照射時的電阻值(暗電阻)受光照射時的電阻值(亮電阻)的相對變化值。(4)在一定外加電壓下,光敏電阻的光電流和光通量之間的關(guān)系。不同類型光敏電阻光照特性不同,但光照特性曲線均呈非線性。因此它不宜作定量檢測元件,這是光敏電阻的不足之處。一般在自動控制系統(tǒng)中用作光電開關(guān)。(5)光敏電阻的光譜特性光譜特性與光敏電阻的材料有關(guān)。硫化鉛光敏電阻在較寬的光譜范圍內(nèi)均有較高的靈敏度,峰值在紅外區(qū)域,化鎘、硒化鎘的峰值在可見光區(qū)域。因此,在選用光敏電阻時,應(yīng)把光敏電阻的

12、材料和光源的種類結(jié)合起來考慮,才能獲得滿意的效果。(6)光敏電阻的伏安特性:在一定照度下,加在光敏電阻兩端的電壓與電流之間的關(guān)系稱為伏安特性。在給定偏壓下 ,光照度較大,光電流也越大。在一定的光照度下,所加的電壓越大,光電流越大,而且無飽和現(xiàn)象。但是電壓不能無限地增大,因?yàn)槿魏喂饷綦娮瓒际茴~定功率、最高工作電和額定電流的限制。超過最高工作電壓和最大額定電流,可能導(dǎo)致光敏電阻永久性損壞。(7)當(dāng)光敏電阻受到脈沖光照射時,光電流要經(jīng)過一段時間才能達(dá)到穩(wěn)定值,而在停止光照后,光電流也不立刻為零,這就是光敏電阻的時延特性。由于不同材料的光敏,電阻時延特性不同,所以它們的頻率特性也不同,硫化鉛的使用頻率

13、比硫化鎘高得多,但多數(shù)光敏電阻的時延都比較大,所以,它不能用在要求快速響應(yīng)的場合。3.5 鍵盤電路S1至 至 _OS4TJrJ 7 0GND 'I |M鍵盤圖 3-5-1本設(shè)計(jì)的控制輸入部分為簡單的四個按鍵:由于單片機(jī)默認(rèn)狀態(tài)下端口引腳為高電平,可以接上按鍵與地相連。單片機(jī)檢測按鍵端口的電平情況來決定是否有按鍵按下和哪個按鍵被按下,抖動問題采用軟件延時方式,減少硬件電路設(shè)計(jì),電路如圖所示。3.6 LCD顯示電路由引腳的應(yīng)用考慮,LCD接為串行顯示,當(dāng)模塊的 PSB腳接低電平時,模塊即進(jìn)入串行接口模式。串行模式使用串行數(shù)據(jù)線 SID與串行時鐘線SCL”i傳送數(shù)據(jù),即構(gòu)成2線串行模式。3L

14、- EL-SET CS2 CS1/PSW D7 塊 DJD4 a D2 DI DC ENRS XL VCC <ihDVCCH LCD顯示電路CdmcnfMr.t 1圖 3-6-13.7 報警電路圖 3-7-1根據(jù)蜂鳴器的參數(shù),電壓 1.31.5V ,電流2080mA電阻6-8Q知,可用選用集成放大芯片LM386驅(qū)動,但更經(jīng)濟(jì)的是用一個三極管9012或8550驅(qū)動即可,電路如圖所示。3.8串行接口電路RIB: R.21XT12;T2KR.1OITTR2CITTTL-OUTTCITTC2-C2 -V-串行接口電路圖 3-8-1四.系統(tǒng)軟件設(shè)計(jì)4.1主程序設(shè)計(jì)void main() (ucha

15、r 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; k<2; k+)(lcd_pos(3,k+3);write_data(str1k);clear_gcrom();/溫度for(j=0; j<2; j+)(lcd_pos(2,j+2);write_data(str2j);)delay(500);)4.2 LCD128

16、64模塊程序 void LCD_dis_code(uchar x,uchar y,uchar code *s) 寫地址寫數(shù)據(jù)write_cmd(addr_tab8*x+y); while(*s>0)write_data(*s); /s+;)/* 初始化 LCD*/void Lcd_init(void)delay(50);write_cmd(0x30);/選擇基本指令集delay(1);write_cmd(0x30);/選才1 8bit數(shù)據(jù)流delay(1);write_cmd(0x0c);/開顯示(無游標(biāo)、不反白)delay(1);write_cmd(0x01);/清除顯示,并且設(shè)定地址

17、指針為00Hdelay(30);)/* 串行發(fā)送一個字節(jié) void send_byte(uchar byte) uchar i;for(i=0;i<8;i+)SCLK = 0;byte=byte<<1; /*/SID = CY;SCLK = 1;SCLK = 0;)/左移一位先發(fā)送高位的數(shù)據(jù)移出的位給SID/上升沿觸發(fā)發(fā)送/* 寫指令 */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ù) */voi

18、d 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; i<113; i+);4.3 DHT11模塊程序uchar receive_byte()/接收一個字節(jié)(uchar i,temp;for(i=0;i<8; i+)(count = 2;while(!io) && count+)/temp = 0;delay1();

19、delay1();delay1();if (io=1)(temp = 1;count = 2;while(io && count+);elsetemp = 0;data_byte<<=1;data_byte=temp;等待50us低電平結(jié)束,并防止死循環(huán)return (data_byte);/* 開始信號 void read_io()/ (io = 0; delay(18);/io = 1;DATA*/開始信號,讀數(shù)據(jù)并校驗(yàn)主機(jī)拉低18ms總線由上拉電阻拉高 主機(jī)延時20usdelay1();delay1();delay1();delay1();io = 1;/ 主

20、機(jī)設(shè)置為輸入高電平,判斷從機(jī)響應(yīng)信號if(!io)(count = 2;while(!io)&&count+); 判斷DHT11發(fā)出80us低電平響應(yīng)信號是否結(jié)束 count = 2;while(io && count+);/ 判斷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

21、+ RL_temp + TH_temp + TL_temp);/數(shù)據(jù)校驗(yàn)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

22、 n 口*/4.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ù)五.

23、調(diào)試及性能分析5.1 調(diào)試過程中出現(xiàn)的問題首先,在調(diào)試時,先下載一個 LCD顯示程序,但LCD沒有結(jié)果,經(jīng)過測量,發(fā)現(xiàn)由于滑 動變阻器的阻值太大,導(dǎo)致 LCD背光太低,致使 LCD沒有顯示,把滑動變阻器阻值調(diào)小后, 則程序出現(xiàn)結(jié)果。5.2 性能分析此系統(tǒng)實(shí)現(xiàn)的是環(huán)境溫濕度光照強(qiáng)度的顯示,以及報警功能,按鍵設(shè)計(jì)等。單總線數(shù)字溫度、濕度傳感器,應(yīng)用單片機(jī)原理,LCD顯示技術(shù),實(shí)現(xiàn)了實(shí)驗(yàn)室多點(diǎn)溫濕度參數(shù)的實(shí)時顯示和超限報警系統(tǒng),保障了實(shí)驗(yàn)室環(huán)境的可靠性,有效地提高了實(shí)驗(yàn)成功率。系統(tǒng)集成度高,操 作容易,可靠性好,具有較高的實(shí)用價值,實(shí)踐表明,該系統(tǒng)能夠?qū)囟?、濕度進(jìn)行檢測, 適合于對數(shù)據(jù)采樣頻率要求

24、不是很高的應(yīng)用場合六.心得體會為了設(shè)計(jì)出基于單片機(jī)的環(huán)境溫濕度檢測系統(tǒng),搜集了大量的芯片手冊, 查閱了較多的圖書資料,復(fù)習(xí)了所學(xué)的課本教材,分兩個階段對系統(tǒng)進(jìn)行了設(shè)計(jì)一一前期的基本設(shè)計(jì)和后 期的探索設(shè)計(jì)。前期的設(shè)計(jì),在種類繁多的溫度和濕度傳感器中選定了由廣州奧松公司生 產(chǎn)的單總線數(shù)字溫濕度傳感器DHT11這款傳感器的優(yōu)勢在于通信協(xié)議相對來說比較簡潔,產(chǎn)品價格低廉,這對設(shè)計(jì)低成本,高精度的溫濕度檢測系統(tǒng)十分有必要。對于功能方面的要求,在調(diào)查了市場上的同類產(chǎn)品之后,根據(jù)實(shí)際需求來設(shè)計(jì)的。市場上的溫濕度檢測系統(tǒng)的功能為,檢測并顯示溫濕度數(shù)據(jù), 設(shè)置報警點(diǎn)并報警, 與上層監(jiān)控設(shè)備通信。因此設(shè)計(jì)正 是,

25、從這幾個方面的要求出發(fā),利用單片機(jī)本身的特點(diǎn),來實(shí)現(xiàn)系統(tǒng)的功能。后期的探索設(shè)計(jì),提升了系統(tǒng)的性能。由于第一次設(shè)計(jì)基于單片機(jī)的系統(tǒng),雖然完成了基本的設(shè)計(jì)要求,但在設(shè)計(jì)過程中遇到了許多硬件和軟件問題還沒有完全解決,設(shè)計(jì)的過程也是模塊式的,沒有完整系統(tǒng)的總體規(guī)劃,后期的探索設(shè)計(jì)只是從理論上進(jìn)行了可行性分析,沒有做出相應(yīng)的硬件并調(diào)試符合預(yù)期構(gòu)想。因此,以后還必須加強(qiáng)單片機(jī)系統(tǒng)設(shè)計(jì)的能力,畢業(yè)設(shè)計(jì)只是一個淺薄的入門。當(dāng)然,在設(shè)計(jì)過程中,應(yīng)虛心聽取他人的建議和意見,對解決設(shè)計(jì)過程中的問題都很有幫助。展望未來,最終的系統(tǒng)應(yīng)該為基于單片機(jī)的多功能環(huán)境檢測系統(tǒng),它不僅可以檢測環(huán)境的溫度、濕度、照度等所需的環(huán)境變

26、量并顯示在液晶屏幕上,可以根據(jù)設(shè)定的限值進(jìn)行報警提示,可以以時間順序存儲大量的檢測數(shù)據(jù),并根據(jù)需要發(fā)送給上層分析處理設(shè)備,還可以用紅外遙控實(shí)行遠(yuǎn)程無線控制,除此之外,電源系統(tǒng)可以適應(yīng)各種供電場合,并存儲部分電能,斷電后確保系統(tǒng)可繼續(xù)工作一定時間。參考文獻(xiàn)1李瀚孤.簡明電路分析.北京:高等教育出版社 20022康光華.電子技術(shù)基礎(chǔ)-模擬部分.北京:高等教育出版社 19793康光華.電子技術(shù)基礎(chǔ)-數(shù)字部分.北京:高等教育出版社 19804馬金龍.信號與系統(tǒng).北京:科學(xué)出版社 20065唐穎.單片機(jī)原理與應(yīng)用.北京:北京大學(xué)出版社 20086鄭莉.董淵.張瑞豐.C+語言程序設(shè)計(jì).北京:清華大學(xué)出版社

27、20047唐文彥.傳感器.北京:機(jī)械工業(yè)出版社20108陳爾紹等.電子控制電路實(shí)例.北京:電子工業(yè)出版社 20049姜威.實(shí)用電子系統(tǒng)設(shè)計(jì)基礎(chǔ).北京:北京理工大學(xué)出版社200810毛興武等.新型電子器件及其應(yīng)用技術(shù) .北京:中國電力出版社 201011孟貴華.電子元器件選用入門.北京:機(jī)械工業(yè)出版社 200412黎小桃等.Protel99入門與提高.北京:電子工業(yè)出版社 200913郭強(qiáng).液晶顯示模塊應(yīng)用與調(diào)試 .北京:電子工業(yè)出版社 201014陳濤.單片機(jī)應(yīng)用及 C51程序設(shè)計(jì).北京:機(jī)械工業(yè)出版社 200815鐘睿.MCS-51單片機(jī)原理及應(yīng)用開發(fā)技術(shù).北京:中國鐵道出版社 2006附錄

28、1程序清單/*DHT11與 12864LCD*/*DHT11/*總線接P1A0 晶振 11.0592M*/*/*/#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar 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

29、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

30、,0x92,0x93,0x94,0x95,0x96,0x97,/0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,/第一行漢字位置第二行漢字位置第三行漢字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,/第四行漢字位置);sbit SID = P0A1;/讀寫信號sbit SCLK = P0A0;/ 串行時鐘信號sbit io = P1A3;/DHT11 總線uchar code lcd=" uchar code lcd1= uchar code lcd2= uchar code lcd3=環(huán)境監(jiān)測系統(tǒng)");

31、溫度:C");濕度:%RH"光強(qiáng):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; k<2; k+)lcd_pos(3,k+3);wr

32、ite_data(str1k);/clear_gcrom();/溫度for(j=0; j<2; j+) lcd_pos(2,j+3);write_data(str2j);delay(500);/*延時程序void delay1()/ */延時10usunsigned char i;for(i=0; i<3; 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 i

33、f ( X = 3 )pos = 0x88 ; else pos = 0x98 ; 數(shù)據(jù)指針=80+地址變量write_cmd(Y | pos); / /*DHT11模塊 */uchar receive_byte()/接收一個字節(jié)uchar i,temp;for(i=0;i<8; i+) 等待50us低電平結(jié)束,并防止死循環(huán)count = 2;while(!io) && count+)/temp = 0;delay1();delay1();delay1();if (io=1)temp = 1;count = 2;while(io && count+); e

34、lsetemp = 0;data_byte<<=1;data_byte|=temp;return (data_byte);*/開始信號,讀數(shù)據(jù)并校驗(yàn)/*開始信號void read_io()/ io = 0;delay(18);/主機(jī)拉低 18msio = 1;/DATA 總線由上拉電阻拉高主機(jī)延時20usdelay1();delay1();delay1();delay1();io = 1;/主機(jī)設(shè)置為輸入高電平,判斷從機(jī)響應(yīng)信號if(!io)(count = 2;while(!io)&&count+); 判斷DHT11發(fā)出80us低電平響應(yīng)信號是否結(jié)束 count

35、= 2;while(io && count+);/ 判斷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ù)校驗(yàn)if(num = CK_temp) (RH_data = RH_temp;RL_data = RL_temp;TH_da

36、ta = 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 口*/*12864模塊程序*/*void clear_gcrom() (uchar i,j,k;lcd_x = 0x80;lcd_y = 0x80;write_cmd(0x34);for(i = 0 ; i < 2 ; i+)/ 上下兩屏幕(for(j = 0 ; j < 32 ; j+)(write_cmd(lc

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論