![單片機(jī)課程設(shè)計(jì)室外環(huán)境參量檢測(cè)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/5f967afe-d7a9-4289-90ec-db87cd708101/5f967afe-d7a9-4289-90ec-db87cd7081011.gif)
![單片機(jī)課程設(shè)計(jì)室外環(huán)境參量檢測(cè)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/5f967afe-d7a9-4289-90ec-db87cd708101/5f967afe-d7a9-4289-90ec-db87cd7081012.gif)
![單片機(jī)課程設(shè)計(jì)室外環(huán)境參量檢測(cè)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/5f967afe-d7a9-4289-90ec-db87cd708101/5f967afe-d7a9-4289-90ec-db87cd7081013.gif)
![單片機(jī)課程設(shè)計(jì)室外環(huán)境參量檢測(cè)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/5f967afe-d7a9-4289-90ec-db87cd708101/5f967afe-d7a9-4289-90ec-db87cd7081014.gif)
![單片機(jī)課程設(shè)計(jì)室外環(huán)境參量檢測(cè)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/5f967afe-d7a9-4289-90ec-db87cd708101/5f967afe-d7a9-4289-90ec-db87cd7081015.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及系統(tǒng)課程設(shè)報(bào)告單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)評(píng)語(yǔ):考勤10分守紀(jì)10分過(guò)程30分設(shè)計(jì)報(bào)告30分答辯20分總成績(jī)(100)專(zhuān) 業(yè): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 基于單片機(jī)的戶(hù)外環(huán)境檢測(cè) 1.引言 通過(guò)一個(gè)學(xué)期的學(xué)習(xí),我認(rèn)為要學(xué)好單片機(jī)這門(mén)課程,不僅要認(rèn)真學(xué)習(xí)課本知識(shí),更重要的是要學(xué)會(huì)通過(guò)實(shí)踐鞏固學(xué)到的知識(shí),本次課設(shè)中我們?cè)O(shè)計(jì)制作的題目是基于單片機(jī)的戶(hù)外環(huán)境檢測(cè)。1.1設(shè)計(jì)背景 隨著世界各國(guó)經(jīng)濟(jì)的增長(zhǎng),自然界儲(chǔ)存的資源,如煤、石油等各種礦藏被廣泛地開(kāi)發(fā)和利用。由于人口密集的大城市和工礦區(qū)的建立,使大量化學(xué)物質(zhì)進(jìn)入環(huán)境,超過(guò)了大自然的自?xún)裟芰?,在環(huán)境中不斷積累,產(chǎn)生了危及人類(lèi)生存
2、的公害。環(huán)境與人類(lèi)生活息息相關(guān),人類(lèi)社會(huì)在使用各種能源的活動(dòng)中,經(jīng)常帶來(lái)破壞環(huán)境的負(fù)作用。隨著環(huán)境問(wèn)題的日益嚴(yán)峻,人們對(duì)環(huán)境保護(hù)也越來(lái)越關(guān)注。我國(guó)的環(huán)境保護(hù)工作雖然取得積極進(jìn)展,但環(huán)境形勢(shì)依然十分嚴(yán)峻,環(huán)境管理嚴(yán)重滯后,與環(huán)境保護(hù)任務(wù)要求不相適應(yīng),為全面落實(shí)科學(xué)發(fā)展觀,必須把環(huán)境保護(hù)擺在更加重要的戰(zhàn)略位置。此次,我想用所學(xué)的知識(shí),對(duì)戶(hù)外環(huán)境中的部分量進(jìn)行檢測(cè)。2.設(shè)計(jì)背景及原理2.1 系統(tǒng)設(shè)計(jì)方案此次單片機(jī)proteus仿真設(shè)計(jì),根據(jù)其中需要測(cè)量的量,分為下面幾個(gè)部分。 (1)各個(gè)傳感器的仿真以及將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),檢測(cè)各個(gè)需要測(cè)量的環(huán)境參量,如CO,pm2.5,溫度,濕度以及風(fēng)速,保證
3、各信號(hào)均為數(shù)字信號(hào)的情況下,輸入單片機(jī)I/O口; (2)在單片機(jī)中燒錄下程序,處理各個(gè)數(shù)字信號(hào),送入LCD以及蜂鳴器報(bào)警裝置; (3)在LCD屏上顯示各個(gè)信號(hào)。2.2 檢測(cè)器原理環(huán)境檢測(cè)的工作原理是,模擬現(xiàn)實(shí)傳感器,運(yùn)用滑動(dòng)變阻器的分壓原理設(shè)計(jì)出風(fēng)速以及CO的檢測(cè)傳感器,并且采用30s一次的脈沖信號(hào)模擬現(xiàn)實(shí)中pm2.5傳感器在空氣中30s回復(fù)一次數(shù)據(jù)。將部分傳感器輸出的模擬信號(hào)運(yùn)用ADC0832器件轉(zhuǎn)換為數(shù)字信號(hào),在單片機(jī)中運(yùn)用程序處理后輸出到LCD顯示屏。至于個(gè)信號(hào)的變動(dòng),可以從傳感器出進(jìn)行變化。當(dāng)模擬PM2.575時(shí)蜂鳴器鳴叫,表示空氣中的pm2.5過(guò)標(biāo)。3.硬件設(shè)計(jì)3.1電路原理圖P0.
4、0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7為L(zhǎng)CD屏的輸入口,P2.2,P2.3,P2.4為L(zhǎng)CD屏對(duì)應(yīng)的RS,RW以及E口,P2.6,P2.7是溫濕度傳感器SHT11輸入口,P2.0,P2.1,P2.5為ADC0832輸入口,P3.2是pm2.5的數(shù)字輸入口,P1.0是報(bào)警輸入口。 圖1 系統(tǒng)原理總框圖3.2硬件電路板主要器件 硬件電路板主要元器件如下頁(yè): 表1 硬件電路板主要元器件名稱(chēng)單位數(shù)量AT89C51芯片電阻電容電容LEDLCD1016ADC0832滑動(dòng)變阻器 10k22pf12uf2.2V250kHZ100k152111123.3 主要器件介紹 (1)
5、LCD屏:1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地 第2腳:VDD接5V電源正極 第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度).第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器.第5腳:RW為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作.第6腳:E(或EN)端為使能(enable)端.第714腳:D0D7為8位雙向數(shù)據(jù)端.第1516腳:空腳或背燈電源.15腳背光正極,16腳背光負(fù)極. (2)ADC0832 ADC0832
6、為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。芯片具有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差, 轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨(dú)立的芯片使能輸入,使多器件連接和處理器控制變得更加方便。通過(guò)DI數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇。CS_ 片選使能,低電平芯片使能。CH0 模擬輸入通道0,或作為IN+/-使用。CH1 模擬輸入通道1,或作為IN+/-使用。GND 芯片參考0電位(地)。DI數(shù)據(jù)信號(hào)輸入,選擇通道控制。DO 數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出。CLK 芯片時(shí)鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復(fù)用)。 (3)SHT11 溫濕度傳感器SHT1
7、1將溫度感測(cè)、濕度感測(cè)、信號(hào)變換、AD轉(zhuǎn)換和加熱器等功能集成到一個(gè)芯片上,其內(nèi)部結(jié)構(gòu)如圖2所示。該芯片包括一個(gè)電容性聚合體濕度敏感組件和一個(gè)用能隙材料制成的溫度敏感組件。這兩個(gè)敏感組件分別將濕度和溫度轉(zhuǎn)換成電信號(hào),該電信號(hào)首先進(jìn)入微弱信號(hào)放大器進(jìn)行放大;然后進(jìn)入一個(gè)14位的AD轉(zhuǎn)換器;最后經(jīng)過(guò)二線串行數(shù)字接口輸出數(shù)字信號(hào)。 (4)排阻 排阻的作用:驅(qū)動(dòng),電流不夠,加排阻增加電流嘛,排阻一般有九個(gè)腳,一個(gè)腳接VCC,其腳接單片機(jī)I/o口,比如說(shuō)P0口,一般需要加排阻。4.軟件設(shè)計(jì)4.1LCD屏顯示 T代表溫度,圖為28攝氏度;R代表濕度,圖為88g/m3,F(xiàn)為風(fēng)速,是128m/s、pm2.5是4
8、9ug/m3,CO是115mg/m3。 E是高電平,R/W是低電平,RS是低電平,這是LCD處于寫(xiě)入命令寄存器;E是高電平,R/W是低電平,RS是高電平,這是LCD處于寫(xiě)入數(shù)據(jù)寄存器;E是高電平,R/W是高電平,RS是低電平,這時(shí)LCD處于讀取忙碌標(biāo)志,及RAM地址;E是高電平,R/W是高電平,RS是高電平,讀取RAM數(shù)據(jù);E是低電平,LCD沒(méi)動(dòng)作。4.2 程序流程圖在本設(shè)計(jì)中包括了主函數(shù),SHT11溫濕度函數(shù),LCD1602函數(shù)延時(shí)函數(shù),ADC0832函數(shù)。 圖2 ADC0832流程圖 圖2是AD轉(zhuǎn)換,將風(fēng)速和CO模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),即為ADC0832的程序框圖。圖中首先啟動(dòng)ADC083
9、2片選,置高電平接受數(shù)據(jù),然后讀取數(shù)據(jù)倆次,校驗(yàn)相等,就可返回AD。 圖3主程序流程圖 主程序是先對(duì)pm2.5和定時(shí)器進(jìn)行初始化,接著采集各個(gè)信號(hào),如pm2.5,CO的濃度,風(fēng)速等。 圖4,圖5,圖6是LCD屏的初始化,分為寫(xiě)字符流程圖,液晶初始化流程圖,顯示字符子程序。 圖4 寫(xiě)字符流程圖 圖5 液晶初始化流程圖 圖6顯示字符子程序 圖7 中斷PM2.5采集流程圖 圖8 SHT11溫濕度子程序流程圖 圖7是pm2.5信號(hào)的采集以及處理,而圖8則是溫濕度數(shù)據(jù)的讀取以及轉(zhuǎn)換處理。5.總結(jié) 在此次課程設(shè)計(jì)的過(guò)程中,我運(yùn)用proteus仿真軟件對(duì)戶(hù)外環(huán)境的相關(guān)量進(jìn)行了模擬檢測(cè),收獲很多。在本次課設(shè)中
10、,我意識(shí)到將理論知識(shí)與實(shí)踐相結(jié)合的重要性,對(duì)于單片機(jī)這樣的課程,僅僅通過(guò)了解課本上的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,我通過(guò)查資料和搜集有關(guān)文獻(xiàn),培養(yǎng)了自學(xué)能力,通過(guò)利用軟件仿真和焊接電路,在很大程度上提高了我的動(dòng)手能力。我們?cè)谡n設(shè)的過(guò)程中,遇到了很多問(wèn)題,比如 在設(shè)計(jì)程序的過(guò)程中,很多知識(shí)需要再進(jìn)行努力,類(lèi)似的問(wèn)題出現(xiàn)了很多,我們通過(guò)一一排查,終于完成了課設(shè)任務(wù),結(jié)果表明,有付出必有收獲,把握重點(diǎn)、攻克難關(guān),活學(xué)活用對(duì)于牢固的掌握知識(shí),是非常有用的。在此次課設(shè)中,我學(xué)到了很多,也通過(guò)不斷糾正自己的錯(cuò)誤,意識(shí)到自身的不足,我對(duì)知識(shí)的掌握還沒(méi)有實(shí)現(xiàn)深層次的理解記憶,我相信這些教訓(xùn)都為我以后的學(xué)習(xí)奠定了良好的基礎(chǔ)
11、,時(shí)刻牢記知識(shí)永遠(yuǎn)很多的道理。 參 考 文 獻(xiàn)1 王思明,張金敏,茍軍年.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:人民郵電出版社,2008.2 馮育長(zhǎng),鄒小兵.單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例指導(dǎo)M. 西安:西安電子科技大學(xué)出版社,2004.3 譚浩強(qiáng).C程序設(shè)計(jì)(第四版)北京:清華大學(xué)出版社2013 附錄 源程序程序如下:#include #include #include #include #include #include #include#include sbit PWM=P32;uint number_t0=0; uint lt_time=0; /低脈沖時(shí)間uchar lt_rate=0; /低脈沖率
12、sbit BEEP=P10;void main() SHT_dat aa;InitLcd();lcd_pos(0x40);LCD_DisStr(PM2.5=) ; /beep(1);TMOD |= 0x01;TH0=0xfc; /晶振:11.0592MHz,定時(shí)1msTL0=0x66;ET0=1;TR0=1;EA=1;BEEP=0; while(1) convert_SHT(&aa,TEMP); /溫度轉(zhuǎn)換 convert_SHT(&aa,HUMI); /濕度轉(zhuǎn)換 caculation_SHT(&aa); /溫度和濕度的補(bǔ)償 float_convert(&aa); /將浮點(diǎn)數(shù)轉(zhuǎn)換成整型,各個(gè)位
13、的數(shù)分別保存lcd_pos(0x00);LCD_DisStr(T:) ; /WriteData(aa.num_temp0);WriteData(aa.num_temp1);WriteData(aa.num_temp2);lcd_pos(0x05);LCD_DisStr(R:) ; /WriteData(aa.num_humi0);WriteData(aa.num_humi1);WriteData(aa.num_humi2); lcd_pos(0x46);xianshi_three(lt_rate);if(lt_rate49) BEEP=1;delay_ms(300);BEEP=0; lcd_p
14、os(0xb);LCD_DisStr(F:) ;xianshi_three( GetAD0832(0) ); lcd_pos(0x4a);LCD_DisStr(CO:) ;xianshi_three( GetAD0832(1) ); void timer0() interrupt 1 using 1 /T/C0中斷服務(wù)程序, 每1ms中斷一次 number_t0+; if(PWM=0) lt_time+; /每1ms檢測(cè)PWM脈沖是否為低電平 if(number_t0=30000) /number_t0計(jì)數(shù)到30000MS,即30S,計(jì)算低脈沖率 TR0=0; /關(guān)閉定時(shí)器0lt_rate=(
15、int)(lt_time/300); /計(jì)算PM2.5number_t0=0; /30S時(shí)間計(jì)數(shù)器和低脈沖率變量初始化為0,開(kāi)始下一個(gè)測(cè)量周期lt_time=0;TR0=1; / 啟動(dòng)定時(shí)器0TH0=0xfc;TL0=0x66;#include /#include #include void delay_us(uint t) /11.0592晶振 普通51在 delay_us(1) 延時(shí)30usuint delay_time=t;while(delay_time-);void delay_ms(uint x) /11.0592晶振 普通51在delay_ms(1) 延時(shí)1msuint i,j;
16、for(j=0;jx;j+)for(i=0;i110;i+); void delay_s(uint x) /11.0592晶振 普通51在delay_s(1) 延時(shí)1suint j;for(j=0;jx;j+) delay_ms(1030); /void delay_us(uint t) /11.0592晶振 1T單片機(jī)51 在delay_us(1) 延時(shí)5us (如 STC12C5A60S2)/uint delay_time=t;/while(delay_time-)/;/void delay_ms(uint x) /11.0592晶振 1T單片機(jī)51 在delay_ms(1) 延時(shí)1ms
17、(如 STC12C5A60S2)/uint i,j;/for(j=0;jx;j+)/for(i=0;i940;i+);/void delay_s(uint x) /11.0592晶振 1T單片機(jī)51 在delay_s(1) 延時(shí)1s (如 STC12C5A60S2)/uint j;/for(j=0;jx;j+)/ delay_ms(1000);/*void delay_us(uint t) /延時(shí)函數(shù),普通51在12M晶振 delay_us(1) =20usuint delay_time=t;while(delay_time-);void delay_ms(uint x) /延時(shí)函數(shù),普通51
18、在12M晶振 delay_ms(1) =1msuint i,j;for(j=0;jx;j+)for(i=0;i120;i+);void delay_s(uint x) /延時(shí)函數(shù),普通51在12M晶振 delay_s(1) =1suint j;for(j=0;jx;j+) delay_ms(1040);/*/#ifndef _delay_H_#define _delay_H_#define uchar unsigned char#define uint unsigned int#define ulint unsigned longvoid delay_us(uint t);void delay
19、_ms(uint x);void delay_s(uint x);#endif#ifndef _lcd1602_H_#define _lcd1602_H_ #include /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include /標(biāo)準(zhǔn)輸入輸出#include#define uchar unsigned char#define uint unsigned int#define ulint unsigned longsbit RS = P22; /Pin4sbit RW = P23; /Pin5sbit E = P24; /Pin6#define Data P0/數(shù)據(jù)端
20、口void DelayUs(unsigned char us);/delay usvoid DelayMs(unsigned int ms);void WriteCommand(unsigned char c);void WriteData(unsigned char c);void InitLcd();void lcd_pos(uchar pos);void LCD_DisStr(uchar* str) ;void show_wendu0();void show_name();void xianshi_three(unsigned char s);#endif#includeextern u
21、char TempBuffer;extern uint temp_value;unsigned char code digit=0123456789ABCDEF; /定義字符數(shù)組顯示數(shù)/*/* 微秒延時(shí)函數(shù) */*/void DelayUs(unsigned char us)/delay us unsigned char uscnt; uscnt=us1; /*12MHz頻率*/ while(-uscnt);/*/* 毫秒函數(shù)聲明 */*/void DelayMs(unsigned int ms) while(-ms) DelayUs(250); DelayUs(250); DelayUs(2
22、50); DelayUs(250); /*/* 寫(xiě)入命令函數(shù) */*/void WriteCommand(unsigned char c) DelayMs(5);/操作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=0; RW=0; _nop_(); E=1; Data=c; E=0;/*/* 寫(xiě)入數(shù)據(jù)函數(shù) */*/void WriteData(unsigned char c) DelayMs(5); /操作前短暫延時(shí),保證信號(hào)穩(wěn)定 E=0; RS=1; RW=0; _nop_(); E=1; Data=c; E=0; RS=0;void lcd_pos(uchar pos) /第一行地址是00-0
23、f,第二行地址是40-4F、 WriteCommand(pos | 0x80); /數(shù)據(jù)指針=80+地址變量 /*/* 寫(xiě)入字節(jié)函數(shù) */*/ void LCD_DisStr(uchar* str) /顯示字符串函數(shù)uchar *p;p=str;while(*p!=0)WriteData(*p);p+;return;/*/* 初始化函數(shù) */*/void InitLcd() DelayMs(15); WriteCommand(0x38); /display mode WriteCommand(0x38); /display mode WriteCommand(0x38); /display m
24、ode WriteCommand(0x06); /顯示光標(biāo)移動(dòng)位置 WriteCommand(0x0c); /顯示開(kāi)及光標(biāo)設(shè)置 WriteCommand(0x01); /顯示清屏void xianshi_three(unsigned char s) unsigned char i,j,z; /j,k,l分別儲(chǔ)存溫度的百位、十位和個(gè)位 i=s/100; j=s%100/10; z=s%10%10;WriteData(digiti); /將百位數(shù)字的字符常量寫(xiě)入LCDWriteData(digitj); /將十位數(shù)字的字符常量寫(xiě)入LCDWriteData(digitz); DelayMs(1);
25、/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間 #define uchar unsigned char #define uint unsigned int #define NOP() _nop_() #define TEMP 0 #define HUMI 1 sbit DQ=P27; /端口定義 sbit SCK=P26; typedef struct float temperature; float humidity; float crc_temp; float crc_humi; uchar num_temp5; uchar num_humi5; SHT_dat; /*= 啟動(dòng)函數(shù) =*/ void in
26、it_SHT() DQ=1; SCK=0; NOP(); SCK=1; NOP(); DQ=0; NOP(); SCK=0; NOP(); NOP(); NOP(); SCK=1; NOP(); DQ=1; NOP(); SCK=0; /*= 字節(jié)傳送函數(shù) =*/ uchar write_byte(uchar value) uchar i,error=0; for(i=0x80;i0;i/=2) /高位先傳送 if(i & value)DQ=1; /循環(huán)相與,結(jié)果即為要發(fā)送的位 else DQ=0; SCK=1; NOP(); NOP(); NOP(); SCK=0; DQ=1; /釋放總線
27、SCK=1; if(DQ=1) error=1; /檢查應(yīng)答,確認(rèn)通訊正常 SCK=0; return error; /error1,通訊有誤 /*= 讀數(shù)據(jù)函數(shù) =*/ uchar read_byte(uchar dat) uchar i,val=0; DQ=1; for(i=0x80;i0;i/=2) SCK=1; if(DQ) val=(val | i); SCK=0; DQ=dat; SCK=1; NOP(); NOP(); NOP(); SCK=0; DQ=1; return val; /*= 復(fù)位函數(shù) =*/ void reset_SHT() uchar i; DQ=1; SCK=
28、0; for(i=0;i9;i+) /DATA保持高電平,SCK時(shí)鐘出發(fā)9次復(fù)位 SCK=1; NOP(); SCK=0; init_SHT(); /*= 發(fā)送指令到SHT11執(zhí)行溫度和濕度的測(cè)量轉(zhuǎn)換 =*/ convert_SHT(SHT_dat *s,uchar mode) uchar i,ack=0; uchar valueM,valueL,checksum; float com; doreset_SHT(); switch(mode) case TEMP: ack=write_byte(0x03);break; case HUMI: ack=write_byte(0x05);break
29、; default: break; while(ack=1); for(i=0;itemperature=com; s-crc_temp=(float)checksum; if(mode=HUMI) s-humidity=com; s-crc_humi=(float)checksum; /*= 溫度和濕度補(bǔ)償及輸出溫度值和相對(duì)濕度值 =*/ void caculation_SHT(SHT_dat *s) const float c1=-4.0; const float c2=+0.0405; const float c3=-0.0000028; /以上為12位濕度修正公示取值 const fl
30、oat t1=+0.01; const float t2=+0.00008; /以上為14位溫度修正公示取值 float t=s-temperature; float rh=s-humidity; float rh_lin; float rh_ture; float t_c; t_c=t * 0.01 - 40; /溫度的補(bǔ)償 rh_lin=c3*rh*rh + c2*rh + c1; /相對(duì)濕度非線性補(bǔ)償 rh_ture=( t_c - 25 ) * ( t1 + t2*rh ) + rh_lin; /相對(duì)濕度對(duì)于溫度依賴(lài)性補(bǔ)償 if( rh_ture 100 ) rh_ture=100;
31、/相對(duì)濕度最大值修正 if( rh_ture 0.1 ) rh_ture=0.1; /相對(duì)濕度最小值修正 if(t_ctemperature=(t_c); /保存溫度補(bǔ)償后的結(jié)果 s-humidity=rh_ture-1; /保存相對(duì)濕度補(bǔ)償后的結(jié)果 /*= 計(jì)算絕對(duì)濕度值 = float calc_dewpoint(float h,float t) float logEx,dew_point; logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2); dew_point = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx);
32、 return dew_point; /*= 浮點(diǎn)數(shù)數(shù)據(jù)處理 =*/ void float_convert(SHT_dat *s) float com; uint dat; com=s-temperature; com*=100; dat=(uint)com; s-num_temp0=dat%100000/10000+0x30; /十位 s-num_temp1=dat%10000/1000+0x30; /十位 s-num_temp2=dat%1000/100+0x30; /個(gè)位 s-num_temp3=dat%100/10+0x30; /小數(shù)點(diǎn)第一位 s-num_temp4=dat%10+0x
33、30; /小數(shù)點(diǎn)第二位 com=s-humidity; com*=100; dat=(uint)com; s-num_humi0=dat%100000/10000+0x30; /十位 s-num_humi1=dat%10000/1000+0x30; /十位 s-num_humi2=dat%1000/100+0x30; /個(gè)位 s-num_humi3=dat%100/10+0x30; /小數(shù)點(diǎn)第一位 s-num_humi4=dat%10+0x30; /小數(shù)點(diǎn)第二位 #include /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include #include #includ
34、e uchar GetAD0832(bit Channel) uchar i=0 , Data1 =0 , Data2 = 0 ; AD0832_CLK = 0 ; /時(shí)鐘置低平/時(shí)鐘12Mhz, 整個(gè)轉(zhuǎn)換時(shí)間為224us /使用芯片準(zhǔn)備(參考PDF時(shí)序圖) AD0832_DI = 1 ; /開(kāi)始信號(hào)為高電平 AD0832_CS = 0 ; /片選信號(hào)置低,啟動(dòng)AD轉(zhuǎn)換芯片 AD0832_CLK = 1 ; /輸入開(kāi)始信號(hào)(構(gòu)成一個(gè)正脈沖),時(shí)鐘上升沿,輸入開(kāi)始信號(hào) AD0832_CLK = 0 ; /時(shí)鐘下降沿 /模擬信號(hào)輸入模式選擇(1:?jiǎn)文P盘?hào),0:雙模差分信號(hào)) AD0832_DI =
35、 1 ; AD0832_CLK = 1 ; /時(shí)鐘上升沿,輸入開(kāi)始信號(hào) AD0832_CLK = 0 ; /時(shí)鐘下降沿 /模擬信號(hào)輸入通道選擇(1:通道CH1,0:通道CH0) AD0832_DI = Channel ; /選擇通道0 AD0832_CLK = 1 ; /時(shí)鐘上升沿,輸入開(kāi)始信號(hào) AD0832_CLK = 0 ; /時(shí)鐘下降沿 AD0832_DI = 1 ; /數(shù)據(jù)線置高,準(zhǔn)備接收數(shù)據(jù)for(i=0;i8;i+) /從高位移入數(shù)據(jù) AD0832_CLK = 1 ; AD0832_CLK = 0 ; /時(shí)鐘下降沿,AD0832輸出數(shù)據(jù),高位(MSB)先 Data1 = Data11;/數(shù)據(jù)左移位,補(bǔ)0 if(AD0832_DI =1) Data1 = Data1 | 0x01; /如果數(shù)據(jù)為1,移入1, /如果數(shù)據(jù)為0,移入0, for(i=0;i1;/數(shù)據(jù)左移位,補(bǔ)0 if(AD0832_DI =1) Data2 = Data2 | 0x80; /如果數(shù)據(jù)為1,移入1如果數(shù)據(jù)為0,移入0, AD0832_CLK = 1 ; AD
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候變化下農(nóng)業(yè)生態(tài)系統(tǒng)的適應(yīng)性調(diào)整研究進(jìn)展
- 物聯(lián)網(wǎng)技術(shù)在智能家居生態(tài)圈的應(yīng)用前景
- 國(guó)慶節(jié)秋天主題活動(dòng)方案
- 現(xiàn)代辦公樓電力維護(hù)成本深度剖析
- 現(xiàn)代物流技術(shù)與醫(yī)療行業(yè)互補(bǔ)與共進(jìn)
- Unit 4 Friends Forever Understanding ideas 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)外研版(2019)必修第一冊(cè)001
- 2023八年級(jí)物理上冊(cè) 第四章 在光的世界里第6節(jié) 神奇的眼睛說(shuō)課稿(新版)教科版
- 6《觀察土壤》說(shuō)課稿-2023-2024學(xué)年科學(xué)四年級(jí)下冊(cè)教科版
- 2023二年級(jí)語(yǔ)文上冊(cè) 第八單元 24 風(fēng)娃娃說(shuō)課稿 新人教版
- 18《文言文二則 鐵杵成針》(說(shuō)課稿)2023-2024學(xué)年-統(tǒng)編版四年級(jí)語(yǔ)文下冊(cè)
- 2025年度院感管理工作計(jì)劃(后附表格版)
- 勵(lì)志課件-如何做好本職工作
- 化肥銷(xiāo)售工作計(jì)劃
- 2024浙江華數(shù)廣電網(wǎng)絡(luò)股份限公司招聘精英18人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案解析)
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2025中考英語(yǔ)作文預(yù)測(cè):19個(gè)熱點(diǎn)話題及范文
- 暑假作業(yè) 10 高二英語(yǔ)完形填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語(yǔ)暑假培優(yōu)練(人教版2019)
- 2024年建筑業(yè)10項(xiàng)新技術(shù)
- 語(yǔ)文七年級(jí)下字帖打印版
- 螺栓扭緊力矩表
評(píng)論
0/150
提交評(píng)論