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

📄 ocmj4×15d.lst

📁 本驱动程序是24064液晶(肇庆金鹏产品 型号Ocmj4×15D)上使用 控制器为8822 MCU为89S52 效果很好。可以用于8822控制器上的液晶
💻 LST
字号:
C51 COMPILER V7.50   OCMJ4×15D                                                            04/13/2008 10:47:22 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE OCMJ4×15D
OBJECT MODULE PLACED IN Ocmj4×15D.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Ocmj4×15D.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uchar unsigned char
   3          #define lcd_regnada  P1
   4          #define lcd_data     P1
   5          #define lcd_control  P2
   6          sbit lcd_rs   =P3^4;            //L:存取缓存器,H:存取DDRAM
   7          sbit lcd_wr   =P3^5;            //L有效
   8          sbit lcd_rd   =P2^3;            //L有效
   9          sbit lcd_cs1  =P2^2;            //L有效
  10          sbit lcd_cs2  =P3^3;            //H有效
  11          sbit lcd_busy =P2^0;
  12          sbit lcd_int  =P2^1;
  13          sbit lcd_rst  =P2^4;            //L有效
  14          //***************************************************
  15          void delay(int k)
  16          {
  17   1        int i;
  18   1        for(i=0;i<k;i++);
  19   1      }
  20          void delay1 (int ms)
  21          {
  22   1        int i,j;
  23   1        for(i=0;i<ms;i++)
  24   1          for(j=0;j<123;j++);
  25   1      }
  26          //=============================================
  27          void lcd_regwr(uchar regnada) small
  28          {
  29   1        lcd_regnada = regnada;
  30   1        lcd_cs1 =0; // chip enable.
  31   1        lcd_rd = 1; //
  32   1        lcd_rs = 0; // rs = 0;
  33   1        lcd_wr = 0; // wr = 0;
  34   1        ;
  35   1        lcd_wr = 1; // wr = 1;
  36   1        lcd_rs = 1; // rs = 1;
  37   1        lcd_cs1 =1; // chip disable.
  38   1      }
  39          
  40          void lcd_regwrite(uchar regname,uchar regdata) small
  41          {                                   //写资料到缓存器
  42   1        lcd_regwr(regname);
  43   1        delay(1);
  44   1        lcd_regwr(regdata);
  45   1      }
  46          
  47          //.............................................
  48          void lcd_datawrite(uchar wrdata) small
  49          {                                               //写资料到DDRAM
  50   1        while(lcd_busy == 1);
  51   1        lcd_data = wrdata;
  52   1        lcd_cs1 =0; // chip enable.
  53   1        lcd_rd = 1; //
  54   1        lcd_rs = 1; // rs = 1;
  55   1        lcd_wr = 0; // wr = 0;
C51 COMPILER V7.50   OCMJ4×15D                                                            04/13/2008 10:47:22 PAGE 2   

  56   1        ;
  57   1        lcd_wr = 1; // wr = 1;
  58   1        lcd_rs = 1; // rs = 1;
  59   1        lcd_cs1 =1; // chip disable.
  60   1      }
  61          //.............................................
  62          uchar lcd_regread(uchar regname) small
  63          {                           //读缓存器
  64   1        uchar reg_rddata;
  65   1        lcd_regwr(regname);
  66   1      
  67   1        lcd_data = 0xff;
  68   1        lcd_cs1 =0; // chip enable.
  69   1        lcd_wr = 1; // wr = 1;
  70   1        lcd_rs = 0; // rs = 0;
  71   1        lcd_rd = 0; // rd = 0;
  72   1        ;
  73   1        reg_rddata = lcd_data;
  74   1        lcd_rd = 1; // rd = 1;
  75   1        lcd_rs = 1; // rs = 1;
  76   1        lcd_cs1 =1; // chip disable.
  77   1        return(reg_rddata);
  78   1      }
  79          //.............................................
  80           void gotoxy(uchar x,uchar y) small
  81          {                                //定坐标
  82   1        lcd_regwrite(0x60,x); // active window top register(awtr)
  83   1        lcd_regwrite(0x70,y); // active window top register(awtr)
  84   1      }
  85          //=============================================
  86          
  87          void lcd_reset(void) small
  88          {               //上电复位
  89   1        delay1(120); // delay 120ms 等待上电复位
  90   1        lcd_control = 0xff; // lcd_rs/wr/rd/cs1/cs2 normal - skeep high.
  91   1      }
  92          //.............................................
  93          void lcd_initial(void) small
  94          {                   //初始化
  95   1        lcd_regwrite(0x00,0xc9); // lcd control register(lcr)
  96   1        lcd_regwrite(0x01,0xf2); // misc.register(mir)
  97   1        lcd_regwrite(0x02,0x10); // advance power setup register(apsr)
  98   1        lcd_regwrite(0x03,0x80); // advance display setup regiser(adsr)
  99   1        lcd_regwrite(0x10,0x6b); // cursor control register(ccr)
 100   1        lcd_regwrite(0x11,0x00); // distance of word or lines register(dwlr)
 101   1        lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
 102   1        lcd_regwrite(0x21,0x1d); // display window right register(dwrr) 
 103   1        lcd_regwrite(0x31,0x3f); // display window bottom register(dwbr) 
 104   1        lcd_regwrite(0x41,0x00); // display window left register(dwlr)
 105   1        lcd_regwrite(0x51,0x00); // display window top register(dwtr)
 106   1        lcd_regwrite(0x20,0x1d); // active window right register(awrr) 
 107   1        lcd_regwrite(0x30,0x3f); // active window bottom register(awbr)
 108   1        lcd_regwrite(0x40,0x00); // active window left register(awlr)
 109   1        lcd_regwrite(0x50,0x00); // active window top register(awtr)
 110   1        lcd_regwrite(0x60,0x00); // cursor position x register(cpxr)
 111   1        lcd_regwrite(0x61,0x00); // begin segment position register(bgsg)
 112   1        lcd_regwrite(0x70,0x00); // cursor position y register(cpyr)
 113   1        lcd_regwrite(0x71,0x00); // shift action range,begin commom register(bgcm)
 114   1        lcd_regwrite(0x72,0x3f); // shift action range,end commom register(edcm) 
 115   1        lcd_regwrite(0x80,0xaa); // blink time register(btr)
 116   1        lcd_regwrite(0x81,0x00); // frame rate polarity change at common_fa register(fdca)
 117   1        lcd_regwrite(0x91,0x00); // frame rate polarity change at common_fb register(fdcb)
C51 COMPILER V7.50   OCMJ4×15D                                                            04/13/2008 10:47:22 PAGE 3   

 118   1        lcd_regwrite(0x90,0x1e); // shift clock control register(sccr)  
 119   1        lcd_regwrite(0xa0,0x11); // interrupt setup & status register(frcb)
 120   1        lcd_regwrite(0xa1,0x00); // key scan control register(kscr)
 121   1        lcd_regwrite(0xa2,0x00); // key scan data register(ksdr)
 122   1        lcd_regwrite(0xa3,0x00); // key scan data expand register(kser)
 123   1        lcd_regwrite(0xb0,0x1d); // interrupt column setup register(intx) 
 124   1        lcd_regwrite(0xb1,0x3f); // interrupt row setup register(inty)  
 125   1        lcd_regwrite(0xc0,0x00); // touch panel control register(tpcr)
 126   1        lcd_regwrite(0xc1,0x0a); // adc status register(adcs)
 127   1        lcd_regwrite(0xc8,0x80); // touch panel segment high byte data register(tpxr)
 128   1        lcd_regwrite(0xc9,0x80); // touch panel common high byte data register(tpyr)
 129   1        lcd_regwrite(0xca,0x00); // touch panel segment/common low byte data register(tpzr)
 130   1        lcd_regwrite(0xd0,0x80); // lcd contrast control register (lccr)
 131   1        lcd_regwrite(0xe0,0x00); // pattern data register(pdr)
 132   1        lcd_regwrite(0xf0,0xa0); // font control register(fcr)
 133   1        lcd_regwrite(0xf1,0x0f); // font size control register
 134   1      }
 135          //.............................................
 136          void lcd_clear(void) small
 137          {                   //清屏
 138   1        uchar reg_rddata;
 139   1        lcd_regwrite(0xe0,0x00);
 140   1        reg_rddata = lcd_regread(0xf0);
 141   1        reg_rddata |= 0x08;
 142   1        lcd_regwrite(0xf0,reg_rddata);
 143   1      }
 144          //.............................................
 145          void lcd_photo(uchar code *pho) small
 146          {                          //显示图形
 147   1        uchar i,j,k;
 148   1        uchar code *pp;
 149   1        gotoxy(0,0);
 150   1        for(k=0;k<4;k++)
 151   1        {
 152   2          pp=pho;
 153   2          for(j=0;j<60;j++)
 154   2          {
 155   3            for(i=0;i<40;i++)
 156   3            {
 157   4              lcd_datawrite(*pp);
 158   4              ++pp;
 159   4            }
 160   3          }
 161   2        }
 162   1      }
 163          //.............................................
 164          void lcd_lattice(uchar data1,uchar data2) small
 165          {                                    //显示点阵
 166   1        uchar i,j;
 167   1        gotoxy(0,0);
 168   1        for(j=0;j<60;j++)
 169   1        {
 170   2          for(i=0;i<80;i++)
 171   2          {
 172   3            lcd_datawrite(data1);
 173   3          }
 174   2          for(i=0;i<80;i++)
 175   2          {
 176   3            lcd_datawrite(data2);
 177   3          }
 178   2        }
 179   1      }
C51 COMPILER V7.50   OCMJ4×15D                                                            04/13/2008 10:47:22 PAGE 4   

 180          //.............................................
 181          void lcd_character(uchar code *cha,int count) small
 182          {                                    //显示中文或字符
 183   1        int i;
 184   1        for(i=0;i<count;i++)
 185   1        {
 186   2          lcd_datawrite(*cha);
 187   2          ++cha;
 188   2        }
 189   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    596    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   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 + -