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

📄 mainold.c

📁 自动检测电容值
💻 C
📖 第 1 页 / 共 2 页
字号:
													  //sprintf(LCM_ASCII,"R2:%uK OK\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x90);
											    break;
											    case 3:
												      //printf("R3:%uK OK\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R3:%uK OK\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x88);
											    break;
											    case 4:
												      //printf("R4:%uK OK\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R4:%uK OK\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x98); 
											    break;
											    case 5:
												      //printf("C5:%up OK\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"C5:%up OK\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x80);  
											    break;
											    case 6:
												      //printf("C6:%up OK\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"C6:%up OK\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x90);  
											    break;
		                                       }
									    }
								    else                                                               
							           {
									        NGLED&=~(1<<(Order-1));
									       if(TestModel==0)	 BB(NG);                 //BB

			                                 switch(Order)
											   {
											    case 1:
												      //printf("R1:%uK NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R1:%uK NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x80);  
											    break;
											    case 2:
												      //printf("R2:%uK NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R2:%uK NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x90);
											    break;
											    case 3:
												      //printf("R3:%uK NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R3:%uK NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x88);
											    break;
											    case 4:
												      //printf("R4:%uK NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"R4:%uK NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x98); 
											    break;
											    case 5:
												      //clrram();
													  //printf("C5:%up NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"C5:%up NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x80);  
											    break;
											    case 6:
												      //printf("C6:%up NG\n",(uint)temp);//测试
													  //sprintf(LCM_ASCII,"C6:%up NG\n",(uint)temp);
													  //chn_disp3(LCM_ASCII,0x90);  
											    break;
		                                       }
								   	  }


                          if(Order==6)
				            {
                               if(OKLED==0xc0) 
					              { 
					                OKLED&=~(1<<6);
						            if(TestModel==1) BB(OK);                 //BB 
									//printf("OK\n",(uint)temp);//测试
									//chn_disp3("     OK     \n",0x98);  
					           	 }
					           else           
				                 { 
				 	                NGLED&=~(1<<6);
                                    if(TestModel==1)  BB(NG);              //BB 
								    //printf("NG\n",(uint)temp);//测试
									//chn_disp3("    NG      \n",0x98); 
						         }
								 //printf("\n");
					         }	 
    
						    	LEDshow();	               
						break;
						}
					
				 }
				
			  
		if(Test_012==2)
		 {
				    
           if(STEP==0)
			    { 
			      if(STEP_check<0xff) STEP_check++;
			    }
			 else 		 
			 {
			     if(Test_Order<6)
				   { 
				   	if((STEP_check>50)||(TestModel==1)) 
			          {
                          Test_012=0;
						  Test_Order++;
					      if(Test_Order<5) P2=0xf8; 
						  else    P2=0xe7;
						  if(Test_Order==5) //clrram(); 
						  TEST_GO();
						}
				   }
				   else
				   {
					 STEP_check=100; //测试
					 if(STEP_check>50)
					   {
						   Test_Order=0;
                           Test_012=0;
						   P2=0xff;
	                       //clrram();
					  	   //chn_disp3("  STANDBY   \n",0x80);
					    } 
					   
				    }
                 STEP_check=0;
			  }	 
	  }
          
}*/
 
 


void main(void)
{
//  uchar i,j;
  

//  init_serialcomm();  //初始化串口
//  init_timer();
  	Initial();

//  EA=1;

  
  	init_lcd();
  	P2=0xe0;
	LcdClear();
	LcdPrint("R1=10.2M\n");
	LcdPrint("R3=10.2M\n");
	LcdPrint("R2=10.2M\n");
	LcdPrint("R4=10.2M\n");
//	initial();
   	P2=CtrlP=0;
	EX0=1;
	StartTest=1;
	while(1);
  //chn_disp3("  珠海晶研力信  \n",0x80);
  //chn_disp3("  简易高压测试仪\n",0x90);
  //chn_disp3("            V2.1\n",0x98);

  //printf("珠海晶研力信自动化设备有限公司\n" );
  //printf("简易高压测试仪 V2.1\n\n" );
/*
  for(i=0;i<7;i++)
   {
	  OKLED=NGLED=~(1<<i);
	  LEDshow();
	  BELL=0;
	  delay (0xffff);
	  OKLED=NGLED=0xff;
	  LEDshow();
	  BELL=1;
	  delay (0xffff);
	}


   	for(j=0;j<250;j++)
   {
	 if(MD==0)
	 {
	   if(++i==50)
	   {
		 P2=0; 
		 while(1);
	   }
	 }

   }
  	//clrram();
	//chn_disp3("  STANDBY   \n",0x80);


 while(1)
 {

	switch(Test_Order)
	 {
	  case 0:
			if(AUTOSTEP)TestModel=1;	//自动
            else        TestModel=0;	//单步

	         STEP_check=100; //测试

	       if(STEP==0)
			 { 
			    if(STEP_check<0xff) STEP_check++;
			 }
			 else 		 
			 {
			   if(STEP_check>50)
				{
				  STEP_check=0;

			  	  P2=0xf8;
				//  P2=1;
                  Test_Order=1;
				  Test_012=0;
				  //clrram();
				  TEST_GO();
				}
                STEP_check=0;
			  }	 
			  OKLED=0xff;
              NGLED=0xff;
			 LEDshow();
	  break;
	  case 1:    
	  case 2:
	  case 3:
	  case 4: 
	  case 5: 
	  case 6:
             
			 TEST(Test_Order);
	  break;
	  }


 }
*/
} 

void Initial(void)
{
	P0=0xff
	IT0=IT1=1;
	P1=P2=P3=0xff;
//	INPORT=0XFF;
	TMOD=0X11;	//timer1:mode1(high 4bit),timer0:mode1(low 4bit)
	TR0=0;
	EX0=0;
	ET0=0;
	EA=1;
//	TL0=CYCLE % 256;
//	TH0=CYCLE/256;
} 
/*void Time10ms (void) interrupt TIMER0INT using 1
{
	static Char CtrlP=0

//	#define FLASHTIME 60
//	static unsigned char ft=FLASHTIME;
//	static char InP1=0,InP2=0;
//	char InP,InP3;
	
	//TL0=CYCLE % 256;
	//TH0=CYCLE/256;

	InP=INPORT^P2;
	InP3=InP&InP2;			//count 3
	InP2=InP&InP1&(~InP3);
	InP1=InP&(~InP3);
	InP^=INPORT;			//InP=PP1
	InP&=InP3;
	INPORT&=~InP3;
	INPORT|=InP;

	Next=Stop=!(INPORT&0x40);
	Start=!(INPORT&0x80);	
	//if(td) td--;	
	//return;
}  */
void LcdClear(void)
{
	init_lcd();
	CurrentX=CurrentY=0;
}
void LcdPrint(char * DisBuf)
{
	code unsigned char Line[]={0x80,0x90,0x88,0x98}; 
	char kk=0;
	wr_lcd(comm,0x30);
	while(DisBuf[kk])
	{
		if(DisBuf[kk]=='\n'||CurrentX>=16)
		{
			CurrentX=0;
			CurrentY++;
			if(CurrentY<4) wr_lcd(comm,Line[CurrentY]);
		}
		else
		{
			if(CurrentY>=4)
			{
				LcdClear();
			}
			wr_lcd(dat,DisBuf[kk]);
			CurrentX++;
		}
	 	kk++;
	}
	return;
}
/*bit StartCheck(void)
{
	static unsigned char cn=0;
	bit NowInst=0;
	static bit CurInst=0;
	char pt;
	P0=0xfc;
	delay10ms(10);
	if((pt=P1&0xfc)^0xfc)
	{
		P0=0;
		delay10ms(10);
		if(pt!=(P1&0xfc)) NowInst=1;
	}
	else
	{
		P0=0;
		delay10ms(10);
	}
	if(NowInst!=CurInst)
	{
		cn++;
		if(cn>=30)
		{
			CurInst=NowInst;
			cn=0;
//			if(CurInst) return(1);
		}
	}
	else
	{
		cn=0;
	}
//	return(0);
	if(CurInst)
	{
//		CurInst=0;
		return(1);
	}
	else
	{
		return(0);
	}
}
bit keyWait(bit chk)
{
	static bit NextUp=0,StartUp=0,CheckUp=0;
	if(chk)
	{
		if(Next)
		{
			if(NextUp)
			{
				NextUp=0;
				return(0);   //Next OK
			}
		}
		else
		{
			NextUp=1;
		}
	}
	if(Start)
	{
		if(StartUp)
		{
			StartUp=0;
			longjmp(env,2);   //Start OK
		}
	}
	else
	{
		StartUp=1;
	}
	if(StartCheck())
	{
		if(CheckUp)
		{
			CheckUp=0;
			longjmp(env,2);   //Start OK
		}
	}
	else
	{
		CheckUp=1;
	}
	return(1);
}
void delay10ms(int a)
{
	td=a/10;
	while(td);
} */


/*------------------初始化-----------------*/
void init_lcd (void)
{
  rst=1;
 // psb=0;
  wr_lcd (comm,0x30);  /*30---基本指令动作*/   
  wr_lcd (comm,0x01);  /*清屏,地址指针指向00H*/
  delay (100);
  wr_lcd (comm,0x06);  /*光标的移动方向*/
  wr_lcd (comm,0x0c);  /*开显示,关游标*/
}

/*----------------------------------------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
  uchar a,i,j;
  delay (50);
  a=content;
  cs=1;
  sclk=0;
  std=1;
  for(i=0;i<5;i++)		//先输入五个连续的1   -----》是同步位字符串,此时输入记数被重置并且串行传输被同步。
  {
    sclk=1;
    sclk=0;
  }
  std=0;				//RW位
  sclk=1;
  sclk=0;
  if(dat_comm)		   //RS位
    std=1;   //data
  else
    std=0;   //command
  sclk=1;
  sclk=0;			   //第8位规定为0
  std=0;
  sclk=1;
  sclk=0;
  for(j=0;j<2;j++)
  {
    for(i=0;i<4;i++)   //每一个8位指令将被分为两个字节接收到.
    {
      a=a<<1;
      std=CY;
      sclk=1;
      sclk=0;
    }
    std=0;
    for(i=0;i<4;i++)
    {
      sclk=1;
      sclk=0;
    }
  }
}
/*-----------------------------------*/
void delay (uint us)   //delay time
{
  while(us--);
}

⌨️ 快捷键说明

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