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

📄 lcddrive12864.lst

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LCDDRIVE12864
OBJECT MODULE PLACED IN .\output\LcdDrive12864.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LcdDrive12864.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\output
                    -\LcdDrive12864.obj)

stmt level    source

   1          /*********************************************************************************************************
   2          **--------------文件信息--------------------------------------------------------------------------------
   3          **文   件   名: LCDDRIVE.C
   4          **创   建   人: 刘宝贵
   5          **最后修改日期: 2004年12月8日
   6          **描        述: LCD驱动
   7          **
   8          **--------------历史版本信息----------------------------------------------------------------------------
   9          ** 创建人: 刘宝贵
  10          ** 版  本: V1.00
  11          ** 日 期: 2004年12月8日
  12          ** 描 述: 原始版本
  13          **
  14          **------------------------------------------------------------------------------------------------------
  15          ** 修改人:
  16          ** 版  本:
  17          ** 日 期:
  18          ** 描 述:
  19          **
  20          **------------------------------------------------------------------------------------------------------
  21          **--------------当前版本修订------------------------------------------------------------------------------
  22          ** 修改人: 刘宝贵
  23          ** 日 期: 2004年4月20日
  24          ** 描 述:
  25          **
  26          **------------------------------------------------------------------------------------------------------
  27          ********************************************************************************************************/
  28          
  29          #include"includes.h"
  30          
  31          sbit LCDCS  = P1^3;
  32          sbit LCDCS2 = P1^2;
  33          sbit LCDDI  = P1^0;
  34          sbit LCDE   = P1^1;
  35          //sbit LCDRW = P3^6;
  36          
  37          extern unsigned char code lcd_lattice16_4[];
  38          extern unsigned char code lcd_lattice16_8[];
  39          extern unsigned char code lcd_lattice16_16[];
  40          extern unsigned char code lcd_lattice8_8[];
  41          extern unsigned char code mb[][16];
  42          void lcddelay()
  43          {
  44   1      }
  45          /*********************************************************************************************************
  46          ** 函数名称: outsi
  47          ** 功能描述: 12864底层函数
  48          ** 输 入:   无
  49          ** 输 出:   无
  50          ** 全局变量:
  51          ** 调用模块:
  52          **
  53          ** 作 者: 刘宝贵
  54          ** 日 期: 2005年1月26日
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 2   

  55          **-------------------------------------------------------------------------------------------------------
  56          ** 修改人:
  57          ** 日 期:
  58          **-------------------------------------------------------------------------------------------------------
  59          *********************************************************************************************************/
  60          void outsi(uint8 parameter)
  61          {
  62   1          LCDCS2 = 0;//lcddelay();
  63   1          LCDDI = 0;//lcddelay();
  64   1          LCDE  = 1;//lcddelay();
  65   1          WriteOutXRAM(CPLD_PORT_B,parameter);
  66   1          LCDE  = 0;//lcddelay();
  67   1          LCDCS2 = 1;//lcddelay();
  68   1      }
  69          /*********************************************************************************************************
  70          ** 函数名称: outsd
  71          ** 功能描述: 12864底层函数
  72          ** 输 入:   无
  73          ** 输 出:   无
  74          ** 全局变量:
  75          ** 调用模块:
  76          **
  77          ** 作 者: 刘宝贵
  78          ** 日 期: 2005年1月26日
  79          **-------------------------------------------------------------------------------------------------------
  80          ** 修改人:
  81          ** 日 期:
  82          **-------------------------------------------------------------------------------------------------------
  83          *********************************************************************************************************/
  84          void outsd(uint8 parameter)
  85          {
  86   1          LCDCS2 = 0;//lcddelay();
  87   1          LCDDI = 1;//lcddelay();
  88   1          LCDE  = 1;//lcddelay();
  89   1          WriteOutXRAM(CPLD_PORT_B,parameter);
  90   1          LCDE  = 0;//lcddelay();
  91   1          LCDCS2 = 1;//lcddelay();
  92   1      }
  93          /*********************************************************************************************************
  94          ** 函数名称: outmi
  95          ** 功能描述: 12864底层函数
  96          ** 输 入:   无
  97          ** 输 出:   无
  98          ** 全局变量:
  99          ** 调用模块:
 100          **
 101          ** 作 者: 刘宝贵
 102          ** 日 期: 2005年1月26日
 103          **-------------------------------------------------------------------------------------------------------
 104          ** 修改人:
 105          ** 日 期:
 106          **-------------------------------------------------------------------------------------------------------
 107          *********************************************************************************************************/
 108          void outmi(uint8 parameter)
 109          {
 110   1          LCDCS = 0;//lcddelay();
 111   1          LCDDI = 0;//lcddelay();
 112   1          LCDE  = 1;//lcddelay();
 113   1          WriteOutXRAM(CPLD_PORT_B,parameter);
 114   1          LCDE  = 0;//lcddelay();
 115   1          LCDCS = 1;//lcddelay();
 116   1      }
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 3   

 117          /*********************************************************************************************************
 118          ** 函数名称: outmd
 119          ** 功能描述: 12864底层函数
 120          ** 输 入:   无
 121          ** 输 出:   无
 122          ** 全局变量:
 123          ** 调用模块:
 124          **
 125          ** 作 者: 刘宝贵
 126          ** 日 期: 2005年1月26日
 127          **-------------------------------------------------------------------------------------------------------
 128          ** 修改人:
 129          ** 日 期:
 130          **-------------------------------------------------------------------------------------------------------
 131          *********************************************************************************************************/
 132          void outmd(uint8 parameter)
 133          {
 134   1          LCDCS = 0;//lcddelay();
 135   1          LCDDI = 1;//lcddelay();
 136   1          LCDE  = 1;//lcddelay();
 137   1          WriteOutXRAM(CPLD_PORT_B,parameter);
 138   1          LCDE  = 0;//lcddelay();
 139   1          LCDCS = 1;//lcddelay();
 140   1      }
 141          /*********************************************************************************************************
 142          ** 函数名称: outsi
 143          ** 功能描述: 12864底层函数
 144          ** 输 入:   无
 145          ** 输 出:   无
 146          ** 全局变量:
 147          ** 调用模块:
 148          **
 149          ** 作 者: 刘宝贵
 150          ** 日 期: 2005年1月26日
 151          **-------------------------------------------------------------------------------------------------------
 152          ** 修改人:
 153          ** 日 期:
 154          **-------------------------------------------------------------------------------------------------------
 155          *********************************************************************************************************/
 156          void lcdinit()                              /*left and right show open*/
 157          {
 158   1          outmi(0x3f);
 159   1          outsi(0x3f);                               /*display on*/
 160   1      }
 161          /*********************************************************************************************************
 162          ** 函数名称: Display16X16
 163          ** 功能描述: 在指定的行列绘16X16点阵
 164          ** 输 入:   
 165          ** 输 出:   
 166          ** 全局变量:
 167          ** 调用模块:
 168          **
 169          ** 作 者: 刘宝贵
 170          ** 日 期: 2005年1月26日
 171          **-------------------------------------------------------------------------------------------------------
 172          ** 修改人:
 173          ** 日 期:
 174          **-------------------------------------------------------------------------------------------------------
 175          *********************************************************************************************************/
 176          /*void Display16X16(uint8 lcdrow,uint8 lcdline,uint8 wordnumber)
 177          {                                                 //display 16x16 word//
 178              uint8  i;
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 4   

 179              uint16   j;
 180              lcdinit();//                                  //left and right show open//
 181              if(lcdline<64)
 182              {
 183                  outmi(0xc0);
 184                  outmi(0xb8|lcdrow);                       //设置页地址//
 185                  outmi(0x40|lcdline);                      //设置列地址//
 186                  j=wordnumber*32;
 187                  for(i=0;i<32;i++)
 188                  {
 189                      if(DotNot)outmd(~lcd_lattice16_16 [i+j]);
 190                      else      outmd( lcd_lattice16_16 [i+j]);
 191                      if(i==15)
 192                      {
 193                          outmi(0xb8|(lcdrow+1));           //设置页地址//
 194                          outmi(0x40|lcdline);              //设置列地址//
 195                      }
 196                  }
 197              }
 198              else if(lcdline<128)
 199              {
 200                  outsi(0xc0);                              //设置显示起始行//
 201                  outsi(0xb8|lcdrow);                       //设置页地址//
 202                  outsi(0x40|(lcdline-64));                 //设置列地址//
 203                  j=wordnumber*32;
 204                  for(i=0;i<32;i++)
 205                  {
 206                      if(DotNot)outsd(~lcd_lattice16_16[i+j]);
 207                      else      outsd( lcd_lattice16_16[i+j]);
 208                      if(i==15)
 209                      {
 210                          outsi(0xb8|(lcdrow+1));           //设置页地址//
 211                          outsi(0x40|(lcdline-64));         //设置列地址//
 212                      }
 213                  }
 214              }
 215              else
 216              {}
 217          }
 218          /*********************************************************************************************************
 219          ** 函数名称: Display16X8
 220          ** 功能描述: 在指定的行列绘16X8点阵
 221          ** 输 入:   
 222          ** 输 出:   
 223          ** 全局变量:
 224          ** 调用模块:
 225          **
 226          ** 作 者: 刘宝贵
 227          ** 日 期: 2005年1月26日
 228          **-------------------------------------------------------------------------------------------------------
 229          ** 修改人:
 230          ** 日 期:
 231          **-------------------------------------------------------------------------------------------------------
 232          *********************************************************************************************************/
 233          void Display16X8(uint8 lcdrow,uint8 lcdline,uint8 datanumber,uint8 DotNot) // display 16x8 data 
 234          {
 235   1          uint8  i;
 236   1          uint16 j;
 237   1          datanumber-=0x20;
 238   1          if(lcdline<64)
 239   1          {
 240   2              outmi(0xc0);
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 5   

 241   2              outmi(0xb8|lcdrow);                       //设置页地址
 242   2              outmi(0x40|lcdline);                      //设置列地址
 243   2              j=datanumber*16;
 244   2              for(i=0;i<16;i++)
 245   2              {
 246   3                  if(DotNot==1)
 247   3                  {
 248   4                      outmd(~lcd_lattice16_8[i+j]);
 249   4                  }
 250   3                  else
 251   3                  {
 252   4                      outmd(lcd_lattice16_8[i+j]);
 253   4                  }
 254   3                  if(i==7)
 255   3                  {
 256   4                      outmi(0xb8|(lcdrow+1));           //设置页地址
 257   4                      outmi(0x40|lcdline);              //设置列地址
 258   4                  }
 259   3               }
 260   2          }
 261   1          else if(lcdline<128)
 262   1          {

⌨️ 快捷键说明

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