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

📄 pproject.c

📁 AVRkaifashili.rar
💻 C
📖 第 1 页 / 共 3 页
字号:
     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 + -