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

📄 12232.lst

📁 122*32STN屏幕测试
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.08   12232                                                                 10/18/2006 17:09:25 PAGE 1   


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

line level    source

   1          /*============================================================
   2          功能:使用12232液晶显示图片演示
   3          =============================================================*/
   4          #include <AT89X52.H>
   5          #include <ABSACC.H>
   6          #include <ok.h>
   7          
   8          #define uchar unsigned char
   9          #define uint unsigned int
  10          
  11          #define E1 P3_1         //块1  左边
  12          #define E2 P3_2         //块2  右边
  13          #define RW P3_3
  14          #define E  P3_4
  15          #define A0 P3_0         //A0为1时是数据,0时为指令数据
  16          #define DATA P1         //数据
  17           
  18          extern unsigned char code Bmpt1[];
  19          extern unsigned char code Bmpt2[];
  20          extern unsigned char code Bmpt3[];
  21          extern unsigned char code Bmpt4[];
  22          extern unsigned char code Bmpt5[];
  23          extern unsigned char code Bmpt6[];
  24          extern unsigned char code Bmpt7[];
  25          extern unsigned char code Bmptc[];
  26          extern unsigned char code bmp001[];
  27          extern  unsigned char code Bmp08[];
  28          extern  unsigned char code Bmp07[];
  29          extern  unsigned char code Bmp06[];
  30          extern  unsigned char code Bmp05[];
  31          extern  unsigned char code Bmp04[];
  32          extern  unsigned char code Bmp03[];
  33          extern  unsigned char code Bmp02[];
  34          extern  unsigned char code Bmp01[];
  35          extern  unsigned char code Bmp012[];
  36          extern  unsigned char code Bmp003[];
  37          extern  unsigned char code Bmp002[];
  38          
  39          
  40          //延时
  41          void delay(unsigned int i)
  42          {
  43   1              unsigned char k=200;    
  44   1              while(i>0)
  45   1              {
  46   2                      i--;
  47   2              }
  48   1              while(k>1)k--;
  49   1      }
  50          
  51          //左页
  52          //发送数据
  53          void    OUTMD(unsigned char i)
  54          {
  55   1              A0=1;   //写数据
C51 COMPILER V7.08   12232                                                                 10/18/2006 17:09:25 PAGE 2   

  56   1      //      delay(1);
  57   1              E1=1;
  58   1      //      delay(2);
  59   1              DATA=i;
  60   1              delay(1);
  61   1              E1=0;
  62   1      XBYTE[0X8001]=i;
  63   1      }
  64          //左页
  65          //发送命令
  66          void    OUTMI(unsigned char i)
  67          {
  68   1              A0=0;   //写指令
  69   1      //      delay(1);
  70   1              E1=1;
  71   1      //      delay(2);
  72   1              DATA=i;
  73   1              delay(1);
  74   1              E1=0;
  75   1      XBYTE[0X8000]=i;
  76   1      }
  77          //右页
  78          //发送数据
  79          void    OUTSD(unsigned char i)
  80          {
  81   1              A0=1;   //写数据
  82   1      //      delay(1);
  83   1              E2=1;
  84   1      //      delay(2);
  85   1              DATA=i;
  86   1              delay(1);
  87   1              E2=0;
  88   1      XBYTE[0X8003]=i;
  89   1      
  90   1      }
  91          //右页
  92          //发送命令
  93          void    OUTSI(unsigned char i)
  94          {
  95   1              A0=0;   //写指令
  96   1      //      delay(1);
  97   1              E2=1;
  98   1      //      delay(2);
  99   1              DATA=i;
 100   1              delay(1);
 101   1              E2=0;
 102   1      XBYTE[0X8002]=i;
 103   1      }
 104          
 105          
 106          
 107          //初始化
 108          void    lcdini(void)
 109          {
 110   1              RW=0;
 111   1              OUTMI(0XE2);
 112   1              OUTSI(0XE2);//复位
 113   1              OUTMI(0XAE);
 114   1              OUTSI(0XAE);//POWER SAVE
 115   1              OUTMI(0XA4);
 116   1              OUTSI(0XA4);//动态驱动
 117   1              OUTMI(0XA9);
C51 COMPILER V7.08   12232                                                                 10/18/2006 17:09:25 PAGE 3   

 118   1              OUTSI(0XA9);//1/32占空比
 119   1              OUTMI(0XA0);
 120   1              OUTSI(0XA0);//时钟线输出
 121   1              OUTMI(0XEE);
 122   1              OUTSI(0XEE);//写模式
 123   1              
 124   1              OUTMI(0X00);
 125   1              OUTMI(0XC0);
 126   1              OUTSI(0X00);
 127   1              OUTSI(0XC0);
 128   1              
 129   1              OUTMI(0XAF);
 130   1              OUTSI(0XAF);
 131   1              
 132   1      }
 133          /*
 134          函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)
 135          ------------------------------------------------------------------------
 136          */
 137          void SetPage(uchar page0,uchar page1)
 138          {
 139   1      OUTMI(0xB8|page1);OUTSI(0xB8|page0);
 140   1      }
 141          
 142          /*
 143          --------------------------------------------------------------------------------
 144          函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用)
 145          --------------------------------------------------------------------------------
 146          */
 147          void SetAddress(uchar address0,uchar address1)
 148          {
 149   1      OUTMI(address1);OUTSI(address0);
 150   1      }
 151          
 152          /*
 153          --------------------------------------------------------------------------------
 154          
 155          调用方式:void PutChar0(uchar ch)
 156          函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
 157          --------------------------------------------------------------------------------
 158          -*/
 159          void PutCharR(uchar ch)
 160          {
 161   1      OUTSD(ch);
 162   1      }
 163          
 164          /*
 165          --------------------------------------------------------------------------------
 166          
 167          调用方式:void PutChar1(uchar ch)
 168          函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
 169          --------------------------------------------------------------------------------
 170          -*/
 171          void PutCharL(uchar ch)
 172          {
 173   1      OUTMD(ch);
 174   1      } 
 175          
 176          /*
 177          --------------------------------------------------------------------------------
 178          
 179          调用方式:void DrawBmp(bit layer,uchar width,uchar *bmp)
C51 COMPILER V7.08   12232                                                                 10/18/2006 17:09:25 PAGE 4   

 180          函数说明:画一个图,layer表示上下层,width是图形的宽,高都是16,bmp是
 181          图形指针
 182                    使用zimo3软件,纵向取模,字节倒序/240字节
 183          --------------------------------------------------------------------------------
 184          -*/
 185          void DrawBmp(bit layer,uchar width,uchar *bmp)
 186          {
 187   1      uchar x,address,i=0;     //address表示显存的物理地址
 188   1      uchar page=0;   //page表示上下两页
 189   1      bit window=0;  //window表示左右两页
 190   1      //putcharR      //右边
 191   1      //putcharL      //左边
 192   1      
 193   1      for (x=width;x>1;x--)
 194   1      {
 195   2      if (i>60) {window=1;address=i%61;}
 196   2      else address=i; 
 197   2      
 198   2      if (layer==0)   //显示一行八个字
 199   2              {
 200   3              SetPage(0,0);
 201   3              SetAddress(address,address);
 202   3              if (window==1)PutCharR(bmp[i]);
 203   3              else    PutCharL(bmp[i]);
 204   3              SetPage(1,1);
 205   3              SetAddress(address,address);
 206   3              if (window==1)PutCharR(bmp[i+width]);
 207   3              else    PutCharL(bmp[i+width]);
 208   3              }
 209   2      else
 210   2              {       //显示第二行八个汉字
 211   3              SetPage(2,2);
 212   3              SetAddress(address,address);
 213   3              if (window==1)PutCharR(bmp[i]);
 214   3              else    PutCharL(bmp[i]);
 215   3              SetPage(3,3);
 216   3              SetAddress(address,address);
 217   3              if (window==1)PutCharR(bmp[i+width]);
 218   3              else    PutCharL(bmp[i+width]);
 219   3              }
 220   2          i++;
 221   2         
 222   2      }
 223   1      }
 224          
 225          
 226          /*
 227          --------------------------------------------------------------------------------
 228          
 229          调用方式:void clrscr(void)
 230          函数说明:清屏
 231          --------------------------------------------------------------------------------
 232          -*/
 233          void clrscr(void)
 234          {
 235   1      uchar i;
 236   1      uchar page;
 237   1      for (page=0;page<4;page++)
 238   1      {
 239   2      SetPage(page,page);
 240   2      SetAddress(0,0);
 241   2      for (i=0;i<61;i++){PutCharR(0);PutCharL(0);}
C51 COMPILER V7.08   12232                                                                 10/18/2006 17:09:25 PAGE 5   

 242   2      }
 243   1      } 
 244          
 245          //-----------------------------------------------------------

⌨️ 快捷键说明

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