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

📄 12864.lst

📁 LCD12864的嵌入式C程序 很有参考价值!
💻 LST
📖 第 1 页 / 共 2 页
字号:
 224   1      write_com(Col_Add+0);
 225   1      for(i=0;i<64;i++) write_data(0x80);
 226   1      
 227   1      for(i=0;i<8;i++)
 228   1      
 229   1      {
 230   2      Mcs=0;
 231   2      Scs=1;
 232   2      write_com(Page_Add+i);
 233   2      write_com(Col_Add+63);
 234   2      write_data(0xff);
 235   2      Mcs=1;
 236   2      Scs=0;
 237   2      write_com(Page_Add+i);
 238   2      write_com(Col_Add+0);
 239   2      write_data(0xff);
 240   2      }
C51 COMPILER V7.08   12864                                                                 03/19/2005 23:08:43 PAGE 5   

 241   1      }
 242          
 243          
 244          
 245          /*------------------清除内存---------------*/
 246          void Clr_Scr()
 247          {
 248   1      unsigned char j,k;
 249   1      Mcs=1;Scs=1;
 250   1       write_com(Page_Add+0);
 251   1       write_com(Col_Add+0);
 252   1      
 253   1       for(k=0;k<8;k++){
 254   2      write_com(Page_Add+k);
 255   2        for(j=0;j<64;j++)write_data(0x00);
 256   2       }
 257   1      }
 258          
 259          /*------------------显示12864图片---------------------------*/
 260          void Disp_Img(unsigned char code *img)
 261          {
 262   1      unsigned char j,k;
 263   1       for(k=0;k<8;k++){
 264   2        Mcs=1;Scs=0;delay(10);
 265   2        write_com(Page_Add+k);
 266   2        write_com(Col_Add+0);
 267   2        for(j=0;j<64;j++) write_data(img[k*128+j]);
 268   2        Mcs=0;Scs=1; delay(10);
 269   2        write_com(Page_Add+k);
 270   2        write_com(Col_Add+0);
 271   2        for(j=64;j<128;j++) write_data(img[k*128+j]);
 272   2       }
 273   1      }
 274          
 275          /*------------------显示横---------------------------*/
 276          void Disp_H_Line()
 277          {
 278   1      unsigned char i,j;
 279   1      Mcs=1;
 280   1      Scs=1;
 281   1      write_com(Disp_On);
 282   1      write_com(Page_Add);
 283   1      write_com(Start_Line);
 284   1      write_com(Col_Add);
 285   1      
 286   1      for(j=0;j<8;j++)
 287   1      {
 288   2      write_com(Page_Add+j);
 289   2      write_com(Col_Add+0);
 290   2      // write_com(Start_Line+0);
 291   2      for(i=0;i<64;i++)write_data(0x55);
 292   2      }
 293   1      }
 294          
 295          
 296          /*------------------显示列-----------------------------*/
 297          void Disp_V_Line()
 298          {
 299   1      unsigned char i,j;
 300   1      write_com(Disp_On);
 301   1      write_com(Page_Add);
 302   1      write_com(Start_Line);
C51 COMPILER V7.08   12864                                                                 03/19/2005 23:08:43 PAGE 6   

 303   1      write_com(Col_Add);
 304   1      
 305   1      for(j=0;j<8;j++)
 306   1      {
 307   2      write_com(Page_Add+j);
 308   2      write_com(Col_Add+0);
 309   2      write_com(Start_Line+0);
 310   2      for(i=0;i<32;i++)
 311   2      {
 312   3      write_data(0x00);
 313   3      write_data(0xff);
 314   3      }
 315   2      
 316   2      }
 317   1      }
 318          
 319          /*------------------棋盘-----------------------------*/
 320          void Disp_Cross_Line(unsigned char mode)
 321          {
 322   1      unsigned char i,j;
 323   1      unsigned char data1,data2;
 324   1      if(mode==0) {data1=0xaa;data2=0x55;}
 325   1      else if(mode==1) {data1=0x55;data2=0xaa;}
 326   1      else return;
 327   1      Mcs=1;Scs=1;
 328   1      write_com(Disp_On);
 329   1      write_com(Page_Add);
 330   1      write_com(Start_Line);
 331   1      write_com(Col_Add);
 332   1      for(j=0;j<8;j++)
 333   1      {
 334   2      write_com(Page_Add+j);
 335   2      write_com(Col_Add+0);
 336   2      write_com(Start_Line+0);
 337   2      for(i=0;i<32;i++){
 338   3      write_data(data1);
 339   3      write_data(data2);
 340   3      }
 341   2      }
 342   1      }
 343          
 344          
 345          /*---------------------指定位置显示汉字16*16-----------------------*/
 346          
 347          void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
 348          {
 349   1      unsigned char j=0,i=0;
 350   1      for(j=0;j<2;j++){
 351   2      write_com(Page_Add+pag+j);
 352   2      write_com(Col_Add+col);
 353   2      for(i=0;i<16;i++) write_data(hzk[16*j+i]);
 354   2      }
 355   1      }
 356          
 357          
 358          /*------------------初始化LCD屏--------------------------*/
 359          void init_lcd()
 360          {
 361   1      Lcd_Rst=0;
 362   1      delay(100);
 363   1      Lcd_Rst=1;
 364   1      delay(100);
C51 COMPILER V7.08   12864                                                                 03/19/2005 23:08:43 PAGE 7   

 365   1      
 366   1      Mcs=1;
 367   1      Scs=1;
 368   1      
 369   1      delay(100);
 370   1      write_com(Disp_Off);
 371   1      write_com(Page_Add+0);
 372   1      write_com(Start_Line+0);
 373   1      write_com(Col_Add+0);
 374   1      write_com(Disp_On);
 375   1      }
 376          
 377          
 378          /*------------------------------信息显示------------------------*/
 379          void Msg(int flg)
 380          {
 381   1      Clr_Scr();
 382   1      frame();
 383   1      if(flg==0){ //显示“测试开始”
 384   2      Mcs=1;Scs=0;
 385   2      hz_disp16(3,32,ce);
 386   2      delay(2000);
 387   2      hz_disp16(3,48,shi);
 388   2      delay(2000);
 389   2      Mcs=0;Scs=1;
 390   2      hz_disp16(3,0,kai);
 391   2      delay(2000);
 392   2      hz_disp16(3,16,shi3);
 393   2      delay(2000);
 394   2      }
 395   1      else if(flg==1){ //显示“测试完毕”
 396   2      Mcs=1;Scs=0;
 397   2      hz_disp16(3,32,ce);
 398   2      hz_disp16(3,48,shi);
 399   2      Mcs=0;Scs=1;
 400   2      hz_disp16(3,0,wan);
 401   2      hz_disp16(3,16,bi); 
 402   2      }
 403   1      }
 404          
 405          
 406          /*--------------------------------键盘扫描-------------------------*/
 407          void Key_Scan()
 408          {
 409   1      while(Test_Key);
 410   1      while(~Test_Key);
 411   1      }
 412          
 413          
 414          /*--------------------主程序---------------------------------*/
 415          
 416          
 417          main()
 418          {
 419   1      unsigned char i=0;
 420   1      while(1){
 421   2      // Key_Scan();
 422   2       init_lcd();
 423   2      Disp_Img(FirstPage);
 424   2      delay(10000);
 425   2      // Key_Scan();
 426   2      Msg(0);
C51 COMPILER V7.08   12864                                                                 03/19/2005 23:08:43 PAGE 8   

 427   2      delay(10000);
 428   2       Disp_H_Line();
 429   2      delay(10000);
 430   2       Disp_V_Line();
 431   2      delay(10000);
 432   2      Msg(1); 
 433   2      delay(10000);
 434   2       }
 435   1      }
 436          
 437          
 438          
 439           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    783    ----
   CONSTANT SIZE    =   1216    ----
   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 + -