com.c

来自「此程序用于测温度值」· C语言 代码 · 共 125 行

C
125
字号

//发送函数
//功能:向上位机传送数据
putbyte(uchar c)
{
 SBUF=c;
 while(!TI);TI=0;
}

void urtinit()       //串口初始化
{  TMOD = 0x21;			
   PCON = 0x80; 		
   SCON = 0x50; 		
   TH1=0xFD; TL1=0xFD; TR1=1;  //19200.n,8.1
   IP =	0x10;                 //0x04;

   
}
/*
//接收函数
//功能:接收来自上位机的数据
serial() interrupt 4 using 2  
{
   EA = 0 ;
   if (RI)
	{
    
      FontSet(0,0xff);
 	  PutChar(0,2,SBUF + 0x30) ;
	  s = s + 8 ; 	
     //if(s > 127 )
      //s = 0 ;
      RI = 0 ;
	EA=1;  	
    }
}
*/
//接收函数
//功能:接收来自上位机的数据
serial() interrupt 4 using 2                               
 {
	EA=0;                          
	if(RI)                              
		{
		r_buff[r_in]=SBUF;
		sum+=SBUF;
		RI=0; 
		if(r_in==0)			
			{
				if(r_buff[0]==0x01)     
					{
					r_in++;
					sum=0x01;
					urtflag=0;
					}
				goto recpt;
			}
		else if(r_in==1)
			{
				r_len=r_buff[1];
				if(r_len>120)
					{
					r_in=0;
					goto recpt;
					}
				else
					r_in++;
				goto recpt;
			}		
			
		else
			{
				if(r_in>120)
					r_in=0;
				else if(r_len==r_in-2)	         
					{	
					if(sum==0xff)
						{
						urtflag=1;
						r_in=0;
						ES=0;
						EA=1;
						return;
						}
					else
						{r_in=0;
						
						}
					}
				else 
				 	r_in++;
				goto recpt;				
			}
		}				
recpt:
	
	EA=1;                                   
}


//接收数据函数
long int get()
{
 
  long int k = 0 ;
    if(urtflag==1)
	   { 
	    urtflag=0;
	   // putbyte(r_buff[0]);
       // putbyte(r_buff[1]);
       // putbyte(r_buff[2]);
      //  putbyte(r_buff[3]);
      //  putbyte(r_buff[4]);
		//k = r_buff[2]/10*256+r_buff[2]%10 ;
		k = r_buff[2] * 256 + r_buff[3];
        ES=1;
	   }


	  return k ;
	  

	  
}

⌨️ 快捷键说明

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