智能家居, 曲线显示 甲醛 温湿度
主要是通过串口,把甲醛浓度,温湿度读取出来,然后再在屏幕上显示给用户看
视频效果如下: https://v.youku.com/v_show/id_XNjQ4OTk4NzU0NA==.html
界面如下:
屏幕代码如下:
void JiaQuanKuangDisp(void)
{
static u8 disp[2];
static u16 Counttime=0;
u8 wrdata[8];
u16 dispQuxian=0;
// if(!memcmp(disp,KongQiQ.JiaQuan,2))
// return;
memcpy(disp,KongQiQ.JiaQuan,2);
Write_Dgus(0x2000,KongQiQ.JiaQuan[0]<<8|KongQiQ.JiaQuan[1]);
memset(wrdata,0,sizeof(wrdata));
dispQuxian=(KongQiQ.JiaQuan[0]<<8|KongQiQ.JiaQuan[1])*41.6;
if(dispQuxian>1000)
dispQuxian=1000;
wrdata[0]=0x5a;
wrdata[1]=0xa5;
wrdata[2]=1;//占用1个通道
wrdata[3]=0;//未定义不用管
wrdata[4]=0;//通道0
wrdata[5]=1;//1个16位数据
wrdata[6]=dispQuxian>>8;
wrdata[7]=dispQuxian;
write_dgusii_vp(0x310,wrdata,8);
}
void WenDuDisp(void)
{
static u8 disp[2];
u16 disp2=0;
u8 wrdata[8];
u16 dispQuxian=0;
// if(!memcmp(disp,KongQiQ.Wendu,2))
// return;
memcpy(disp,KongQiQ.Wendu,2);
disp2=KongQiQ.Wendu[0]*10+KongQiQ.Wendu[1];
Write_Dgus(0x2001,disp2);
memset(wrdata,0,sizeof(wrdata));
dispQuxian=(disp2)*2.5;
if(dispQuxian>1000)
dispQuxian=1000;
wrdata[0]=0x5a;
wrdata[1]=0xa5;
wrdata[2]=1;//占用1个通道
wrdata[3]=0;//未定义不用管
wrdata[4]=1;//通道0
wrdata[5]=1;//1个16位数据
wrdata[6]=dispQuxian>>8;
wrdata[7]=dispQuxian;
write_dgusii_vp(0x310,wrdata,8);
}
void ShiDuDisp(void)
{
static u8 disp[2];
u16 disp2=0;
u8 wrdata[8];
u16 dispQuxian=0;
// if(!memcmp(disp,KongQiQ.Shidu,2))
// return;
memcpy(disp,KongQiQ.Shidu,2);
disp2=KongQiQ.Shidu[0]*10+KongQiQ.Shidu[1];
Write_Dgus(0x2002,disp2);
memset(wrdata,0,sizeof(wrdata));
dispQuxian=(disp2)*0.833;
if(dispQuxian>1000)
dispQuxian=1000;
wrdata[0]=0x5a;
wrdata[1]=0xa5;
wrdata[2]=1;//占用1个通道
wrdata[3]=0;//未定义不用管
wrdata[4]=2;//通道0
wrdata[5]=1;//1个16位数据
wrdata[6]=dispQuxian>>8;
wrdata[7]=dispQuxian;
write_dgusii_vp(0x310,wrdata,8);
}
void TVOC_Disp(void)
{
static u8 disp[2];
static u16 Counttime=0;
u8 wrdata[8];
u16 dispQuxian=0;
memcpy(disp,KongQiQ.TVOC,2);
Write_Dgus(0x2003,KongQiQ.TVOC[0]<<8|KongQiQ.TVOC[1]);
memset(wrdata,0,sizeof(wrdata));
dispQuxian=(KongQiQ.TVOC[0]<<8|KongQiQ.TVOC[1])*0.416;
if(dispQuxian>1000)
dispQuxian=1000;
wrdata[0]=0x5a;
wrdata[1]=0xa5;
wrdata[2]=1;//占用1个通道
wrdata[3]=0;//未定义不用管
wrdata[4]=3;//通道3
wrdata[5]=1;//1个16位数据
wrdata[6]=dispQuxian>>8;
wrdata[7]=dispQuxian;
write_dgusii_vp(0x310,wrdata,8);
}
void TenMsHandle(void)
{
if(!TenmsFlag)
return;
TenmsFlag=0;
if(KongQiQ.Genxina==1)
{
JiaQuanKuangDisp();
KongQiQ.Genxina++;
}
else if(KongQiQ.Genxina==2)
{
WenDuDisp();
KongQiQ.Genxina++;
}
else if(KongQiQ.Genxina==3)
{
ShiDuDisp();
KongQiQ.Genxina++;
}
else if(KongQiQ.Genxina==4)
{
TVOC_Disp();
KongQiQ.Genxina=0;
}
}
有兴趣自已下载看看
|