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

📄 lcd12864.lst

📁 主要用于12864 液晶 OCMG4C8 显示汉字
💻 LST
📖 第 1 页 / 共 2 页
字号:
 204   4                       }
 205   3                       else if(y==0)
 206   3                       {
 207   4                           for(i=x;i<0;i++)   
 208   4                       Locat_Dot(x1+i,y1);
 209   4                       }
 210   3                       else
 211   3                       {
 212   4                          for(i=y;i<0;i++)
 213   4                          {  x=x1+i/y_add;
 214   5                                Locat_Dot(x,y1+i);
 215   5                              }
 216   4                       }
 217   3                } 
 218   2          }
 219   1              delay(200);
 220   1      
 221   1      }
 222          /*------------------初始化-----------------*/
 223          void init_lcd (void)
 224          {
 225   1              P3=P3|0x10;
 226   1              delay(20);
 227   1              P3=P3&0x08;
 228   1              delay(20);
 229   1              wr_lcd (comm,0x30);  /*30---基本指令动作*/   
 230   1              wr_lcd (comm,0x01);  /*清屏,地址指针指向00H*/
 231   1              delay (100);
 232   1              wr_lcd (comm,0x06);  /*光标的移动方向*/
 233   1              wr_lcd (comm,0x0c);  /*开显示,关游标*/
 234   1              delay(200);
 235   1      
 236   1      }
 237          /*---------------显示汉字或字符----------------*/
 238          void character_dis(uchar code *chn)
 239          {
 240   1              uchar i,j;
 241   1              wr_lcd (comm,0x30);
C51 COMPILER V8.02   LCD12864                                                              05/19/2009 15:36:03 PAGE 5   

 242   1              wr_lcd (comm,0x80);
 243   1              for (j=0;j<4;j++)
 244   1              {
 245   2                      for (i=0;i<16;i++)
 246   2                      wr_lcd (dat,chn[j*16+i]);
 247   2              }
 248   1      
 249   1      }
 250          /*-----------上半屏显示汉字或字符------------*/
 251          void upper_display (uchar code *chn)
 252          {
 253   1              uchar i,j;
 254   1              wr_lcd (comm,0x30);
 255   1              
 256   1              wr_lcd (comm,0x80);
 257   1              j=0;
 258   1              for (i=0;i<16;i++)
 259   1              wr_lcd (dat,chn[j*16+i]);
 260   1              
 261   1              wr_lcd (comm,0x90);
 262   1              j=1;
 263   1              for (i=0;i<16;i++)
 264   1              wr_lcd (dat,chn[j*16+i]);
 265   1      }
 266          /*----------------显示图形-----------------*/
 267          void graph (uchar code *img)
 268          {
 269   1        uchar i,j;
 270   1        for(j=0;j<32;j++)
 271   1        {
 272   2          for(i=0;i<8;i++)
 273   2          {
 274   3            wr_lcd (comm,0x34);
 275   3            wr_lcd (comm,0x80+j);
 276   3            wr_lcd (comm,0x80+i); //上一屏
 277   3            wr_lcd (comm,0x30);
 278   3            wr_lcd (dat,img[j*16+i*2]);
 279   3            wr_lcd (dat,img[j*16+i*2+1]);
 280   3          }
 281   2        }
 282   1        for(j=32;j<64;j++)
 283   1        {
 284   2          for(i=0;i<8;i++)
 285   2          {
 286   3            wr_lcd (comm,0x34);
 287   3            wr_lcd (comm,0x80+j-32);
 288   3            wr_lcd (comm,0x88+i);  //下一屏
 289   3            wr_lcd (comm,0x30);
 290   3            wr_lcd (dat,img[j*16+i*2]);
 291   3            wr_lcd (dat,img[j*16+i*2+1]);
 292   3          }
 293   2        }
 294   1        wr_lcd (comm,0x36);
 295   1      }
 296          /*-------------下半屏显示图形--------------*/
 297          void down_graph (uchar code *img)
 298          {
 299   1        uchar i,j;
 300   1        for(j=0;j<32;j++)
 301   1        {
 302   2          for(i=0;i<8;i++)
 303   2          {
C51 COMPILER V8.02   LCD12864                                                              05/19/2009 15:36:03 PAGE 6   

 304   3            wr_lcd (comm,0x34);
 305   3            wr_lcd (comm,0x80+j);
 306   3            wr_lcd (comm,0x88+i);
 307   3            wr_lcd (comm,0x30);
 308   3            wr_lcd (dat,img[j*16+i*2]);
 309   3            wr_lcd (dat,img[j*16+i*2+1]);
 310   3          }
 311   2        }
 312   1        wr_lcd (comm,0x36);
 313   1      }
 314          /*--------------显示点阵----------------*/
 315          void lattice_disp (uchar data1,uchar data2)
 316          {
 317   1        uchar i,j,k,x;
 318   1        x=0x80;
 319   1        for(k=0;k<2;k++)
 320   1        {
 321   2          for(j=0;j<16;j++)
 322   2          {
 323   3            for(i=0;i<8;i++)
 324   3            {
 325   4              wr_lcd (comm,0x34);
 326   4              wr_lcd (comm,0x80+j*2);
 327   4              wr_lcd (comm,x+i);
 328   4              wr_lcd (comm,0x30);
 329   4              wr_lcd (dat,data1);
 330   4              wr_lcd (dat,data1);
 331   4            }
 332   3            for(i=0;i<8;i++)
 333   3            {
 334   4              wr_lcd (comm,0x34);
 335   4              wr_lcd (comm,0x80+j*2+1);
 336   4              wr_lcd (comm,x+i);
 337   4              wr_lcd (comm,0x30);
 338   4              wr_lcd (dat,data2);
 339   4              wr_lcd (dat,data2);
 340   4            }
 341   3          }
 342   2          x=0x88;
 343   2        }
 344   1        wr_lcd (comm,0x36);
 345   1        delay(200);
 346   1      
 347   1      }
 348          /*-----------------------------------------------*/
 349          //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
 350          void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
 351          {
 352   1        uchar i,j;
 353   1        for(j=0;j<yl;j++)
 354   1        {
 355   2          for(i=0;i<xl;i++)
 356   2          {
 357   3            wr_lcd (comm,0x34);
 358   3            wr_lcd (comm,y0+j);
 359   3            wr_lcd (comm,x0+i);
 360   3            wr_lcd (comm,0x30);
 361   3            wr_lcd (dat,data1);
 362   3            wr_lcd (dat,data2);
 363   3          }
 364   2        }
 365   1        wr_lcd (comm,0x36);
C51 COMPILER V8.02   LCD12864                                                              05/19/2009 15:36:03 PAGE 7   

 366   1      }
 367          /*--------------清DDRAM------------------*/
 368          void clr_ddram (void)
 369          {
 370   1        wr_lcd (comm,0x30);
 371   1        wr_lcd (comm,0x01);
 372   1        delay (180);
 373   1      }
 374          /*--------------清GDRAM------------------*/
 375          void clr_gdram (void)
 376          {
 377   1              lattice_disp(0x00,0x00);
 378   1              delay(200);
 379   1      
 380   1      }
 381          /*
 382          void Clr_gdram(void) 
 383          {  
 384              uchar x,y; 
 385                  wr_lcd (comm,0x34);   //开启扩充指令集  并关绘图显示    
 386                   
 387                  for(y=0;y<32;y++) 
 388                  { 
 389                          wr_lcd (comm,y+0x80);    //行地址   
 390                          wr_lcd (comm,0x80);     //列地址 
 391                          for(x=0;x<16;x++) 
 392                          {  
 393                           wr_lcd (dat,0x00);  
 394                           wr_lcd (dat,0x00); 
 395                          } 
 396                  } 
 397              wr_lcd (comm,0x36);  //开绘图显示 
 398          } 
 399          
 400          */


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