#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
sbit ydcgq=P1^1; //引脚
sbit led=P1^2; //引脚
sbit beep=P1^5; //引脚
typedef unsigned int u16;
typedef unsigned char u8;
unsigned char date;
void delays(unsigned int n) //毫秒延时函数
{
unsigned int a,b;
for(a=0;a<n;a++)
for(b=0;b<110;b++);
}
void delay(u16 i) //10倍微秒延时函数,延时10*t微秒
{
while(i--);
}
void Alarm(u8 t) //蜂鸣器报警,持续t秒
{
u8 i,j;
for(j=0;j<t;j++)
{ for(i=0;i<200;i++)
{beep=0;delay(50);beep=1;delay(50);}
//for(k=0;k<100;k++)
// {beep=0;delay_us(110);beep=1;delay_us(110);}
}
}
void Initial_com(void)
{
EA=1; //开总中断
ES=1; //允许串口中断
ET1=1; //允许定时器T1的中断
TMOD=0x20; //定时器T1,在方式2中断产生波特率
PCON=0x00; //SMOD=0
SCON=0x50; // 方式1 由定时器控制
TH1=0xfd; //波特率设置为9600
TL1=0xfd;
TR1=1; //开定时器T1运行控制位
}
void main()
{
Initial_com();
while(1)
{
if(ydcgq==0)//检测到雨滴
{
led=0;
delay(50000); //450ms
led=1;
delay(50000); //450ms
Alarm(5);//启动报警响5秒
}
if(ydcgq==1)//未检测到雨滴
{
beep=led=0; // 关闭beep 和 led
}
if(RI)
{
date=SBUF;
SBUF=date;
RI=0;
}
}
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询