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

📄 chiller1.c

📁 单片机 串口设置源码 配套程序 可以直接使用 波特率为96
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "reg952.h"
#include <string.h>
unsigned  char   ch,key,jsz ,h	,cg1,cg2,kg;
unsigned int Pu,L,lc,hc,gh,gl,bujs,bujk;
unsigned char y[0x06];
unsigned char rx[10] ,tx[10] ;
unsigned char  bjbz ;
unsigned char idata kz[] = {0xF6,0xF7,0xF3,0xFB,0xF9,0xFD,0xFC,0xFE };
static unsigned int tep,tmp,js,b;
unsigned char bdata sign ,bz,bujin,qd,bzc,mlbz,nm;
void  xs_shu(unsigned int s ,unsigned d)   ;
unsigned int ad_pum()
 {
  unsigned char puml,pumh ;
  unsigned int T,M;
  unsigned char *p ,k ;
  M = 0x00 ;
  T = 0x00 ;
  for(k=0x00;k<0x28;k++)
   { 
	  AD0INS  = 0x04;
	  SCAN0   = 0x01 ;
	  AD0MODB  = 0x10 ;
	  AD0CON =  0x45 ;
	  while((AD0CON & 0x08 )==0x00)	  ; 
	  AD0CON = 0x00 ;
	  puml = AD0DAT2R ;
	  pumh = AD0DAT2L ; 
	  p =&T	 ;
	  *p = pumh/0x40;
	  *(p+1)=puml;
	  M=T+M	;
	}
  M = M/0x28 ;
  return M;
 }
void sh_cl()
 {
   unsigned  int x1 ,x2 ;
   x1 = ad_pum();
   x2 = 0x02F4 - x1 ;
   xs_shu(x2,0x01) ;
   if(x2<(tep -0x02))
      {
	    P5 &= 0xFB;
		P5 |= 0x08;
	  }
   if(x2>=tep)
      {
	    P5 &= 0xF7 ;
		P5 |= 0x04 ;
	  }
   else  if(x2>(tep-0x02))
	  {
	    P5 ^=Bit3 ;
	  }
	x1 = 0x00;
	x2 = 0x00 ;
 }
void send(char  d[])
  {
    unsigned char k ;
	k = 0x00 ;
	while(d[k]!='\0')
	 {
	   S1BUF = d[k] ;
	   while((S1CON&0x02)==0x00);
       S1CON = S1CON & 0xFD ;
	   k++;
	 }
  }
 void write_shu(unsigned char dat)
 {
    unsigned char k ,t ;
	t = 0x08 ;
	P1 &=~ Bit0 ;
	P1 &=~ Bit1 ;
	for(k =0 ;k<150;k++);
	do
	 {
	   if((dat&0x80)==0x80)
	     {
		   P1 |= Bit1;
		 }
		else
		 {
		   P1 &=~ Bit1 ;
		 }
		 dat<<=1 ;
		P1|= Bit0 ;
		for(k=0;k<0x06;k++);
		P1 &=~ Bit0 ;
		for(k=0;k<1;k++);
	 
	 } while(--t!=0x00)	 ;
 }
unsigned char read_shu()
 {
   unsigned char  dat ,m ,k	 ;
   dat =0x00 ;
   m = 0x08 ;
   P1 &=~ Bit0 ;
   P1|= Bit1 ;
   do
    {
	  P1 |= Bit0 ;
	  for(k=0;k<5;k++);
	  dat<<=1 ;
	  if((P1 & Bit1)==0x02)
	    {
		  dat++ ;
		}  
	  P1 &=~ Bit0 ;
	  for(k=0;k<0x02;k++);
	
	} while(--m!=0x00);
   return  dat ;
 }
void xs_error(unsigned char m,h,l)	
 {
	switch (l)
	 {
	    case  0x01 :
		  {
		    write_shu(0xC8);
			write_shu(0x0C);
			break ;
		  }
		case 0x02:
		  {
		    write_shu(0x80);
			write_shu(0x0E);
			break ;
		  }
		case 0x03 :
		  {
		    write_shu(0x80);
			write_shu(0x0D);
			break ;	  
		  }
		case 0x04 :
		  {
		    write_shu(0xC8);
			write_shu(0x01);
			break ;
		  }
		case 0x05 :
		  {
		    write_shu(0xC8);
			write_shu(0x02);
			break ;
		  }
	 }
   write_shu(0x81);
   write_shu(h);
   write_shu(0x82);
   write_shu(0x0A);
   write_shu(0xCB);
   write_shu(m);
 }
void xs_shu(unsigned int s,unsigned int d )
 {
    unsigned char  c1,c2,c3;
	c1 = (s/0x64)&0x0F; ;
	write_shu(0xCB);
	write_shu(c1);
	c2 = ((s%0x64 )/0x0A+0x80 )&0x8F;
	write_shu(0xCA)	;
	write_shu(c2)  ;
	c3 = (s%0x0A)&0x0F ;		  
	write_shu(0xC9);
	write_shu(c3);
	switch (d)
	  {
		case 0x01 :
		  {
		    write_shu(0xC8);
			write_shu(0x0C);
			break ;
		  }
		case 0x02 :
		  {
		    write_shu(0x80);
			write_shu(0x0E);
			break ;
		  }
		case 0x03 :
		  {
		    write_shu(0x80);
			write_shu(0x0D);
			break ;	  
		  }
		case 0x04 :
		  {
		    write_shu(0x80);
			write_shu(0x0C);
			break ;
		  }
	}	    
 }

 void flash(unsigned char dh ,dl,unsigned char a[0x06])
 {  
    unsigned char x ;   
    FMCON = 0x00;
	FMADRH = dh;
	FMADRL = dl; 
	for(x=0x00;x<0x06;x++)
	  {
	   FMDATA =a[x] ;
	  }
	FMCON = 0x68;
	x = FMCON ;
	if((x&0x0F)==0x00)
	  {
	    P0 &=~ Bit0 ;
	  }
	else
	  {
	    P0 |= Bit0 ;;					
	  }
 } 
unsigned char sbeng()	
  {
     unsigned  int d;
	 unsigned  char y,*p ;
     p =& d ;
	 *p = TH0 ;
	 *(p+1) = TL0 ;
	 if(d < 0x1E)
	   {
	     y = 0x03 ;
	   }  
	 else
	   {
	     y = 0x04 ;
	   }
	 return y ;
  }
 unsigned char ysj()
  {
     unsigned int wet1,wet2 ;
	 unsigned char  y;
	 wet1 = ad_pum();
	 xs_shu((0x02F4-wet1),0x01);
	 P5|=Bit2 ;
	 y =0x00 ;
	 do
	  {
	   P5 &=~ Bit3 ;
	   P5 &=~ Bit1 ;
	   js=0x0400 ;
	   TR1 =0x01 ;
	   while(sign==0x00);
	   sign = 0x00 ;
	   wet2 = ad_pum();
	   xs_shu((0x02F4-wet2),0x01)	;
	   if(wet2 >(wet1 + 0x01))
	     {
		   y= 0x04 ;
		 }
	   else
	     {
		   y++;
		 }
	  }while(y<0x03);
	 if(y==0x04)
	   {
	    P2 &=~ Bit0 ;
	   }
	  else
	   {
	     y =0x03;
	     xs_error(0x0E,0x00,0x02);
		 P5 |= Bit1 ;
		 P5 |= Bit3 ;
		 bjbz = 0x02 ;
	   }
	js = 0x0064 ;
	TR0 =0x01 ;
	TR1 =0x01 ;
	return y;  
  }
 void xs_shan(unsigned int s ,unsigned char f )
  {
	unsigned char c1,c2,c3;
	c1 = (s/0x64)&0x0F; ;
	write_shu(0xCA);
	write_shu(c1);
	c2 = ((s%0x64 )/0x0A+0x80 )&0x8F;
	write_shu(0xC9)	;
	write_shu(c2)  ;
	c3 = (s%0x0A)&0x0F ;		  
	write_shu(0xC8);
	write_shu(c3);
	if(f ==0x01)
	  {
	    write_shu(0x83)	 ;
		write_shu(0x0C)	;
	  }
	if(f==0x02)
	  {
		write_shu(0x83);
		write_shu(0x0D);
	  }
	write_shu(0x88);
	write_shu(0xF7);

  }
 void key_cl(unsigned char n)
 {
   switch (n)
    {
	  case 0x03 :
	   {
	     if((qd==0x01)||(nm==0x04))
		  {
		    qd = 0x00;
			nm = 0x00 ;
		    P5 |= Bit3 ;
			P5 |= Bit2	;
			P5 |= Bit1 ;
			P5 |= Bit0 ;
			P0 |= Bit0 ;
			P1 |= Bit7 ;
		  }
		 else
		  {
		    nm = 0x01 ;
		  	P5 &=~ Bit1 ;//start pump ;
		  }
	     break ;
	   }
	  case  0x02 :
	   {  
		 bzc = 0x01 ;
		 switch (jsz)
		   {
			  case 0x01 :
			   {
			     jsz = 0x02 ;
			     key = 0x01 ;
			     xs_shu(tmp,0x01);
                 write_shu(0x88);
				 write_shu(0xFE);
				 break ;
			   }
		      case 0x02 :
			   {
			     key = 0x00 ;
			     jsz = 0x03 ;
			     xs_shu(L,0x03);
				 break;
			   }
		      case 0x03 :
			   {
			     key = 0x00 ;
			     jsz = 0x04 ;
			     xs_shu(Pu ,0x02);
				 break ;
			   }
		     case 0x04 :
			   {
			     jsz = 0x05 ;
			     key=0x02 ;
				 xs_shan(gh ,0x01);
				 break ;
			   }
		      case 0x05 :
			    {
				  jsz=0x01 ;
				  key=0x03 ;
				  xs_shan(gl,0x02);
				  break ;
				}
			}
		 h = 0x00 ;
	     break;
	   }
	  case  0x01 :
	   {   	   
	      switch (key)
		    {  
			  case  0x01 :
			    { 
				  tmp++ ;
				  xs_shu(tmp,0x01);
				  h= 0x00 ;
				  break ;
				}
			  case  0x02 :
			    {
				  gh++ ;
				  xs_shan(gh,0x01);
				  h = 0x00 ;
				  break ;
				}
			  case 0x03 :
			    {
				  gl++;
                  xs_shan(gl,0x02);
				  h = 0x00 ;
				  break ;
				}
		  	}  										  
	     break;
	   }
	  case 0x00:
	   {
		  switch  (key)
		    {
			  case 0x01 :
			    {  
				  tmp--;
				  xs_shu(tmp,0x01);
				  h = 0x00 ;
				  break ;
				}
			  case  0x02 :
			    {
				  gh--;
				  xs_shan(gh ,0x01 );
				  h = 0x00 ;
				  break ;
				}
			  case 0x03 :
			    {
				  gl--;
				  xs_shan(gl,0x02);
				  h = 0x00 ;
				  break;
				}
		   }
	     break  ;
	   }
	} 
 }
unsigned int ad_wen()
 {
  unsigned char puml,pumh ;
  unsigned int N,R;
  unsigned char *p ,k ;
  N =0x00;
  R= 0x00;
  for(k=0x00;k<0x28;k++)
   { 
	  AD0INS  = 0x01;
	  SCAN0   = 0x01 ;
	  AD0MODB  = 0x10 ;
	  AD0CON =  0x45 ;
	  while((AD0CON & 0x08 )==0x00)	  ; 
	  AD0CON = 0x00 ;
	  puml = AD0DAT0R ;
	  pumh = AD0DAT0L ; 
	  p =&N	 ;
	  *p = pumh/0x40;
	  *(p+1)=puml;
	  R=N+R	;
	}
  R = R/0x28 ;
  return R;
 }
void fs_cl(unsigned int Y0)
  {
	   tx[0] = (Y0/0x64) + 0x30 ;
	   tx[1] = ((Y0%0x64)/0x0A)  + 0x30 ;
	   tx[2] = 0x2E;
	   tx[3] = (Y0%0x0A) + 0x30 ;
	   tx[4] = 0x0D ;
	   tx[5] = 0x0A ;
	   tx[6] = '\0' ;
	   send(tx);
  }
void ml_cl()
 {
   unsigned char j1[4] = "1\r\n\0";
   unsigned  int y1,y2,y3,y4;
   if(strcmp(rx,"SO1M\0")==0x00)
     {
	    if(nm==0x00)
		 {
		    nm = 0x01 ;
		    cg1 = sbeng() ;

⌨️ 快捷键说明

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