⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart0.c

📁 主要用340单片机的控制的温和湿度采集和向主机发送已接受主机设置参数。
💻 C
📖 第 1 页 / 共 5 页
字号:
	   writenum++;
	   }
     tbuf[writenum]=0x20;           //0
	 writenum++;
	 EEPROM_ByteRead(0x50,0x00,coefficient);
	 for(i=0;i<7;i++)
	 {
       tbuf[writenum]=coefficient[i];
	   writenum++;
	   }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='H';           //H
	 writenum++;
     tbuf[writenum]='U';           //U
	 writenum++;
     tbuf[writenum]='M';           //M
	 writenum++;
     tbuf[writenum]='I';           //I
	 writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;	  	 	 
	 EEPROM_ByteRead(0x20,0x00,coefficient);
	 for(i=0;i<7;i++)
	 {
       tbuf[writenum]=coefficient[i];
	   writenum++;
	   }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='P';           //P
	 writenum++;
     tbuf[writenum]='R';           //R
	 writenum++;
     tbuf[writenum]='E';           //E
	 writenum++;
     tbuf[writenum]='S';           //S
	 writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;	  	 	 
	 EEPROM_ByteRead(0x30,0x00,coefficient);
	 for(i=0;i<7;i++)
	 {
       tbuf[writenum]=coefficient[i];
	   writenum++;
	   }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='W';           //P
	 writenum++;
     tbuf[writenum]='I';           //R
	 writenum++;
     tbuf[writenum]='N';           //E
	 writenum++;
     tbuf[writenum]='D';           //S
	 writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;	  	 	 
	 EEPROM_ByteRead(0x40,0x00,coefficient);
	 for(i=0;i<3;i++)
	 {
       tbuf[writenum]=coefficient[i];
	   writenum++;
	   }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='O';
     writenum++;
     tbuf[writenum]='K';
     writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;
     ordertimepro()	;
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();
	 break;
  default:
	 readnum=rnum;
     lostre();
	 break;
	 }	    	   	    
}

void coetra()
{  
   int i; 
//   readnum+=5;
   for(i=0;i<7;i++)
   {
   coefficient[i]=rbuf[readnum];
   readnum++;
   }
   COEFFMID=(0x2c-coefficient[0])*((coefficient[1]-0x30)+(coefficient[3]-0x30)*0.1+(coefficient[4]-0x30)*0.01+(coefficient[5]-0x30)*0.001+(coefficient[6]-0x30)*0.0001);
}



/******************************************************************************
*能见度子程序*
*******************************************************************************/
void visibility(){}

/******************************************************************************
*成功返回子程序*
*******************************************************************************/
void succeedre()
{
 	 for(;readnum1<readnum-2;readnum1++)
	 {
	 tbuf[writenum]=rbuf[readnum1];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;    
   tbuf[writenum]='O';
   writenum++;
   tbuf[writenum]='K';
   writenum++;
   tbuf[writenum]=0x20;           //0
   writenum++;  
   ordertimepro();
   tbuf[writenum]=0x0D;           //回车
   writenum++;
   tbuf[writenum]=0x0A;           //换行
   writenum++;
	 writenum=0;
   send();
}

/******************************************************************************
*失败返回子程序*
*******************************************************************************/ 
void lostre()
{
	 for(;readnum1<readnum-2;readnum1++)
	 {
	 tbuf[writenum]=rbuf[readnum1];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
	 tbuf[writenum]='E';           //E
	 writenum++;
     tbuf[writenum]='R';           //R
	 writenum++;
	 tbuf[writenum]='R';           //R
	 writenum++;
     tbuf[writenum]='O';           //O
	 writenum++;
	 tbuf[writenum]='R';           //R
	 writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();
}

/******************************************************************************
*命令时间转换子程序*
*******************************************************************************/ 
void ordertimepro()
{
	 tbuf[writenum]='2';           //2
	 writenum++;
     tbuf[writenum]='0';           //0
	 writenum++;
    tbuf[writenum]=(TIMEDEC[0])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[0])%10+0x30;
	writenum++;
	 tbuf[writenum]='-';           //-
	 writenum++;
    tbuf[writenum]=(TIMEDEC[1])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[1])%10+0x30;
	writenum++;
	 tbuf[writenum]='-';           //-
	 writenum++;
    tbuf[writenum]=(TIMEDEC[2])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[2])%10+0x30;
	writenum++;
     tbuf[writenum]=0x20;           //0
	 writenum++;
    tbuf[writenum]=(TIMEDEC[3])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[3])%10+0x30;
	writenum++;
	 tbuf[writenum]=':';           //:
	 writenum++;
    tbuf[writenum]=(TIMEDEC[4])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[4])%10+0x30;
	writenum++;
	 tbuf[writenum]=':';           //:
	 writenum++;
    tbuf[writenum]=(TIMEDEC[5])/10+0x30;
	writenum++;
    tbuf[writenum]=(TIMEDEC[5])%10+0x30;
	writenum++;
}

/******************************************************************************
*风速计出错子程序*
*******************************************************************************/ 
void flowerror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='F';           //U
	 writenum++;
     tbuf[writenum]='L';           //P
	 writenum++;
     tbuf[writenum]='O';           //D
	 writenum++;
     tbuf[writenum]='W';           //A
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}    
/******************************************************************************
*EEPROM出错子程序*
*******************************************************************************/ 
void  eepromerror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='E';           //U
	 writenum++;
     tbuf[writenum]='E';           //P
	 writenum++;
     tbuf[writenum]='P';           //D
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //T
	 writenum++;
     tbuf[writenum]='M';           //A
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}
/******************************************************************************
*时钟出错子程序*
*******************************************************************************/ 
void  clockerror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='C';           //U
	 writenum++;
     tbuf[writenum]='L';           //P
	 writenum++;
     tbuf[writenum]='O';           //D
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='C';           //T
	 writenum++;
     tbuf[writenum]='K';           //A
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}
/******************************************************************************
*温湿度出错子程序*
*******************************************************************************/ 
void  temphumierror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='T';           //U
	 writenum++;
     tbuf[writenum]='E';           //P
	 writenum++;
     tbuf[writenum]='M';           //D
	 writenum++;
     tbuf[writenum]='P';           //A
	 writenum++;
     tbuf[writenum]='H';           //T
	 writenum++;
     tbuf[writenum]='U';           //D
	 writenum++;
     tbuf[writenum]='M';           //A
	 writenum++;
     tbuf[writenum]='I';           //T
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}
/******************************************************************************
*气压出错子程序*
*******************************************************************************/ 
void preserror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='P';           //U
	 writenum++;
     tbuf[writenum]='R';           //P
	 writenum++;
     tbuf[writenum]='E';           //D
	 writenum++;
     tbuf[writenum]='S';           //A
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}

/******************************************************************************
*气压出错子程序*
*******************************************************************************/ 
void flasherror()
{
     int j;
   	 for(j=0;j<7;j++)
	 {
     tbuf[writenum]=id[j];
	 writenum++;
	 }
     tbuf[writenum]=0x20;           //0
	 writenum++;
     tbuf[writenum]='F';           //U
	 writenum++;
     tbuf[writenum]='L';           //P
	 writenum++;
     tbuf[writenum]='A';           //D
	 writenum++;
     tbuf[writenum]='S';           //A
	 writenum++;
     tbuf[writenum]='H';           //A
	 writenum++;
     tbuf[writenum]='E';           //T
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='R';           //A
	 writenum++;
     tbuf[writenum]='O';           //L
	 writenum++;
     tbuf[writenum]='R';           //L
	 writenum++;
     tbuf[writenum]=0x20;           //			
	 writenum++;
	 ordertimepro();
     tbuf[writenum]=0x0D;           //回车
	 writenum++;
     tbuf[writenum]=0x0A;           //换行
	 writenum++;
	 writenum=0;
	 send();                        //数据发送
}
/******************************************************************************
*取历史数据子程序*
*******************************************************************************/ 
void get_history_dataa()
{
	xdata unsigned char historytimedec[6];
	xdata unsigned char historytimebin[4];
	xdata unsigned char N_historydata=0;
	xdata unsigned char N_historydata1=0;
	xdata unsigned long historydataaddr=0xf4f800;
	xdata unsigned long historydataaddr1=0xf4f800;
	xdata unsigned long historydataaddr2=0xf4f800;
	xdata unsigned long dateaddrsta=0;
	xdata unsigned long houraddrsta=0;
	xdata unsigned long minuteaddrsta=0;
	xdata unsigned char i,iii,jjj,kkk;
	xdata unsigned char n,m;
//	xdata unsigned char datatra2[69];
//	xdata unsigned char ddatatra1,ddatatra2;
	bit historydatasearch=0;
	bit sendend=0;
	historydatadisplay=1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -