公交语音提示(3)
//***************************数字显示程序****************************//
void Led_Display(uchar Number)
{uchar d0,d1;
d0=Number/10; //取站数的个位
d1=Number%10; //取站数的十位
Write_2byte(0x70,0x20,d1,d0); //从显示位0开始连续显示两位
}
//***************************换下一个字显示**************************//
void change()
{unsigned char m;
if(!Pre_Flag) //报站情形
{switch(State) //判断站名
{case 1: //若为第1站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第1站”,则
{for(m=0;m<32;m++) //依次换字显示“第1站”
next[m]=State1[Word_Number][m];}
else
for(m=0;m<32;m++) //依次换字显示“到了”
next[m]=DL[Word_Number-3][m];
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 2: //若为第2站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第2站”,则
{for(m=0;m<32;m++) //依次换字显示“第2站”
next[m]=State2[Word_Number][m];}
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 3: //若为第3站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第3站”,则
{for(m=0;m<32;m++)
next[m]=State1[Word_Number][m];} //依次换字显示“第3站”
else
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 4: //若为第4站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第4站”,则
{for(m=0;m<32;m++)
next[m]=State2[Word_Number][m];} //依次换字显示“第4站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 5: //若为第5站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第5站”,则
{for(m=0;m<32;m++)
next[m]=State1[Word_Number][m];} //依次换字显示“第5站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 6: //若为第6站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第6站”,则
{for(m=0;m<32;m++)
next[m]=State2[Word_Number][m];} //依次换字显示“第6站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 7: //若为第7站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第7站”,则
{for(m=0;m<32;m++)
next[m]=State1[Word_Number][m];} //依次换字显示“第7站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 8: //若为第8站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第8站”,则
{for(m=0;m<32;m++)
next[m]=State2[Word_Number][m];} //依次换字显示“第8站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 9: //若为第9站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第1站”,则
{for(m=0;m<32;m++)
next[m]=State1[Word_Number][m];} //依次换字显示“第9站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 10: //若为第10站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第10站”,则
{for(m=0;m<32;m++)
next[m]=State2[Word_Number][m];} //依次换字显示“第10站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 11: //若为第11站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第11站”,则
{for(m=0;m<32;m++)
next[m]=State1[Word_Number][m];} //依次换字显示“第11站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 12: //若为第12站
if(Word_Number<5) //判断已显示字数
{if(Word_Number<3) //若未显示完“第12站”,则
{for(m=0;m<32;m++)
next[m]=State2[Word_Number][m];} //依次换字显示“第12站”
else //否则
for(m=0;m<32;m++)
next[m]=DL[Word_Number-3][m]; //依次换字显示“到了”
Word_Number++;} //显示字数+1
else //若全部显示完,则
Word_Number=0; //显示字数清0
break;
case 13: //若为第13站
if(Word_Number<5) //判断已显示字数
{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