📄 runmain.c
字号:
Write_command(0x8a,0); //write row address
for(col=0;col<7;col++)
Write_data(sanjiao5[row][col]);
} //finish xia ban ping
}
void DisplaySanJiao6(void)
{ coldz=0x8c;
for(row=0;row<20;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x82,0); //write row address
for(col=0;col<7;col++)
Write_data(sanjiao6[row][col]);
} //finish shang ban ping
WDT_CONTR=0x3a;
coldz=0x80;
for(row=20;row<40;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x8a,0); //write row address
for(col=0;col<7;col++)
Write_data(sanjiao6[row][col]);
} //finish xia ban ping
}
void DisplaySanJiao7(void)
{ coldz=0x8c;
for(row=0;row<20;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x82,0); //write row address
for(col=0;col<7;col++)
Write_data(sanjiao7[row][col]);
} //finish shang ban ping
WDT_CONTR=0x3a;
coldz=0x80;
for(row=20;row<40;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x8a,0); //write row address
for(col=0;col<7;col++)
Write_data(sanjiao7[row][col]);
} //finish xia ban ping
}
//disp railway flash
void disprailway(void)
{ // EA=1;
flashi++;
if(flashi==13) //finish xia ban ping
{ flashcoldz=0x9f;
flashrowdz=0x81;
}
else if(flashi==25) //finish xia ban ping
{flashi=1; // EA=0;
flashcoldz=0x97;
flashrowdz=0x89;
coldz=0x88; //clear flash tu
for(i=0;i<24;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x81,0); //write row address
for(col=0;col<12;col++)
Write_data(0);
} //finish shang ban ping
coldz=0x80;
for(i=0;i<24;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x89,0); //write row address
for(col=0;col<12;col++)
Write_data(0);
} //finish xia ban ping
}
for(i=2;i>0;i--)
{Write_command(flashcoldz,0); //write col address
flashcoldz=flashcoldz-1;
Write_command(flashrowdz,0); //write row address
for(col=0;col<12;col++)
Write_data(flashtu[47+i-flashi*2][col]);
}
} //end disprailway
void clearflashtu(void)
{ coldz=0x80;
for(row=0;row<32;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x81,0); //write row address
for(col=0;col<12;col++)
Write_data(0);
} //finish shang ban ping
WDT_CONTR=0x3a;
coldz=0x80;
for(row=32;row<64;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x89,0); //write row address
for(col=0;col<12;col++)
Write_data(0);
} //finish xia ban ping
}
void disprundao(void)
{ coldz=0x80;
for(row=0;row<32;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x81,0); //write row address
for(col=0;col<12;col++)
Write_data(rundao[row][col]);
} //finish shang ban ping
WDT_CONTR=0x3a;
coldz=0x80;
for(row=32;row<64;row++)
{Write_command(coldz,0); //write col address
coldz=coldz+1;
Write_command(0x89,0); //write row address
for(col=0;col<12;col++)
Write_data(rundao[row][col]);
} //finish xia ban ping
}
void InitCpu(void) //init cpu
{
EA=0;
P0=0xFF;
SCON=0x00;
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
ET0=1;
TR0=1;
EX0=1; //允许中断
IT0=0; //中断触发方式 ,电平
IP=1;
EA=1; //modify 0
}
void service_int0(void) interrupt 0 using 0 //键盘中断
{EA=0;
// TR0=0;
keyflag=1;
}
void Timer0(void) interrupt 1 using 2 //定时器中断
{ EA=0;
t0status=1;
teststatus=0;
testupflag=0;
TR0=0;
}
void d1ms(uint x)
{uchar dj;
while(x--)
for(dj=0;dj<120;dj++);
WDT_CONTR=0x3a;
}
void d10us(uchar x)
{uchar dj;
for(dj=0;dj<x;dj++);
}
void disppaodao(void)
{ if(runleftflag==1)
{ coldz=0x8a; //lie address
if(fourcount==0)
{//clear up last
if(clearupflag==1)
{clearupflag=0;
oldcoldz=0x8c;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x86,0); //write row address
for(col=0;col<2;col++)
Write_data(runupclearte[col]); //
}
}
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
Write_command(oldrowdz,0); //write row address
for(col=0;col<2;col++)
Write_data(0);
}
}
coldz=0x8a; //lie address
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
oldrowdz=rowdz;
Write_command(rowdz,0); //write row address
for(col=0;col<2;col++)
Write_data(runleft[fourcount][col]);
}
fourcount++;
if(fourcount>3)
{fourcount=0;
rowdz=rowdz-1;
if(rowdz<0x82) { rowdz=0x82; downcoldz=0x8c;rundownflag=1;runleftflag=0;pcol=12;}
}
}//end rightflag
if(runrightflag==1)
{ coldz=0x96; //lie address
if(fourcount==0)
{ //clear bottom last
if(cleardownflag==1)
{cleardownflag=0;
oldcoldz=0x94;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x89,0); //write row address
for(col=0;col<2;col++)
Write_data(rundownclearte[col]); //
}
}
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
Write_command(oldrowdz,0); //write row address
for(col=0;col<2;col++)
Write_data(0);
}
}
coldz=0x96; //lie address
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
oldrowdz=rowdz;
Write_command(rowdz,0); //write row address
for(col=0;col<2;col++)
Write_data(runright[fourcount][col]);
}
fourcount++;
if(fourcount>3)
{fourcount=0;
rowdz=rowdz+1;
if(rowdz>0x8d) { uptime=0; downcoldz=0x97; pcol=55;runupflag=1;runrightflag=0;}
}
}//end rightflag
if(rundownflag==1)
{if(downtime==0) //clear run right last one
{ coldz=0x8a; //lie address
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
Write_command(0x82,0); //write row address
for(col=0;col<2;col++)
Write_data(0);
}
}
else if(downtime>0 && downtime<6)
{//oldcoldz=downcoldz-4;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x81,0); //write row address
// oldpcol=pcol-;
for(col=0;col<2;col++)
{dispvalue=rundownclear[col];
dispold=rundao[oldpcol][col]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
oldpcol++;
}
}
else if(downtime>5 && downtime<12)
{//oldcoldz=downcoldz-4;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x89,0); //write row address
for(col=0;col<2;col++)
{dispvalue=rundownclear[col];
dispold=rundao[oldpcol][col]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
oldpcol++;
}
}
if(downtime<5)
{oldpcol=pcol;
for(i=0;i<4;i++)
{Write_command(downcoldz,0); //write col address
downcoldz=downcoldz+1; // ;
Write_command(0x81,0); //write row address
for(col=0;col<2;col++)
{dispvalue=rundown[col];
dispold=rundao[pcol][col]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
pcol++;
}
}
else
{oldpcol=pcol;
for(i=0;i<4;i++)
{Write_command(downcoldz,0); //write col address
downcoldz=downcoldz+1; // ;
Write_command(0x89,0); //write row address
for(col=0;col<2;col++)
{dispvalue=rundown[col];
dispold=rundao[pcol][col]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
pcol++;
}
}
downtime++;
oldcoldz=downcoldz-4;
if(downtime==5) {downcoldz=0x80; oldcoldz=0x9c;} //shang ban bu 5 tiem xia ban bu 6 ci
if(downtime==11) {downtime=0; rundownflag=0;
runrightflag=1;uptime=0; downcoldz=0x97; cleardownflag=1;
rowdz=0x8a;oldrowdz=0x8a;}
}//end downflag
if(runupflag==1)
{if(uptime==0) //clear run right last one
{ coldz=0x96; //lie address
for(i=0;i<4;i++)
{Write_command(coldz,0); //write col address
coldz=coldz+1; // ;
Write_command(0x8d,0); //write row address
for(col=0;col<2;col++)
Write_data(0);
}
}
else if(uptime>0 && uptime<7)
{//oldcoldz=downcoldz-4;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x8e,0); //write row address
for(col=0;col<2;col++)
{dispvalue=runupclear[col];
dispold=rundao[oldpcol][col+10]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
oldpcol++;
}
}
else if(uptime>6 && uptime<12)
{//oldcoldz=downcoldz-4;
for(i=0;i<4;i++)
{Write_command(oldcoldz,0); //write col address
oldcoldz=oldcoldz+1; // ;
Write_command(0x86,0); //write row address
for(col=0;col<2;col++)
{dispvalue=runupclear[col];
dispold=rundao[oldpcol][col+10]; //process tu
dispvalue0=dispvalue0&dispold0;
dispvalue7=dispvalue7&dispold7;
Write_data(dispvalue);
}
oldpcol++;
}
}
if(uptime<6)
{oldpcol=pcol-3;
for(i=0;i<4;i++)
{Write_command(downcoldz,0); //write col address
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -