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

📄 hex_1.lst

📁 12864液晶原程序.#include <reg52.h> #include <intrins.h> typedef unsigned char BYTE typede
💻 LST
📖 第 1 页 / 共 4 页
字号:
 402           0x82,0x16,0x64,0x22,0x20,0x10,0x00,0x03,0xFC,0x04,0x4C,0x01,0xC0,0x1C,0x00,0x01,
 403           0x82,0x16,0x64,0x22,0x20,0x10,0x00,0x03,0xFC,0x04,0x4C,0x01,0xC0,0x1C,0x00,0x01,
 404           0x84,0xE8,0x83,0x41,0x1C,0x08,0x00,0x0D,0x04,0x04,0x0C,0x06,0xB0,0x00,0x00,0x01,
 405           0x87,0x10,0x8F,0x47,0x03,0x88,0x00,0x11,0xFC,0x04,0x3C,0x08,0x88,0x1C,0x00,0x01,
 406           0x80,0x20,0x6C,0x26,0x01,0x78,0x00,0x01,0x04,0x0A,0x00,0x70,0x86,0x1C,0x00,0x01,
 407           0x80,0xC0,0x18,0x1C,0x00,0x80,0x00,0x01,0xFC,0x31,0xFF,0x00,0x80,0x00,0x00,0x01,
 408           0x80,0xC0,0x18,0x1C,0x00,0x80,0x00,0x01,0xFC,0x31,0xFF,0x00,0x80,0x00,0x00,0x01,
 409           0x80,0xC1,0x87,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
 410           0x81,0x06,0x78,0x3C,0x20,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
 411           0x81,0x08,0x07,0xC2,0xC0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
 412           0x81,0x08,0x00,0x01,0xC0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
 413           0x81,0x08,0x00,0x01,0xC0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
 414           0x81,0x08,0x18,0x01,0xC0,0x60,0x00,0x00,0x00,0xF1,0xF3,0x87,0xC0,0x00,0x00,0x01,
 415           0x80,0xC6,0x18,0xC2,0x20,0x80,0x00,0x00,0x03,0x0E,0x1C,0x78,0x70,0x00,0x00,0x01,
 416           0x80,0xC1,0x00,0xC2,0x00,0X80,0X00,0X00,0x04,0x44,0x11,0x10,0x38,0x00,0x00,0x01,
 417           0x80,0x26,0xE0,0x04,0x01,0X00,0X00,0X00,0x04,0x80,0x12,0x00,0x38,0x00,0x00,0x01,
 418           0x80,0x26,0xE0,0x04,0x01,0X00,0X00,0X00,0x04,0x80,0x12,0x00,0x38,0x00,0x00,0x01,
 419           0x80,0x11,0x18,0x38,0x03,0X00,0X00,0X00,0x04,0x80,0x12,0x00,0x38,0x00,0x00,0x01,
 420           0x80,0x0E,0x87,0xC2,0x1C,0X00,0X00,0X00,0x04,0x00,0x10,0x00,0x38,0x00,0x00,0x01,
 421           0x80,0x01,0xE0,0x04,0xE0,0X00,0X00,0X00,0x03,0x00,0x1C,0x00,0x70,0x00,0x00,0x01,
 422           0x80,0x1E,0x18,0x3F,0x1E,0x00,0X00,0X00,0X00,0x80,0x32,0x00,0xC0,0x00,0x00,0x01,
 423           0x80,0x1E,0x18,0x3F,0x1E,0x00,0X00,0X00,0X00,0x80,0x32,0x00,0xC0,0x00,0x00,0x01,
 424           0x80,0x38,0x07,0xC0,0x0F,0x00,0X00,0X00,0X00,0x40,0x61,0x01,0x80,0x00,0x00,0x01,
 425           0x80,0xE9,0xFF,0xFF,0x0D,0x80,0X00,0X00,0X00,0x31,0xC0,0x87,0X00,0X00,0X00,0X01,
 426           0x81,0xE9,0x1B,0xB9,0x0D,0xE0,0X00,0X00,0X00,0x0B,0x80,0x6E,0X00,0X00,0X00,0X01,
 427           0x83,0xC9,0xF0,0x1F,0x0C,0xF0,0X00,0X00,0X00,0x06,0x00,0x18,0X00,0X00,0X00,0X01,
C51 COMPILER V8.01   HEX_1                                                                 08/26/2002 23:00:56 PAGE 8   

 428           0x83,0xC9,0xF0,0x1F,0x0C,0xF0,0X00,0X00,0X00,0x06,0x00,0x18,0X00,0X00,0X00,0X01,
 429           0x87,0x06,0xE0,0x06,0x10,0x78,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,
 430           0x87,0xC1,0x00,0x00,0x20,0xF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,
 431           0x87,0xE0,0x80,0x00,0xC1,0xF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,
 432           0x87,0xE0,0x80,0x00,0xC1,0xF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,
 433           0x80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0x01,
 434           0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF
 435           };
 436          
 437          
 438          
 439          /*------------------检查忙位-----------------------------*/
 440          void lcd_busy()
 441          {  RS=0;
 442   1         RW=1;
 443   1         E=1;
 444   1         P0=0xff;
 445   1         while((P3&0x80)==0x80);
 446   1         E=0;
 447   1      }
 448          
 449          
 450          /*------------------延时子程序-----------------------------*/
 451          void delay(unsigned int t)
 452          {  unsigned int i,j;
 453   1         for(i=0;i<t;i++)
 454   1            for(j=0;j<10;j++)
 455   1               ;
 456   1      }
 457          
 458          
 459          /*------------------写命令到LCD------------------------------*/
 460          void write_com(unsigned char cmd)
 461          {
 462   1              lcd_busy();
 463   1              RS=0;
 464   1              RW=0;
 465   1              E=0;
 466   1              _nop_();
 467   1              _nop_();
 468   1              P0=cmd;
 469   1              E=1;
 470   1              _nop_();
 471   1              _nop_();
 472   1              _nop_();
 473   1              _nop_();
 474   1              E=0;
 475   1      }
 476          
 477          
 478          /*-------------------写数据到LCD----------------------------*/
 479          void write_data(unsigned char Dispdata)
 480          {
 481   1              lcd_busy();
 482   1              RS=1;
 483   1              RW=0;
 484   1              E=0;
 485   1              _nop_();
 486   1              _nop_();
 487   1              P0=Dispdata;
 488   1              E=1;
 489   1              _nop_();
C51 COMPILER V8.01   HEX_1                                                                 08/26/2002 23:00:56 PAGE 9   

 490   1              _nop_();
 491   1              _nop_();
 492   1              _nop_();
 493   1              E=0;
 494   1      }
 495          
 496          
 497          /*------------------初始化LCD屏--------------------------*/
 498          void lcdreset()
 499          {  delay(2000);
 500   1         write_com(0x30);
 501   1         delay(10);             //选择基本指令集
 502   1         write_com(0x0c);       //开显示(无游标、不反白)
 503   1         delay(10);
 504   1         write_com(0x01);       //清除显示,并且设定地址指针为00H
 505   1         delay(10);
 506   1         write_com(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
 507   1         delay(0);
 508   1      }
 509          
 510          
 511          
 512          /*------------------显示字符串--------------------------*/
 513          void hzkdis(uchar code *s)
 514          {  while(*s>0)
 515   1         {  write_data(*s);
 516   2            s++;
 517   2            delay(100);
 518   2         }
 519   1      }
 520          
 521          
 522          
 523          /*------------------首屏显示--------------------------*/
 524          void ceshi()
 525          {write_com(0x01);//清除显示,并且设定地址指针为00H
 526   1       delay(5);
 527   1       
 528   1       write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示)
 529   1       hzkdis("--杨江波单片机--"); 
 530   1      
 531   1       write_com(0x91);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)
 532   1       hzkdis("单片机学习网");
 533   1       
 534   1       write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)
 535   1       hzkdis("LCD12864点阵液晶");
 536   1       
 537   1       write_com(0x9A);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)
 538   1       hzkdis("测试程序");
 539   1       
 540   1      
 541   1       
 542   1      }
 543          /*------------------显示图片------------------------2005.11.14.21:20修改---benladn911---*/
 544          void Disp_Img(unsigned char code *img)
 545          {  unsigned int j=0;
 546   1         unsigned char x,y,i;
 547   1             for(i=0;i<9;i+=8)
 548   1             for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/
 549   1               for(x=0;x<8;x++)
 550   1               {  write_com(0x36);//功能设置---8BIT控制界面,扩充指令集
 551   2                  write_com(y+0x80);        //行地址
C51 COMPILER V8.01   HEX_1                                                                 08/26/2002 23:00:56 PAGE 10  

 552   2                  write_com(x+0x80+i);     //列地址
 553   2                  write_com(0x30);
 554   2                  write_data(img[j++]);
 555   2                  write_data(img[j++]);
 556   2               }   
 557   1                 
 558   1      }
 559          
 560          
 561          
 562          /*------------------清整个GDRAM空间---------------------------- */
 563          void clrgdram()                                                                                            
 564          { unsigned char x,y;
 565   1              for(y=0;y<64;y++)
 566   1               for(x=0;x<16;x++)
 567   1               {  write_com(0x34);
 568   2                  write_com(y+0x80);        //行地址
 569   2                  write_com(x+0x80);     //列地址
 570   2                  write_com(0x30);
 571   2                  write_data(0x00);
 572   2                  write_data(0x00);
 573   2                                     }
 574   1         } 
 575             
 576           
 577              
 578          /*------------------整屏写入数据:全亮,或者竖条-----------------------------*/
 579          void lcdfill(unsigned char disdata)
 580          { unsigned char x,y;
 581   1              for(y=0;y<32;y++)
 582   1               for(x=0;x<16;x++)
 583   1               {  write_com(0x36);
 584   2                  write_com(y+0x80);        //行地址
 585   2                  write_com(x+0x80);     //列地址
 586   2                  write_com(0x30);
 587   2                  write_data(disdata);
 588   2                  write_data(disdata);
 589   2                  }
 590   1         write_com(0x34);                            
 591   1         write_com(0x36);
 592   1         }
 593          
 594          
 595          
 596          /*------------------显示横-----------------------------*/
 597          void Disp_H_Line()
 598          {  unsigned char x,y;
 599   1         unsigned char k=0x00;  
 600   1             for(y=0;y<32;y++)
 601   1               { k=~k;
 602   2                 for(x=0;x<16;x++)
 603   2               {  write_com(0x36);
 604   3                  write_com(y+0x80);      //行地址
 605   3                  write_com(x+0x80);     //列地址
 606   3                  write_com(0x30);

⌨️ 快捷键说明

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