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

📄 cgm12864b.lst

📁 C8051f020在CGM12864B点阵液晶模块上显示两个位图及两个汉字
💻 LST
📖 第 1 页 / 共 3 页
字号:
 350   2                      LCD_WriteCommand2(0xB8+j);      //清右半屏
 351   2                      LCD_WriteCommand2(0x40);
 352   2                      for (i=0;i<64;i++)
 353   2                              LCD_WriteData2(0x00);
 354   2              }
 355   1      }
 356          //-------------------------------------------------------------------------
 357          //函数名称:      void DispBmp(char *buf)
 358          //函数功能:      显示位图
 359          //入口参数:      char *buf 位图数据首地址
 360          //出口参数:      无
 361          //全局变量引用:  无
 362          //调用模块:      LCD_WriteCommand1(); LCD_WriteCommand2();
 363          //               LCD_WriteData1();        LCD_WriteData1();
 364          //----------------------------------------------------------------------
 365          
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 7   

 366          void DispBmp(char *buf) //显示一幅位图
 367          {
 368   1      int i,j;
 369   1              for (j=0;j<8;j++)                       //显示位图
 370   1              {
 371   2                      LCD_WriteCommand1(0xB8+j);      
 372   2                      LCD_WriteCommand1(0x40);
 373   2                      for (i=0;i<64;i++)
 374   2                              LCD_WriteData1(buf[(j*2)*64+i]);
 375   2                      LCD_WriteCommand2(0xB8+j);      
 376   2                      LCD_WriteCommand2(0x40);
 377   2                      for (i=0;i<64;i++)
 378   2                              LCD_WriteData2(buf[(j*2+1)*64+i]);
 379   2              }
 380   1      }
 381          //-------------------------------------------------------------------------
 382          //函数名称:      void SYSCLK_Init (void)
 383          //函数功能:      系统时钟初始化;使能外部时钟:11.0592MHz
 384          //入口参数:      无
 385          //出口参数:      无
 386          //全局变量引用:  无
 387          //调用模块:      无
 388          //----------------------------------------------------------------------
 389          void SYSCLK_Init (void)
 390          {
 391   1         int i;                              // delay counter
 392   1         OSCXCN = 0x67;                      // start external oscillator with
 393   1                                             // 18.432MHz crystal
 394   1         for (i=0; i < 256; i++) ;           // Wait for osc. to start up
 395   1         while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle
 396   1         OSCICN = 0x88;                      // select external oscillator as SYSCLK
 397   1                                             // source and enable missing clock
 398   1                                             // detector
 399   1      }
 400          //-------------------------------------------------------------------------
 401          //函数名称:      PORT_Init ()
 402          //函数功能:      端口初始化;使能交叉开关
 403          //入口参数:      无
 404          //出口参数:      无
 405          //全局变量引用:  无
 406          //调用模块:      无
 407          //----------------------------------------------------------------------
 408          
 409          void PORT_Init (void)
 410          {
 411   1         XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
 412   1      }
 413          
 414          //-------------------------------------------------------------------------
 415          //函数名称:      Timer0_Init ()
 416          //函数功能:      定时器0初始化;定时时间1ms
 417          //入口参数:      无
 418          //出口参数:      无
 419          //全局变量引用:  无
 420          //调用模块:      无
 421          //----------------------------------------------------------------------
 422          
 423          void Timer0_Init (void)
 424          {
 425   1              CKCON|=0x8;
 426   1              TMOD|=0x1;      //16Bit
 427   1              Count1ms=10;
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 8   

 428   1              TR0 = 0;                                // STOP Timer0
 429   1              TH0 = (-SYSCLK/1000) >> 8;              // set Timer0 to overflow in 1ms
 430   1              TL0 = -SYSCLK/1000;
 431   1              TR0 = 1;        // START Timer0
 432   1              IE|= 0x2; 
 433   1      }
 434          
 435          //-------------------------------------------------------------------------
 436          //函数名称:      Timer0_ISR ()
 437          //函数功能:      定时器0中断服务程序
 438          //入口参数:      无
 439          //出口参数:      无
 440          //全局变量引用:  Count1ms
 441          //调用模块:      无
 442          //----------------------------------------------------------------------
 443          void Timer0_ISR (void) interrupt 1  //1ms
 444          {
 445   1              TH0 = (-SYSCLK/1000) >> 8;  
 446   1              TL0 = -SYSCLK/1000;
 447   1              if (Count1ms) Count1ms--;
 448   1      }
 449          
 450          //-------------------------------------------------------------------------
 451          //函数名称:      Delay1ms(unsigned char T)
 452          //函数功能:      延时1ms程序
 453          //入口参数:      unsigned char T :定时时间常数
 454          //出口参数:      无
 455          //全局变量引用:  Count1ms
 456          //调用模块:      无
 457          //----------------------------------------------------------------------
 458          
 459          void Delay1ms(unsigned char T)
 460          {
 461   1              Count1ms=T;
 462   1              while (Count1ms);
 463   1      }
 464          
 465          //-------------------------------------------------------------------------
 466          //函数名称:      void Delay1s(unsigned char T)
 467          //函数功能:      延时1s程序
 468          //入口参数:      unsigned char T :定时时间常数
 469          //出口参数:      无
 470          //全局变量引用:  Count1ms
 471          //调用模块:      Delay1ms()
 472          //----------------------------------------------------------------------
 473          void Delay1s(unsigned char T)
 474          {
 475   1              while (T)
 476   1              {
 477   2                      Delay1ms(200);
 478   2                      Delay1ms(200);
 479   2                      Delay1ms(200);
 480   2                      Delay1ms(200);
 481   2                      Delay1ms(200);
 482   2                      T--;
 483   2              }
 484   1      }
 485          
 486          //---------------------------------------------------------------------------
 487          // 主程序
 488          //----------------------------------------------------------------------------
 489          
C51 COMPILER V7.05   CGM12864B                                                             02/14/2006 09:35:46 PAGE 9   

 490          void main (void) 
 491          {
 492   1              WDTCN = 0xde;
 493   1              WDTCN = 0xad;           //关看门狗
 494   1              SYSCLK_Init ();         //初始化时钟
 495   1              Timer0_Init();                  //初始化定时器
 496   1              PORT_Init ();           //初始化IO口
 497   1              EA=1;                                   //开中断
 498   1              InitLCD();              //清屏
 499   1              Delay1s(1);             //延时1S
 500   1              for (;;)
 501   1              {
 502   2                      DispBmp(screen1); //显示位图"新华龙电子-单片机推广应用急先锋!"
 503   2                      Delay1s(3);
 504   2                      DispBmp(screen2); //显示位图"换代创新后的51-高速SOC美国silicon labs 8051F"
 505   2                      Delay1s(3);
 506   2                      InitLCD();        //清屏
 507   2                      LCD_WriteHZ(2,1,Han); //显示16*16点阵汉字'汉'
 508   2              Delay1ms(100);
 509   2                      LCD_WriteHZ(60,3,Zi); //显示16*16点阵汉字'字'
 510   2                      Delay1s(3);
 511   2              }
 512   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    689    ----
   CONSTANT SIZE    =   2112    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       8
   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 + -