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

📄 main.lst

📁 基于单片机AT89S52系统的一些测试程序
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  12/31/2007 21:52:44 PAGE 1   


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

stmt level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          #include <absacc.h>
   4          #include <intrins.h>
   5          
   6          typedef unsigned char uint8;
   7          typedef unsigned int  uint16;
   8          typedef long unsigned int  uint32;
   9          
  10          #define LCM_DISPON                      0x3f    /* 打开LCM显示                                                                                          */
  11          #define LCM_STARTROW            0xc0    /* 显示起始行0,可以用LCM_STARTROW+x设置起始行。(x<64)          */
  12          #define LCM_ADDRSTRX            0xb8    /* 页起始地址,可以用LCM_ADDRSTRX+x设置当前页(即X)。(x<8)       */
  13          #define LCM_ADDRSTRY            0x40    /* 列起始地址,可以用LCM_ADDRSTRY+x设置当前列(即Y)。(x<64)      */      
  14          #define LcdComA         XBYTE[0x6020]   /* 左半屏控制端口                                                                                       */
  15          #define LcdComB         XBYTE[0x6040]   /* 右半屏控制端口                                                                                       */
  16          #define LcdComAll       XBYTE[0x6060]   /* 全屏控制端口                                                                                         */
  17          #define LcdWDataA       XBYTE[0x6120]   /* 左半屏数据端口                                                                                       */
  18          #define LcdWDataB       XBYTE[0x6140]   /* 右半屏数据端口                                                                                       */
  19          #define LcdDataAll      XBYTE[0x6160]   /* 全屏数据端口                                                                                         */
  20          
  21          unsigned char code XI[]=
  22          {
  23          /*------------------------------------------------------------------------------
  24            源文件 / 文字 : 西
  25            宽×高(像素): 16×16
  26            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  27          ------------------------------------------------------------------------------*/
  28          0x00,0x00,0x04,0x00,0x04,0x00,0xE4,0x7F,0x24,0x28,0x24,0x24,0xFC,0x23,0x24,0x20,
  29          0x24,0x20,0xFC,0x23,0x24,0x24,0x24,0x24,0x24,0x24,0xE6,0x7F,0x04,0x00,0x00,0x00
  30          };
  31          
  32          unsigned char code AN[]=
  33          {
  34          /*------------------------------------------------------------------------------
  35            源文件 / 文字 : 安
  36            宽×高(像素): 16×16
  37            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  38          ------------------------------------------------------------------------------*/
  39          0x00,0x00,0x80,0x00,0xA0,0x40,0x98,0x40,0x88,0x40,0x88,0x26,0x88,0x25,0xEA,0x18,
  40          0x8C,0x08,0x88,0x0C,0x88,0x13,0x88,0x10,0xA8,0x20,0x98,0x60,0x80,0x00,0x00,0x00
  41          };
  42          
  43          unsigned char code JIAO[]=
  44          {
  45          /*------------------------------------------------------------------------------
  46            源文件 / 文字 : 交
  47            宽×高(像素): 16×16
  48            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  49          ------------------------------------------------------------------------------*/
  50          0x00,0x00,0x08,0x00,0x08,0x41,0x88,0x40,0x48,0x40,0xA8,0x21,0x08,0x22,0x0A,0x14,
  51          0x0C,0x08,0x08,0x16,0x88,0x21,0x28,0x20,0x48,0x40,0x8C,0x40,0x08,0x40,0x00,0x00
  52          };
  53          
  54          unsigned char code TONG[]=
  55          {
C51 COMPILER V7.06   MAIN                                                                  12/31/2007 21:52:44 PAGE 2   

  56          /*------------------------------------------------------------------------------
  57            源文件 / 文字 : 通
  58            宽×高(像素): 16×16
  59            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  60          ------------------------------------------------------------------------------*/
  61          0x00,0x00,0x40,0x20,0x42,0x10,0xCC,0x0F,0x00,0x10,0x00,0x20,0xF4,0x5F,0x54,0x42,
  62          0x5C,0x42,0xF4,0x5F,0x5C,0x42,0x56,0x52,0xF4,0x5F,0x00,0x40,0x00,0x40,0x00,0x00
  63          };
  64          
  65          unsigned char code DA[]=
  66          {
  67          /*------------------------------------------------------------------------------
  68            源文件 / 文字 : 大
  69            宽×高(像素): 16×16
  70            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  71          ------------------------------------------------------------------------------*/
  72          0x00,0x00,0x20,0x40,0x20,0x40,0x20,0x20,0x20,0x10,0x20,0x08,0x20,0x06,0xFE,0x01,
  73          0x20,0x02,0x20,0x04,0x20,0x08,0x20,0x10,0x20,0x20,0x30,0x60,0x20,0x20,0x00,0x00
  74          };
  75          
  76          unsigned char code XUE[]=
  77          {
  78          /*------------------------------------------------------------------------------
  79            源文件 / 文字 : 学
  80            宽×高(像素): 16×16
  81            字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  82          ------------------------------------------------------------------------------*/
  83          0x00,0x00,0x40,0x04,0x30,0x04,0x10,0x04,0x52,0x04,0x5C,0x04,0x50,0x24,0x52,0x44,
  84          0x5C,0x3F,0x50,0x05,0xD8,0x04,0x56,0x04,0x10,0x04,0x50,0x06,0x30,0x04,0x00,0x00
  85          };
  86          
  87          /*************************************************
  88          延时子程序
  89          *************************************************/
  90          void delay(uint16 time)
  91          {
  92   1              while(time--);
  93   1      }
  94          
  95          /*************************************************
  96          液晶初始化
  97          *************************************************/
  98          void LCM_DispIni(void)
  99          {
 100   1              LcdComAll = LCM_DISPON;
 101   1              delay(50);
 102   1              LcdComAll = LCM_STARTROW;
 103   1              delay(50);
 104   1              LcdComAll = LCM_ADDRSTRX;
 105   1              delay(50);
 106   1              LcdComAll = LCM_ADDRSTRY;
 107   1              delay(50);
 108   1      }
 109          /*************************************************
 110          全屏填充
 111          *************************************************/
 112          void LCM_DispFill(uint8 filldata)
 113          {
 114   1              uint8 x,y;
 115   1              LcdComAll = LCM_STARTROW;
 116   1              delay(50);
 117   1              for(x=0;x<8;x++)
C51 COMPILER V7.06   MAIN                                                                  12/31/2007 21:52:44 PAGE 3   

 118   1              {
 119   2                      LcdComAll = LCM_ADDRSTRX + x;
 120   2                      delay(50);
 121   2                      LcdComAll = LCM_ADDRSTRY;
 122   2                      delay(50);
 123   2                      for(y=0;y<64;y++)
 124   2                      {
 125   3                              LcdDataAll = filldata;
 126   3                              delay(50);
 127   3                      }
 128   2              }
 129   1      }
 130          
 131          void LCD_init(void)
 132          {
 133   1              LCM_DispIni();
 134   1              LCM_DispFill(0x00);
 135   1      }
 136          /*************************************************
 137          向x,y坐标写入数据wrdata
 138          *************************************************/
 139          void LCM_WriteByte(uint8 x,uint8 y,uint8 wrdata)
 140          {
 141   1              x = x & 0x7f;
 142   1              y = y & 0x3f;
 143   1              y = y >> 3;
 144   1              if(x<64)
 145   1              {
 146   2                      LcdComA  = LCM_ADDRSTRY + x;
 147   2                      delay(50);
 148   2                      LcdComA  = LCM_ADDRSTRX + y;
 149   2                      delay(50);
 150   2                      LcdWDataA = wrdata;
 151   2                      delay(50);
 152   2              }
 153   1              else
 154   1              {
 155   2                      x = x -64;
 156   2                      LcdComB  = LCM_ADDRSTRY + x;
 157   2                      delay(50);
 158   2                      LcdComB  = LCM_ADDRSTRX + y;
 159   2                      delay(50);
 160   2                      LcdWDataB = wrdata;
 161   2                      delay(50);
 162   2              }
 163   1      }
 164          /*************************************************
 165          在x,y坐标处显示汉字(16X16)
 166          *************************************************/
 167          void PutChinese(uint8 x,uint8 y,uint8 *dat)
 168          {
 169   1              uint8 i;
 170   1              for(i=0;i<16;i++)
 171   1              {
 172   2                      LCM_WriteByte(x+i,y,*(dat++));
 173   2                      LCM_WriteByte(x+i,y+8,*(dat++));
 174   2              }
 175   1      }
 176          main()
 177          {       
 178   1              //Init_RS232();
 179   1              SCON=0x52;      
C51 COMPILER V7.06   MAIN                                                                  12/31/2007 21:52:44 PAGE 4   

 180   1              TMOD=0x20;
 181   1              TH1=0xFD;     // 波特率为9600,晶振=11.0592M
 182   1              TR1=1;
 183   1              LCD_init();
 184   1      
 185   1              PutChinese(16,0,XI);
 186   1              PutChinese(32,0,AN);
 187   1              PutChinese(48,0,JIAO);
 188   1              PutChinese(64,0,TONG);
 189   1              PutChinese(80,0,DA);
 190   1              PutChinese(96,0,XUE);
 191   1      
 192   1              PutChinese(16,16,XI);
 193   1              PutChinese(32,16,AN);
 194   1              PutChinese(48,16,JIAO);
 195   1              PutChinese(64,16,TONG);
 196   1              PutChinese(80,16,DA);
 197   1              PutChinese(96,16,XUE);
 198   1      
 199   1              PutChinese(16,32,XI);
 200   1              PutChinese(32,32,AN);
 201   1              PutChinese(48,32,JIAO);
 202   1              PutChinese(64,32,TONG);
 203   1              PutChinese(80,32,DA);
 204   1              PutChinese(96,32,XUE);
 205   1      
 206   1              PutChinese(16,48,XI);
 207   1              PutChinese(32,48,AN);
 208   1              PutChinese(48,48,JIAO);
 209   1              PutChinese(64,48,TONG);
 210   1              PutChinese(80,48,DA);
 211   1              PutChinese(96,48,XUE);
 212   1              while(1);
 213   1      }
 214          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    562    ----
   CONSTANT SIZE    =    192    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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