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

📄 wt-mosport.c

📁 测试手机面板安装是否正确
💻 C
📖 第 1 页 / 共 2 页
字号:
				if(PU2!=(0x3f&P2)) {ng=1;break;}
				d>>=1;
			}
			P1|=0x3f;
			if(ng) break;
			break;
		}
		if(ng)
		{
			LightLed=0x40;TwingleLed=0;
			continue;
		}

		//Jack test
		LightLed=0;TwingleLed=0x8;
		PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0x4;Delay10ms(20);   //3.3V on
		PBYTE[CS1]=0x8;
		for(n=0;n<5;n++)
		{
			if((dd=PBYTE[CS4])&0x82) n=0;
			if(ng) break;
			Delay10ms(1);
		}
		PBYTE[CS1]=0;
		//方波测试
		PIO1=PIO2=PIO3=PIO4=PIO5=PIO6=0;
		Initial8255A();
		#define LCH 0x11
		#define RCH 0x44
		//L changle
		for(n=0;n<3;n++)
		{
			//L
			PIO1&=((~LCH)&(~RCH));PBYTE[CS1]=PIO1;
			while((PBYTE[CS4]&LCH)!=LCH&&ng==0) {PIO1&=~LCH;PBYTE[CS1]=PIO1;Delay10ms(1);}
			Delay10ms(30);
			PIO1|=(LCH&0xf0);PBYTE[CS1]=PIO1;
			if((dd=PBYTE[CS4])&(LCH&0xf0))
			{
				ng=1;
				break;
			}
			PIO1&=~LCH;PBYTE[CS1]=PIO1;
			//R
			while((PBYTE[CS4]&RCH)!=RCH&&ng==0) {PIO1&=~RCH;PBYTE[CS1]=PIO1;Delay10ms(1);}
			Delay10ms(30);
			PIO1|=(RCH&0xf0);PBYTE[CS1]=PIO1;
			if((dd=PBYTE[CS4])&(RCH&0xf0))
			{
				ng=1;
				break;
			}
			PIO1&=~RCH;PBYTE[CS1]=PIO1;
	 	}
/*		for(n=0;n<3;n++)
		{
			while((PBYTE[CS4]&0x50)!=0x50&&ng==0) {PIO1&=~0x50;PBYTE[CS1]=PIO1;Delay10ms(1);}
			Delay10ms(20);
			PIO1|=0x40;PBYTE[CS1]=PIO1;
			Delay10ms(1);
			if(PBYTE[CS4]&0x10) {ng=1;break;}
			PIO1&=~0x40;PBYTE[CS1]=PIO1;
	 	}*/
		if(ng)
		{
			LightLed=0x40;TwingleLed=0;
			continue;
		}
		//USB test
		LightLed=0;TwingleLed=0x4;
		PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0;Delay10ms(1);		//BELL
		for(n=0;n<5;n++)
		{
			if(P1&0x3f) n=0;
			if(ng) break;
		}
		Delay10ms(20);

		//1394 test
		LightLed=0;TwingleLed=0x2;
		PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0;Delay10ms(20);  //BELL
		for(n=0;n<5;n++)
		{
			if(P2&0x3f) n=0;
			if(PBYTE[CS5+2]&0x30) n=0;   //2006-09-20
			if(ng) break;
		}

		//LED test
		LightLed&=0x0;TwingleLed=0x1;
		PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0;Delay10ms(20);
		if(ln==0)
		{
			PIO2=0xe;						//Set 3Color destroy
			PIO1=PIO3=PIO4=PIO5=PIO6=0;
			PIO8=0x7;
			Initial8255A();
			PBYTE[CS3+1]=0x7;		//3.3V 5V 5Vaux on
			ln=1;
		}
		while(ng==0)
		{
			if(!CN1) {ok=1;break;}
		}
	}
}

void Initial(void)
{
	P1=P2=P3=0xff;
//	RECLED=1;
	INPORT=P3;
	TMOD=0X11;
	TR0=1;
	EX0=EX1=0;
	ET0=1;
	EA=1;
	TL0=T10MS & 256;
	TH0=T10MS/256;
}
void Initial8255(void)
{
	PBYTE[CS1+3]=PMODE0&PAOUT&PBOUT&PCLOUT&PCHOUT;
	PBYTE[CS2+3]=PMODE0&PAOUT&PBOUT&PCLOUT&PCHOUT;
	PBYTE[CS3+3]=PMODE0&PAOUT&PBOUT&PCLOUT&PCHOUT;
	PBYTE[CS4+3]=PMODE0|PAIN|PBIN|PCLIN|PCHIN;
	PBYTE[CS5+3]=PMODE0|PAIN|PBIN|PCLIN|PCHIN;
	PBYTE[CS6+3]=PMODE0|PAIN|PBIN|PCLIN|PCHIN;
	Initial8255A();
}
	
void Initial8255A(void)
{
	ET0=0;
	PBYTE[CS1+0]=PIO1;
	PBYTE[CS1+1]=PIO2;
	PBYTE[CS1+2]=PIO3;

	PBYTE[CS2+0]=PIO4;
	PBYTE[CS2+1]=PIO5;
	PBYTE[CS2+2]=PIO6;

	PBYTE[CS3+0]=LightLed;
//	PBYTE[CS3+0]=0;
	PBYTE[CS3+1]=0;
	PBYTE[CS3+2]=0;

	P1=0xff;
	P2=0xff;
	P3|=0x3c;
	ET0=1;
}
void InitialH8255A(void)
{
	ET0=0;
	PBYTE[CS1+0]=0xff;
	PBYTE[CS1+1]=0xff;
	PBYTE[CS1+2]=0xff;

	PBYTE[CS2+0]=0xff;
	PBYTE[CS2+1]=0xff;
	PBYTE[CS2+2]=0xff;

	PBYTE[CS3+0]=0;
	PBYTE[CS3+1]=0;
	PBYTE[CS3+2]=0;

	P1=0;
	P2=0;
	ET0=1;
}

/*
void PowerOff (void) interrupt INT0INT
{
//	StopPwrdn();
	EA=0;
	ET0=0;
	P0=P1=P2=P3=0;
	PCON|=0x2;
}*/
void Time10ms (void) interrupt TIMER0INT
{
	#define LightLedA(a,b,c,d,e) {if(light) {(b)|=(c);PBYTE[a]=(b);lt=d;}else{if(e>0) {(b)&=~(c);PBYTE[a]=(b);lt=e;}}}
	#define LightLedA2(a,b,c,d,e) {if(light) {(b)&=~(c);PBYTE[a]=(b);lt=d;}else{if(e>0) {(b)|=(c);PBYTE[a]=(b);lt=e;}}}
	#define tt 30
//	#define PNO 6
	static char cn=tt;
	static char InP1=0,InP2=0;
	char pp,p1;
	char InP,InP3;
	static bit light=0;
	static char lt=0;
//	kn=0;
//	static char jn1,jn2;
//	static char pn;
//	static char un;
//	static char jn;
//	static bit hl=0;
//	bit st;
	TL0=T10MS & 256;
	TH0=T10MS/256;


	InP=INPORT^P3;
	InP3=InP&InP2;
	InP2=InP&InP1&(~InP3);
	InP1=InP&(~InP3);
	InP^=INPORT;
	InP&=InP3;
	INPORT&=~InP3;
	INPORT|=InP;
	if(!CN2) {ng=1;ok=0;}
	if(ln)
	{
		if(lt<=0)
		{
			light=!light;
			switch(ln)
			{
			case 1:
//				if(!Jack1394Ok2) LightLedA(CS1+1,PIO2,0x80,80,1);		//DLED_4
				LightLedA(CS1+1,PIO2,0x80,80,1);		//DLED_4
				break;
			case 2:
//				if(!UsbOk2) LightLedA(CS1+2,PIO3,0x80,80,1);		//LAN_LED
				LightLedA(CS1+2,PIO3,0x80,80,1);		//LAN_LED
				break;
		    case 3:
//				if(!UsbOk2) LightLedA(CS1+2,PIO3,0x4,80,1);		//DLED_3
				LightLedA(CS1+2,PIO3,0x4,80,1);		//DLED_3
				break;
			case 4:
	//			if(PBYTE[DP1B]&JACK1) {LightLedA(DP4C,PC4,0Xfd,5,8);}		//DLED_2 twinkle
//				if(!HP_JackOk3) 
					{LightLedA(CS1+2,PIO3,0X2,80,1);}		//DLED_2 twinkle
				break;
			case 5:
//				if(PBYTE[DP1B]&JACK2) {LightLedA(CS1+2,PIO3,1,80,1);}	//HD_LED twinkle
				{LightLedA(CS1+2,PIO3,1,80,1);}	//HD_LED twinkle
				break;
		    case 6:
//				if(!PowerBtnOk2) LightLedA(CS1+1,PIO2,0x40,80,1);		//DLED_1
				LightLedA(CS1+1,PIO2,0x40,80,1);		//DLED_1
				break;
			case 7:
				LightLedA(CS1+2,PIO3,0x8,80,1);					//PWR_LED1
				break;
			case 8:
				LightLedA(CS1+2,PIO3,0x20,80,1);					//PWR_LED2
				break;
			default:lt=0;
		   	}
			switch(ln)
			{
			case 1:
			case 5:
				if(!(PBYTE[CS4+1]&1))
				{
					LightLedA2(CS1+1,PIO2,0x2,80,1);			//J1-10
				}
				else
				{
					PBYTE[CS1+1]=(PIO2|=0xe);						//Destroy the LED
				}
				if(!(PBYTE[CS6+1]&0x80))
				{
					LightLedA(CS3+1,PIO8,0x40,80,1);
				}
				else
				{
					PBYTE[CS3+1]=(PIO8&=0xf);						//Destroy the LED
				}
				break;
			case 2:
			case 6:
				if(!(PBYTE[CS4+1]&1))
				{
					LightLedA2(CS1+1,PIO2,0x4,80,1);			//J1-11
				}
				else
				{
					PBYTE[CS1+1]=(PIO2|=0xe);						//Destroy the LED
				}
				if(!(PBYTE[CS6+1]&0x80))
				{
					LightLedA(CS3+1,PIO8,0x20,80,1);
				}
				else
				{
					PBYTE[CS3+1]=(PIO8&=0xf);						//Destroy the LED
				}
				break;
			case 3:
			case 7:
				if(!(PBYTE[CS4+1]&1))
				{
					LightLedA2(CS1+1,PIO2,0x8,80,1);			//J1-12
				}
				else
				{
					PBYTE[CS1+1]=(PIO2|=0xe);						//Destroy the LED
				}			
				if(!(PBYTE[CS6+1]&0x80))
				{
					LightLedA(CS3+1,PIO8,0x10,80,1);
				}
				else
				{
					PBYTE[CS3+1]=(PIO8&=0xf);						//Destroy the LED
				}
				break;
			default:
				if(!(PBYTE[CS4+1]&1))
				{
					LightLedA2(CS1+1,PIO2,(2|4|8),80,1);			
				}
				else
				{
					PBYTE[CS1+1]=(PIO2|=0xe);						//Destroy the LED
				}			
				if(!(PBYTE[CS6+1]&0x80))
				{
					LightLedA(CS3+1,PIO8,(0x40|0x20|0x10),80,1);
				}
				else
				{
					PBYTE[CS3+1]=(PIO8&=0xf);						//Destroy the LED
				}
			}
			if(ln>6)
			{
				LightLedA(CS1+1,PIO2,0x80,80,1);		//DLED_4
				LightLedA(CS1+2,PIO3,0x80,80,1);		//LAN_LED
				LightLedA(CS1+2,PIO3,0x4,80,1);			//DLED_3
				LightLedA(CS1+2,PIO3,0X2,80,1);			//DLED_2 twinkle
				LightLedA(CS1+2,PIO3,1,80,1);			//HD_LED twinkle
				LightLedA(CS1+1,PIO2,0x40,80,1);		//DLED_1
			}
			if(!light) if(++ln>8) ln=1;
		}
	}
	
	if(lt) lt--;
	if(td) td--;	
	if((--cn)==0)
	{
		cn=tt;
		LightLed^=TwingleLed;
		PBYTE[CS3]=LightLed;
	}
}

void Delay10ms(unsigned int a)
{
	td=a;
	while(td);
}

⌨️ 快捷键说明

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