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

📄 disp_a.lst

📁 进行单片机与LCD的接口通讯与显示。使用清华的液晶。
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  DISP_A                                                                 08/19/2003 10:24:25 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE DISP_A
OBJECT MODULE PLACED IN D:\LCD_6963\LCD2\DISP_A.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\LCD_6963\LCD2\DISP_A.C DB SB OE

stmt level    source

   1          #include <reg51.h>
   2          #include <math.h>
   3          #include <absacc.h>
   4          #include <string.h>
   5          /*   地址定义   */
   6          #define  d_add XBYTE[0x8000]
   7          #define  c_add XBYTE[0x8100]
   8          /*   常数定义   */
   9          #define  para1 0x20;
  10          
  11          /*  定义标志位  */
  12           sbit Acc_0=ACC^0;
  13           sbit Acc_1=ACC^1;
  14           sbit Acc_2=ACC^2;
  15           sbit Acc_3=ACC^3;
  16           sbit P1_0=P1^0;
  17          
  18                   sbit P3_3=P3^3;
  19                   sbit P3_4=P3^4;
  20          
  21                   sbit P3_2=P3^2;
  22          
  23          unsigned int O_X,O_Y,com,dat1,dat2,code_1;
  24          unsigned char attr;
  25          /******************************/
  26          
  27          code unsigned char CGTAB[64]={ 0x00,0x40,0x37,0x10,0x81,0x61,0x22,0x0A,/*"液"= 80H*/
  28                                         0x16,0x2B,0xE2,0x22,0x22,0x22,0x23,0x22,
  29                                         0x80,0x44,0xFE,0x20,0x20,0x3C,0x44,0x64,
  30                                         0x98,0x48,0x50,0x20,0x50,0x8E,0x04,0x00,
  31                                         0x0F,0x08,0x08,0x0F,0x08,0x08,0x0F,0x08,/*"晶"= 84H*/
  32                                         0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x42,
  33                                         0xE0,0x20,0x20,0xE0,0x20,0x20,0xE0,0x24,
  34                                         0xFE,0x84,0x84,0xFC,0x84,0x84,0xFC,0x84};
  35          
  36           code unsigned char CCTAB[4][32]={ 0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,  /* "清"代码为00H*/
  37                                             0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
  38                                             0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
  39                                             0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
  40                                             0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,  /*"华"代码为01H*/
  41                                             0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
  42                                             0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
  43                                             0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
  44                                             0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6,  /*"蓬"代码为02H*/
  45                                             0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
  46                                             0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
  47                                             0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
  48                                             0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11,  /* "远"代码为03H*/
  49                                             0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
  50                                             0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
  51                                             0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00};
  52          
  53           unsigned char  DTAB[11]={ 0x37,0x45,0x4c,0x43,0x4f,0x4d,0x45,0x00,0x39,0x4f,0x55};
  54          
  55          /***************************/
C51 COMPILER V6.02  DISP_A                                                                 08/19/2003 10:24:25 PAGE 2   

  56          /*       演示主程序        */
  57          /***************************/
  58          /*void main()
  59               {
  60                 unsigned char i,j,k,b;
  61                 INT_1();         /* 初始化函数 */
  62          /*       CLEAR();         /* 清屏函数 */
  63          /*       CGRAM();         /* 建立CGRAM内字库函数 */
  64          
  65          /*       code_1=0x80;     /* 汉字写入(文本方式)*/
  66          /*       O_X=0x0a;
  67                 O_Y=0x07;
  68                 CCW1_PR();
  69                 code_1=0x84;
  70                 O_X=0x03;
  71                 O_Y=0x00;
  72                 CCW1_PR();
  73          
  74                 code_1=0x00;     /* 汉字写入(图形方式)*/
  75          /*       O_X=0x00;
  76                 O_Y=0x00;
  77                 CCW2_PR();
  78                 code_1=0x01;
  79                 O_X=0x00;
  80                 O_Y=0x00;
  81                 CCW2_PR();
  82                 code_1=0x02;
  83                 O_X=0x00;
  84                 O_Y=0x11;
  85                 CCW2_PR();
  86                 code_1=0x03;
  87                 O_X=0x1c;
  88                 O_Y=0x6f;
  89                 CCW2_PR();
  90          */
  91          /*       com=0x84;   /* 显示方式设置 */  /* 西文写入*/
  92          /*       PR12();
  93                 com=0x94;  /* 显示状态设置 */
  94          /*       PR12();
  95                 for(i=0;i<8;i++)
  96                   {
  97          //          dat1=0x0e;
  98          //          dat2=0x01;
  99          //          com=0x21;  /* 光标地址设置 */
 100          //          PR1();
 101          /*          attr=i;
 102                    O_X=0x27;
 103                    O_Y=0x0f;
 104                    for(b=0;b<11;b++)
 105                     {
 106                       code_1=DTAB[b];
 107                       CW2_PR();
 108                     }
 109                   }
 110          
 111                 for(j=0;j<128;j++)   /* 绘点  */
 112          /*          {
 113                      O_X=k;
 114                      O_Y=j;
 115                      W_DOT();
 116                      k++;
 117                    }
C51 COMPILER V6.02  DISP_A                                                                 08/19/2003 10:24:25 PAGE 3   

 118                 for(j=128;j>0;j--)
 119                    {
 120                      O_X=k;
 121                      O_Y=j;
 122                      W_DOT();
 123                      k++;
 124                    }
 125               }
 126           /**************************/
 127           /*      初始化函数        */
 128           /**************************/
 129          INT_1()
 130              {
 131   1             dat1=0x00;      /*设文本显示区域首地址*/
 132   1             dat2=0x00;
 133   1             com=0x40;
 134   1             PR1();
*** WARNING C206 IN LINE 134 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR1': missing function-prototype
 135   1             dat1=para1;    /*设文本显示区域宽度*/
 136   1             dat2=0x00;
 137   1             com=0x41;
 138   1             PR1();
 139   1             dat1=0x00;    /*设图形显示区域首地址*/
 140   1             dat2=0x08;
 141   1             com=0x42;
 142   1             PR1();
 143   1             dat1=para1;    /*设图形显示区域宽度*/
 144   1             dat2=0x00;
 145   1             com=0x43;
 146   1             PR1();
 147   1             com=0xa0;      /*光标形状设置*/
 148   1             PR12();
*** WARNING C206 IN LINE 148 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR12': missing function-prototype
 149   1             com=0x84;      /*显示方式设置逻辑"或"合成*/
 150   1             PR12();
 151   1             com=0x9c;      /*显示开关设置 开文本和图形显示*/
 152   1             PR12();
 153   1          }
 154          /***************************/
 155          /*       清显示函数        */
 156          /***************************/
 157          CLEAR()
 158              {
 159   1          unsigned int i;
 160   1              dat1=0x00;
 161   1              dat2=0x00;
 162   1              com=0x24;  /* 设置显示地址 */
 163   1              PR1();
 164   1              com=0xb0;  /* 设置自动写方式 */
 165   1              PR12();
 166   1          for(i=0;i<8200;i++) /* 清8K存储器 */
 167   1             {
 168   2               ST3();
*** WARNING C206 IN LINE 168 OF D:\LCD_6963\LCD2\DISP_A.C: 'ST3': missing function-prototype
 169   2               d_add=0x00;
 170   2             }
 171   1             com=0xb2;     /* 设置自动写结束方式 */
 172   1             PR12();
 173   1          }
 174           /**************************/
 175           /*       CGRAM函数        */
 176           /**************************/
C51 COMPILER V6.02  DISP_A                                                                 08/19/2003 10:24:25 PAGE 4   

 177           CGRAM()
 178               {
 179   1              unsigned int i;
 180   1                 dat1=0x03;
 181   1                 dat2=0x00;
 182   1                 com=0x22;   /* 设置CGRAM偏置地址 */
 183   1                 PR1();
 184   1                 dat1=0x00;
 185   1                 dat2=0x1c;
 186   1                 com=0x24;   /* 设置存储器地址指针 */
 187   1                 PR1();
 188   1                 com=0xb0;   /* 设置自动写方式 */
 189   1                 PR12();
 190   1              for(i=0;i<64;i++)
 191   1                 {
 192   2                   ST3();
 193   2                   d_add=CGTAB[i];
 194   2                 }
 195   1              com=0xb2;     /* 设置自动写结束方式 */
 196   1              PR12();
 197   1           }
 198          /********************************/
 199          /*    汉字写入(文本方式)函数    */
 200          /********************************/
 201          CCW1_PR()
 202               {
 203   1              unsigned int i,j;
 204   1              i=para1;
 205   1              j=i*O_Y+O_X;
 206   1              dat1=j%256;
 207   1              dat2=j/256;
 208   1              com=0x24;  /* 设置显示地址 */
 209   1              PR1();
 210   1              dat2=code_1;  /* 写入左上半部汉字代码 */
 211   1              com=0xc0;
 212   1              PR11();
*** WARNING C206 IN LINE 212 OF D:\LCD_6963\LCD2\DISP_A.C: 'PR11': missing function-prototype
 213   1              dat2=code_1+0x02;  /* 写入右上半部汉字代码 */
 214   1              PR11();
 215   1              j=j+i;
 216   1              dat1=j%256;   /* 显示RAM地址修正 */
 217   1              dat2=j/256;
 218   1              com=0x24;
 219   1              PR1();
 220   1              dat2=code_1+0x01; /* 写入左下半部汉字代码 */
 221   1              com=0xc0;
 222   1              PR11();
 223   1              dat2=code_1+0x03;  /* 写入右下半部汉字代码 */
 224   1              PR11();
 225   1           }
 226          /********************************/
 227          /*    汉字写入(图形方式)函数  */
 228          /********************************/
 229          CCW2_PR()
 230              {
 231   1           unsigned int i,j,count1;
 232   1              i=para1;
 233   1              j=i*O_Y+O_X+0x0800;   /* 图形显示区首地址为0x0800*/
 234   1                   for(count1=0;count1<16;count1++)

⌨️ 快捷键说明

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