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

📄 lcddev_ra8806.lst

📁 RA8806底层驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
 252          //Function:
 253          //==============================================================================
 254          /*
 255          void Access_Page0(void)
 256          {
 257                  unsigned char temp;
 258                  
 259                  LCD_CmdWrite(MAMR);
 260                  temp = LCD_DataRead();
 261                  temp &= cClrb1;
 262                  temp &= cClrb0;
 263                  LCD_CmdWrite(MAMR);
 264                  LCD_DataWrite(temp);
 265          }
 266          //==============================================================================
 267          //Subroutine:   Access_Page2
 268          //Function:
 269          //==============================================================================
 270          void Access_Page2(void)
 271          {
 272                  unsigned char temp;
 273                  
 274                  LCD_CmdWrite(MAMR);
 275                  temp = LCD_DataRead();
 276                  temp |= cSetb1;
 277                  temp &= cClrb0;
 278                  LCD_CmdWrite(MAMR);
 279                  LCD_DataWrite(temp);
 280          }
 281            
 282          */
 283          //==============================================================================
 284          //Subroutine:   Access_Page1
 285          //Function:
 286          //==============================================================================
 287          void Access_Page1(void)
 288          {
 289   1              unsigned char temp;
 290   1              
 291   1              LCD_CmdWrite(MAMR);
 292   1              temp = LCD_DataRead();
 293   1              temp &= cClrb1;
 294   1              temp |= cSetb0;
 295   1              LCD_CmdWrite(MAMR);
 296   1              LCD_DataWrite(temp);
 297   1      }
 298          
 299          //==============================================================================
 300          //Subroutine:   Access_2Page
 301          //Function:
 302          //==============================================================================
 303          void Access_2Page(void)
C51 COMPILER V7.09   LCDDEV_RA8806                                                         02/09/2009 16:04:54 PAGE 6   

 304          {
 305   1              unsigned char temp;
 306   1              
 307   1              LCD_CmdWrite(MAMR);
 308   1              temp = LCD_DataRead();
 309   1              temp |= cSetb1;
 310   1              temp |= cSetb0;
 311   1              LCD_CmdWrite(MAMR);
 312   1              LCD_DataWrite(temp);
 313   1      }  
 314          //==============================================================================
 315          //Subroutine:   Fill_PNTR_to_DPRAM
 316          //Function:
 317          //==============================================================================
 318          void Fill_PNTR_to_DPRAM(void)
 319          {
 320   1              unsigned char temp;
 321   1              
 322   1              LCD_CmdWrite(FNCR);     
 323   1              temp = LCD_DataRead();
 324   1              temp |= cSetb3;
 325   1              LCD_CmdWrite(FNCR);
 326   1              LCD_DataWrite(temp);
 327   1      
 328   1              do{
 329   2                      LCD_Delay(0);
 330   2              }while(LCD_CmdRead() & 0x80);
 331   1      
 332   1      }
 333          
 334           unsigned char Lcd_ReadReg(unsigned char CmdReg)
 335           {     
 336   1             LCD_CmdWrite(CmdReg);     // 选择需要读取寄存器的地址
 337   1             CmdReg = LCD_DataRead();    
 338   1                 return CmdReg;
 339   1       } 
 340          //==============================================================================
 341          //Subroutine:   Only_Show_Page1
 342          //Function:
 343          //==============================================================================
 344          void Only_Show_Page1(void)
 345          {
 346   1              unsigned char temp;
 347   1              
 348   1              LCD_CmdWrite(MAMR);
 349   1              temp = LCD_DataRead();
 350   1              temp &= cClrb6;
 351   1              temp &= cClrb5;
 352   1              temp |= cSetb4;
 353   1              LCD_CmdWrite(MAMR);
 354   1              LCD_DataWrite(temp);
 355   1      } 
 356          /*******************************************************************************************************
 357          ** 名    称:                  void LcdClear(void)
 358          ** 功    能:向LCD中写入指令数据
 359          ** 入口参数:DatValue   
 360          ** 出口参数:无    
 361          **----------------------------------------------------------------------------------------------------
 362          ** 作 者  : 严  俊  生
 363          ** 日 期  : 2009-01-26 
 364          *******************************************************************************************************/ 
 365          void Lcd_ClearScreen(void)
C51 COMPILER V7.09   LCDDEV_RA8806                                                         02/09/2009 16:04:54 PAGE 7   

 366          {               
 367   1              LCD_Graphic();
 368   1              Access_2Page(); 
 369   1              LCD_CmdWrite(PNTR);
 370   1              LCD_DataWrite(0x00); 
 371   1              Fill_PNTR_to_DPRAM();
 372   1      } 
 373          /*******************************************************************************************************
 374          ** 名    称:                  void LcdClear(void)
 375          ** 功    能:设定 显示坐标 (内存地址) 子程序
 376          ** 入口参数:无  
 377          ** 出口参数:无    
 378          **----------------------------------------------------------------------------------------------------
 379          ** 作 者  : 严  俊  生
 380          ** 日 期  : 2009-01-26 
 381          *******************************************************************************************************/ 
 382          void LCD_GotoXY(unsigned char X1,unsigned char Y1)  
 383          {  
 384   1              LCD_CmdWrite(CURX);
 385   1              LCD_DataWrite((X1 & 0x3F));           // 设定水平坐标地址 
 386   1          LCD_Delay(1);
 387   1              LCD_CmdWrite(CURY);
 388   1              LCD_DataWrite((Y1 & 0xFF));                       // 设定垂直坐标地址 
 389   1          LCD_Delay(1);
 390   1      } 
 391            
 392          /*******************************************************************************************************
 393          ** 名    称:                  void LCD_Initial(void)  
 394          ** 功    能:初始化LCD,定义所有缓存器的初始值
 395          ** 入口参数:无  
 396          ** 出口参数:无    
 397          **----------------------------------------------------------------------------------------------------
 398          ** 作 者  : 严  俊  生
 399          ** 日 期  : 2009-01-26 
 400          *******************************************************************************************************/ 
 401          #define XCK_FREQUENCY 0x08      
 402          #define IDLE_TIME 87  
 403          void LCD_Initial(void)  
 404          {    
 405   1              LCD_CmdWrite(WLCR);             //[00H] , Default --> 0x00
 406   1              LCD_DataWrite(0x00);    
 407   1      
 408   1              LCD_CmdWrite(MISC);             //[01H] , Default --> 0x00
 409   1              LCD_DataWrite(0x00);
 410   1      
 411   1              LCD_CmdWrite(ADSR);             //[03H] , Default --> 0x00 
 412   1              LCD_DataWrite(0x00);
 413   1      
 414   1              LCD_CmdWrite(INTR);             //[0FH] , Default --> 0x00
 415   1              LCD_DataWrite(0x00);
 416   1      
 417   1              LCD_CmdWrite(WCCR);             //[10H] , Default --> 0x00
 418   1              LCD_DataWrite(0x06);
 419   1      
 420   1              LCD_CmdWrite(CHWI);             //[11H] , Default --> 0x00
 421   1              LCD_DataWrite(0xF5);
 422   1      
 423   1              LCD_CmdWrite(MAMR);             //[12H] , Default --> 0x11 
 424   1              LCD_DataWrite(0x12);
 425   1      
 426   1              LCD_CmdWrite(AWRR);             //[20H] , Default --> 0x27
 427   1              LCD_DataWrite(0x27);
C51 COMPILER V7.09   LCDDEV_RA8806                                                         02/09/2009 16:04:54 PAGE 8   

 428   1      
 429   1              LCD_CmdWrite(DWWR);             //[21H] , Default --> 0x27
 430   1              LCD_DataWrite(0x27);
 431   1      
 432   1              LCD_CmdWrite(AWBR);             //[30H] , Default --> 0xEF      
 433   1              LCD_DataWrite(0xef);
 434   1      
 435   1              LCD_CmdWrite(DWHR);             //[31H] , Default --> 0xEF
 436   1              LCD_DataWrite(0xef);
 437   1      
 438   1              LCD_CmdWrite(AWLR);             //[40H] , Default --> 0x00
 439   1              LCD_DataWrite(0x00);
 440   1      
 441   1              LCD_CmdWrite(AWTR);             //[50H] , Default --> 0x00
 442   1              LCD_DataWrite(0x00);
 443   1      
 444   1              LCD_CmdWrite(CURX);             //[60H] , Default --> 0x00 
 445   1              LCD_DataWrite(0x00);
 446   1      
 447   1              LCD_CmdWrite(BGSG);             //[61H] , Default --> 0x00
 448   1              LCD_DataWrite(0x00);
 449   1      
 450   1              LCD_CmdWrite(EDSG);             //[62H] , Default --> 0x00
 451   1              LCD_DataWrite(0x00);
 452   1      
 453   1              LCD_CmdWrite(CURY);             //[70H] , Default --> 0x00
 454   1              LCD_DataWrite(0x00);
 455   1      
 456   1              LCD_CmdWrite(BGCM);             //[71H] , Default --> 0x00
 457   1              LCD_DataWrite(0x00);
 458   1      
 459   1              LCD_CmdWrite(EDCM);             //[72H] , Default --> 0x00
 460   1              LCD_DataWrite(0x00);
 461   1      
 462   1              LCD_CmdWrite(BTMR);             //[80H] , Default --> 0x00
 463   1              LCD_DataWrite(0x20);
 464   1      
 465   1              LCD_CmdWrite(ITCR);             //[90H] , Default --> 0x00
 466   1              LCD_DataWrite(0x00);
 467   1      
 468   1              LCD_CmdWrite(KSCR1);    //[A0H] , Default --> 0x00
 469   1              LCD_DataWrite(0x00);
 470   1      
 471   1              LCD_CmdWrite(KSCR2);    //[A1H] , Default --> 0x00
 472   1              LCD_DataWrite(0x00);
 473   1      
 474   1              LCD_CmdWrite(KSDR0);    //[A2H] , Default --> 0x00
 475   1              LCD_DataWrite(0x00);                       
 476   1      
 477   1              LCD_CmdWrite(KSDR1);    //[A3H] , Default --> 0x00
 478   1              LCD_DataWrite(0x00);
 479   1      
 480   1              LCD_CmdWrite(KSDR2);    //[A3H] , Default --> 0x00
 481   1              LCD_DataWrite(0x00);
 482   1      
 483   1      //      LCD_CmdWrite(MWCR);             //[B0H] , Default --> NA 
 484   1      
 485   1      //      LCD_CmdWrite(MRCR);             //[B1H] , Default --> NA
 486   1      
 487   1              LCD_CmdWrite(TPCR);             //[C0H] , Default --> 0x00
 488   1              LCD_DataWrite(0x00);
 489   1      
C51 COMPILER V7.09   LCDDEV_RA8806                                                         02/09/2009 16:04:54 PAGE 9   

 490   1              LCD_CmdWrite(TPXR);             //[C1H] , Default --> 0x00
 491   1              LCD_DataWrite(0x00);
 492   1      
 493   1              LCD_CmdWrite(TPYR);             //[C2H] , Default --> 0x00
 494   1              LCD_DataWrite(0x00);
 495   1      
 496   1              LCD_CmdWrite(TPZR);             //[C3H] , Default --> 0x00
 497   1              LCD_DataWrite(0x00);
 498   1      
 499   1              LCD_CmdWrite(PCR);              //[D0H] , Default --> 0x00
 500   1              LCD_DataWrite(0x00);
 501   1      
 502   1              LCD_CmdWrite(PDCR);             //[D1H] , Default --> 0x00
 503   1              LCD_DataWrite(0x00);
 504   1      
 505   1              LCD_CmdWrite(PNTR);             //[E0H] , Default --> 0x00
 506   1              LCD_DataWrite(0x00);
 507   1      
 508   1              LCD_CmdWrite(FNCR);             //[F0H] , Default --> 0x00
 509   1              LCD_DataWrite(0x00);
 510   1      
 511   1              LCD_CmdWrite(FVHT);             //[F1H] , Default --> 0x00

⌨️ 快捷键说明

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