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

📄 12864a-3.lst

📁 12864测试时间温度18b20
💻 LST
📖 第 1 页 / 共 2 页
字号:
 239          /*------------------首屏显示--------------------------*/ 
 240          void ceshi() 
 241          {write_com(0x01);//清除显示,并且设定地址指针为00H 
C51 COMPILER V8.08   12864A_3                                                              05/01/2009 00:31:52 PAGE 5   

 242   1      delay(5); 
 243   1      
 244   1      write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示) 
 245   1      hzkdis("  yzx.2288.org"); 
 246   1      
 247   1      write_com(0x90);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示) 
 248   1      hzkdis("承泰单片机开发网"); 
 249   1      
 250   1      write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示) 
 251   1      hzkdis("电话:13983293681"); 
 252   1      
 253   1      write_com(0x98);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示) 
 254   1      hzkdis("测试程序: 余承泰"); 
 255   1      
 256   1      
 257   1      } 
 258          /*------------------显示图片------------------------*/ 
 259          void Disp_Img(unsigned char code *img) 
 260          {  unsigned int j=0; 
 261   1         unsigned char x,y,i; 
 262   1             for(i=0;i<9;i+=8) 
 263   1             for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/ 
 264   1               for(x=0;x<8;x++) 
 265   1               {  write_com(0x36);//功能设置---8BIT控制界面,扩充指令集 
 266   2                  write_com(y+0x80);        //行地址 
 267   2                  write_com(x+0x80+i);     //列地址 
 268   2                  write_com(0x30); 
 269   2                  write_data(img[j++]); 
 270   2                  write_data(img[j++]); 
 271   2               }   
 272   1                 
 273   1      } 
 274          /*------------------清整个GDRAM空间----------------------------*/ 
 275          void clrgdram() 
 276          { unsigned char x,y; 
 277   1              for(y=0;y<64;y++) 
 278   1               for(x=0;x<16;x++) 
 279   1               {  write_com(0x34); 
 280   2                  write_com(y+0x80);        //行地址 
 281   2                  write_com(x+0x80);     //列地址 
 282   2                  write_com(0x30); 
 283   2                  write_data(0x00); 
 284   2                  write_data(0x00); 
 285   2                                     } 
 286   1         } 
 287          /*------------------整屏写入数据:全亮,或者竖条-----------------------------*/ 
 288          void lcdfill(unsigned char disdata) 
 289          { unsigned char x,y; 
 290   1              for(y=0;y<32;y++) 
 291   1               for(x=0;x<16;x++) 
 292   1               {  write_com(0x36); 
 293   2                  write_com(y+0x80);        //行地址 
 294   2                  write_com(x+0x80);     //列地址 
 295   2                  write_com(0x30); 
 296   2                  write_data(disdata); 
 297   2                  write_data(disdata); 
 298   2                  } 
 299   1         write_com(0x34);                             
 300   1         write_com(0x36); 
 301   1         } 
 302          /*------------------显示横-----------------------------*/ 
 303          void Disp_H_Line() 
C51 COMPILER V8.08   12864A_3                                                              05/01/2009 00:31:52 PAGE 6   

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

 366   2                }; 
 367   1      }     
 368                     
 369          /*------------------清屏命令--------------------------*/   
 370          void clrscreen() 
 371          { 
 372   1         write_com(0x01); 
 373   1         delay(10); 
 374   1         } 
 375             
 376          /*------------------唐诗《静夜思》--------------------------*/ 
 377          void gushi_display() 
 378          {  write_com(0x30); 
 379   1         clrscreen();   
 380   1         write_com(0x80+FIRST_ADDR); 
 381   1         hzkdis("白日依山尽,"); 
 382   1         write_com(0x90+FIRST_ADDR); 
 383   1         hzkdis("黄河入海流。"); 
 384   1         write_com(0x88+FIRST_ADDR); 
 385   1         hzkdis("欲穷千里目,"); 
 386   1         write_com(0x98+FIRST_ADDR); 
 387   1         hzkdis("更上一层楼。"); 
 388   1         write_com(0xb3+FIRST_ADDR); 
 389   1         hzkdis("登鹳雀楼"); 
 390   1         write_com(0xaa+FIRST_ADDR); 
 391   1         hzkdis("王之焕"); 
 392   1      } 
 393          
 394          main() 
 395          {  unsigned char i; 
 396   1         while(1) 
 397   1         {
 398   2          ee=0;
 399   2               ee1=0;
 400   2               ee3=0;
 401   2               PSB=0;
 402   2       delay(300);
 403   2       PSB=1;        
 404   2           RW=0; 
 405   2            lcdreset();                    //初始化LCD屏 
 406   2            CGRAM();                         
 407   2            ceshi();                      //显示测试字样 
 408   2           delay(2000); 
 409   2           
 410   2            clrgdram(); 
 411   2           clrscreen();                  //清屏 
 412   2           Disp_Img(BMP);               //调入一幅图画 
 413   2            delay(30000); 
 414   2      
 415   2           Disp_Img(BMP1);               //调入一幅图画 
 416   2            delay(20000); 
 417   2                         
 418   2           lcdfill(0xff);               //显示全开 
 419   2            delay(2000);             
 420   2           
 421   2           Disp_H_Line();                //显示横条 
 422   2             delay(2000); 
 423   2      
 424   2             lcdfill(0xaa);               //显示竖条 
 425   2            delay(2000); 
 426   2           
 427   2            Frame();                     //显示边框 
C51 COMPILER V8.08   12864A_3                                                              05/01/2009 00:31:52 PAGE 8   

 428   2            delay(2000); 
 429   2             
 430   2           gushi_display();             //显示唐诗 
 431   2            clrgdram(); 
 432   2                 
 433   2           write_com(0x87);          //调用自定义的CGRAM的代码 
 434   2           write_data(0x00); 
 435   2           write_data(0x00); 
 436   2           delay(400); 
 437   2             
 438   2            shuxian();              //加入两条竖线 
 439   2            delay(8000); 
 440   2            write_com(0x30); 
 441   2             delay(2000); 
 442   2                   
 443   2            gushi_display(); 
 444   2            delay(6000); 
 445   2            for(i=0;i<8;i++)        //字符循环左移 
 446   2           {write_com(0x18);   
 447   3              delay(2000);} 
 448   2                 
 449   2             gushi_display(); 
 450   2            delay(6000);   
 451   2           write_com(0x36);         
 452   2            write_com(0x04);          //第一行反白显示 
 453   2            delay(6000); 
 454   2            write_com(0x04);          //第一行恢复正常 
 455   2            delay(6000); 
 456   2             write_com(0x05);          //第二行反白显示 
 457   2            delay(6000); 
 458   2            write_com(0x05);          //第二行恢复正常 
 459   2            delay(6000); 
 460   2                 
 461   2            write_com(0x03);         //垂直滚动屏幕的内容 
 462   2            write_com(0x60); 
 463   2            delay(6000); 
 464   2         } 
 465   1      } 
 466          
 467          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1119    ----
   CONSTANT SIZE    =   2214    ----
   XDATA SIZE       =   ----    ----
   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 + -