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

📄 main_48.lst

📁 lcd12864 显示汉字图片 反白,是一个非常好的程序,可以和大家共享,
💻 LST
📖 第 1 页 / 共 2 页
字号:
 186   1        wr_lcd (dat,chn[j*16+i]);
 187   1        wr_lcd (comm,0x90);
 188   1        j=1;
 189   1        for (i=0;i<16;i++)
 190   1        wr_lcd (dat,chn[j*16+i]);
 191   1      }
 192          /*----------------显示图形-----------------*/
 193          void img_disp (uchar code *img)
 194          {
 195   1        uchar i,j;
 196   1        for(j=0;j<32;j++)
 197   1        {
 198   2          for(i=0;i<8;i++)
 199   2          {
 200   3            wr_lcd (comm,0x34);
 201   3            wr_lcd (comm,y+j);
 202   3            wr_lcd (comm,x1+i);
 203   3            wr_lcd (comm,0x30);
 204   3            wr_lcd (dat,img[j*16+i*2]);
 205   3            wr_lcd (dat,img[j*16+i*2+1]);
 206   3          }
 207   2        }
 208   1        for(j=32;j<64;j++)
 209   1        {
 210   2          for(i=0;i<8;i++)
 211   2          {
 212   3            wr_lcd (comm,0x34);
 213   3            wr_lcd (comm,y+j-32);
 214   3            wr_lcd (comm,x2+i);
 215   3            wr_lcd (comm,0x30);
 216   3            wr_lcd (dat,img[j*16+i*2]);
 217   3            wr_lcd (dat,img[j*16+i*2+1]);
 218   3          }
 219   2        }
 220   1        wr_lcd (comm,0x36);
 221   1      }
 222          /*-------------下半屏显示图形--------------*/
 223          void img_disp1 (uchar code *img)
 224          {
 225   1        uchar i,j;
 226   1        for(j=0;j<32;j++)
 227   1        {
 228   2          for(i=0;i<8;i++)
 229   2          {
 230   3            wr_lcd (comm,0x34);
 231   3            wr_lcd (comm,y+j);
 232   3            wr_lcd (comm,x2+i);
 233   3            wr_lcd (comm,0x30);
 234   3            wr_lcd (dat,img[j*16+i*2]);
 235   3            wr_lcd (dat,img[j*16+i*2+1]);
 236   3          }
 237   2        }
 238   1        wr_lcd (comm,0x36);
 239   1      }
 240          /*--------------显示点阵----------------*/
 241          void lat_disp (uchar data1,uchar data2)
C51 COMPILER V7.08   MAIN_48                                                               10/09/2008 21:09:06 PAGE 5   

 242          {
 243   1        uchar i,j,k,x;
 244   1        x=x1;
 245   1        for(k=0;k<2;k++)
 246   1        {
 247   2          for(j=0;j<16;j++)
 248   2          {
 249   3            for(i=0;i<8;i++)
 250   3            {
 251   4              wr_lcd (comm,0x34);
 252   4              wr_lcd (comm,y+j*2);
 253   4              wr_lcd (comm,x+i);
 254   4              wr_lcd (comm,0x30);
 255   4              wr_lcd (dat,data1);
 256   4              wr_lcd (dat,data1);
 257   4            }
 258   3            for(i=0;i<8;i++)
 259   3            {
 260   4              wr_lcd (comm,0x34);
 261   4              wr_lcd (comm,y+j*2+1);
 262   4              wr_lcd (comm,x+i);
 263   4              wr_lcd (comm,0x30);
 264   4              wr_lcd (dat,data2);
 265   4              wr_lcd (dat,data2);
 266   4            }
 267   3          }
 268   2          x=x2;
 269   2        }
 270   1        wr_lcd (comm,0x36);
 271   1      }
 272          /*-----------------------------------------------*/
 273          //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
 274          void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
 275          {
 276   1        uchar i,j;
 277   1        for(j=0;j<yl;j++)
 278   1        {
 279   2          for(i=0;i<xl;i++)
 280   2          {
 281   3            wr_lcd (comm,0x34);
 282   3            wr_lcd (comm,y0+j);
 283   3            wr_lcd (comm,x0+i);
 284   3            wr_lcd (comm,0x30);
 285   3            wr_lcd (dat,data1);
 286   3            wr_lcd (dat,data2);
 287   3          }
 288   2        }
 289   1        wr_lcd (comm,0x36);
 290   1      }
 291          /*--------------清DDRAM------------------*/
 292          void clrram (void)
 293          {
 294   1        wr_lcd (comm,0x30);
 295   1        wr_lcd (comm,0x01);
 296   1      }
 297          /*---------------------------------------*/
 298          void wr_lcd (uchar dat_comm,uchar content)
 299          {
 300   1        chk_busy ();
 301   1        if(dat_comm)
 302   1         {
 303   2          rs=1;   //data
C51 COMPILER V7.08   MAIN_48                                                               10/09/2008 21:09:06 PAGE 6   

 304   2          rw=0;   //write
 305   2         }
 306   1        else 
 307   1         {
 308   2          rs=0;   //command
 309   2          rw=0;   //write
 310   2         }
 311   1      //  P1=content;   //output data or comm
 312   1        dat_port = content;   //output data or comm
 313   1        e=1;
 314   1        ;
 315   1        e=0;
 316   1      }
 317          
 318          void chk_busy (void)
 319          {
 320   1      //  P1=0xff;
 321   1              dat_port = 0XFF;  
 322   1              rs=0;
 323   1              rw=1;
 324   1              e =1;
 325   1              while(busy==1);
 326   1              e =0;
 327   1      }
 328          
 329          void delay (uint us)   //delay time
 330          {
 331   1        while(us--);
 332   1      }
 333          void delay1 (uint ms)
 334          {
 335   1        uint i,j;
 336   1        for(i=0;i<ms;i++)
 337   1        for(j=0;j<15;j++)
 338   1        delay(1);
 339   1      }
 340          /*------------------主程序--------------------*/
 341          void main ()
 342          {
 343   1        SP=0x5f;
 344   1        init_lcd ();
 345   1        while (1)
 346   1        {
 347   2          lat_disp (0x00,0x00);
 348   2          chn_disp (tab1);
 349   2          con_disp (0xff,0xff,0x8c,0x80,2,16);
 350   2          delay1 (8000);
 351   2          clrram();
 352   2          lat_disp (0xcc,0xcc);
 353   2          delay1 (8000);
 354   2          lat_disp (0x00,0x00);
 355   2          chn_disp1 (tab31);
 356   2          img_disp1 (tab32);
 357   2          delay1 (8000);
 358   2          clrram();
 359   2          lat_disp (0xff,0x00);
 360   2          delay1 (8000);
 361   2          img_disp (tab5);
 362   2          delay1 (8000);
 363   2        }
 364   1      }

C51 COMPILER V7.08   MAIN_48                                                               10/09/2008 21:09:06 PAGE 7   


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