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

📄 12232.lst

📁 12232液晶显示程序在,对写液晶的人来说
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   12232                                                                 05/18/2004 09:55:26 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE 12232
OBJECT MODULE PLACED IN 12232.OBJ
COMPILER INVOKED BY: G:\KEILNT\C51\BIN\C51.EXE 12232.c BROWSE DEBUG OBJECTEXTEND

stmt 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          
  28          #include <AT89X52.H>
  29          #include <ABSACC.H>
  30          
  31          #define uchar unsigned char
  32          #define uint unsigned int
  33          
  34          #define E1 P1_3         //块1  左边
  35          #define E2 P1_2         //块2  右边
  36          #define RW P1_1
  37          #define A0 P1_0         //A0为1时是数据,0时为指令数据
  38          #define DATA P0         //数据
  39          
  40          extern unsigned char code Bmpt1[];
  41          extern unsigned char code Bmpt2[];
  42          extern unsigned char code Bmpt3[];
  43          extern unsigned char code Bmpt4[];
  44          extern unsigned char code Bmpt5[];
  45          extern unsigned char code Bmpt6[];
  46          extern unsigned char code Bmpt7[];
  47          extern unsigned char code Bmptc[];
  48          extern unsigned char code bmp001[];
  49          extern  unsigned char code Bmp08[];
  50          extern  unsigned char code Bmp07[];
  51          extern  unsigned char code Bmp06[];
  52          extern  unsigned char code Bmp05[];
  53          extern  unsigned char code Bmp04[];
  54          extern  unsigned char code Bmp03[];
  55          extern  unsigned char code Bmp02[];
C51 COMPILER V7.07   12232                                                                 05/18/2004 09:55:26 PAGE 2   

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

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

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

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

⌨️ 快捷键说明

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