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

📄 lcd12864.lst

📁 单片机的俄罗斯方块程序,含Proteus 仿真文件及详细注释
💻 LST
📖 第 1 页 / 共 2 页
字号:
 108   3                              for(ucCount=0;ucCount<ucWidth;ucCount++)
 109   3                                      vWriteData(*(ucaRow+ucCount));
 110   3                              }
 111   2                      else
 112   2                              {
 113   3                              for(ucCount=0;ucCount<64-ucLine;ucCount++)
 114   3                                      vWriteData(*(ucaRow+ucCount));
 115   3      
 116   3                              CS1=0;
C51 COMPILER V8.05a   LCD12864                                                             11/06/2007 16:45:41 PAGE 3   

 117   3                              CS2=1;
 118   3                              vWriteCMD(LCDPAGE+ucPage);
 119   3                              vWriteCMD(LCDLINE);
 120   3                              for(ucCount=64-ucLine;ucCount<ucWidth;ucCount++)
 121   3                                      vWriteData(*(ucaRow+ucCount));
 122   3                              }
 123   2                      }
 124   1              else
 125   1                      {
 126   2                      CS1=0;
 127   2                      CS2=1;
 128   2                      vWriteCMD(LCDPAGE+ucPage);
 129   2                      vWriteCMD(LCDLINE+ucLine-64);
 130   2                      for(ucCount=0;ucCount<ucWidth;ucCount++)
 131   2                              vWriteData(*(ucaRow+ucCount));
 132   2                      }
 133   1      }
 134          //*************************************************************************************************
 135          //*                                                                                                                                                                                               *
 136          //*                      *****************************汉字显示函数***********************************             *
 137          //*                                                                                                                                                                                               *
 138          //*************************************************************************************************
 139          //此函数将16×16汉字显示在8×128的格子里。
 140          void vShowOneChin(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaChinMap)
 141          {
 142   1              vShowCustomRow(ucPage,ucLine,16,ucaChinMap);
 143   1              vShowCustomRow(ucPage+1,ucLine,16,ucaChinMap+16);
 144   1      
 145   1      }
 146          //*************************************************************************************************
 147          //*                                                                                                                                                                                               *
 148          //*                      *****************************字符显示函数***********************************             *
 149          //*                                                                                                                                                                                               *
 150          //*************************************************************************************************
 151          //此函数将8×16字符显示在8×128的格子里。
 152          void vShowOneChar(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaCharMap)
 153          {
 154   1              vShowCustomRow(ucPage,ucLine,8,ucaCharMap);
 155   1              vShowCustomRow(ucPage+1,ucLine,8,ucaCharMap+8);
 156   1      
 157   1      }
 158          void vShowGraph(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char ucHigh,unsig
             -ned char * ucaGraph)
 159          {
 160   1              unsigned char ucCount;
 161   1              for(ucCount=0;ucCount<ucHigh;ucCount++)
 162   1                      vShowCustomRow(ucPage+ucCount,ucLine,ucWidth,ucaGraph+ucCount*ucWidth);
 163   1      }
 164          //*************************************************************************************************
 165          //*                                                                                                                                                                                               *
 166          //*                      **********************************显示数字***********************************            *
 167          //*                                                                                                                                                                                               *
 168          //*************************************************************************************************
 169          void vShowNumber(unsigned char ucRow,unsigned char ucLine,unsigned long ulNumber)
 170          {
 171   1              unsigned char ucaNumber[4];
 172   1              unsigned char ucCount;
 173   1              unsigned char ucNumFront;
 174   1              if(ulNumber>9999)
 175   1                      return;                           
 176   1      
 177   1              ucaNumber[0]=ulNumber/1000;
C51 COMPILER V8.05a   LCD12864                                                             11/06/2007 16:45:41 PAGE 4   

 178   1              ucaNumber[1]=(ulNumber-1000*(long)ucaNumber[0])/100;
 179   1              ucaNumber[2]=(ulNumber-1000*(long)ucaNumber[0]-100*(long)ucaNumber[1])/10;
 180   1              ucaNumber[3]=(ulNumber-1000*(long)ucaNumber[0]-100*(long)ucaNumber[1]-10*(long)ucaNumber[2]);
 181   1      
 182   1              for(ucNumFront=0;ucNumFront<3;ucNumFront++)
 183   1                      if(ucaNumber[ucNumFront]!=0)
 184   1                              break;
 185   1      
 186   1              for(ucCount=0;ucCount<4;ucCount++)
 187   1                      {
 188   2                      if(ucCount<ucNumFront)
 189   2                              vShowOneChar(ucRow,ucLine+ucCount*8,uca_BLANK);
 190   2                      else
 191   2                              switch(ucaNumber[ucCount])
 192   2                                      {
 193   3                                      case 0:vShowOneChar(ucRow,ucLine+ucCount*8,uca_0);break;
 194   3                                      case 1:vShowOneChar(ucRow,ucLine+ucCount*8,uca_1);break;
 195   3                                      case 2:vShowOneChar(ucRow,ucLine+ucCount*8,uca_2);break;
 196   3                                      case 3:vShowOneChar(ucRow,ucLine+ucCount*8,uca_3);break;
 197   3                                      case 4:vShowOneChar(ucRow,ucLine+ucCount*8,uca_4);break;
 198   3                                      case 5:vShowOneChar(ucRow,ucLine+ucCount*8,uca_5);break;
 199   3                                      case 6:vShowOneChar(ucRow,ucLine+ucCount*8,uca_6);break;
 200   3                                      case 7:vShowOneChar(ucRow,ucLine+ucCount*8,uca_7);break;
 201   3                                      case 8:vShowOneChar(ucRow,ucLine+ucCount*8,uca_8);break;
 202   3                                      case 9:vShowOneChar(ucRow,ucLine+ucCount*8,uca_9);break;
 203   3                                      default:break;
 204   3                                      }
 205   2                      }
 206   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    921    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      35
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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