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

📄 text1.lst

📁 6963控制其的液晶测试程序
💻 LST
字号:
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<stdio.h>
   2          #include<intrins.h>
   3          #include <reg51.h>
   4          #include <math.h>
   5          #include <absacc.h>
   6          #include <string.h>
   7          /*   地址定义   */
   8          #define  d_add XBYTE[0x8000]
   9          #define  c_add XBYTE[0x8100]
  10          /*   常数定义   */
  11          #define  para1 0x30;
  12          #define  uchar unsigned char
  13          #define  uint unsigned  int
  14          
  15          #define  dat1 DBYTE[0x30]
  16          #define  dat2 DBYTE[0x31]
  17          #define  com  DBYTE[0x32]
  18          #define  code_1 DBYTE[0x33]
  19          #define  attr DBYTE[0x34]
  20          #define  O_Y DBYTE[0x35]
  21          #define  O_X DBYTE[0x36]
  22          /*  定义标志位  */
  23           sbit Acc_0=ACC^0;
  24           sbit Acc_1=ACC^1;
  25           sbit Acc_2=ACC^2;
  26           sbit Acc_3=ACC^3;
  27           sbit fs=P1^1;
  28          uchar num=0;
  29          bit   s=0;
  30           uchar x=0;
  31           uchar y=0;
  32          /******************************/
  33           code unsigned char CCTAB[49][32]={
  34          /* 0=天*/
  35          0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,
  36          0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,
  37          0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
  38          0x08,0x20,0x30,0x18,0x00,0x00,0x00,0x00,
  39          
  40          /*1=下*/
  41          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
  42          0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0xC0,
  43          0x01,0x20,0x01,0x10,0x01,0x00,0x01,0x00,
  44          0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
  45          
  46          /*2=为*/
  47          0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
  48          0x09,0x00,0x05,0x10,0x1F,0xF8,0x01,0x10,
  49          0x02,0x10,0x02,0x90,0x04,0x50,0x04,0x50,
  50          0x08,0x10,0x30,0xE0,0x00,0x00,0x00,0x00,
  51          
  52          /*2=公*/
  53          0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,
  54          0x04,0x80,0x04,0x40,0x08,0x40,0x11,0x20,
  55          0x21,0x18,0x02,0x00,0x02,0x80,0x04,0x40,
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 2   

  56          0x08,0xE0,0x1F,0x20,0x00,0x00,0x00,0x00,
  57           };
  58           /******************************/
  59          INT_1();
  60          CLEAR();
  61          CCW2_PR();
  62          PR1();
  63          PR11();
  64          PR12();
  65          ST01();
  66          ST3();
  67          FCCW2_PR();
  68          CCWD_PR();
  69          FDISHAZIT(uchar x,uchar y,uchar d);
  70           /**************************/
  71           /*      初始化函数        */
  72           /**************************/
  73          INT_1()
  74              {
  75   1             fs=0;
  76   1             
  77   1             dat1=0x00;      /*设文本显示区域首地址*/
  78   1             dat2=0x00;
  79   1             com=0x40;
  80   1             PR1();
  81   1            
  82   1             dat1=para1;    /*设文本显示区域宽度*/
  83   1             dat2=0x00;
  84   1             com=0x41;
  85   1             PR1();
  86   1            
  87   1             dat1=0x00;    /*设图形显示区域首地址*/
  88   1             dat2=0x08;
  89   1             com=0x42;
  90   1             PR1();
  91   1      
  92   1             dat1=para1;    /*设图形显示区域宽度*/
  93   1             dat2=0x00;
  94   1             com=0x43;
  95   1             PR1();
  96   1         
  97   1             com=0xa0;      /*光标形状设置*/
  98   1             PR12();
  99   1            
 100   1             com=0x80;      /*显示方式设置逻辑"或"合成*/
 101   1             PR12();
 102   1           
 103   1             com=0x98;      /*显示开关设置 开文本和图形显示*/
 104   1             PR12();
 105   1          }
 106          
 107           /***************************/
 108          /*      清显示子程序       */
 109          /***************************/
 110          CLEAR()
 111              {
 112   1          unsigned char i,j;
 113   1              dat1=0x00;
 114   1              dat2=0x00;
 115   1              com=0x24;
 116   1              PR1();
 117   1              com=0xb0;
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 3   

 118   1              PR12();
 119   1          for(i=0;i<205;i++)
 120   1             {
 121   2               for(j=0;j<=40;j++)
 122   2                  {
 123   3                      ST3();
 124   3                      d_add=0x00;
 125   3                  }
 126   2              }
 127   1             com=0xb2;
 128   1             PR12();
 129   1          }
 130          
 131          /************************************************/
 132          /*  判状态位S1,S0 函数(读写指令和读写数据状态)  */
 133          /************************************************/
 134          ST01()
 135              {
 136   1            do
 137   1              {
 138   2              ACC=c_add;
 139   2              }
 140   1            while(Acc_0==0,Acc_1==0);
 141   1          }
 142          
 143          /************************************/
 144          /*  判状态位S3函数(数据自动写状态)  */
 145          /************************************/
 146          ST3()
 147             {
 148   1           do
 149   1           {
 150   2             ACC=c_add;
 151   2           }
 152   1           while(Acc_3==0);
 153   1         }
 154          
 155          DISHAZIT(uchar x,uchar y,uchar d)  /*汉字写入(图文方式)*/
 156           {
 157   1         code_1=d;
 158   1         O_X=x;
 159   1         O_Y=y;
 160   1         CCW2_PR();
 161   1         }
 162          
 163          /****************************/
 164          /*    写指令和写数据函数    */
 165          /****************************/
 166          PR1()              /* 双字节参数指令写入入口 */
 167              {
 168   1            ST01();
 169   1            d_add=dat1;  /* 取第一参数单元数据 */
 170   1            PR11();
 171   1          }
 172          PR11()             /* 单字节参数指令写入入口 */
 173              {
 174   1            ST01();
 175   1            d_add=dat2;  /* 取第二参数单元数据 */
 176   1            PR12();
 177   1          }
 178          PR12()             /* 无参数指令写入入口 */
 179             {
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 4   

 180   1           ST01();
 181   1           c_add=com;    /* 写入指令代码 */
 182   1         }
 183          
 184          /****************************/
 185          
 186          CCW2_PR()
 187              {
 188   1           unsigned int i,j,count1;
 189   1                i=para1;
 190   1                j=i*O_Y+O_X+0x0800;
 191   1             for(count1=0;count1<32;count1++)
 192   1               {
 193   2                 dat1=j%256;
 194   2                 dat2=j/256;
 195   2                 com=0x24;
 196   2                 PR1();
 197   2                 
 198   2                 dat2=CCTAB[code_1][count1];   /* 写入汉字左侧代码 */
 199   2                 com=0xc0;
 200   2                 PR11();
 201   2                 
 202   2                 dat2=CCTAB[code_1][count1+1];  /* 写入汉字右侧代码 */
 203   2                 PR11();
 204   2                 j=j+i;
 205   2      		   count1++;
 206   2               }
 207   1            }
 208          
 209          FDISHAZIT(uchar x,uchar y,uchar d)  /*汉字写入(反图文方式)*/
 210           {
 211   1         code_1=d;
 212   1         O_X=x;
 213   1         O_Y=y;
 214   1         FCCW2_PR();
 215   1         }
 216          FCCW2_PR()
 217              {
 218   1           unsigned int i,j,count1;
 219   1                i=para1;
 220   1                j=i*O_Y+O_X+0x0800;
 221   1             for(count1=0;count1<16;count1++)
 222   1               {
 223   2                 dat1=j%256;
 224   2                 dat2=j/256;
 225   2                 com=0x24;
 226   2                 PR1();
 227   2                 
 228   2                 dat2=0xff-CCTAB[code_1][count1];   /* 写入汉字左侧代码 */
 229   2                 com=0xc0;
 230   2                 PR11();
 231   2                 
 232   2                 dat2=0xff-CCTAB[code_1][count1+16];  /* 写入汉字右侧代码 */
 233   2                 PR11();
 234   2                 j=j+i;
 235   2               }
 236   1            }
 237          
 238          DISDASC(uchar x,uchar y,uchar d)  /*汉字写入(文本方式)*/
 239           {
 240   1         code_1=d;
 241   1         O_X=x;
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 5   

 242   1         O_Y=y;
 243   1         CCWD_PR();
 244   1         }
 245          
 246          CCWD_PR()             /* */
 247               {
 248   1              unsigned int i,j;
 249   1              i=para1;
 250   1              j=i*O_Y+O_X;
 251   1             
 252   1              dat1=j%256;
 253   1              dat2=j/256;
 254   1              com=0x24;  /* 设置显示地址 */
 255   1              PR1();
 256   1              dat2=code_1;  /* 写入左上半部汉字代码 */
 257   1              com=0xc0;
 258   1              PR11();
 259   1             
 260   1              j=j+i;
 261   1              dat1=j%256;   /* 显示RAM地址修正 */
 262   1              dat2=j/256;
 263   1              com=0x24;
 264   1              PR1();
 265   1             
 266   1              dat2=code_1+0x01; /* 写入左下半部汉字代码 */
 267   1              com=0xc0;
 268   1              PR11();
 269   1            
 270   1           }
 271          
 272           /***************************/
 273          /*       演示主程序        */
 274          /***************************/
 275          
 276          void main()
 277               {
 278   1            INT_1();         /* 初始化函数 */
 279   1            CLEAR();         /* 清屏函数 */
 280   1      
 281   1            DISHAZIT(0x00,0x10,0X00); 
 282   1            DISHAZIT(0x02,0x10,0X01);
 283   1            DISHAZIT(0x04,0x10,0X02);
 284   1      	  DISHAZIT(0x06,0x10,0X03);
 285   1      	  DISHAZIT(0x08,0x10,0X00); 
 286   1      	  DISHAZIT(0x0a,0x10,0X01);
 287   1      	  DISHAZIT(0x0c,0x10,0X02);
 288   1      	  DISHAZIT(0x0e,0x10,0X03);
 289   1      	  DISHAZIT(0x10,0x10,0X00); 
 290   1      	  DISHAZIT(0x12,0x10,0X01);
 291   1      	  DISHAZIT(0x14,0x10,0X02);
 292   1      	  DISHAZIT(0x16,0x10,0X03);
 293   1      	  DISHAZIT(0x18,0x10,0X00); 
 294   1      	  DISHAZIT(0x1a,0x10,0X01);
 295   1      	  DISHAZIT(0x1c,0x10,0X02);
 296   1      	  DISHAZIT(0x1e,0x10,0X03);
 297   1      
 298   1            while(1);
 299   1          }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    783    ----
C51 COMPILER V6.20c  TEXT1                                                                 01/17/2006 10:49:50 PAGE 6   

   CONSTANT SIZE    =   1568    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      18
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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