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

📄 lcd.lst

📁 我的12864驱动程序,可以显示汉字和图片.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 217   4                              write_data(img[w*k+j]);
 218   4                              }
 219   3                      }
 220   2              }
 221   1      }
 222          /*------------------显示横(坐标x)------------------------*/
 223          void Disp_H_Line(unsigned char page)
 224          {
 225   1              unsigned char j;
 226   1              Lcs=1;
 227   1              Rcs=0;
 228   1              write_com(Disp_On);                                //开显示
 229   1              write_com(Page_Add+page);                  //页地址
 230   1              write_com(Col_Add+0);
 231   1              for(j=0;j<64;j++)
 232   1                      {
 233   2                       if((j+1)%5==0)
 234   2                        {
 235   3                        if((j+1)%10==0)   write_data(0x07);           
 236   3                        else              write_data(0x3f);
 237   3                        }
 238   2      
 239   2                       else   write_data(0x01);
 240   2                      }
 241   1              Lcs=0;
C51 COMPILER V7.06   LCD                                                                   11/21/2005 17:42:08 PAGE 5   

 242   1              Rcs=1;
 243   1              write_com(Disp_On);                                //开显示
 244   1              write_com(Page_Add+page);                  //页地址
 245   1              write_com(Col_Add+0);
 246   1              for(j=0;j<64;j++)
 247   1                      {
 248   2                       if((j)%5==0)
 249   2                        {
 250   3                        if((j)%10==0)   write_data(0x3f);             
 251   3                        else                 write_data(0x07);
 252   3                        }
 253   2      
 254   2                       else   write_data(0x01);
 255   2                      }               
 256   1      
 257   1      }
 258          
 259          
 260          /*------------------显示列(坐标y)--------------------------*/
 261          void Disp_L_Line( unsigned char col )
 262          {
 263   1              unsigned char j;
 264   1              if(col<64)
 265   1              {
 266   2              Lcs=1;
 267   2              Rcs=0;
 268   2              write_com(Disp_On);                             //开显示
 269   2      //      write_com(Page_Add+0);                  //页地址
 270   2      //      write_com(Start_Line+0);                        //lie--
 271   2              for(j=0;j<8;j++)
 272   2                      {
 273   3                      write_com(Page_Add+j);
 274   3                      write_com(Col_Add+col);
 275   3                      write_data(0xff);                       
 276   3                      }
 277   2              }
 278   1              else 
 279   1              {
 280   2              Lcs=0;
 281   2              Rcs=1;
 282   2              write_com(Disp_On);                             //开显示
 283   2              write_com(Page_Add);                    //页地址
 284   2              write_com(Start_Line);                  //lie--
 285   2              for(j=0;j<8;j++)
 286   2                      {
 287   3                      write_com(Page_Add+j);
 288   3                              write_com(Col_Add+col+64);      
 289   3                      }
 290   2              }
 291   1      }
 292          
 293          /*---------------------指定位置显示汉字16*16-----------------------*/
 294          void hz_disp1616(unsigned char pag,unsigned char col, unsigned char code *hzk,bit lcd_cs,bit zc_fx)
 295          {
 296   1              unsigned char j=0,i=0;
 297   1          if(!lcd_cs)
 298   1              {
 299   2                      Lcs=1;
 300   2                      Rcs=0;  
 301   2              }
 302   1              else
 303   1              {
C51 COMPILER V7.06   LCD                                                                   11/21/2005 17:42:08 PAGE 6   

 304   2                      Lcs=0;
 305   2                      Rcs=1;
 306   2              }
 307   1              if(zc_fx==0)
 308   1              {
 309   2                      for(j=0;j<2;j++)
 310   2                              {
 311   3                              write_com(Page_Add+pag+j);
 312   3                              write_com(Col_Add+col);
 313   3                              for(i=0;i<16;i++) 
 314   3                                      {
 315   4                                      write_data(hzk[16*j+i]);
 316   4                                      }
 317   3                              }
 318   2               }
 319   1               else 
 320   1               {
 321   2                      for(j=0;j<2;j++)
 322   2                              {
 323   3                              write_com(Page_Add+pag+j);
 324   3                              write_com(Col_Add+col);
 325   3                              for(i=0;i<16;i++) 
 326   3                                      {
 327   4                                      write_data(~hzk[16*j+i]);
 328   4                                      }
 329   3                              }
 330   2                }             
 331   1      }
 332          
 333          /*-------------------------指定位置显示字符--------------------------*/
 334          void zf_disp168(unsigned char pag,unsigned char col, unsigned char code *hzk,bit lcd_cs,bit zc_fx)
 335          {
 336   1              unsigned char i,j;
 337   1              if(!lcd_cs)
 338   1              {
 339   2                      Lcs=1;
 340   2                      Rcs=0;
 341   2              }
 342   1              else
 343   1              {
 344   2                      Lcs=0;
 345   2                      Rcs=1;
 346   2              }          
 347   1              if(zc_fx==0)
 348   1              {
 349   2                      for(j=0;j<2;j++)
 350   2                              {
 351   3                              write_com(Page_Add+pag+j);
 352   3                              write_com(Col_Add+col);
 353   3                              for(i=0;i<8;i++) 
 354   3                                      {
 355   4                                      write_data(hzk[8*j+i]);
 356   4                                      }
 357   3                              }
 358   2               }
 359   1               else
 360   1               {
 361   2                      for(j=0;j<2;j++)
 362   2                              {
 363   3                              write_com(Page_Add+pag+j);
 364   3                              write_com(Col_Add+col);
 365   3                              for(i=0;i<8;i++) 
C51 COMPILER V7.06   LCD                                                                   11/21/2005 17:42:08 PAGE 7   

 366   3                                      {
 367   4                                      write_data(~hzk[8*j+i]);
 368   4                                      }
 369   3                              }
 370   2               }              
 371   1      }
 372          
 373          void zf_disp88(unsigned char pag,unsigned char col, unsigned char code *hzk,bit lcd_cs,bit zc_fx)
 374          {
 375   1              unsigned char i;
 376   1              if(!lcd_cs)
 377   1              {
 378   2                      Lcs=1;
 379   2                      Rcs=0;
 380   2              }
 381   1              else
 382   1              {
 383   2                      Lcs=0;
 384   2                      Rcs=1;
 385   2              }
 386   1              if(zc_fx==0)
 387   1              {          
 388   2                      write_com(Page_Add+pag);
 389   2                      write_com(Col_Add+col);
 390   2                      for(i=0;i<8;i++) 
 391   2                              {
 392   3                              write_data(hzk[i]);
 393   3                              }
 394   2               }
 395   1              else
 396   1              {
 397   2                      write_com(Page_Add+pag);
 398   2                      write_com(Col_Add+col);
 399   2                      for(i=0;i<8;i++) 
 400   2                              {
 401   3                              write_data(~hzk[i]);
 402   3                              }
 403   2               }      
 404   1      }
 405          
 406          /*------------------初始化LCD屏--------------------------*/
 407          void init_lcd( void )
 408          {
 409   1              Lcd_Rst=0;                              //复位LCD
 410   1              delay(100);
 411   1              Lcd_Rst=1;
 412   1              delay(100);
 413   1              
 414   1              Lcs=1;
 415   1              Rcs=1;
 416   1              
 417   1              delay(100);
 418   1              write_com(Disp_Off);
 419   1              write_com(Page_Add+0);
 420   1              write_com(Start_Line+0);
 421   1              write_com(Col_Add+0);
 422   1              write_com(Disp_On);
 423   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1247    ----
C51 COMPILER V7.06   LCD                                                                   11/21/2005 17:42:08 PAGE 8   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      31
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       6
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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