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

📄 12232e.lst

📁 各种款式液晶显示程序
💻 LST
字号:
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE 12232E
OBJECT MODULE PLACED IN E:\ZHAOM\程序\ST7920\12232E\12232E~1\12232E.OBJ
COMPILER INVOKED BY: d:\wave\keil\C51\BIN\C51.EXE E:\ZHAOM\程序\ST7920\12232E\12232E~1\12232E.C DB SB OE OT(2)

stmt level    source

   1          #include<reg51.h>
   2          #include<stdio.h>
   3          #define uchar unsigned char
   4          uchar *p,*p1,*p2;/*建立数组指针*/
   5          uchar q;/*判忙*/
   6          uchar data i;
   7          uchar data wbyte;
   8          uchar data Column;/*定义列*/
   9          uchar data Page;/*定义页*/
  10          sbit E=P3^2;/*读写使能信号,1有效*/
  11          sbit R_W=P3^1;/*读写选择信号;1为读选通,0为写选通*/
  12          sbit RS=P3^0;
  13          sbit D_I=P3^0;/*数据指令选择信号;1为数据操作,0为写指令或读状态*/
  14          char code Hanzi[16]=  /*汉字数组*/
  15          {
  16           0x02,0x03,
  17           0xc4,0xcf,/*南*/
  18           0xbe,0xa9,/*京*/
  19           0xb9,0xfa,/*国*/
  20           0xcf,0xd4,/*显*/
  21           0xb5,0xe7,/*电*/
  22           0xd7,0xd3, /*子*/
  23           0x03,0x02
  24          };
  25          char code Hanzi1[12]=  /*汉字数组*/
  26          {
  27           0x0e,0x02,
  28           0xb1,0xb1,/*北*/
  29           0xbe,0xa9,/*京*/
  30           0xc4,0xfe,/*宁*/
  31           0xba,0xcd,/*和*/
  32           0x02,0x0e
  33          };
  34          char code Tu[16][21]=  /*图形数组*/
  35          {
  36           0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
  37           0x00,0x70,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x08,0x00,0x00,0x5F,0x00,
  38           0x00,0x70,0x00,0x03,0xC0,0x00,0x3F,0x00,0x00,0xEC,0x00,0x1C,0x00,0x00,0xFF,0x00,
  39           0x00,0x7E,0x00,0x03,0xC0,0x00,0x7D,0x80,0x06,0xFE,0x00,0x1E,0x00,0x00,0xEE,0x00,
  40           0x00,0xFC,0x00,0x07,0xF0,0x00,0x01,0xC0,0x07,0xFE,0x00,0x0E,0x00,0x01,0xFC,0x00,
  41           0x03,0xF0,0x00,0x1F,0xF0,0x01,0xBC,0xC0,0x07,0xFC,0x00,0x0F,0xE0,0x01,0xF8,0x00,
  42           0x01,0xFC,0x00,0x3F,0xE0,0x01,0xFC,0xC0,0x07,0xF8,0x00,0x3E,0x70,0x00,0x3C,0x00,
  43           0x00,0xFF,0x80,0xFF,0xC0,0x01,0xFC,0xE0,0x03,0xF0,0x01,0xFE,0x70,0x00,0x3F,0x00,
  44           0x01,0xFD,0xC0,0xF3,0xE0,0x03,0xDF,0xE0,0x03,0xF0,0x01,0xDF,0xF0,0x00,0x7F,0x80,
  45           0x0F,0xFD,0xC0,0x67,0xE0,0x03,0xFF,0xE0,0x00,0xFC,0x01,0xFF,0xE0,0x01,0xEF,0x80,
  46           0x0F,0xFD,0x80,0x0F,0xE0,0x03,0x7F,0xE0,0x01,0xFC,0x00,0xFF,0xC0,0x03,0xCE,0x00,
  47           0x06,0xF9,0x80,0x1F,0x80,0x03,0x3E,0xE0,0x0F,0xBC,0x00,0xFF,0x80,0x03,0x8E,0x00,
  48           0x06,0x7F,0x80,0x0B,0x80,0x03,0x7E,0xE0,0x0F,0xF0,0x00,0xFF,0x80,0x03,0x0E,0x00,
  49           0x06,0xFB,0x80,0x01,0xF0,0x03,0xFC,0xE0,0x05,0xF0,0x00,0x7C,0x00,0x01,0x8E,0x00,
  50           0x06,0x7F,0x80,0x3F,0x98,0x01,0xE1,0xE0,0x03,0xFF,0x00,0x0F,0xE0,0x00,0xCE,0x00,
  51           0x00,0x3F,0x00,0x3D,0xBC,0x00,0xFF,0xC0,0x3F,0xFF,0x80,0x07,0xE0,0x00,0x7C,0x00,
  52           0x00,0x37,0x00,0x37,0x98,0x00,0x0F,0x80,0x1C,0x01,0x00,0x00,0x00,0x00,0x3C,0x00,
  53           0x00,0x00,0x00,0x31,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  54           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 2   

  56           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57          };
  58          uchar data j=16;/*所建立的第一个汉字数组中元素的个数*/
  59          /*为在液晶中第一行得显示数据*/
  60          uchar data j1=12;/*所建立的第二个汉字数组中元素的个数*/
  61          /*为在液晶中第二行得显示数据*/
  62          uchar data k=0x80;/*起始点:80h-8fh为在第一行显示*/
  63          uchar data k1=0x91;/*起始点:90h-9fh为在第二行显示*/
  64          /********************扩充指令集画图********************/
  65          uchar data z=21;/*图形数组的页,为实际点阵行数*/
  66          uchar data y=16;/*图形数组的列,为实际点阵列数除以8*/
  67          uchar data Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
  68          uchar data Page=6;/*起始点设定:为在液晶中显示的实际起始行*/
  69          /**************************************************/
  70          void WCom(uchar);/*写指令*/
  71          void Clearlcd();/*清屏*/
  72          void Imim();/*初始化*/
  73          void Dat(uchar);/*送数据*/
  74          void Delay();/*延时*/
  75          void Hanz();/*写汉字*/
  76          void Hanz1();
  77          void Tuxing();
  78          void Clearlcd1();
  79          /********************主程序********************/
  80          void main()
  81          {
  82   1       Delay();
  83   1       Delay();
  84   1       Delay();/*延时*/
  85   1       Imim();/*初始化*/
  86   1       p=Hanzi;/*指针指向数组的首地址*/
  87   1       p1=Hanzi1;
  88   1       p2=Tu;
*** WARNING C182 IN LINE 88 OF E:\ZHAOM\程序\ST7920\12232E\12232E~1\12232E.C: pointer to different objects
  89   1       Hanz();/*写汉字程序*/
  90   1       Hanz1();
  91   1       Delay();
  92   1       Delay();
  93   1       Delay();
  94   1       Delay();
  95   1       Clearlcd();
  96   1       Tuxing();
  97   1       loop:goto loop;
  98   1       }
  99          
 100          /********************写指令子程序********************/
 101          void WCOM(uchar d)    /*写指令程序*/
 102          {
 103   1       R_W=1;
 104   1       D_I=0;/*设置状态*/
 105   1      Loop:
 106   1       P1=0xFF;
 107   1       E=1;/*使能有效*/
 108   1       q=P1;/*将p1口状态读入*/
 109   1       E=0;/*关闭使能信号*/
 110   1       if(q&0x80)/*判断屏幕是否忙*/
 111   1       {
 112   2       goto Loop;/*若忙,循环等待*/
 113   2       }
 114   1       R_W=0;
 115   1       D_I=0;/*写数据指令*/
 116   1       P1=d;/*将数据送入p1口*/
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 3   

 117   1       E=1;/*使能信号开*/
 118   1       E=0;/*使能信号关*/
 119   1      }
 120          /********************送数据子程序********************/
 121          void Dat(uchar d)
 122          {
 123   1       R_W=1;
 124   1       D_I=0;/*读状态指令*/
 125   1      Loop:
 126   1       P1=0xFF;
 127   1       E=1;/*使能*/
 128   1       q=P1;
 129   1       E=0;
 130   1       if(q&0x80)
 131   1       {
 132   2       goto Loop;
 133   2       }/*判忙*/
 134   1       D_I=1;/*送数据指令*/
 135   1       R_W=0;
 136   1       P1=d;
 137   1       E=1;/*使能信号开*/
 138   1       E=0;/*使能信号关*/
 139   1      }
 140          /********************初始化子程序********************/
 141          void Imim()
 142          {
 143   1       P0=0xff;
 144   1       P1=0xff;
 145   1       P2=0xff;
 146   1       P3=0xff;
 147   1       E=0;
 148   1       Delay();
 149   1       WCOM(0x38);/*功能设定*/
 150   1       WCOM(0x08);/*关显示指令*/
 151   1       WCOM(0x06);/*游标右移*/
 152   1       Clearlcd();/*清屏*/
 153   1       WCOM(0x0d);/*开显示指令*/
 154   1      }
 155          /********************延时子程序********************/
 156          void Delay()
 157          {
 158   1       uchar data i,j;
 159   1       for(i=0;i<255;i++)
 160   1        for(j=0;j<255;j++);
 161   1      }
 162          /********************基本指令集清屏子程序********************/
 163          void Clearlcd()
 164          {
 165   1       D_I=0;
 166   1       R_W=0;
 167   1       P1=0x01;
 168   1       WCOM(0x01);/*清除显示*/
 169   1      }
 170          /********************写第一行汉字主程序********************/
 171          void Hanz()
 172          {
 173   1       WCOM(k); /*设置第一行起始点*/
 174   1       for(i=0;i<j;i++,p++)
 175   1       {
 176   2        wbyte=*p;
 177   2        Dat(wbyte);/*将汉字数组数据送入*/
 178   2       }
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 4   

 179   1      }
 180          /********************写第二行汉字主程序********************/
 181          void Hanz1()
 182          {
 183   1        WCOM(k1);/*设置第二行起始点*/
 184   1        for(i=0;i<j1;i++,p1++)
 185   1       {
 186   2        wbyte=*p1;
 187   2        Dat(wbyte);/*将汉字数组数据送入*/
 188   2       }
 189   1      }
 190          /********************扩充指令集画图子程序********************/
 191          void Tuxing()
 192          {
 193   1       uchar data v;
 194   1       uchar data w;
 195   1       uchar data x;
 196   1       uchar data h;
 197   1       WCOM(0x34);/*功能设定*/
 198   1       WCOM(0x36);/*扩充功能设定*/
 199   1       Clearlcd1();/*在扩充功能下清屏*/
 200   1       for(h=0;h<z;h++)  /*页循环*/
 201   1       {
 202   2        v=Column|0x80;
 203   2        w=Page|0x80;
 204   2        WCOM(w);/*送入起始页地址*/
 205   2        WCOM(v);/*送入起始列地址*/
 206   2        Page++; /*准备对下一页进行操作*/
 207   2        for(x=0;x<y;x++) /*列循环*/
 208   2         {
 209   3          wbyte=*p2;
 210   3          Dat(wbyte);/*循环送入图形数据*/
 211   3          p2++;
 212   3         }
 213   2       }
 214   1      }
 215          /********************扩充指令集清屏子程序********************/
 216          void Clearlcd1()
 217          {
 218   1        uchar data Disp_Page;
 219   1        uchar data i;
 220   1        uchar data j;
 221   1        for(i=0;i<32;i++)/*共32页*/
 222   1        {
 223   2         Disp_Page=i|0x80;/*设置页地址*/
 224   2         WCOM(Disp_Page);/*送入页地址*/
 225   2         WCOM(0x80);/*送入起始列地址*/
 226   2         for(j=0;j<16;j++)
 227   2         {
 228   3          Dat(0x00);/*清屏*/
 229   3         }
 230   2        }
 231   1      }
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


Page . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
Tuxing . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  v. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  w. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  h. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
R_W. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
Imim . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
Hanz . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_WCOM. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  d. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  Loop . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
j1 . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
k1 . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
Clearlcd . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
p1 . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   PTR      0003H  3
p2 . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   PTR      0006H  3
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  loop . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
Hanzi1 . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0010H  12
wbyte. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0009H  1
Hanz1. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
E. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
Tu . . . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    001CH  336
Clearlcd1. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Disp_Page. . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
i. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000AH  1
j. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000BH  1
k. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000CH  1
D_I. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
p. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   PTR      000DH  3
q. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0010H  1
Delay. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
Column . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0011H  1
y. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0012H  1
_Dat . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  d. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  Loop . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
z. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0013H  1
Hanzi. . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  16


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    464    ----
   CONSTANT SIZE    =    364    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     20      11
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.01  12232E                                                                 03/09/2006 10:49:31 PAGE 6   

   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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