|
公交语音提示(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(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];} //依次换字显示“前方到站” &nbs
|