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

📄 lcm.lst

📁 12864液晶(STC7920控制器)屏上用基本指令与扩充指令分时显示文字、图片、图片与文字混合、任意位置的图片。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 235   1       Tuxing();         //龙的图形
 236   1       Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 237   1       Clearlcd1();
 238   1       z=64;/*图形数组的页,为实际点阵行数*/
 239   1       y=16;/*图形数组的列,为实际点阵列数除以8*/
 240   1       Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
C51 COMPILER V7.50   LCM                                                                   04/01/2009 14:05:36 PAGE 5   

 241   1       Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 242   1       p2=MyTu;
*** WARNING C182 IN LINE 242 OF LCM.C: pointer to different objects
 243   1       Tuxing();      //左边是物理所的图标,右边是中科院 物理所两行文字               
 244   1       Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 245   1       Clearlcd1();
 246   1       z=32;/*图形数组的页,为实际点阵行数*/
 247   1       y=4;/*图形数组的列,为实际点阵列数除以8*/
 248   1       Column=5;/*起始点设定:为在液晶中显示的实际起始列,一列占一个汉字*/
 249   1       Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
 250   1       p2=MyTu2;
*** WARNING C182 IN LINE 250 OF LCM.C: pointer to different objects
 251   1       OneTuxing();  //一个小的图标
 252   1       Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
 253   1       goto loop;
 254   1       }
 255          
 256          /********************写指令子程序********************/
 257          void WCOM(uchar d)    /*写指令程序*/
 258          {
 259   1       R_W=1;
 260   1       D_I=0;/*设置状态*/
 261   1      Loop:
 262   1       P1=0xFF;
 263   1       E=1;/*使能有效*/
 264   1       q=P1;/*将p1口状态读入*/
 265   1       E=0;/*关闭使能信号*/
 266   1       if(q&0x80)/*判断屏幕是否忙*/
 267   1       {
 268   2       goto Loop;/*若忙,循环等待*/
 269   2       }
 270   1       R_W=0;
 271   1       D_I=0;/*写数据指令*/
 272   1       P1=d;/*将数据送入p1口*/
 273   1       E=1;/*使能信号开*/
 274   1       E=0;/*使能信号关*/
 275   1      }
 276          /********************送数据子程序********************/
 277          void Dat(uchar d)
 278          {
 279   1       R_W=1;
 280   1       D_I=0;/*读状态指令*/
 281   1      Loop:
 282   1       P1=0xFF;
 283   1       E=1;/*使能*/
 284   1       q=P1;
 285   1       E=0;
 286   1       if(q&0x80)
 287   1       {
 288   2       goto Loop;
 289   2       }/*判忙*/
 290   1       D_I=1;/*送数据指令*/
 291   1       R_W=0;
 292   1       P1=d;
 293   1       E=1;/*使能信号开*/
 294   1       E=0;/*使能信号关*/
 295   1      }
 296          /********************初始化子程序********************/
 297          void Imim()
 298          {
 299   1       P0=0xff;
 300   1       P1=0xff;
C51 COMPILER V7.50   LCM                                                                   04/01/2009 14:05:36 PAGE 6   

 301   1       P2=0xff;
 302   1       P3=0xff;
 303   1       E=0;
 304   1       Delay();
 305   1       WCOM(0x38);/*功能设定*/
 306   1       WCOM(0x08);/*关显示指令*/
 307   1       WCOM(0x06);/*游标右移*/
 308   1       Clearlcd();/*清屏*/
 309   1       WCOM(0x0c);/*开显示指令*/
 310   1      }
 311          /********************延时子程序********************/
 312          void Delay()
 313          {
 314   1       uchar data i,j;
 315   1       for(i=0;i<255;i++)
 316   1        for(j=0;j<255;j++);
 317   1      }
 318          /********************基本指令集清屏子程序********************/
 319          void Clearlcd()
 320          {
 321   1       D_I=0;
 322   1       R_W=0;
 323   1       P1=0x01;
 324   1       WCOM(0x01);/*清除显示*/
 325   1      }
 326          /********************写第一行汉字主程序********************/
 327          void Hanz()
 328          {
 329   1       WCOM(k); /*设置第一行起始点*/
 330   1       for(i=0;i<j;i++,p++)
 331   1       {
 332   2        wbyte=*p;
 333   2        Dat(wbyte);/*将汉字数组数据送入*/
 334   2       }
 335   1      }
 336          /********************写第二行汉字主程序********************/
 337          void Hanz1()
 338          {
 339   1        WCOM(k1);/*设置第二行起始点*/
 340   1        for(i=0;i<j1;i++,p1++)
 341   1       {
 342   2        wbyte=*p1;
 343   2        Dat(wbyte);/*将汉字数组数据送入*/
 344   2       }
 345   1      }
 346          /********************扩充指令集画图子程序********************/
 347          void Tuxing()
 348          {
 349   1       uchar data v;
 350   1       uchar data w;
 351   1       uchar data x;
 352   1       uchar data h;
 353   1       WCOM(0x34);/*功能设定*/
 354   1       WCOM(0x36);/*扩充功能设定*/
 355   1       pp=p2;
 356   1       pp=pp+16*y*2;
 357   1       for(h=0;h<z/2;h++)  /*页循环*/
 358   1       {
 359   2        v=Column|0x80;
 360   2        w=Page|0x80;
 361   2        WCOM(w);/*送入起始页地址*/
 362   2        WCOM(v);/*送入起始列地址*/
C51 COMPILER V7.50   LCM                                                                   04/01/2009 14:05:36 PAGE 7   

 363   2        Page++; /*准备对下一页进行操作*/
 364   2        for(x=0;x<2*y;x++) /*列循环*/
 365   2         {
 366   3          if(x<y)
 367   3          {
 368   4           wbyte=*p2;
 369   4           Dat(wbyte);/*循环送入图形数据*/
 370   4           p2=p2+1;
 371   4          }
 372   3          else
 373   3           {
 374   4            wbyte=*pp;
 375   4            Dat(wbyte);/*循环送入图形数据*/
 376   4            pp=pp+1;
 377   4           }
 378   3         }
 379   2        }
 380   1      }
 381           /*---------------------------------------*/
 382          void MyTuxing()
 383          {
 384   1       uchar data v;
 385   1       uchar data w;
 386   1       uchar data x;
 387   1       uchar data h;
 388   1       uchar data NextPage;
 389   1       NextPage=Page;
 390   1       WCOM(0x34);/*功能设定*/
 391   1       WCOM(0x36);/*扩充功能设定*/
 392   1       pp=p2;
 393   1       pp=pp+16*y*2;
 394   1       for(h=0;h<z/2;h++)  /*页循环*/
 395   1       {
 396   2        v=Column|0x80;
 397   2        w=Page|0x80;
 398   2        WCOM(w);/*送入起始页地址*/
 399   2        WCOM(v);/*送入起始列地址*/
 400   2        
 401   2        for(x=0;x<y;x++) /*列循环*/
 402   2         {
 403   3           wbyte=*p2;
 404   3           Dat(wbyte);/*循环送入图形数据*/
 405   3           p2=p2+1;
 406   3         }
 407   2        WCOM(w+16);/*送入起始页地址*/
 408   2        WCOM(v);/*送入起始列地址*/
 409   2         for(x=0;x<y;x++)
 410   2         {
 411   3          wbyte=*pp;
 412   3            Dat(wbyte);/*循环送入图形数据*/
 413   3            pp=pp+1;
 414   3         } 
 415   2         Page++; /*准备对下一页进行操作*/
 416   2        }
 417   1      }
 418          
 419          void OneTuxing()
 420          {
 421   1       uchar data v;
 422   1       uchar data w;
 423   1       uchar data x;
 424   1       uchar data h;
C51 COMPILER V7.50   LCM                                                                   04/01/2009 14:05:36 PAGE 8   

 425   1       WCOM(0x34);/*功能设定*/
 426   1       WCOM(0x36);/*扩充功能设定*/
 427   1       for(h=0;h<z;h++)  /*页循环*/
 428   1       {
 429   2        v=Column|0x80;
 430   2        w=Page|0x80;
 431   2        WCOM(w);/*送入起始页地址*/
 432   2        WCOM(v);/*送入起始列地址*/
 433   2        Page++; /*准备对下一页进行操作*/
 434   2        for(x=0;x<y;x++) /*列循环*/
 435   2         {
 436   3          wbyte=*p2;
 437   3          Dat(wbyte);/*循环送入图形数据*/
 438   3          p2++;
 439   3         }
 440   2       }
 441   1      }
 442          
 443          /********************扩充指令集清屏子程序********************/
 444          void Clearlcd1()
 445          {
 446   1        uchar data Disp_Page;
 447   1        uchar data i;
 448   1        uchar data j;
 449   1        for(i=0;i<64;i++)/*共32页*/
 450   1        {
 451   2         Disp_Page=i|0x80;/*设置页地址*/
 452   2         WCOM(Disp_Page);/*送入页地址*/
 453   2         WCOM(0x80);/*送入起始列地址*/
 454   2         for(j=0;j<32;j++)
 455   2         {
 456   3          Dat(0x00);/*清屏*/
 457   3         }
 458   2        }
 459   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    844    ----
   CONSTANT SIZE    =   2236    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     23       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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