?? wt-mosport.c
字號:
#include <AT89X52.h>
#include <wt-mosport.h>
void main(void)
{
// bit oldLAST=0;
// bit oldNEXT=0;
// unsigned char b;
unsigned char n,d,dd;
// bit st=0;
ln=0;
INPORT=P3;
Initial();
Initial8255();
Delay10ms(1);
LightLed=0;
TwingleLed=0;
/* for(n=0;n<20;n++)
{
PBYTE[CS3]=0xff;
Delay10ms(50);
PBYTE[CS3]=0;
Delay10ms(50);
}*/
LightLed=0;
while(1)
{
PIO1=PIO2=PIO3=PIO4=PIO5=PIO6=0;
Initial8255();
InitialH8255A();
if(ng)
{
LightLed=0x40;TwingleLed=0;
PBYTE[CS3+1]=0x8;Delay10ms(5);PBYTE[CS3+1]=0;Delay10ms(5);
PBYTE[CS3+1]=0x8;Delay10ms(5);PBYTE[CS3+1]=0;Delay10ms(5);
PBYTE[CS3+1]=0x8;Delay10ms(5);PBYTE[CS3+1]=0;Delay10ms(5);
}
if(ok)
{
LightLed=0x80;TwingleLed=0;
PBYTE[CS3+1]=0x8;Delay10ms(50);PBYTE[CS3+1]=0;
}
// if(!(ok|ng)) {LightLed=0;TwingleLed=0xc0;}
ln=0;
PIO2=~0x20;
// PIO6=~0x10;
PIO6=~0x11;
PBYTE[CS1+1]=PIO2;
PBYTE[CS2+2]=PIO6;
if(ng||ok)
{
ng=ok=0;
for(n=0;n<20;n++)
{
if(!(PBYTE[CS4+1]&(~PIO2))) n=0;
if(!(PBYTE[CS5+2]&(~PIO6))) n=0;
if(ng) break;
if(!CN3) break;
}
}
else
{
LightLed=0;
TwingleLed=0xff;
Delay10ms(300);
TwingleLed=0xc0;
}
if(ng) continue;
ng=ok=0;
LightLed=0;
for(n=0;n<20;n++)
{
if((dd=PBYTE[CS4+1])&(~PIO2)) n=0;
if((dd=PBYTE[CS5+2])&(~PIO6)) n=0;
if(ng) break;
}
if(ng) continue;
//Power switch test
PBYTE[CS3+1]=0;
PIO1=PIO2=PIO3=PIO4=PIO5=PIO6=0;
Initial8255A();
// Delay10ms(50);
LightLed=0;
TwingleLed=0x20;
PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0;Delay10ms(20);
for(n=0;n<5;n++)
{
if(!(PBYTE[CS4+2]&0x40)) //0x40 power switch
{
ng=1;
break;
}
Delay10ms(1);
}
if(ng)
{
LightLed|=0x40;
continue;
}
for(n=0;n<5;n++)
{
if(PBYTE[CS4+2]&0x40) n=0;
if(ng) break;
Delay10ms(1);
}
while(!(PBYTE[CS4+2]&0x40)&&ng==0);
Delay10ms(10);
//Shortcut test
PBYTE[CS3+1]=0;
PIO1=PIO2=PIO3=PIO4=PIO5=PIO6=0;
Initial8255();
LightLed&=0x0;TwingleLed=0x10;
PBYTE[CS3+1]=0x8;Delay10ms(20);PBYTE[CS3+1]=0;Delay10ms(20);
n=PBYTE[CS4];
n=PBYTE[CS4+1];
n=(0xef&PBYTE[CS4+2]);
n=PBYTE[CS5];
n=PBYTE[CS5+1];
n=PBYTE[CS5+2];
PIO1=0xff;
PIO2=0xdf;
// PIO3=0xff;
PIO3=0xef; //2006-9-21
PIO4=0xf7;
PIO5=0x36;
// PIO6=0x8c;
// PU2=0x3f;
PIO6=0xfc; //2006-9-20
PU2=0x33; //2006-9-20
PU1=0x3f;
while(1)
{
if(PIO1!=(dd=PBYTE[CS4])) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(dd=(0xef&PBYTE[CS4+2]))) {ng=1;break;}
if(PIO4!=(dd=PBYTE[CS5])) {ng=1;break;}
if(PIO5!=(dd=PBYTE[CS5+1])) {ng=1;break;}
if(PIO6!=(dd=PBYTE[CS5+2])) {ng=1;break;}
if(PU2!=(0x3f&P2))
{
ng=1;
break;
}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d=0x1;
for(n=0;n<8;n++)
{
PBYTE[CS1]=d;
Delay10ms(3);
// dd=PBYTE[CS4];
if(d==8||d==0x20)
{
if((~8&~0x20&PIO1)!=PBYTE[CS4]) {ng=1;break;}
}
else
{
if((~d&PIO1)!=PBYTE[CS4]) {ng=1;break;}
}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=PBYTE[CS5+2]) {ng=1;break;}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS1]=0;
if(ng) break;
d=0x1;
for(n=0;n<8;n++)
{
PBYTE[CS1+1]=d;
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(d==0x10)
{
if((~d&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0xe|d;Delay10ms(1);
if((0xf1&~d&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=d;
}
else
{
if((~d&PIO2)!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe|d;Delay10ms(1);
if((0xf1&~d&PIO2)!=(dd=PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=d;
}
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=PBYTE[CS5+2]) {ng=1;break;}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS1+1]=0;
if(ng) break;
d=0x1;
for(n=0;n<8;n++)
{
PBYTE[CS1+2]=d;
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if((~d&PIO3)!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=PBYTE[CS5+2]) {ng=1;break;}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS1+2]=0;
if(ng) break;
d=0x1;
for(n=0;n<8;n++)
{
PBYTE[CS2]=d;
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if((~d&PIO4)!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if((d==4?PIO6&0xf7:PIO6)!=(dd=PBYTE[CS5+2])) {ng=1;break;}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS2]=0;
if(ng) break;
d=0x1;
for(n=0;n<8;n++)
{
PBYTE[CS2+1]=d;
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if((~d&PIO5)!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=PBYTE[CS5+2]) {ng=1;break;}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS2+1]=0;
if(ng) break;
d=0x1;
for(n=0;n<7;n++)
{
PBYTE[CS2+2]=d;
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if((d!=8?PIO4:PIO4&0xfb)!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(d==0x10||d==0x20)
{
if((~0x30&PIO6)!=PBYTE[CS5+2]) {ng=1;break;} //2006-09-21
}
else
{
if((~d&PIO6)!=PBYTE[CS5+2]) {ng=1;break;}
}
if(PU2!=(0x3f&P2)) {ng=1;break;}
if(PU1!=(0x3f&P1)) {ng=1;break;}
d<<=1;
}
PBYTE[CS2+2]=0;
if(ng) break;
d=0x20;
for(n=0;n<6;n++)
{
P2=(P2|0x3f)&(~d);
Delay10ms(10);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=PBYTE[CS5+2]) {ng=1;break;}
// if(d==1||d==2)
// {
// if((~3&PU2)!=(0x3f&P2)) {ng=1;break;}
// }
// else
// {
if((~d&PU2)!=(0x3f&P2)) {ng=1;break;}
// }
if(PU1!=(0x3f&P1)) {ng=1;break;}
d>>=1;
}
P2|=0x3f;
if(ng) break;
d=0x20;
for(n=0;n<6;n++)
{
P1=(P1|0x3f)&(~d);
Delay10ms(3);
if(PIO1!=PBYTE[CS4]) {ng=1;break;}
if(PIO2!=(0x10|PBYTE[CS4+1])) {ng=1;break;}
PBYTE[CS1+1]=0xe;Delay10ms(1);
if((0xf1&PIO2)!=PBYTE[CS4+1]) {ng=1;break;}
PBYTE[CS1+1]=0;
if(PIO3!=(0xef&PBYTE[CS4+2])) {ng=1;break;}
if(PIO4!=PBYTE[CS5]) {ng=1;break;}
if(PIO5!=PBYTE[CS5+1]) {ng=1;break;}
if(PIO6!=(dd=PBYTE[CS5+2])) {ng=1;break;}
if(d==1||d==2)
{
if((~3&PU1)!=(0x3f&P1)) {ng=1;break;}
}
else
{
if((~d&PU1)!=(0x3f&P1)) {ng=1;break;}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -