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

📄 lcddrive.lst

📁 一个分选系统的软件:用SmallRtos操作系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   LCDDRIVE                                                              12/21/2004 15:11:28 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LCDDRIVE
OBJECT MODULE PLACED IN .\output\LCDDRIVE.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCDDRIVE.C OPTIMIZE(6,SPEED) BROWSE ORDER DEBUG OBJECTEXTEND PRINT(.\output
                    -\LCDDRIVE.lst) OBJECT(.\output\LCDDRIVE.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 "config.h"
  30          sbit LCDLS = P1^0;
  31          sbit LCDRS = P1^1;
  32          sbit LCDDI = P3^5;
  33          sbit LCDRW = P3^6;
  34          sbit LCDE  = P3^7;
  35          
  36          uint8 code lcd_lattice16_8[]={0};
  37          uint8 code lcd_lattice16_16[]={9};
  38          uint8 code lcd_lattice8_8[]={0};
  39          uint8 code mb[]={0};
  40          
  41          bit DotNot;
  42          uint8 xdata DeepOne;
  43          uint8 xdata DeepTwo;
  44          uint8 xdata DeepThree;
  45          uint8 xdata MenuDeep;
  46          bit RedrawLcd;
  47          bit RedrawLcdFocus;
  48          void lcddelay()
  49          {
  50   1       //   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
  51   1      }
  52          /******************************************************************************/
  53          void change_bin_to_bcd(uint16 temp,uint8 dotplace)
  54          {
C51 COMPILER V7.06   LCDDRIVE                                                              12/21/2004 15:11:28 PAGE 2   

  55   1      /*
  56   1          int8 i;
  57   1          for(i=5;i>0;i--)
  58   1          {
  59   1              image[i-1] = temp%10;
  60   1              temp/=10;
  61   1          }
  62   1          for(i=5;i>dotplace;i--)
  63   1          {
  64   1              image[i]=image[i-1];
  65   1          }
  66   1          if(dotplace<7)image[dotplace]=10;
  67   1          if(dotplace>4) image[5]=0xff;
  68   1          else image[6]=0xff;
  69   1      */
  70   1      }
*** WARNING C280 IN LINE 53 OF LCDDRIVE.C: 'temp': unreferenced local variable
*** WARNING C280 IN LINE 53 OF LCDDRIVE.C: 'dotplace': unreferenced local variable
  71          /******************************************************************************/
  72          void outsi(uint8 parameter)
  73          {
  74   1          LCDRS = 1;lcddelay();
  75   1      //    LCDLS = 0;
  76   1          LCDDI = 0;lcddelay();
  77   1          LCDRW = 0;lcddelay();
  78   1          LCDE  = 1;lcddelay();
  79   1          P2    = parameter;lcddelay();
  80   1          LCDE  = 0;lcddelay();
  81   1          LCDRW = 1;lcddelay();
  82   1          LCDRS = 0;lcddelay();
  83   1      //    LCDLS = 1;
  84   1      }
  85          /******************************************************************************/
  86          void outsd(uint8 parameter)
  87          {
  88   1          LCDRS = 1;lcddelay();
  89   1      //    LCDLS = 0;
  90   1          LCDDI = 1;lcddelay();
  91   1          LCDRW = 0;lcddelay();
  92   1          LCDE  = 1;lcddelay();
  93   1          P2    = parameter;lcddelay();
  94   1          LCDE  = 0;lcddelay();
  95   1          LCDRW = 1;lcddelay();
  96   1          LCDRS = 0;lcddelay();
  97   1      //    LCDLS = 1;
  98   1      }
  99          /******************************************************************************/
 100          void outmi(uint8 parameter)
 101          {
 102   1          LCDLS = 1;lcddelay();
 103   1      //    LCDRS = 0;
 104   1          LCDDI = 0;lcddelay();
 105   1          LCDRW = 0;lcddelay();
 106   1          LCDE  = 1;lcddelay();
 107   1          P2    = parameter;lcddelay();
 108   1          LCDE  = 0;lcddelay();
 109   1          LCDRW = 1;lcddelay();
 110   1          LCDLS = 0;lcddelay();
 111   1      //    LCDRS = 1;
 112   1      }
 113          /******************************************************************************/
 114          void outmd(uint8 parameter)
C51 COMPILER V7.06   LCDDRIVE                                                              12/21/2004 15:11:28 PAGE 3   

 115          {
 116   1          LCDLS = 1;lcddelay();
 117   1      //    LCDRS = 0;
 118   1          LCDDI = 1;lcddelay();
 119   1          LCDRW = 0;lcddelay();
 120   1          LCDE  = 1;lcddelay();
 121   1          P2    = parameter;lcddelay();
 122   1          LCDE  = 0;lcddelay();
 123   1          LCDRW = 1;lcddelay();
 124   1          LCDLS = 0;lcddelay();
 125   1      //    LCDRS = 1;
 126   1      }
 127          /******************************************************************************/
 128          void lcdinit()                              /*left and right show open*/
 129          {
 130   1          outmi(0x3f);
 131   1          outsi(0x3f);                               /*display on*/
 132   1      }
 133          /******************************************************************************/
 134          /******************************************************************************/
 135          void displayword(uint8 lcdrow,uint8 lcdline,uint8 wordnumber)
 136          {                                                 /*display 16x16 word*/
 137   1          uint8 data i;
 138   1          uint16  data j;
 139   1          lcdinit();//                                  /*left and right show open*/
 140   1          if(lcdline<64)
 141   1          {
 142   2              outmi(0xc0);
 143   2              outmi(0xb8|lcdrow);                       /*设置页地址*/
 144   2              outmi(0x40|lcdline);                      /*设置列地址*/
 145   2              j=wordnumber*32;
 146   2              for(i=0;i<32;i++)
 147   2              {
 148   3                  if(DotNot)outmd(~lcd_lattice16_16 [i+j]);
 149   3                  else      outmd( lcd_lattice16_16 [i+j]);
 150   3                  if(i==15)
 151   3                  {
 152   4                      outmi(0xb8|(lcdrow+1));           /*设置页地址*/
 153   4                      outmi(0x40|lcdline);              /*设置列地址*/
 154   4                  }
 155   3              }
 156   2          }
 157   1          else if(lcdline<128)
 158   1          {
 159   2              outsi(0xc0);                              /*设置显示起始行*/
 160   2              outsi(0xb8|lcdrow);                       /*设置页地址*/
 161   2              outsi(0x40|(lcdline-64));                 /*设置列地址*/
 162   2              j=wordnumber*32;
 163   2              for(i=0;i<32;i++)
 164   2              {
 165   3                  if(DotNot)outsd(~lcd_lattice16_16[i+j]);
 166   3                  else      outsd( lcd_lattice16_16[i+j]);
 167   3                  if(i==15)
 168   3                  {
 169   4                      outsi(0xb8|(lcdrow+1));           /*设置页地址*/
 170   4                      outsi(0x40|(lcdline-64));         /*设置列地址*/
 171   4                  }
 172   3              }
 173   2          }
 174   1          else
 175   1          {}
 176   1      }
C51 COMPILER V7.06   LCDDRIVE                                                              12/21/2004 15:11:28 PAGE 4   

 177          /******************************************************************************/
 178          /******************************************************************************/
 179          void displaydata(uint8 lcdrow,uint8 lcdline,uint8 datanumber) /* display 16x8 data */
 180          {
 181   1          uint8 data i;
 182   1          uint16  data j;
 183   1          if(lcdline<64)
 184   1          {
 185   2                 //  outmi(0xc0);
 186   2              outmi(0xb8|lcdrow);                       /*设置页地址*/
 187   2              outmi(0x40|lcdline);                      /*设置列地址*/
 188   2              j=datanumber*16;
 189   2              for(i=0;i<16;i++)
 190   2              {
 191   3                  if(DotNot==1)
 192   3                  {
 193   4                      outmd(~lcd_lattice16_8[i+j]);
 194   4                  }
 195   3                  else
 196   3                  {
 197   4                      outmd(lcd_lattice16_8[i+j]);
 198   4                  }
 199   3                  if(i==7)
 200   3                  {
 201   4                      outmi(0xb8|(lcdrow+1));           /*设置页地址*/
 202   4                      outmi(0x40|lcdline);              /*设置列地址*/
 203   4                  }
 204   3               }
 205   2          }
 206   1          else if(lcdline<121)
 207   1          {
 208   2               //  outsi(0xc0);                         /*设置显示起始行*/
 209   2              outsi(0xb8|lcdrow);                       /*设置页地址*/
 210   2              if(lcdline<121)
 211   2              {

⌨️ 快捷键说明

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