📄 runmain.c
字号:
}
if(P3_0==1 && downledflag==1)
{P4_3=1;
runfan=1; //stop down
runzheng=1;
downledflag=0;
updownflag=0;
clearBigpodu();
oldspeed=0; //for display
t0count=0;
changetime=0;
CHUSHIHUA(); //clear zi display
Display(space,0x83);
Write_command(0x36,1);
// P3_1=1; //stop up
// P0=ledstatus[poduid];
// P3_1=0; //led on
//return old tu xiang
// disppoduflag=1;
/*if(disppaodaoflag) //display pao
{disppaodao();
}
else //display flash tu
{disprailway();
}*/
displaypodu();
displayspeed();
}
if((t0count==2 ) &&(updownflag==0)) //每隔一定时间读速度,并进行显示
{t0count=0;
speed1=P2;
if(speed1>0) //&& //(speed1!=0xff))
{speed=speed1/10;
if(speed1%10!=0) speed=speed+1;
if(disptuflag==0)
{disptuflag=1;disppaodaoflag=0;
flashcount=0;cleartu();
//disp podu
displaypodu();
}
if(speed!=oldspeed)
{oldspeed=speed;
clearspeed();
displayspeed();
displaypodu();
}
dispziflag=0;
}
else
{disptuflag=0; dispziflag=1; changetime=0; dispzi();
}
}// end t0count
if((flashcount>(21-speed)) && disptuflag==1) //debug pao dao tu and flash tu, flashcount use change speed
{flashcount=0;
changetime++;
if((changetime>0)&&(changetime<5)&&(disppaodaoflag==0)) //display cao chang
{clearflashtu();
disprundao();
disppaodaoflag=1;
fourcount=0;
rowdz=0x85;
oldrowdz=0x85;
rundownflag=1;
downtime=0; //new add
runupflag=0;
runleftflag=0;
runrightflag=0;
downcoldz=0x8c;
pcol=12;
}
else if(changetime==51) //display railway
{//changetime=0;
clearflashtu();
flashcoldz=0x97;
flashrowdz=0x89;
flashi=0;
disppaodaoflag=0;
}
else if(changetime==100)
changetime=0;
if(disppaodaoflag) //display pao
{disppaodao();
}
else //display flash tu
{disprailway();
}
} //end flashcount
TH0=-50000/256;
TL0=-50000%256;
TR0=1;
//P3_1=0;
EA=1;
}
if(keyflag==1) //||(disppoduflag==1)) //处理按键
{keyflag=0;
//P3_1=0;
//P1=0xff;
d10us(5);
keystatus=P1;
/*if(disppoduflag==0) keystatus=P1;
else {keystatus=keytab[poduid];
disppoduflag=0;
}*/
// moveflag=1;
//clearpodu();
if(P3_0==0) //this key use at down
{ P3_1=1;
P0=0xff; //led off
//wending=0xff;
P3_1=0;
P4_3=0;
oldkeyvalue=0;
if(downledflag==0)
{downledflag=1;
upledflag=0;
updownflag=1;
disptuflag=0;
changetime=1;
//disppaodaoflag=0;
cleartu();
CHUSHIHUA();
Display(STRDOWN,0x83);
Write_command(0x36,1);
runfan=0;//begin down
runzheng=1;
testad=adc();
poduid=testad/93;
}
BigPodu();
moveflag=0;
//keyvalue=9;
}
//updownflag=1;
switch(keystatus)
{case 0xfe:
keyvalue=7;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xfe; //led on
P3_1=0;
P4_3=1;
clearpodu();
displaypodu123();
displaypodu4();
displaypodu567();
poduid=1;
break;
case 0xfd:
keyvalue=6;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xfd;
P3_1=0;
P4_3=1;
clearpodu();
displaypodu123();
displaypodu4();
displaypodu567();
poduid=2;
break;
case 0xfb:
keyvalue=5;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xfb;
P3_1=0;
P4_3=1;
clearpodu();
displaypodu123();
displaypodu4();
displaypodu567();
poduid=3;
break;
case 0xf7:
keyvalue=4;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xf7;
P3_1=0; //led on
clearpodu();
displaypodu123();
displaypodu4();
poduid=4;
break;
case 0xef:
keyvalue=3;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xef;
P3_1=0; //led on
P4_3=1;
clearpodu();
displaypodu123();
poduid=5;
break;
case 0xdf:
keyvalue=2;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xdf;
P3_1=0;
P4_3=1;
clearpodu();
displaypodu123();
poduid=6;
break;
case 0xbf:
keyvalue=1;
tempkeyvalue=keyvalue;
P3_1=1;
P0=0xbf;
P3_1=0;
P4_3=1;
clearpodu();
displaypodu123();
poduid=7;
break;
case 0x7f: //this key use at up
moveflag=0; //different other key ,so moveflag==0;
P3_1=1;
P0=0x7f;
P3_1=0;
oldkeyvalue=0;
testad=adc();
if(testad>5) //用于在最高档时,不用升了。
{if(upledflag==0)
{upledflag=1;
updownflag=1;
downledflag=0;
disptuflag=0;
//disppaodaoflag=0;
changetime=1;
P4_3=1;
cleartu();
CHUSHIHUA();
Display(STRUP,0x83);
Write_command(0x36,1);
runfan=1;//begin up
runzheng=0;
testad=adc();
poduid=(uchar)(testad/93);
}
//testad=adc();
BigPodu(); //full screen display po du tu
}
break;
}
if(keyvalue!=oldkeyvalue && updownflag==0)
{oldkeyvalue=keyvalue;
tempadnum=poduad[keyvalue];
moveflag=1;
}
// TH0=-50000/256;
// TL0=-50000%256;
// TR0=1;
EA=1;
}
}
}
void adjustpodu(void)
{//testad=adc();
advaluesum();
testad=testsum/3;
/* CHUSHIHUA();
addisplay[0]=testad/1000;
addisplay[1]=(testad-addisplay[0]*1000)/100;
addisplay[2]=(testad-addisplay[0]*1000-addisplay[1]*100)/10;
addisplay[3]=testad%10;
for(i=0;i<4;i++) addisplay[i]=addisplay[i]+0x30;
Display(addisplay,0x86);
d1ms(3);
addisplay[0]=keyvalue/1000;
addisplay[1]=(keyvalue-addisplay[0]*1000)/100;
addisplay[2]=(keyvalue-addisplay[0]*1000-addisplay[1]*100)/10;
addisplay[3]=keyvalue%10;
for(i=0;i<4;i++) addisplay[i]=addisplay[i]+0x30;
Display(addisplay,0x8e);
addisplay[0]=oldkeyvalue/1000;
addisplay[1]=(oldkeyvalue-addisplay[0]*1000)/100;
addisplay[2]=(oldkeyvalue-addisplay[0]*1000-addisplay[1]*100)/10;
addisplay[3]=oldkeyvalue%10;
for(i=0;i<4;i++) addisplay[i]=addisplay[i]+0x30;
Display(addisplay,0x96);
WDT_CONTR=0x3a;
Write_command(0x36,1); // 功能设置---8BIT控制界面,绘?
*/
//tempadnum=poduad[keyvalue];
if(testad<(tempadnum-5)) //&& tempadnum>1)
{runfan=0; //down
runzheng=1;
}
else if(testad>(tempadnum+5))
{runfan=1;//begin up
runzheng=0;
}
else
{runfan=1;
runzheng=1;
moveflag=0;
}
}
void BigPodu(void)
{/*testad=adc();
debugpodu=testad/93;
debugpodu=debugpodu+1;*/
advaluesum();
testsum=testsum/3;
debugpodu=testsum/93;
debugpodu=debugpodu+1;
//dispaly ad value;
/* CHUSHIHUA();
addisplay[0]=0;
addisplay[1]=0;
addisplay[2]=(poduid-addisplay[0]*1000-addisplay[1]*100)/10;
addisplay[3]=poduid%10;
for(i=0;i<4;i++) addisplay[i]=addisplay[i]+0x30;
Display(addisplay,0x88);
addisplay[0]=0;
addisplay[1]=0;
addisplay[2]=(debugpodu-addisplay[0]*1000-addisplay[1]*100)/10;
addisplay[3]=debugpodu%10;
for(i=0;i<4;i++) addisplay[i]=addisplay[i]+0x30;
Display(addisplay,0x86);
d1ms(3);
WDT_CONTR=0x3a;
Write_command(0x36,1); // 功能设置---8BIT控制界面*/
// poduid=3;
if(debugpodu!=poduid) //keyvalue=po du value 1~7
{poduid=debugpodu;
// clearBigpodu();
switch(poduid)
{case 1:
oldkeyvalue=7;
DisplaySanJiao1();
break;
case 2:
oldkeyvalue=6;
DisplaySanJiao2();
break;
case 3:
oldkeyvalue=5;
DisplaySanJiao3();
break;
case 4:
oldkeyvalue=4;
DisplaySanJiao4();
break;
case 5:
oldkeyvalue=3;
DisplaySanJiao5();
break;
case 6:
oldkeyvalue=2;
DisplaySanJiao6();
break;
case 7:
oldkeyvalue=1;
DisplaySanJiao7();
break;
}
}
}
uint adc(void)
{ uint u=0;
uchar adi;
cs=1;
_nop_();
cs=0;
for(adi=0;adi<10;adi++) //read data
{
clk=0;
u=(u<<1)|dout;
clk=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -