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

📄 lcd.lst

📁 一款基于单片机开发的 的 推箱子经典游戏的程序及仿真
💻 LST
📖 第 1 页 / 共 2 页
字号:
 208          
 209          void Disp8X8(unsigned char pag,unsigned char col, unsigned char code *DispData)
 210          {
 211   1          unsigned char j=0,i=0;
 212   1          //for(j=0;j<2;j++)
 213   1              if( Flag )
 214   1          {
 215   2              //LCDWriteCommand(PageAdd+pag+j);
 216   2              LCDWriteCommand(PageAdd+pag);
 217   2              LCDWriteCommand(ColAdd+col);
 218   2              for(i=0;i<8;i++) LCDWriteData(DispData[i]);
 219   2          }
 220   1      }
 221          
 222          
 223          void Clr()
 224          {
 225   1      unsigned char j,k;
 226   1      Mcs=1;Scs=1;
 227   1       LCDWriteCommand(PageAdd+0);
 228   1       LCDWriteCommand(ColAdd+0);
 229   1      
 230   1       for(k=0;k<8;k++){
 231   2      LCDWriteCommand(PageAdd+k);
 232   2        for(j=0;j<128;j++)LCDWriteData(0x00);
 233   2       }
 234   1      }
 235          
 236          void DispLogo(void)
 237          {
 238   1              Mcs=1;
 239   1              Scs=0;
 240   1              Disp16X16(2,32,hzdot[0]);
 241   1              Disp16X16(2,48,hzdot[1]);
C51 COMPILER V8.02   LCD                                                                   11/01/2008 07:36:25 PAGE 5   

 242   1              Mcs=0;
 243   1              Scs=1;
 244   1              Disp16X16(2,0,hzdot[2]);
 245   1              Disp16X16(2,16,hzdot[3]);
 246   1              
 247   1              Mcs=1;
 248   1              Scs=0;
 249   1              Disp8X16(4,0,chardot[0]);//a
 250   1              Disp8X16(4,8,chardot[1]);//t
 251   1              Disp8X16(4,16,chardot[2]);//8
 252   1              Disp8X16(4,24,chardot[3]);//9
 253   1              Disp8X16(4,32,chardot[4]);//c
 254   1              Disp8X16(4,40,chardot[5]);//5
 255   1              Disp8X16(4,48,chardot[2]);//8
 256   1              Disp8X16(4,56,chardot[6]);//@
 257   1              Mcs=0;
 258   1              Scs=1;
 259   1              Disp8X16(4,0,chardot[7]);//1
 260   1              Disp8X16(4,8,chardot[8]);//6
 261   1              Disp8X16(4,16,chardot[9]);//3
 262   1              Disp8X16(4,24,chardot[10]);//.
 263   1              Disp8X16(4,32,chardot[4]);//c
 264   1              Disp8X16(4,40,chardot[11]);//o
 265   1              Disp8X16(4,48,chardot[12]);//m
 266   1              //Disp8X16(4,56,chardot[13]);
 267   1              //Disp8X16(4,56,chardot[14]);
 268   1              Delay(40000);
 269   1              Clr();
 270   1      }
 271          
 272          void LCDInit()
 273          {
 274   1          TMOD=0x21;        
 275   1                      TL1=0xfd;
 276   1                      TH1=0xfd;
 277   1                      TH0=0xfc;
 278   1                      TL0=0x6c;
 279   1                      SCON=0xd8;        
 280   1                      PCON=0x00;
 281   1                      //TR1=1;
 282   1                      TR0=1;
 283   1                      EA=1; 
 284   1                      //ES=1; 
 285   1                      ET0=1;      //开中断,允许串行口中断
 286   1                      //REN=1;    
 287   1          Flag=1;
 288   1              LcdRst=0;
 289   1          Delay(10);
 290   1          LcdRst=1;
 291   1          Delay(10);    
 292   1          Mcs=0;
 293   1          Scs=1;    
 294   1          Delay(10);
 295   1          LCDWriteCommand(DispOff);
 296   1          LCDWriteCommand(PageAdd+0);
 297   1          LCDWriteCommand(StartLine+0x0);
 298   1          LCDWriteCommand(ColAdd+0);
 299   1          LCDWriteCommand(DispOn);
 300   1          DispLogo();
 301   1      }
 302          
 303          void DispTitle(void)
C51 COMPILER V8.02   LCD                                                                   11/01/2008 07:36:25 PAGE 6   

 304          {
 305   1              Mcs=1;
 306   1              Scs=0;
 307   1              Disp16X16(1,8,ciu);
 308   1              Disp16X16(1,24,xiang);
 309   1              Disp16X16(1,40,zi);             
 310   1      }
 311          
 312          void DispPass(void)
 313          {
 314   1              Mcs=1;
 315   1              Scs=0;
 316   1              Disp8X16(4,24,Asc[10]);
 317   1              Disp8X16(4,24,Asc[10]);
 318   1              
 319   1              Disp16X16(4,8,di);      
 320   1              Disp16X16(4,40,guan);
 321   1              if( Pass < 9 )
 322   1              {
 323   2                      Disp8X16(4,24,Asc[10]);
 324   2                      Disp8X16(4,32,Asc[Pass+1]);             
 325   2              }       
 326   1              else if((Pass > 8)&&( Pass < 19 ))
 327   1              {
 328   2                      Disp8X16(4,24,Asc[1]);
 329   2                      Disp8X16(4,32,Asc[Pass-9]);
 330   2              }       
 331   1              else if((Pass > 18)&&( Pass < 20 ))
 332   1              {
 333   2                      Disp8X16(4,24,Asc[2]);
 334   2                      Disp8X16(4,32,Asc[0]);
 335   2              }       
 336   1      }
 337          
 338          void dir() interrupt 1                   //定时器1
 339          {
 340   1          TH0=0xfc;
 341   1          TL0=0x6c;
 342   1          count++;
 343   1          if( count>1000 )
 344   1          {
 345   2                              Second++;       
 346   2                              if(Second>59)
 347   2                              {
 348   3                                      Minute++;               
 349   3                                      if(Minute>59)
 350   3                                      {
 351   4                                              Hour++;         
 352   4                                              if(Hour>23)
 353   4                                              {
 354   5                                                      Hour=0;
 355   5                                              }
 356   4                                              Minute=0;
 357   4                                      }
 358   3                                      Second=0;
 359   3                              }
 360   2                              count=0;
 361   2              }
 362   1              if( Pass>0 )
 363   1              {
 364   2                      TimeFlag=0;
 365   2              }
C51 COMPILER V8.02   LCD                                                                   11/01/2008 07:36:25 PAGE 7   

 366   1              if(( TimeFlag==0 )&&( Pass==0 ))
 367   1              {
 368   2                      TimeFlag=1;
 369   2                      Second=0;Minute=0;Hour=0;
 370   2              }
 371   1      
 372   1      }
 373          
 374          void DispTime(void)
 375          {
 376   1              Mcs=1;
 377   1              Scs=0;  
 378   1              
 379   1                      Disp8X16(6,0,Asc[Hour/10]);
 380   1                      Disp8X16(6,8,Asc[Hour%10]);
 381   1                      Disp8X16(6,16,chardot[13]);
 382   1                      Disp8X16(6,24,Asc[Minute/10]);
 383   1                      Disp8X16(6,32,Asc[Minute%10]);
 384   1                      Disp8X16(6,40,chardot[13]);             
 385   1              
 386   1                      Disp8X16(6,48,Asc[Second/10]);
 387   1                      Disp8X16(6,56,Asc[Second%10]);          
 388   1              
 389   1              //if( Pass==20 )
 390   1              {
 391   2                      //Second=0;Minute=0;Hour=0;
 392   2                      /*
 393   2                      Disp8X16(6,0,Asc[10]);
 394   2                      Disp8X16(6,8,Asc[10]);
 395   2                      Disp8X16(6,16,chardot[13]);             
 396   2              
 397   2              
 398   2                      Disp8X16(6,24,Asc[10]);
 399   2                      Disp8X16(6,32,Asc[10]);
 400   2                      Disp8X16(6,40,chardot[13]);             
 401   2              
 402   2              
 403   2                      Disp8X16(6,48,Asc[10]);
 404   2                      Disp8X16(6,56,Asc[10]);         
 405   2                      */
 406   2              }
 407   1              
 408   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1054    ----
   CONSTANT SIZE    =    688    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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