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

📄 jmlcd.lst

📁 此程序适合于,和jm12864m-2或者是rt12864-3m类似接口的lcd液晶屏
💻 LST
📖 第 1 页 / 共 2 页
字号:
 246   2            delay(50);
 247   2         }
 248   1      }
 249          /*------------------首屏显示--------------------------*/
 250          void ceshi()
 251          {write_com(0x01);//清除显示,并且设定地址指针为00H
 252   1       delay(5);
 253   1       
 254   1       write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示)
 255   1       hzkdis("安踏, 永不止步"); 
 256   1      
 257   1       write_com(0x90);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)
 258   1       hzkdis("李宁一切皆有可能");
 259   1       
 260   1       write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)
 261   1       hzkdis("LCD12864点阵液晶");
 262   1       
 263   1       write_com(0x9A);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)
 264   1       hzkdis("倪进伟潘大化组编");
 265   1       
 266   1       
 267   1      }
 268          /*------------------显示图片------------------------2005.11.14.21:20修改---benladn911---*/
 269          void Disp_Img(unsigned char code *img)
 270          {  unsigned int j=0;
 271   1         unsigned char x,y,i;
 272   1             for(i=0;i<9;i+=8)
 273   1             for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/
 274   1               for(x=0;x<8;x++)
 275   1               {  write_com(0x36);//功能设置---8BIT控制界面,扩充指令集
 276   2                  write_com(y+0x80);        //行地址
 277   2                  write_com(x+0x80+i);     //列地址
 278   2                  write_com(0x30);
 279   2                  write_data(img[j++]);
 280   2                  write_data(img[j++]);
 281   2               }   
 282   1                 
 283   1      }
 284          /*------------------清整个GDRAM空间----------------------------*/
 285          void clrgdram()
 286          { unsigned char x,y;
 287   1              for(y=0;y<64;y++)
 288   1               for(x=0;x<16;x++)
 289   1               {  write_com(0x34);
 290   2                  write_com(y+0x80);        //行地址
 291   2                  write_com(x+0x80);     //列地址
 292   2                  write_com(0x30);
 293   2                  write_data(0x00);
 294   2                  write_data(0x00);
 295   2                                     }
 296   1         }
 297          /*------------------整屏写入数据:全亮,或者竖条-----------------------------*/
 298          void lcdfill(unsigned char disdata)
 299          { unsigned char x,y;
 300   1              for(y=0;y<32;y++)
 301   1               for(x=0;x<16;x++)
 302   1               {  write_com(0x36);
 303   2                  write_com(y+0x80);        //行地址
C51 COMPILER V7.06   JMLCD                                                                 08/04/2007 08:23:07 PAGE 6   

 304   2                  write_com(x+0x80);     //列地址
 305   2                  write_com(0x30);
 306   2                  write_data(disdata);
 307   2                  write_data(disdata);
 308   2                  }
 309   1         write_com(0x34);                            
 310   1         write_com(0x36);
 311   1         }
 312          /*------------------显示横-----------------------------*/
 313          void Disp_H_Line()
 314          {  unsigned char x,y;
 315   1         unsigned char k=0x00;  
 316   1             for(y=0;y<32;y++)
 317   1               { k=~k;
 318   2                 for(x=0;x<16;x++)
 319   2               {  write_com(0x36);
 320   3                  write_com(y+0x80);      //行地址
 321   3                  write_com(x+0x80);     //列地址
 322   3                  write_com(0x30);
 323   3                  write_data(k);
 324   3                  write_data(k);
 325   3                 };
 326   2               }
 327   1           write_com(0x34);                          
 328   1         write_com(0x36);
 329   1      }
 330          /*------------------显示边框-------------------------------*/
 331          void Frame()
 332          {unsigned char x,y;
 333   1                lcdfill(0x00);
 334   1              for(x=0;x<9;x+=8)
 335   1                for(y=0;y<32;y++)
 336   1                 { write_com(0x36);
 337   2                  write_com(y+0x80);      //行地址
 338   2                  write_com(x+0x80);        //列地址
 339   2                  write_com(0x30);
 340   2                  write_data(0x80);
 341   2                  write_data(0x00);
 342   2                 
 343   2                  write_com(0x36);
 344   2                  write_com(y+0x80);      //行地址
 345   2                  write_com(x+0x87);        //列地址
 346   2                  write_com(0x30);
 347   2                  write_data(0x00);
 348   2                  write_data(0x01);
 349   2                  
 350   2                  }
 351   1            for(y=0;y<2;y++)
 352   1               for(x=0;x<8;x++)
 353   1                 {write_com(0x36);
 354   2                  write_com(y*31+0x80);      //行地址
 355   2                  write_com(x+0x80+8*y);        //列地址
 356   2                  write_com(0x30);
 357   2                  write_data(0xff);
 358   2                  write_data(0xff);
 359   2                 }
 360   1               write_com(0x34);
 361   1               write_com(0x36);
 362   1                          }
 363           
 364          /*------------------在第7列的位置加入两条竖线--------------------------*/
 365          void shuxian()
C51 COMPILER V7.06   JMLCD                                                                 08/04/2007 08:23:07 PAGE 7   

 366          { unsigned char x,y;
 367   1          
 368   1          for(x=0;x<9;x+=8) 
 369   1             for(y=0;y<32;y++)
 370   1                { write_com(0x36);
 371   2                  write_com(y+0x80);    //行地址
 372   2                  write_com(x+0x86);     //列地址
 373   2                  write_com(0x30);
 374   2                  write_data(0x00);
 375   2                  write_data(0x14);
 376   2                };
 377   1      }    
 378                     
 379          /*------------------清屏命令--------------------------*/  
 380           void clrscreen()
 381           { 
 382   1         write_com(0x01);
 383   1         delay(10);
 384   1         }
 385             
 386          /*------------------唐诗《静夜思》--------------------------*/
 387          void gushi_display()
 388          {  write_com(0x30);
 389   1         clrscreen();  
 390   1         write_com(0x80+FIRST_ADDR);
 391   1         hzkdis("床前明月光,");
 392   1         write_com(0x90+FIRST_ADDR);
 393   1         hzkdis("疑是地上霜。");
 394   1         write_com(0x88+FIRST_ADDR);
 395   1         hzkdis("举头望明月,");
 396   1         write_com(0x98+FIRST_ADDR);
 397   1         hzkdis("低头思故乡。");
 398   1         write_com(0xb3+FIRST_ADDR);
 399   1         hzkdis("静夜思");
 400   1         write_com(0xaa+FIRST_ADDR);
 401   1         hzkdis("( 唐 )李白");
 402   1      }
 403           
 404          void main()
 405          { unsigned char i; 
 406   1        
 407   1         while(1)
 408   1         { 
 409   2           RW=0;
 410   2            lcdreset();                    //初始化LCD屏
 411   2            CGRAM();                        
 412   2            ceshi();                      //显示测试字样
 413   2           delay(1000);
 414   2      
 415   2      
 416   2          
 417   2            clrgdram();
 418   2           clrscreen();                  //清屏
 419   2      
 420   2      
 421   2           Disp_Img(BMP1);               //调入一幅图画
 422   2            delay(1000);
 423   2      
 424   2      
 425   2                 Disp_Img(BMP);               //调入一幅图画
 426   2            delay(1000);
 427   2                    
C51 COMPILER V7.06   JMLCD                                                                 08/04/2007 08:23:07 PAGE 8   

 428   2           
 429   2            
 430   2           lcdfill(0xff);               //显示全开
 431   2            delay(2000);            
 432   2          
 433   2           Disp_H_Line();                //显示横条
 434   2             delay(2000);
 435   2            
 436   2            
 437   2             lcdfill(0xaa);               //显示竖条 
 438   2            delay(2000);
 439   2           
 440   2            Frame();                     //显示边框
 441   2            delay(2000);
 442   2            
 443   2           gushi_display();             //显示唐诗
 444   2            clrgdram();
 445   2                 
 446   2           write_com(0x87);          //调用自定义的CGRAM的代码
 447   2           write_data(0x00);
 448   2           write_data(0x00);
 449   2           delay(400);
 450   2            
 451   2            shuxian();              //加入两条竖线
 452   2            delay(800);
 453   2            write_com(0x30);
 454   2             delay(1000); 
 455   2                   
 456   2            gushi_display(); 
 457   2            delay(6000);
 458   2            for(i=0;i<8;i++)        //字符循环左移
 459   2           {
 460   3               write_com(0x18);  
 461   3              delay(2000);} 
 462   2                
 463   2             gushi_display(); 
 464   2            delay(6000);   
 465   2           write_com(0x36);        
 466   2            write_com(0x04);          //第一行反白显示
 467   2            delay(2000);
 468   2            write_com(0x04);          //第一行恢复正常
 469   2            delay(2000);
 470   2             write_com(0x05);          //第二行反白显示
 471   2            delay(20000);
 472   2            write_com(0x05);          //第二行恢复正常
 473   2            delay(2000);
 474   2                
 475   2            write_com(0x03);         //垂直滚动屏幕的内容
 476   2            write_com(0x60);
 477   2            delay(2000); 
 478   2            
 479   2         }
 480   1      }
 481          
 482          
 483          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1116    ----
   CONSTANT SIZE    =   2216    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.06   JMLCD                                                                 08/04/2007 08:23:07 PAGE 9   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      17
   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 + -