濕度傳感器HS1101在智能家居控制系統中的應用
3軟件設計
軟件設計主要完成對HSl 101在單位時(shí)間內的頻率測量。軟件設計采用端口掃描方式,間隔8S開(kāi)始測量,測量時(shí)間為1S。統計單位時(shí)間內脈沖的個(gè)數,與表3對照,確定濕度值的范圍,并將濕度值通過(guò)LCD顯示。為了保證測量精度,可以取3次以上測量數據,求平均值后,作為最終送顯示數據。微處理器工作晶體選用12.000MHz。程序代碼采用嵌入式C語(yǔ)言編寫(xiě),經(jīng)在A(yíng)DSl.2編譯環(huán)境中進(jìn)行編譯后,移植到微處理器內執行。軟件主要測量代碼如下,并給出了詳細注釋。
Do
{
IODIR0=10DIROIRO&OXOfffffbf:
//p0.6設置成輸入
d0 //讀IO口寄存器
{ if((IOPIN0(10x06))==0x00000000)
break: //檢測0電平
} while(1);
Do
{ if((IOPIN0(10x06))!=Ox00000000)
break: //檢測l電平
}while(1);
fdat++: //累積1S時(shí)間內脈沖個(gè)數
} while(pt8s%8==0); //間隔8S測量一次
fdat--;
time(1); //延時(shí)必須保留
if((fdat>6033)(fdat6187))rhb=90;
//將測量數值轉換為對應百分比,1%一100%
if((fdat>6186)(fdat6331))rhb=80;
if((fdat>6330)(fdat6469))rhb=70;
if((fdat>6468)(fdat6601))rhb=60;
if((fdat>6600)(fdat6729))rhb=50;
if((fdat>6728)(fdat6854))rhb=40;
if((fdat>6853)(fdat6977))rhb=30;
if((fdat>6976)(fdat7101))rhb=20;
if((fdat>7100)(fdat7225))rhb=10;
if(fdat>7224)rhb=00:
lhb=fdat%100: //對測量數值取低兩位
time(1); //處理需要等待一段時(shí)間,否則lhb=0
if((rhb==60)(rhb==70)(rhb==90))lhb=lhb/
13: //對低兩位數值取個(gè)位,
else if(rhb==80)lhb=lhb/1 4;
else lhb=lhb/12;
time(1);
rhb=rhb+lhb; //將數據合成一起,送顯示
fdat=Ox00000000;//清0,為下次準備
}
4結語(yǔ)
由于HSll01采用獨特的電容式單元設計,具有響應速度快、體積小、線(xiàn)性度好、較穩定等優(yōu)點(diǎn),我們將HSll01用在智能家居控制系統中,完成對空氣濕度的測量,經(jīng)長(cháng)期應用,性能達到了穩定可靠,同時(shí)也實(shí)現了對低成本的要求。
評論