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

📄 m2test_a5_747.c

📁 PIC 16F系列制作的 空调控制器 测试机
💻 C
📖 第 1 页 / 共 2 页
字号:
				ON_LEGAL;
				Set4094();
				Delayms(1000);
				OFF_LEGAL;
				Set4094();

				//背景灯测试
				while(1)			//等待背景灯电源打开
				{
					key_test();
					if(key)key_dispose();
					if(ill)
					{
						Delayms(1);
						if(ill)break;
					}
				}
				while(1)			//等待背景灯电源关闭
				{
					key_test();
					if(key)key_dispose();
					if(!ill)
					{
						Delayms(1);
						if(!ill)break;
					}
				}
						//背景灯关闭代表合格,测试结束


				OFF_ONTEST;		//关在测灯
				ON_LEGAL;		//合格灯亮
				Set4094();
				while(1);
			}
		}
//	}

	//自动功能测试
//	while(1)			//自动功能测试用
//	{
		if(key_auto)
		{
			Delayms(5);
			if(key_auto)
			{
				auto_test=1;
				ON_ONTEST;
				Set4094();
				timeover=0;
				test_35_20();
				timeover=0;
				test_35_24();
				timeover=0;
				test_35_30();
				timeover=0;
				test_25_20();
				timeover=0;
				test_25_24();//
				timeover=0;
				test_25_30();
				timeover=0;
				test_06_20();//
				timeover=0;
				test_06_24();//
				timeover=0;
				test_06_30();
				timeover=0;

				ON_LEGAL;
				OFF_ONTEST;
				Set4094();
				while(1);
			}
		}
//	}

}

void test_35_20(void)
{
		ER1;
		IR1;		//20
		OR3;		//35
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态  低电平有效  is外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}						
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x8e)&&(AD_s1<0x9e))break;				//模式伺服电机状态    吹脸0x96   8e  9e
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x70)&&(AD_s2<0xA0))break;				//温度伺服电机状态	  0x80-98 有不定									
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x40)&&(AD_ffb<0x100))break;			//鼓风电机状态  12档 0x86(可能会在1档2档之间跳变) 76 b6

		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;					//AC状态 AC开
			}
		}
}

void test_35_24(void)
{
		ER1;		
		IR2;		//24
		OR3;		//35		
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
			key_test();
			if(key)key_dispose();
		}
		is_inair=0;
		
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x8e)&&(AD_s1<0x9e))break;				//模式伺服电机状态    吹脸0x96
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x88)&&(AD_s2<0xa0))break;				//温度伺服电机状态	  0x98									
		}
		
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x40)&&(AD_ffb<0x100))break;			//鼓风电机状态  3档 0x65
		}
		
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;			//AC状态 AC开
			}
		}
		
}

void test_35_30(void)
{
		IR3;		//30
		OR3;		//35
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(0)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x50)&&(AD_s1<0xa0))break;				//模式伺服电机状态    吹脸 0x96 
		}

		while(0)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x50)&&(AD_s2<0xa0))break;				//温度伺服电机状态	  0x98									
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x40)&&(AD_ffb<0x57))break;			//鼓风电机状态  34档 0x4A
		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;			//AC状态 AC开
			}
		}
}

void test_25_20(void)
{
		ER1;
		IR1;		//20
		OR2;		//25
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(0)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x7e)&&(AD_s1<0x10e))break;				//模式伺服电机状态    吹脸 0x96
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x57)&&(AD_s2<0x97))break;				//温度伺服电机状态	  0x77		67  87						
		}
		while(0)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x80)&&(AD_ffb<0xb0))break;			//鼓风电机状态  1档 0x90
		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;			//AC状态 AC开
			}
		}
}

void test_25_24(void)
{
		ER1;
		IR2;		//24
		OR2;		//35
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>138)&&(AD_s1<162))break;				//模式伺服电机状态    吹脸0x96  8e 9e
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x7F)&&(AD_s2<0x9F))break;				//温度伺服电机状态	  0x8F									
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x5c)&&(AD_ffb<0x9c))break;			//鼓风电机状态  2档 0x7c
													
		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;			//AC状态 AC开
			}
		}
}

void test_25_30(void)
{
		ER1;
		IR3;		//30
		OR2;		//25
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x86)&&(AD_s1<0xa6))break;				//模式伺服电机状态    吹脸0x96
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x86)&&(AD_s2<0xa6))break;				//温度伺服电机状态	  0x96								
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x3b)&&(AD_ffb<0x7b))break;			//鼓风电机状态  3档 0x5b
		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q)
			{
				Delayms(1);
				if(ac_q)break;			//AC状态 AC开
			}
		}
}

void test_06_20(void)
{
		ER1;
		IR1;		//20
		OR1;		//-6
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x20)&&(AD_s1<0xf0))break;				//模式伺服电机状态    吹脚0x48
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止
				key_test();
				if(key)key_dispose();	
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x20)&&(AD_s2<0xf0))break;				//温度伺服电机状态	  0x40								
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x70)&&(AD_ffb<0x108))break;			//鼓风电机状态  12档   0xa8
		}
		while(0)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(!ac_q)
			{
				Delayms(1);
				if(!ac_q)break;			//AC状态 AC关
			}
		}
}

void test_06_24(void)
{
		ER1;
		IR2;		//24
		OR1;		//-6
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;;
		}
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x20)&&(AD_s1<0x85))break;				//模式伺服电机状态    吹脚0x48吹全身0x7D
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x26)&&(AD_s2<0x86))break;				//温度伺服电机状态	  0x46 4c									
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x70)&&(AD_ffb<0x109))break;			//鼓风电机状态 1档   0xA9
		}
		while(0)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(ac_q==0)
			{
				Delayms(1);
				if(ac_q==0)break;			//AC状态 AC关
			}
		}
}

void test_06_30(void)
{
		ER1;
		IR3;		//30
		OR1;		//-6
		ON_LEGAL;
		Set4094();
		Delayms(1000);
		OFF_LEGAL;
		Set4094();
		while(!((in_air==1)&&(out_air==0)))	//内外气状态    外气
		{
			key_test();
			if(key)key_dispose();
			if((is_inair==0)&&(in_air==0)&&(out_air==0))break;
		}
		is_inair=0;
		while(1)
		{
			do
			{
				AD_s1=AD_s1fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s1-AD_s1fb)<3)||((AD_s1fb-AD_s1)<3)));
			if((AD_s1>0x75)&&(AD_s1<0x85))break;				//模式伺服电机状态    吹全身0x7D
		}

		while(1)
		{
			do
			{
				AD_s2=AD_s2fb;
				Delayms(5);											//延时判断伺服电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_s2-AD_s2fb)<3)||((AD_s2fb-AD_s2)<3)));
			if((AD_s2>0x51)&&(AD_s2<0x71))break;				//温度伺服电机状态	  0x61(68)									
		}
		while(1)
		{
			do
			{
				AD_ffb=AD_fanfb;
				Delayms(5);											//延时判断鼓风电机停止	
				key_test();
				if(key)key_dispose();
			}
//			while(1);		//测试用
			while(!(((AD_ffb-AD_fanfb)<3)||((AD_fanfb-AD_ffb)<3)));
			if((AD_ffb>0x82)&&(AD_ffb<0xc2))break;			//鼓风电机状态  1档   0xA2
		}
		while(1)			//等待AC开
		{
			key_test();
			if(key)key_dispose();
			if(!ac_q)
			{
				Delayms(1);
				if(!ac_q)break;			//AC状态 AC关
			}
		}
}

⌨️ 快捷键说明

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