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

📄 driver_1602.lst

📁 C51 LCD1602 4线并口通信源程序
💻 LST
字号:
C51 COMPILER V8.02   DRIVER_1602                                                           10/05/2006 12:44:43 PAGE 1   


C51 COMPILER V8.02, 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        LCDIO=(command & 0xf0);
  42   1        SET_LCD(LCDIO);
  43   1       
  44   1        LCD1602_EN=1;
  45   1        LCD_delay();
  46   1        
  47   1        LCD1602_EN=0;
  48   1      
  49   1        LCDIO=(command & 0x0f)<<4;
  50   1        SET_LCD(LCDIO);
  51   1        LCD1602_EN=1;
  52   1        LCD_delay();
  53   1        LCD1602_EN=0;
  54   1      }
  55          /********************************************************************/
C51 COMPILER V8.02   DRIVER_1602                                                           10/05/2006 12:44:43 PAGE 2   

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    282    ----
   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 + -