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

📄 lcd.lst

📁 电机PID调速程序
💻 LST
字号:
C51 COMPILER V7.06   LCD                                                                   11/14/2008 21:02:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************************************************************/
   2          /*                                                                                                                                                                               */
   3          /*                               LCD串行驱动程序                                         */
   4          /*                                                                                                                                                                               */
   5          /*****************************************************************************************/
   6          #include <ADUC842.H>
   7          #include"lcd.h"
   8          
   9          sbit cs   = P2^0;                                                                                       //只需修改此三口即可使用
  10          sbit std  = P2^1;                                                                                       //
  11          sbit sclk = P2^2;                                                                                       //
  12          
  13          void wr_lcd (uchar dat_comm,uchar content);
  14          void ldelay (uint us);
  15          
  16          uchar x[4]={0x80,0x90,0x88,0x98};                                                       //行地址                                                
  17          
  18          bit   flag_LCD;                                                                          //为0时关闭液晶显示,1时打开
  19          /*------------------初始化-----------------*/
  20          void init_lcd (void)                                                                            //使用前须调用此函数初始化       
  21          {
  22   1        flag_LCD=1;
  23   1        wr_lcd (comm,0x30);  /*30---基本指令动作*/   
  24   1        wr_lcd (comm,0x01);  /*清屏,地址指针指向00H*/
  25   1        ldelay (100);
  26   1        wr_lcd (comm,0x06);  /*光标的移动方向*/
  27   1        wr_lcd (comm,0x0c);  /*开显示,关游标*/
  28   1      }
  29          /*--------------清DDRAM------------------*/
  30          /*void clrram (void)
  31          {
  32            wr_lcd (comm,0x30);
  33            wr_lcd (comm,0x01);
  34          //  ldelay (180);
  35          }*/
  36          /*---------------------------------------*/
  37          void wr_lcd (uchar dat_comm,uchar content)
  38          {
  39   1        uchar a,i,j;
  40   1        ldelay (30);
  41   1        a=content;
  42   1        cs=1;
  43   1        sclk=0;
  44   1        std=1;
  45   1        for(i=0;i<5;i++)
  46   1        {
  47   2          sclk=1;
  48   2          sclk=0;
  49   2        }
  50   1        std=0;
  51   1        sclk=1;
  52   1        sclk=0;
  53   1        if(dat_comm)
  54   1          std=1;   //data
  55   1        else
C51 COMPILER V7.06   LCD                                                                   11/14/2008 21:02:29 PAGE 2   

  56   1          std=0;   //command
  57   1        sclk=1;
  58   1        sclk=0;
  59   1        std=0;
  60   1        sclk=1;
  61   1        sclk=0;
  62   1        for(j=0;j<2;j++)
  63   1        {
  64   2          for(i=0;i<4;i++)
  65   2          {
  66   3            a=a<<1;
  67   3            std=CY;
  68   3            sclk=1;
  69   3            sclk=0;
  70   3          }
  71   2          std=0;
  72   2          for(i=0;i<4;i++)
  73   2          {
  74   3            sclk=1;
  75   3            sclk=0;
  76   3          }
  77   2        }
  78   1      }
  79          
  80          /*-----------------------------------*/
  81          void ldelay (uint us)   //delay time
  82          {
  83   1        uint i,temp;  
  84   1        for(i=0;i<10;i++)
  85   1        for(temp=us;temp>0;temp--)
  86   1        ;
  87   1      }
  88          
  89          
  90          /*-----------write string------------*/
  91          
  92          void putstr(char *str,uchar line)                       //在第line行输出一个字符串
  93          {
  94   1              uchar i=0;
  95   1              
  96   1              if(!flag_LCD)
  97   1              {
  98   2                      return;
  99   2              }       
 100   1      
 101   1              wr_lcd (comm,0x30);
 102   1              wr_lcd (comm,x[line-1]);
 103   1      
 104   1              while(str[i] != '\0' )
 105   1              {
 106   2                      if(str[i]=='\n')        
 107   2                              {
 108   3                                      wr_lcd (comm,x[line]);  
 109   3                                      i++;
 110   3                                      continue;
 111   3                              }       
 112   2                      if(str[i]=='\t')        
 113   2                              {
 114   3                                      wr_lcd (comm,x[line-1]+8);
 115   3                                      i++;    
 116   3                                      continue;
 117   3                              }
C51 COMPILER V7.06   LCD                                                                   11/14/2008 21:02:29 PAGE 3   

 118   2      
 119   2                      wr_lcd (cdat,str[i++]);
 120   2              }
 121   1      }
 122          
 123          /*void putcar(char *str)                                             //在默认位置输出一个字符串         
 124          {
 125                  uchar i=0;
 126                  if(!flag_LCD)
 127                  {
 128                          return;
 129                  }
 130                  while(str[i] != '\0' )
 131                  {
 132                          wr_lcd (cdat,str[i++]);
 133                  }
 134          
 135          }
 136          */
 137          /*-----------write number------------
 138          
 139          void put2num(int num)                                           //在默认位置输出两位数字num                     
 140          {
 141                  if(!flag_LCD)
 142                  {
 143                          return;
 144                  }
 145                  wr_lcd (comm,0x30);
 146          
 147                  wr_lcd (cdat,num/10+0x30);
 148                  wr_lcd (cdat,num%10+0x30);
 149          
 150          }
 151          /*-----------write number------------*/
 152          
 153          void putnum(int num)                                            //在默认位置输出四位数字num                     
 154          {
 155   1              uchar out[4],i;
 156   1              
 157   1              if(!flag_LCD)
 158   1              {
 159   2                      return;
 160   2              }
 161   1              wr_lcd (comm,0x30);
 162   1      
 163   1              if(num<0)
 164   1                      {
 165   2                              wr_lcd(cdat,'-');
 166   2                              num=-num;       
 167   2                      }
 168   1      
 169   1      
 170   1              out[0]=num/1000-num/10000*10;
 171   1              out[1]=num/100-out[0]*10;
 172   1              out[2]=num/10-out[0]*100-out[1]*10;
 173   1              out[3]=num%10;
 174   1      
 175   1              for(i=0;i<4;i++)
 176   1              wr_lcd (cdat,out[i]+0x30);   
 177   1      
 178   1      //      ldelay(8000);
 179   1      }
C51 COMPILER V7.06   LCD                                                                   11/14/2008 21:02:29 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    451    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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