资源描述:
《基于单片机的婴儿尿床踢被控制系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的婴儿尿床踢被控制系统本系统--可实现婴儿尿床实时报警,婴儿踢被实时报警,并实时显示当前温度,湿度注:DTH11传感器一个C语言程序如下:#include#includetypedefunsignedcharunint8;typedefunsignedcharunint16;unsignedchartable0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//不带小数点unsignedchartable1
2、[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点unsignedcharstr1[]={""};unsignedcharstr2[]={""};sbitTRH=P0^0;//温湿度传感器DHT11数据接入sbitxuanze=P0^1;sbitjia=P0^2;sbitjian=P0^3;sbitNC=P0^4;sbitNCLED=P0^6;sbitTB=P0^5;sbitTBLED=P0^7;bitflag1;bitflag2;bitflag
3、3;voiddisp(unint8str1,unint8str2,unint8str3,unint8str4);unint8TH_data,TL_data,RH_data,RL_data,CK_data;unint8TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;unint8com_data,untemp,temp;unint8respond;unint8wendu,shidu;unint8a,b,c,d;voiddelayNOP(){_nop_();_nop_();_nop_();_
4、nop_();}//毫秒级延时子程序voiddelay_ms(unsignedcharms){unsignedchari;while(ms--){for(i=0;i<150;i++){_nop_();_nop_();_nop_();_nop_();}}}//5us级延时程序voiddelay_us(){unint8i;i--;i--;i--;i--;i--;}charreceive(){unint8i;com_data=0;for(i=0;i<=7;i++){respond=2;while((!TRH)&&respo
5、nd++);delay_us();delay_us();delay_us();if(TRH){temp=1;respond=2;while((TRH)&&respond++);}elsetemp=0;com_data<<=1;com_data
6、=temp;}return(com_data);}voidread_TRH(){//主机拉低18msTRH=0;delay_ms(18);TRH=1;//DATA总线由上拉电阻拉高主机延时20usdelay_us();delay_us();delay_us();delay_us
7、();TRH=1;//判断DHT11是否有低电平响应信号如不响应则跳出响应则向下运行if(!TRH){respond=2;//判断DHT11发出80us的低电平响应信号是否结束while((!TRH)&&respond++);respond=2;//判断从机是否发出80us的高电平如发出则进入数据接收状态while(TRH&&respond++);//数据接收状态RH_temp=receive();RL_temp=receive();TH_temp=receive();TL_temp=receive();CK_t
8、emp=receive();TRH=1;//数据校验untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp==CK_temp){RH_data=RH_temp;RL_data=RL_temp;TH_data=TH_temp;TL_data=TL_temp;CK_data=CK_temp;}}//湿度整数部分str1[0]=0x92;//湿度部分str1[1]=0xff;str1[2]=table0[RH_data/10];str1[3]=table1[RH_data%10
9、];str2[0]=0xc6;//温度部分str2[1]=0xff;str2[2]=table0[TH_data/10];str2[3]=table1[TH_data%10];}//主函数//TH,TL,RH,RL分别代表温湿度的整数和小数部分voidmain(){delay_us();TMOD=0X01;//选择定时器工作方式TH0=(655