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

📄 lcd12864.lst

📁 *名称:LCD12864显示程序 功能:显示英文
💻 LST
字号:
C51 COMPILER V7.06   LCD12864                                                              07/09/2007 21:28:40 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************************************/ 
   2          /*                                                               */                                       
             -                         
   3          /*名称:                LCD12864显示程序                         */                                       
             -                                                                                                                        
             -            
   4          /*功能:           显示英文,数字,符号,图片。                  */                                       
             -             
   5          /*难度等级:                   高                                */                                       
             -                              
   6          /* 作者:                  zengrenliang                          */
   7          /* 版权:           http://www.51kaifa.com                       */
   8          /*编写日期:        2006.05.20                                   */                                       
             -                                                                                                                        
             -                                              
   9          /*****************************************************************/
  10          
  11          #include <reg52.h>
  12          #include  <string.h>
  13          
  14          #define uchar unsigned char
  15          
  16          /**********引脚定义*********/
  17          
  18          sbit lck = P3^5;//锁存信号
  19          
  20          /********常用命令及参数定义********/
  21          #define DISPON     0x3f
  22          #define DISPOFF    0x3e
  23          #define DISPFIRST  0xc0
  24          #define SETX       0x40
  25          #define SETY       0xb8
  26          #define LCDBUZY    0x80
  27          #define L          0x00
  28          #define R          0x40
  29          #define LIMIT      0x80
  30          
  31          
  32          /**********全局变量************/
  33          uchar  cbyte;
  34          uchar data statu;
  35          bit xy;
  36          
  37          /**************函数******************/
  38          
  39          void WrL(uchar x);
  40          void WrR(uchar x);
  41          void Lcmcls(void);
  42          void delay1s(void);
  43          void Lcminit (void);
  44          void Putpicture(uchar flag);
  45          void delay(unsigned int time);
  46          void VtoH8x16change(uchar *hzbuf);
  47          void Puthalf(uchar *strch,uchar row,uchar col);
  48          void Wrdata(uchar x,uchar row,uchar col);
C51 COMPILER V7.06   LCD12864                                                              07/09/2007 21:28:40 PAGE 2   

  49          void Locatexy(uchar row,uchar col);
  50          void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag);
  51          void vWrite8x16String(uchar  *str,uchar col, uchar row, bit flag);
  52          
  53          
  54          extern uchar  code picture1[];
  55          extern uchar  code picture2[];
  56          extern uchar  code  char_Table[95][16];
  57          
  58          /***********主程序***************/
  59          void main(void)
  60          {  
  61   1          Lcminit();
  62   1          while(1){
  63   2           Putpicture(0);
  64   2           delay1s();
  65   2           Lcmcls();
  66   2           Putpicture(1);
  67   2           delay1s();
  68   2           Lcmcls();
  69   2           vWrite8x16String("abcdefghijklmn" ,0, 8,0);
  70   2           vWrite8x16String("ABCDEFGHIJKLMN", 2, 8,0);
  71   2           vWrite8x16String("12345678901234", 4, 8,0);
  72   2           vWrite8x16String("+-*/!@#$%^&*()", 6, 8,0);
  73   2           delay1s();
  74   2           Lcmcls();
  75   2          }   
  76   1      
  77   1      }
  78          
  79          
  80          /***************微秒级延时*****************/
  81          void delay(unsigned int  time)
  82          { unsigned int i;
  83   1          for(i=0;i<time;i++);
  84   1       }
  85          
  86          /***************约5S延时********************/
  87          void delay1s(void)
  88          {
  89   1          delay(50000);
  90   1          delay(50000);
  91   1          delay(50000);
  92   1          delay(50000);
  93   1          delay(50000);
  94   1          delay(50000);
  95   1          delay(50000);
  96   1          delay(50000);
  97   1          delay(50000);
  98   1          delay(50000);
  99   1          delay(50000);
 100   1          delay(50000);
 101   1          delay(50000);
 102   1          delay(50000);
 103   1          delay(50000);
 104   1      }
 105          
 106          //***********初始化LCD*******************/
 107          
 108          void Lcminit (void)
 109          { 
 110   1          cbyte=DISPOFF;
C51 COMPILER V7.06   LCD12864                                                              07/09/2007 21:28:40 PAGE 3   

 111   1          WrL(cbyte);
 112   1          WrR(cbyte);
 113   1          cbyte=DISPON;
 114   1          WrL(cbyte);
 115   1          WrR(cbyte);
 116   1          cbyte=DISPFIRST;
 117   1          WrL(cbyte);
 118   1          WrR(cbyte);
 119   1          Lcmcls();
 120   1          Locatexy(0,0);
 121   1      }
 122          
 123          
 124          /***************LCD清屏********************/
 125          void Lcmcls(void)
 126          { uchar  i,j;
 127   1          for(i=0;i<8;i++){
 128   2            delay(6);
 129   2              for(j=0;j<LIMIT;j++){
 130   3                delay(6);
 131   3                Wrdata(0x0,i,j);
 132   3               }
 133   2           }
 134   1      }
 135          
 136          /**************写左区***************/
 137          
 138          void WrL(uchar x)
 139          {
 140   1         
 141   1         P0=0xFF;//P0口送FF,准备读
 142   1         lck = 0;
 143   1         P1 = 0x2a;//ELCD=1

⌨️ 快捷键说明

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