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

📄 test_two.lst

📁 12232驱动程序 调试通过 中北大学信息与通信工程学院 沈阳 QQ:184676957
💻 LST
字号:
C51 COMPILER V7.50   TEST_TWO                                                              10/21/2007 15:46:33 PAGE 1   


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

line level    source

   1          /*12232点阵信利液晶基本驱动程序
   2          〖说明〗12232点阵信利液晶基本驱动程序,国内很多122×32的液晶与之完全兼容,
   3          该液晶左右分MASTER和SLAVE,上下共分4页,左边列地址从0-61,
   4          右边列地址从0-61,由于芯片内部线路的落后,所以使用较麻烦。  
   5          〖文件〗12232lcd.c ﹫2001/03/23
   6          〖作者〗龙啸九天 c51@yeah.net http://mcs51.yeah.net
   7          〖修改〗修改建议请到论坛公布 http://c51bbs.yeah.net
   8          〖版本〗V1.00A Build 0323*/
   9          #include<reg51.h>
  10          #include <intrins.h>
  11          sbit E2=P1^0;
  12          sbit E1=P1^1;
  13          sbit A0=P1^3;
  14          sbit RW=P1^2;
  15          #define DATA P2 
  16          #define uchar unsigned char
  17          unsigned char code bmp[4*122]=
  18          {
  19          /*-- 调入了一幅图像:C:\Documents and Settings\hex\My Documents\12232.bmp --*/
  20          /*-- 宽度x高度=122x32 --*/
  21          0x00,0x80,0x90,0x9C,0x8C,0x84,0xF4,0xF5,0xA7,0x86,0x84,0x84,0x84,0x94,0x9C,0x8C,
  22          0x84,0x00,0x00,0xF8,0xFC,0x8F,0x8B,0xF8,0xF8,0x70,0xBF,0x8F,0x08,0x08,0x08,0xF8,
  23          0xF8,0x00,0x00,0x00,0x20,0x24,0x24,0xE4,0xFC,0xFE,0x22,0x22,0x22,0xF8,0xF8,0x00,
  24          0x00,0xFF,0xFF,0x00,0x00,0x40,0x42,0x46,0x5C,0xDC,0xC8,0x7F,0x7F,0xC0,0xD0,0x5E,
  25          0x4E,0x64,0x60,0x40,0x00,0x00,0x00,0xF8,0xF8,0x48,0x48,0x48,0xFF,0xFF,0x48,0x48,
  26          0x48,0xF8,0xF8,0x00,0x00,0x00,0x10,0x12,0x92,0xF2,0xFE,0xFF,0xD1,0x91,0x22,0xEE,
  27          0xCC,0x00,0xFF,0xFF,0x00,0x00,0x00,0x08,0x08,0x88,0xFF,0xFF,0x68,0x28,0xC8,0xC8,
  28          0x48,0x7F,0x7F,0xC8,0xC8,0x48,0x08,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0x47,
  29          0x6F,0x28,0x38,0x38,0x2C,0x67,0xC3,0xC0,0x40,0x00,0x00,0x00,0x00,0x7F,0x7F,0x10,
  30          0x10,0x3F,0x3F,0x00,0x00,0x03,0x27,0x66,0x60,0x3F,0x1F,0x00,0x00,0x10,0x18,0x0C,
  31          0x07,0x03,0xFF,0xFF,0x0F,0x0E,0x04,0x0F,0x2F,0x60,0xC0,0xFF,0x7F,0x00,0x00,0x80,
  32          0xC0,0x60,0x38,0x1F,0x07,0x00,0x00,0x3F,0x7F,0x40,0x40,0x40,0x78,0x78,0x00,0x00,
  33          0x00,0x0F,0x0F,0x04,0x04,0x04,0x3F,0x7F,0x44,0x44,0x44,0x4F,0x4F,0x70,0x70,0x00,
  34          0x04,0x06,0x03,0x01,0xFF,0xFF,0x04,0x04,0x04,0x06,0x02,0x02,0xFF,0xFF,0x01,0x01,
  35          0x00,0x01,0x41,0xC1,0xFF,0x7F,0x40,0x40,0x60,0x33,0x1F,0x0C,0x1E,0x33,0x61,0x60,
  36          0x20,0x00,0x00,0x00,0x00,0x00,0x04,0x84,0xC4,0xE4,0xF4,0x3C,0x2F,0x27,0x24,0x24,
  37          0xE4,0xE4,0x04,0x04,0x04,0x00,0xFE,0xFE,0x32,0x7E,0xCE,0x82,0xFE,0xFE,0xCA,0xCA,
  38          0x4A,0x4A,0x7E,0x7E,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70,0x3E,0x8E,0x84,0x00,
  39          0x0E,0x1E,0x70,0xE0,0xC0,0x80,0x80,0x00,0x00,0x10,0x92,0x92,0x92,0x92,0x92,0x92,
  40          0x92,0x92,0x92,0x12,0x02,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  41          0x00,0x00,0x00,0x00,0xC0,0xF8,0xF8,0xE0,0x00,0x00,0x00,0x08,0xF8,0xF8,0xF0,0xC0,
  42          0x08,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x08,0x18,0xF0,0xE0,0x00,0xE0,0xF0,0x18,
  43          0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
  44          0x03,0x01,0x00,0xFF,0xFF,0x09,0x09,0x29,0x69,0xC9,0xFF,0x7F,0x00,0x00,0x00,0x00,
  45          0xFF,0xFF,0x02,0x06,0x07,0x03,0xFF,0xFF,0x60,0x23,0x0F,0x1E,0x33,0x61,0x60,0x20,
  46          0x00,0x00,0x01,0x21,0x70,0x78,0x2C,0x27,0x33,0x31,0x10,0x14,0x7C,0x78,0x31,0x01,
  47          0x00,0x00,0x00,0x00,0x1F,0x1F,0x04,0x04,0x04,0x04,0x04,0x0F,0x0F,0x20,0x60,0x7F,
  48          0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3C,0x3F,0x23,
  49          0x02,0x27,0x3F,0x38,0x20,0x20,0x3F,0x3F,0x20,0x07,0x1F,0x3F,0x3F,0x00,0x20,0x3F,
  50          0x3F,0x20,0x20,0x30,0x1F,0x0F,0x00,0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F,0x00,
  51          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  52          };
  53          
  54          void delay(unsigned int nnn)
  55          {
C51 COMPILER V7.50   TEST_TWO                                                              10/21/2007 15:46:33 PAGE 2   

  56   1      unsigned int mmm;
  57   1      while(nnn-->0)
  58   1      for(mmm=0;mmm<1;mmm++);
  59   1      }
  60          /*----------------------------------------------------------------------------
  61          调用方式:void OutMI(uchar i)
  62          函数说明:发指令i到主窗口。(内函数,私有,用户不直接调用)
  63          ------------------------------------------------------------------------------*/
  64          void OutMI(uchar i)
  65          {
  66   1        E1=1;
  67   1        _nop_();
  68   1        _nop_(); 
  69   1        A0=0;
  70   1        _nop_();
  71   1        _nop_();
  72   1        DATA=i;
  73   1        _nop_();
  74   1        _nop_();
  75   1        E1=0;
  76   1        _nop_();
  77   1        _nop_();
  78   1      }
  79          /*--------------------------------------------------------------------------------
  80          调用方式:void OutMD(uchar i)
  81          函数说明:发数据i到主窗口。(内函数,私有,用户不直接调用)
  82          ---------------------------------------------------------------------------------*/
  83          void OutMD(uchar i)
  84          {
  85   1        E1=1;_nop_();_nop_();
  86   1        A0=1;_nop_();_nop_();
  87   1        DATA=i;_nop_();_nop_();
  88   1        E1=0;_nop_();_nop_();
  89   1      }
  90          /*--------------------------------------------------------------------------------
  91          调用方式:void OutSI(uchar i)
  92          函数说明:发指令i到从窗口。(内函数,私有,用户不直接调用)
  93          ---------------------------------------------------------------------------------*/
  94          void OutSI(uchar i)
  95          {
  96   1        A0=0;_nop_();_nop_();
  97   1        E2=1;_nop_();_nop_();
  98   1        DATA=i;_nop_();_nop_();
  99   1        E2=0;_nop_();_nop_();
 100   1      }
 101          /*--------------------------------------------------------------------------------
 102          调用方式:void OutSD(uchar i)
 103          函数说明:发数据i到从窗口。(内函数,私有,用户不直接调用)
 104          ---------------------------------------------------------------------------------*/
 105          void OutSD(uchar i)
 106          {
 107   1        A0=1;
 108   1        _nop_();
 109   1        _nop_();
 110   1        E2=1;
 111   1        _nop_();
 112   1        _nop_();
 113   1        DATA=i;
 114   1        _nop_();
 115   1        _nop_();
 116   1        E2=0;
 117   1        _nop_();
C51 COMPILER V7.50   TEST_TWO                                                              10/21/2007 15:46:33 PAGE 3   

 118   1        _nop_();
 119   1      }
 120          /*--------------------------------------------------------------------------------
 121          调用方式:void LcdIni(void)
 122          函数说明:12232点阵液晶初始化,开机后仅调用一次。
 123          ---------------------------------------------------------------------------------*/
 124          void LcdIni(void)
 125          { 
 126   1        OutMI(0XE2);OutSI(0XE2);//复位
 127   1        OutMI(0XAE);OutSI(0XAE);//POWER SAVE
 128   1        OutMI(0XA4);OutSI(0XA4);//动态驱动
 129   1        OutMI(0XA9);OutSI(0XA9);//1/32占空比
 130   1        OutMI(0XA0);OutSI(0XA0);//时钟线输出
 131   1        OutMI(0XEE);OutSI(0XEE);//写模式
 132   1        OutMI(0X00);OutMI(0XC0);
 133   1        OutSI(0X00);OutSI(0XC0);
 134   1        OutMI(0XAF);OutSI(0XAF);
 135   1      }
 136          /*--------------------------------------------------------------------------------
 137          调用方式:void SetPage(uchar page0,uchar page1)
 138          函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)
 139          ---------------------------------------------------------------------------------*/
 140          void SetPage(uchar page0,uchar page1)
 141          {
 142   1        OutMI(0xB8|page1);
 143   1        OutSI(0xB8|page0);
 144   1      }
 145          /*--------------------------------------------------------------------------------
 146          调用方式:void SetAddress(uchar address0,uchar address1)
 147          函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用)
 148          ---------------------------------------------------------------------------------*/
 149          void SetAddress(uchar address0,uchar address1)
 150          {
 151   1        OutMI(address1&0x7F);
 152   1        OutSI(address0&0x7F);
 153   1      }
 154          /*--------------------------------------------------------------------------------
 155          调用方式:void PutChar0(uchar ch)
 156          函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
 157          ---------------------------------------------------------------------------------*/
 158          void PutChar0(uchar ch)
 159          {
 160   1        OutSD(ch);
 161   1      }
 162          /*--------------------------------------------------------------------------------
 163          调用方式:void PutChar1(uchar ch)
 164          函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
 165          ---------------------------------------------------------------------------------*/
 166          void PutChar1(uchar ch)
 167          {
 168   1        OutMD(ch);
 169   1      }
 170          /*--------------------------------------------------------------------------------
 171          调用方式:void DrawBmp(uchar x,bit layer,uchar width,uchar *bmp)
 172          函数说明:画一个图,横坐标是x,layer表示上下层,width是图形的宽,高都是16,bmp是
 173          图形指针
 174          使用zimo21软件,采用纵向取模得到bmp数据。
 175          ---------------------------------------------------------------------------------*/
 176          void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
 177          {
 178   1        uchar x,address,i=0; //address表示显存的物理地址
 179   1        uchar page=0;
C51 COMPILER V7.50   TEST_TWO                                                              10/21/2007 15:46:33 PAGE 4   

 180   1        bit window=0; //page表示上下两页,window表示左右两页
 181   1        if (layer) page=2;
 182   1        for (x=x0;x<x0+width;x++)
 183   1        {
 184   2          if (x>60) {window=1;address=x%61;}
 185   2          else address=x;
 186   2          SetPage(page,page);
 187   2          SetAddress(address,address);
 188   2          if (window) PutChar1(bmp[i]);
 189   2          else PutChar0(bmp[i]);//画上层
 190   2          SetPage(page+1,page+1);
 191   2          SetAddress(address,address);
 192   2          if (window) PutChar1(bmp[i+width]);
 193   2          else PutChar0(bmp[i+width]);//画下层
 194   2          i++;
 195   2        }
 196   1      }
 197          /*--------------------------------------------------------------------------------
 198          调用方式:void clrscr(void)
 199          函数说明:清屏
 200          ---------------------------------------------------------------------------------*/
 201          void clrscr(void)
 202          {
 203   1        uchar i;
 204   1        uchar page;
 205   1        for (page=0;page<4;page++)
 206   1        {
 207   2          SetPage(page,page);
 208   2          SetAddress(0,0);
 209   2          for (i=0;i<61;i++){PutChar0(0);PutChar1(0);}
 210   2        }
 211   1      }
 212          
 213          main()
 214          {
 215   1      RW=0;
 216   1      delay(1000);
 217   1      LcdIni();
 218   1      delay(1000);
 219   1      DrawBmp(20,0,10,bmp);
 220   1      while(1);
 221   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    465    ----
   CONSTANT SIZE    =    488    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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