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

📄 driver_1602.lst

📁 高精度数控毫伏电压源的程序,使用8051控制器,dac76
💻 LST
字号:
C51 COMPILER V7.50   DRIVER_1602                                                           10/21/2007 16:20:34 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DRIVER_1602
OBJECT MODULE PLACED IN driver_1602.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE driver_1602.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************************************************************
   2          
   3          详细内容:LCD1602 4线并口通信源程序
   4          
   5          作者:何昱
   6          2006-10-5
   7          QQ:262970434
   8          
   9          ***************************************************************/
  10          
  11          
  12          
  13          
  14          #include"DRIVER_1602.h"
  15          
  16          
  17          
  18          unsigned char LCDIO; 
  19          
  20          
  21          
  22          /******************** LCD PART *************************************/
  23          void LCD_delay(void)   
  24          {
  25   1        unsigned char i;
  26   1        for(i=40;i>0;i--)
  27   1          ;
  28   1      }
  29          
  30          void LCD_cls(void)
  31          {
  32   1        LCD_en_command(0x01); 
  33   1      }
  34          
  35          void LCD_en_command(unsigned char command)
  36          {
  37   1        
  38   1        LCD1602_RS=0;   
  39   1      //  LCD1602_RW=0;
  40   1        LCD1602_EN=0;
  41   1        
  42   1        LCDIO=(command & 0xf0);
  43   1        SET_LCD(LCDIO);
  44   1       
  45   1        LCD1602_EN=1;
  46   1        LCD_delay();
  47   1        LCD1602_EN=0;
  48   1      
  49   1        LCDIO=(command & 0x0f)<<4;
  50   1        SET_LCD(LCDIO);
  51   1        
  52   1        LCD1602_EN=1;
  53   1        LCD_delay();
  54   1        LCD1602_EN=0;
  55   1      }
C51 COMPILER V7.50   DRIVER_1602                                                           10/21/2007 16:20:34 PAGE 2   

  56          /********************************************************************/
  57          void SET_LCD(unsigned char IO_temp)
  58          {   
  59   1              LCD_DB7=IO_temp&0x80;
  60   1              
  61   1              LCD_DB6=IO_temp&0x40;
  62   1                                                
  63   1              LCD_DB5=IO_temp&0x20;
  64   1      
  65   1              LCD_DB4=IO_temp&0x10;
  66   1              
  67   1      }
  68          
  69          
  70          
  71          void LCD_en_dat(unsigned char dat)
  72          {
  73   1        
  74   1        LCD1602_RS=1;
  75   1      //  LCD1602_RW=0;
  76   1        LCD1602_EN=0;
  77   1        LCDIO=(dat & 0xf0);
  78   1        SET_LCD(LCDIO);
  79   1      
  80   1        LCD1602_EN=1;
  81   1        LCD_delay();
  82   1        LCD1602_EN=0;
  83   1      
  84   1        LCDIO=(dat & 0x0f)<<4;
  85   1        SET_LCD(LCDIO);
  86   1        LCD1602_EN=1;
  87   1        
  88   1        LCD_delay();
  89   1        LCD1602_EN=0;
  90   1      }
  91          /********************************************************************/
  92          void LCD_set_xy( unsigned char x, unsigned char y )
  93          {
  94   1        unsigned char address;
  95   1        if (y ==0) 
  96   1         address = 0x80 + x;
  97   1        else 
  98   1            address = 0xC0 + x;
  99   1        LCD_en_command(address); 
 100   1      }
 101          /********************************************************************/
 102          void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)
 103          {
 104   1        LCD_set_xy( x, y ); 
 105   1        LCD_en_dat(dat);
 106   1      }
 107          /********************************************************************/
 108          void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
 109          {
 110   1          LCD_set_xy( X, Y );    //set address 
 111   1          while (*s)       // write character
 112   1          {
 113   2            LCDIO=*s;
 114   2                SET_LCD(LCDIO);
 115   2            LCD_en_dat(*s);   
 116   2         s ++;
 117   2          }
C51 COMPILER V7.50   DRIVER_1602                                                           10/21/2007 16:20:34 PAGE 3   

 118   1      }
 119          /********************************************************************/
 120          void LCD_init(void)
 121          { 
 122   1        LCD_en_command(0x33);   //后加的4bit初始化部分!..宇轩
 123   1        delay_nms(20);
 124   1        LCD_en_command(0x32);
 125   1        delay_nms(20);
 126   1        
 127   1      
 128   1      
 129   1        LCD_en_command(0x08);
 130   1        delay_nms(5);
 131   1        LCD_en_command(0x01);
 132   1        delay_nms(5);
 133   1        LCD_en_command(0x06);
 134   1        delay_nms(5);
 135   1        LCD_en_command(0x0c);
 136   1        delay_nms(5);
 137   1      }
 138          /********************************* *********************************/
 139          void delay_nms(unsigned int n)      
 140          {
 141   1          unsigned int i=0,j=0;
 142   1          for (i=n;i>0;i--)
 143   1           for (j=0;j<1140;j++);  
 144   1      }
 145          /********************************************************************/


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