📄 pproject.c
字号:
if(Word_Number<3) //若未显示完“第13站”,则
{
for(m=0;m<32;m++)
next[m]=State1[Word_Number][m]; //依次换字显示“第13站”
}
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++; //显示字数+1
}
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 14: //若为第14站
if(Word_Number<5) //判断已显示字数
{
if(Word_Number<3) //若未显示完“第14站”,则
{
for(m=0;m<32;m++)
next[m]=State2[Word_Number][m]; //依次换字显示“第14站”
}
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++; //显示字数+1
}
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 15: //若为第15站
if(Word_Number<5) //判断已显示字数
{
if(Word_Number<3) //若未显示完“第15站”,则
{
for(m=0;m<32;m++)
next[m]=State1[Word_Number][m]; //依次换字显示“第15站”
}
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++; //显示字数+1
}
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 16: //若为第16站
if(Word_Number<5) //判断已显示字数
{
if(Word_Number<3) //若未显示完“第16站”,则
{
for(m=0;m<32;m++)
next[m]=State2[Word_Number][m]; //依次换字显示“第16站”
}
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++; //显示字数+1
}
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
}
}
else //预报站情形
{
switch(State) //判断站数
{
case 1: //若为“第1站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 2: //若为“第2站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 3: //若为“第3站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 4: //若为“第4站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 5: //若为“第5站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 6: //若为“第6站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 7: //若为“第7站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 8: //若为“第8站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 9: //若为“第9站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 10: //若为“第10站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 11: //若为“第11站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 12: //若为“第12站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 13: //若为“第13站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 14: //若为“第14站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
case 15: //若为“第15站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State1[Word_Number-4][m]; //依次换字显示“第1站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0
break;
case 16: //若为“第16站”
if(Word_Number<7) //判断已显示字数
{
if(Word_Number<4) //若未显示完“前方到站”
{
for(m=0;m<32;m++)
next[m]=QFDZ[Word_Number][m]; //依次换字显示“前方到站”
}
else //若显示完“前方到站”
for(m=0;m<32;m++)
next[m]=State2[Word_Number-4][m]; //依次换字显示“第2站”
Word_Number++; //显示字数+1
}
else //若全部显示完
Word_Number=0; //显示字数清0;
break;
}
}
}
//滚动
void move(void)
{
uchar b;
if(Move_Flag==16) //若当前汉字已向左移动16列,则
{
Move_Flag=0; //滚动标志清0
change(); //更换下一个字
}
for(b=0;b<15;b++) //上半屏字型向左移一列
text[b]=text[b+1];
text[15]=next[0]; //上半屏最后一列为下一个字上半部分的第1列
for(b=0;b<15;b++) //下一个字的上半部分也左移一列
next[b]=next[b+1];
for(b=16;b<31;b++) //下半屏字型向左移一列
text[b]=text[b+1];
text[31]=next[16]; //下半屏最后一列为下一个字下半部分的第1列
for(b=16;b<31;b++) //下一个字的下半部分也左移一列
next[b]=next[b+1];
Move_Flag++; //滚动标志+1
}
//显示屏显示
void Lattice_Display(void)
{
uchar k;
while(1)
{
if(k==Speed)
{
move();
k=0;
}
display();
k++;
}
}
//****************************主程序****************************//
void main()
{
AVR_Initialize();
MAX6959_Initialize();
Welcome();
while(1)
NOP();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -