for(j=0;j<123;j++);
}
3.湿度传感器
#include
#defineucharunsignedchar
#defineuintunsignedint
longuintpulse=0;//计数输入的方波的个数;
longuintfreq=0;//频率
uchartemp=0;//临时变量
voiddelay_1ms(uinti)//延时函数,约1ms
{
uintx,j;
for(j=0;j
for(x=0;x<=148;x++);
}
voidTime0_lnit()//定时器和计数器的初始化函数
{
EA=1;//打开全局中断
TMOD=0x15;//设定定时器1和计数器0的工作方式为方式1
TH0=0xff;//计数器0的初值
TL0=0xff;//计数器0的初值
ET0=1;//允许计数器0中断
TR0=1;//打开计数器0,开始计数
TH1=0x3c;//定时器1的初值
TL1=0xb0;//定时器1的初值
ET1=1;//允许定时器1中断
TR1=1;//打开定时器1,开始计数
}
voidmain()
{
TimeO」nit();//初始化定时器和计数器
while
(1)
{delay_1ms
(1);if(freq>3000&&freq<6719)
{P仁0xff;〃开灯
}else
{P仁0;//关灯
}
}
}
voidISQ_timer0(void)interrupt1//用来计数脉冲数,每一个方波脉冲,计
数器进入中断,脉冲数加一
{
TR0=0;
pulse++;
TH0=0xff;
TL0=0xff;
TR0=1;
}/****************************************************************
用来设定时间,定时器的周期为50ms当经过20次后,
也即1s后,关断定时器和计数器,将一秒内计数的脉冲数赋给频率pulse,
一秒内采集的脉冲数即为输入方波的频率
****************************************************************/
voidISQ_time1()interrupt3
{_
TH1=0x3c;
TL1=0xb0;
temp++;
if(temp==20)
{
TR0=0;
TR1=0;temp=0;freq=pulse;
pulse=0;〃将脉冲数清零,重新计数
TR0=1;//打开计数器0,进入下一个循环
七、实验结果
三个传感器分别做成的单元电路都能够检测出滴漏
Whenyouareoldandgreyandfullofsleep,
Andnoddingbythefire,takedownthisbook,
Andslowlyread,anddreamofthesoftlook
Youreyeshadonce,andoftheirshadowsdeep;
Howmanylovedyourmomentsofgladgrace,
Andlovedyourbeautywithlovefalseortrue,
Butonemanlovedthepilgrimsoulinyou,
Andlovedthesorrowsofyourchangingface;
Andbendingdownbesidetheglowingbars,
Murmur,alittlesadly,howlovefled
Andpaceduponthemountainsoverhead
Andhidhisfaceamidacrowdofstars.
Thefurthestdistaneeintheworld
Isnotbetweenlifeanddeath
ButwhenIstandinfrontofyou
Yetyoudon'tknowthat
Iloveyou.
Thefurthestdistaneeintheworld
IsnotwhenIstandinfrontofyou
Yetyoucan'tseemylove
Butwhenundoubtedlyknowingthelovefromboth
Yetcannotbetogether.
Thefurthestdistaneeintheworld
Isnotbeingapartwhilebeinginlove
ButwhenIplainlycannotresisttheyearning
Yetpretendingyouhaveneverbeeninmyheart.
Thefurthestdistaneeintheworld
Isnotstrugglingagainstthetides
Butusingone'sindifferentheart
Todiganunerossableriver
Fortheonewholovesyou.