⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 公交语音提示(3)(数字显示程序).txt

📁 公交语音(全)提示包括(I2C驱动程序)(数字显示程序)
💻 TXT
字号:
公交语音提示(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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -