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

📄 12232.lst

📁 12232液晶显示程序在,对写液晶的人来说
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   12232                                                                 03/11/2004 16:59:54 PAGE 1   


C51 COMPILER V7.09, 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          作者: Mingtree  ycxms88@163.com   http://www.mcu123.com
   4          ============================================================== 
   5          硬件:TG12232B (122*32)模拟口线接线方式
   6          连接线图: 
   7          --------------------------------------------------|
   8          |DB0-----P0.0 | DB4-----P0.4 | RW-------P1.1 | A0--------P1.0 |
   9          |DB1-----P0.1 | DB5-----P0.5 | RS-------P2.1 | V0接1K电阻到GND |
  10          |DB2-----P0.2 | DB6-----P0.6 | E1-------P1.3 |
  11          |DB3-----P0.3 | DB7-----P0.7 | E2-------P1.2 |                  
  12          ---------------------------------------------------
  13          
  14          本程序源码只供学习参考,如有需要请联系作者。
  15          
  16          [注:AT89x52使用22.1184M或11.0592M晶振,实测使用22.1184M或11.0592都可以]
  17          编译平台:Keil uV2 7.08
  18          
  19          
  20          //可能看起来有点乱,不过效果还是不错的,显示图形总的来说比显示汉字要简单,当然显示汉字也不难。
  21          希望此程序能给你一些帮助。
  22          有什么问题可以发email 给我或到我的论坛发问.
  23          http://www.mcu123.com/bbs
  24          =============================================================*/
  25          
  26          
  27          #include <AT89X52.H>
  28          
  29          #define uchar unsigned char
  30          #define uint unsigned int
  31          
  32          #define E1 P1_3         //块1  左边
  33          #define E2 P1_2         //块2  右边
  34          #define RW P1_1
  35          #define A0 P1_0         //A0为1时是数据,0时为指令数据
  36          #define DATA P0         //数据
  37          
  38          extern unsigned char code Bmpt1[];
  39          extern unsigned char code Bmpt2[];
  40          extern unsigned char code Bmpt3[];
  41          extern unsigned char code Bmpt4[];
  42          extern unsigned char code Bmpt5[];
  43          extern unsigned char code Bmpt6[];
  44          extern unsigned char code Bmpt7[];
  45          extern unsigned char code Bmptc[];
  46          extern unsigned char code bmp001[];
  47          extern  unsigned char code Bmp08[];
  48          extern  unsigned char code Bmp07[];
  49          extern  unsigned char code Bmp06[];
  50          extern  unsigned char code Bmp05[];
  51          extern  unsigned char code Bmp04[];
  52          extern  unsigned char code Bmp03[];
  53          extern  unsigned char code Bmp02[];
  54          extern  unsigned char code Bmp01[];
  55          extern  unsigned char code Bmp012[];
C51 COMPILER V7.09   12232                                                                 03/11/2004 16:59:54 PAGE 2   

  56          extern  unsigned char code Bmp003[];
  57          extern  unsigned char code Bmp002[];
  58          
  59          
  60          //延时
  61          void delay(unsigned int i)
  62          {
  63   1              unsigned char k=200;    
  64   1              while(i>0)
  65   1              {
  66   2                      i--;
  67   2              }
  68   1              while(k>1)k--;
  69   1      }
  70          
  71          //左页
  72          //发送数据
  73          void    OUTMD(unsigned char i)
  74          {
  75   1              A0=1;   //写数据
  76   1              //delay(5);
  77   1              E1=1;
  78   1              //delay(10);
  79   1              DATA=i;
  80   1              //delay(5);
  81   1              E1=0;
  82   1              
  83   1      }
  84          //左页
  85          //发送命令
  86          void    OUTMI(unsigned char i)
  87          {
  88   1              A0=0;   //写指令
  89   1              //delay(5);
  90   1              E1=1;
  91   1              //delay(10);
  92   1              DATA=i;
  93   1              //delay(5);
  94   1              E1=0;
  95   1              
  96   1      }
  97          //右页
  98          //发送数据
  99          void    OUTSD(unsigned char i)
 100          {
 101   1              A0=1;   //写数据
 102   1              //delay(5);
 103   1              E2=1;
 104   1              //delay(10);
 105   1              DATA=i;
 106   1              //delay(5);
 107   1              E2=0;
 108   1      
 109   1      }
 110          //右页
 111          //发送命令
 112          void    OUTSI(unsigned char i)
 113          {
 114   1              A0=0;   //写指令
 115   1              //delay(5);
 116   1              E2=1;
 117   1              //delay(10);
C51 COMPILER V7.09   12232                                                                 03/11/2004 16:59:54 PAGE 3   

 118   1              DATA=i;
 119   1              //delay(5);
 120   1              E2=0;
 121   1              
 122   1      }
 123          
 124          
 125          
 126          //初始化
 127          void    lcdini(void)
 128          {
 129   1              RW=0;
 130   1              OUTMI(0XE2);
 131   1              OUTSI(0XE2);//复位
 132   1              OUTMI(0XAE);
 133   1              OUTSI(0XAE);//POWER SAVE
 134   1              OUTMI(0XA4);
 135   1              OUTSI(0XA4);//动态驱动
 136   1              OUTMI(0XA9);
 137   1              OUTSI(0XA9);//1/32占空比
 138   1              OUTMI(0XA0);
 139   1              OUTSI(0XA0);//时钟线输出
 140   1              OUTMI(0XEE);
 141   1              OUTSI(0XEE);//写模式
 142   1              
 143   1              OUTMI(0X00);
 144   1              OUTMI(0XC0);
 145   1              OUTSI(0X00);
 146   1              OUTSI(0XC0);
 147   1              
 148   1              OUTMI(0XAF);
 149   1              OUTSI(0XAF);
 150   1              
 151   1      }
 152          /*
 153          函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)
 154          ------------------------------------------------------------------------
 155          */
 156          void SetPage(uchar page0,uchar page1)
 157          {
 158   1      OUTMI(0xB8|page1);OUTSI(0xB8|page0);
 159   1      }
 160          
 161          /*
 162          --------------------------------------------------------------------------------
 163          函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用)
 164          --------------------------------------------------------------------------------
 165          */
 166          void SetAddress(uchar address0,uchar address1)
 167          {
 168   1      OUTMI(address1);OUTSI(address0);
 169   1      }
 170          
 171          /*
 172          --------------------------------------------------------------------------------
 173          
 174          调用方式:void PutChar0(uchar ch)
 175          函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
 176          --------------------------------------------------------------------------------
 177          -*/
 178          void PutCharR(uchar ch)
 179          {
C51 COMPILER V7.09   12232                                                                 03/11/2004 16:59:54 PAGE 4   

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

 242   1      }
 243          
 244          
 245          /*
 246          --------------------------------------------------------------------------------
 247          
 248          调用方式:void clrscr(void)
 249          函数说明:清屏
 250          --------------------------------------------------------------------------------
 251          -*/
 252          void clrscr(void)
 253          {
 254   1      uchar i;
 255   1      uchar page;
 256   1      for (page=0;page<4;page++)

⌨️ 快捷键说明

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