//*******************************
//*********主函数*****************
void main(void)
{
uchar i,j;
unsigned int temp,humi;
value humi_val,temp_val; //定义两个共同体,一个用于湿度,一个用于温度
unsigned char error; //用于检验是否出现错误
unsigned char checksum; //CRC
s_connectionreset(); //启动连接复位
LCD_init();
while(1)
{
error=0; //初始化error=0,即没有错误
error+=s_measure((unsigned char*)&temp_val.i,&checksum,TEMP); //温度测量
error+=s_measure((unsigned char*)&humi_val.i,&checksum,HUMI); //湿度测量
if(error!=0) s_connectionreset(); 如果发生错误,系统复位
else
{
humi_val.f=(float)humi_val.i; //转换为浮点数
temp_val.f=(float)temp_val.i; //转换为浮点数
calc_sth10(&humi_val.f,&temp_val.f); //修正相对湿度及温度
temp=temp_val.f*10;
//temp是温度值,temp,小数点位,个位求出来,一个一个的显示
humi=humi_val.f*10-35;
//humi是湿度值,小数点位,个位求出来,一个一个的显示
//添加程序
//第一行显示湿度
LCD_disp_char(0x00,1,1);
for(i=0;i<1;i++)
{
DisplayListChar(0x01,0,&table1[i],6);
delay_n40us(10);
}
for(i=0;i<1;i++)//十位
{
i=humi/100;
DisplayListChar(0x07,0,&digit1[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)//个位
{
i=humi%100/10;
DisplayListChar(0x08,0,&digit1[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)//小数点
{
DisplayListChar(0x09,0,&dian[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)
{
i=humi%10;
DisplayListChar(0x0A,0,&digit1[i],1);
delay_n40us(10);
}
//在LCD第2行显示温度
LCD_disp_char(0x40,0,1);
for(i=0;i<1;i++)//wendu:
{
DisplayListChar(0x41,1,&table[i],6);
delay_n40us(10);
}
for(i=0;i<1;i++)//十位
{
i=temp/100;
DisplayListChar(0x47,1,&digit[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)//个位
{
i=temp%100/10;
DisplayListChar(0x48,1,&digit[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)//小数点
{
DisplayListChar(0x49,1,&dian[i],1);
delay_n40us(10);
}
for(i=0;i<1;i++)
{
i=temp%10;
DisplayListChar(0x4A,1,&digit[i],1);
delay_n40us(10);
}
}
}
}