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

📄 lcddev.lst

📁 RA8806液晶的底层驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:
 219   1              temp |= 0x04;
 220   1              Lcd_writedatatocmd(WLCR,temp);
 221   1      }  
 222          /*
 223          函数名:void LCD_OFF(void)
 224          
 225          */
 226          //关显示
 227          void LCD_OFF(void)
 228          {
 229   1              uchar temp;
 230   1              temp = Lcd_readdatafromcmd(WLCR );
 231   1              temp &= 0xFB;
 232   1          Lcd_writedatatocmd(WLCR     ,temp);
 233   1      } 
 234          
 235          //设置光标位置
 236          void LCD_GotoXY(uchar X1,uchar Y1)  
 237          {
 238   1          Lcd_writedatatocmd(CURX,X1 & 0x3f); 
 239   1          Delay(2);
 240   1          Lcd_writedatatocmd(CURY,Y1 & 0xff);  
 241   1          Delay(2);
C51 COMPILER V8.02   LCDDEV                                                                04/21/2009 22:23:54 PAGE 5   

 242   1      }
 243            
 244            //文字模式
 245          void LCD_TEXT(void)
 246          {
 247   1       uchar temp;
 248   1       temp = Lcd_readdatafromcmd(WLCR);
 249   1       temp |= 0x08;   //WLCR寄存器第3位
 250   1       Lcd_writedatatocmd(WLCR,temp);
 251   1      }
 252          
 253          
 254          //绘图模式
 255          void LCD_Graphic(void)
 256          {
 257   1       uchar temp;
 258   1       temp = Lcd_readdatafromcmd(WLCR);
 259   1       temp &= 0xf7; //改变WLCR第三位
 260   1       Lcd_writedatatocmd(WLCR,temp);
 261   1      }
 262          
 263          //显示
 264          void Access_2Page(void)
 265          {
 266   1       uchar temp;
 267   1       temp = Lcd_readdatafromcmd(MAMR);
 268   1       temp |= 0x03;//置位第 1 2 位,完成选择同时存取DDRAM1和DDRAM2
 269   1       Lcd_writedatatocmd(MAMR,temp);
 270   1      }
 271          
 272          void Onlyshowpage1(void)
 273          {
 274   1       uchar temp;
 275   1       temp = Lcd_readdatafromcmd(MAMR);
 276   1       temp &= 0x9f;//清零第6 ,5位
 277   1       temp |= 0x10;//置位第4位;完成在屏幕上只显示DDRAM1
 278   1       Lcd_writedatatocmd(MAMR,temp);
 279   1      }
 280          
 281          void Lcd_stringwrite(uchar *pstr,uchar strlen,uchar DispMode)
 282          {
 283   1       uint i;
 284   1       Lcd_ChkBusy();
 285   1       //LcdDataPort_OutPut();
 286   1       RS = 1;
 287   1       RD = 1;
 288   1       CS = 0;
 289   1       Lcd_DataPort = MWCR; //从光标处写入内存指令
 290   1       WR = 0;  //写寄存器
 291   1       Delay(5);
 292   1       WR = 1;
 293   1       CS = 1;
 294   1       RS = 0;
 295   1       CS = 0;
 296   1       for(i=0; i<strlen; i++)
 297   1               {      
 298   2               if(DispMode == 1)      
 299   2                  Lcd_DataPort = ((*pstr++));                           // 准备预写入显示内存的数据  
 300   2               else
 301   2                  Lcd_DataPort = (~(*pstr++));                                  // 准备预写入显示内存的数据  
 302   2               WR = 0;                                                          // "写"信号使能 开始写
 303   2               Delay(2);                                                                               
C51 COMPILER V8.02   LCDDEV                                                                04/21/2009 22:23:54 PAGE 6   

 304   2               WR = 1;                                  // "写"信号禁能 
 305   2               }                                                        
 306   1      
 307   1              CS = 1;
 308   1              RS = 1;
 309   1      }
 310          
 311          
 312          void ClearRam(void)
 313          {
 314   1       uchar temp0,temp1;
 315   1       
 316   1       LCD_Graphic();
 317   1       Access_2Page();
 318   1       temp0 = Lcd_readdatafromcmd(FNCR);
 319   1       temp0 |= 0x08; //
 320   1       Lcd_writedatatocmd(FNCR,temp0); //开始清除内存
 321   1      
 322   1       do     //检测是否已经清除完
 323   1       {
 324   2        Delay(5);
 325   2        temp1 =Lcd_readdatafromcmd(FNCR);
 326   2        temp1 &= 0x08;
 327   2        } while(temp1 );
 328   1      
 329   1      }
 330          
 331          
 332          void Lcd_clearscreen(void)
 333          {
 334   1       //LCD_TEXT();
 335   1       Onlyshowpage1();
 336   1       Lcd_writedatatocmd(PNTR,0x00);
 337   1       ClearRam();
 338   1      }
 339           
 340            //初始化液晶寄存器
 341          void IniLcd(void)
 342          {
 343   1       Lcd_writedatatocmd(WLCR,0X00);
 344   1       Lcd_writedatatocmd(MISC,0x00);
 345   1       Lcd_writedatatocmd(ADSR,0x00);
 346   1       Lcd_writedatatocmd(INTR,0x00);
 347   1       Lcd_writedatatocmd(WCCR,0x00);
 348   1       Lcd_writedatatocmd(CHWI,0x00);
 349   1       Lcd_writedatatocmd(MAMR,0x11);
 350   1       Lcd_writedatatocmd(AWRR,0x27);
 351   1       Lcd_writedatatocmd(DWWR,0x27);
 352   1       Lcd_writedatatocmd(AWBR,0xEF);
 353   1       Lcd_writedatatocmd(DWHR,0xEF);
 354   1       Lcd_writedatatocmd(AWLR,0x00);
 355   1       Lcd_writedatatocmd(AWTR,0x00);
 356   1       Lcd_writedatatocmd(CURX,0x00);
 357   1       Lcd_writedatatocmd(BGSG,0x00);
 358   1       Lcd_writedatatocmd(EDSG,0x00);
 359   1       Lcd_writedatatocmd(CURY,0x00);
 360   1       Lcd_writedatatocmd(BGCM,0x00);
 361   1       Lcd_writedatatocmd(EDCM,0x00);
 362   1       Lcd_writedatatocmd(BTMR,0x00);
 363   1       Lcd_writedatatocmd(ITCR,0x00);
 364   1       Lcd_writedatatocmd(KSCR1,0x00);
 365   1       Lcd_writedatatocmd(KSCR2,0x00);
C51 COMPILER V8.02   LCDDEV                                                                04/21/2009 22:23:54 PAGE 7   

 366   1       Lcd_writedatatocmd(KSDR0,0x00);
 367   1       Lcd_writedatatocmd(KSDR1,0x00);
 368   1       Lcd_writedatatocmd(KSDR2,0x00);
 369   1       Lcd_writedatatocmd(TPCR1,0x00);
 370   1       Lcd_writedatatocmd(TPXR,0x00);
 371   1       Lcd_writedatatocmd(TPYR,0x00);
 372   1       Lcd_writedatatocmd(TPZR,0x00);
 373   1       Lcd_writedatatocmd(TPCR2,0x00);
 374   1       Lcd_writedatatocmd(PCR,0x00);
 375   1       Lcd_writedatatocmd(PDCR,0x00);
 376   1       Lcd_writedatatocmd(PNTR,0x00);
 377   1       Lcd_writedatatocmd(FNCR,0X00);
 378   1       Lcd_writedatatocmd(FVHT,0x00);
 379   1       Lcd_clearscreen();//初始化LCD,选择只显示TXT格式,DDRAM1,自动清除DDRAM
 380   1       //LCD_GotoXY(0x00,0x00);
 381   1      }
 382          
 383          void activewindow(uchar top,uchar button) //
 384          {
 385   1       Lcd_writedatatocmd(AWLR,0x00);//设置工作窗口左边界 要求AWLR<=AWRR 
 386   1       Lcd_writedatatocmd(AWRR,0x27);//设置工作窗口右边界 要求 <=0x27
 387   1       Lcd_writedatatocmd(AWTR,top); //设置工作窗口上边界 
 388   1       Lcd_writedatatocmd(AWBR,button);//设置工作窗口下边界要求<=0xef
 389   1      
 390   1       Lcd_writedatatocmd(DWWR,0x27);//设置显示窗口宽度
 391   1       Lcd_writedatatocmd(DWHR,0xef);//设置显示窗口高度
 392   1      }
 393          
 394          /*
 395          void Display(uchar top0,uchar button0,uchar Length,uchar *p)
 396          */
 397          
 398          void Display(uchar top0,uchar button0,uchar Length) //加个参数 uchar *p 就可以直接调用数组显示
 399          {
 400   1       uchar i,j;
 401   1       uchar k=0;
 402   1       for(i=0;i<=15;i++)
 403   1        {
 404   2          activewindow(top0,button0);//16各工作窗口 16路波形信号 每路波形占10各点高度
 405   2           LCD_GotoXY(0x00,top0);
 406   2              for(j=0;j<=Length;j++)
 407   2               {
 408   3                 //LCD_GotoXY(0x00,top0);
 409   3                 Lcd_writedatatocmd(MWCR,k);
 410   3                 k=~k;
 411   3               }
 412   2              top0 += 0x0a;
 413   2          button0 +=0x0a; 
 414   2               k=~k;
 415   2           
 416   2        }
 417   1      }
 418          
 419          void Displaymygraph(uchar top1,uchar button1,uchar udata)
 420          { 
 421   1        uchar i;
 422   1        activewindow(top1,button1);
 423   1        LCD_GotoXY(0x00,top1);
 424   1        for(i=0;i<=20;i++)
 425   1      {
 426   2        Lcd_writedatatocmd(MWCR,udata);
 427   2      }
C51 COMPILER V8.02   LCDDEV                                                                04/21/2009 22:23:54 PAGE 8   

 428   1      }


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