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

📄 pc1490.c

📁 用C51单片机做的防盗报警器测试程序,主要实现AC/DC电压测试,频率测试,电流测试,正弦信号发生,数字IN/OUT等功能!
💻 C
📖 第 1 页 / 共 5 页
字号:
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis18[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis18[i]);      
      				i++;
    			}
				
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis18[i] != '\0')
    			{
      				lcd_wdat(dis18[i]);     //显示结果 
      				i++;
    			}
				
				goto ERROR;
			    				 
    	     }
			
/**************************************************************************/
           	Port2B8255_write(2); //T101 IC5 O/P 测试!
  		    Timer100ms=3;
			while(Timer100ms);
			write_ads(0x8c);
			read_ads();
			temp1=adc_hi;
			temp1=temp1<<8;
			temp1+=adc_lo;
		  	temp=(float)temp1/32768*2.048;
			temp*=1;
		  	temp*=1000;
			if ((temp>=0)&&(temp<=50))
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis19[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis19[i]);      
      				i++;
    			}
				
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis19[i] != '\0')
    			{
      				lcd_wdat(dis19[i]);     //显示结果 
      				i++;
    			}
				
				goto ERROR;
			    				 
    	     }
/**************************************************************************/			
	 		Port2B8255_write(3); //T95 IC7 O/P 测试!
  		    Timer100ms=3;
			while(Timer100ms);
			write_ads(0x8c);
			read_ads();
			temp1=adc_hi;
			temp1=temp1<<8;
			temp1+=adc_lo;
		  	temp=(float)temp1/32768*2.048;
			temp*=1;
		  	temp*=1000;
			if ((temp>=450)&&(temp<=515))
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis19[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis19[i]);      
      				i++;
    			}
				
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis19[i] != '\0')
    			{
      				lcd_wdat(dis19[i]);     //显示结果 
      				i++;
    			}
				
				goto ERROR;
			    				 
    	     }

			 
/**************************************************************************/			
	 		Port2B8255_write(4); //TR34 测试!
  		    Timer100ms=3;
			while(Timer100ms);
			write_ads(0x8c);
			read_ads();
			temp1=adc_hi;
			temp1=temp1<<8;
			temp1+=adc_lo;
		  	temp=(float)temp1/32768*2.048;
			temp*=1;
		  	temp*=1000;
			if ((temp>=1140)&&(temp<=1500))
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis36[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis36[i]);      
      				i++;
    			}
				
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis36[i] != '\0')
    			{
      				lcd_wdat(dis36[i]);     //显示结果 
      				i++;
    			}
				
				goto ERROR;
			    				 
    	     }				 

/**************************************************************************/			
	 		Port2B8255_write(5); //TR35 测试!
  		    Timer100ms=3;
			while(Timer100ms);
			write_ads(0x8c);
			read_ads();
			temp1=adc_hi;
			temp1=temp1<<8;
			temp1+=adc_lo;
		  	temp=(float)temp1/32768*2.048;
			temp*=1;
		  	temp*=1000;
			if ((temp>=1140)&&(temp<=1500))
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis37[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis37[i]);      
      				i++;
    			}
				
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis37[i] != '\0')
    			{
      				lcd_wdat(dis37[i]);     //显示结果 
      				i++;
    			}
				
				goto ERROR;
			    				 
    	     }				 
/**************************************************************************/
/*     以下为数子测试,Digital Test!!!								  */
/**************************************************************************/
//          Init2_8255();
//          Port2B8255_write(16);	 //关闭8255 B port  关闭CD4514BC
//			Init1_8255();
//			Port1B8255_write(16);	 //关闭8255 B port  关闭CD4514BC
			
			Init1_8255();
			Port1A8255_write(0);	 //置1.
			Timer100ms=1;
			while(Timer100ms);
			Tcom1=Port1C8255_read();  //T=5.0V Hi经过非门后输入8255为1;

			Port1A8255_write(255);	 //置0
			Timer100ms=1;
			while(Timer100ms);
			Tcom2=Port1C8255_read();  //T=5.0V Hi经过非门后输入8255为0;
/*************************************************************************/
			Tcom=Tcom1&0x01;
			if (Tcom==0) IC81=1;   		   //  IC8 结果
			else IC81=0;   
			
			Tcom=Tcom2&0x02;
			if (Tcom==0) IC82=1;   
			else IC82=0;  
 		    		
  			if (IC81&IC82)
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis21[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis21[i]);      
      				i++;
    			}
				CS1_8255=1;		
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis21[i] != '\0')
    			{
      				lcd_wdat(dis21[i]);     //显示结果 
      				i++;
    			}
				CS1_8255=1;
				goto ERROR;
			    
    	     }		     
/*****************************************************************************/	  
			Tcom=Tcom1&0x04;
			if (Tcom==4) IC41=1;   		   // IC4 结果
			else IC41=0;   
			
			Tcom=Tcom2&0x04;
			if (Tcom==4) IC42=1;   
			else IC42=0;
  
			Tcom=Tcom1&0x08;
			if (Tcom==8) IC43=1;   		   // IC4 结果
			else IC43=0;   
			
			Tcom=Tcom2&0x08;
            if (Tcom==8) IC44=1;   
			else IC44=0;  

			Tcom=Tcom1&0x10;
			if (Tcom==16) IC45=1;   		   // IC4 结果
			else IC45=0;   
			
			Tcom=Tcom2&0x10;
			if (Tcom==16) IC46=1;   
			else IC46=0;  
 		    		
  			if (IC41&IC42&IC43&IC44&IC45&IC46)
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis22[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis22[i]);      
      				i++;
    			}
				CS1_8255=1;		
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis22[i] != '\0')
    			{
      				lcd_wdat(dis22[i]);     //显示结果 
      				i++;
    			}
				CS1_8255=1;
				goto ERROR;
			    
    	     }
/*****************************************************************************/	  
			Tcom=Tcom1&0x20;
			if (Tcom==0) IC111=1;   		   // IC11 结果
			else IC111=0;   
			
			Tcom=Tcom2&0x20;
			if (Tcom==0) IC112=1;   
			else IC112=0;  

			Tcom=Tcom1&0x40;
			if (Tcom==0) IC113=1;   		   // IC11 结果
			else IC113=0;   
			
			Tcom=Tcom2&0x40;
			if (Tcom==0) IC114=1;   
			else IC114=0;  
 		    		
  			if (IC111&IC112&IC113&IC114)
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis23[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis23[i]);      
      				i++;
    			}
				CS1_8255=1;		
 			  }
		  	else
		  	{ 
		  		lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis47[i] != '\0')	     //显示字符"Test Fail "
     			{                         
       				lcd_wdat(dis47[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis23[i] != '\0')
    			{
      				lcd_wdat(dis23[i]);     //显示结果 
      				i++;
    			}
				CS1_8255=1;
				goto ERROR;
			    
    	     }

/*****************************************************************************/	  
			Tcom=Tcom1&0x80;
			if (Tcom==128) IC121=1;   		   // IC12 结果
			else IC121=0;   
			
			Tcom=Tcom2&0x80;
			if (Tcom==128) IC122=1;   
			else IC122=0;  
 		    		
  			if (IC121&IC122)
		     {
				lcd_pos(0x00);               //设置显示位置为第一行的第1个字符
    			i = 0;
    			while(dis46[i] != '\0')	     //显示字符"Test Pass"
     			{                         
       				lcd_wdat(dis46[i]);
       				i++;
     			}
				lcd_pos(0x40);             //设置显示位置为第二行第1个字符
    			i = 0;
    			while(dis24[i] != '\0')	   //显示结果
    			{
      				lcd_wdat(dis24[i]);      
      				i++;
    			}
				CS1_8255=1;		
 			  }
		  	else
		  

⌨️ 快捷键说明

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