C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 16:20:57 PAGE 1   


C51 COMPILER V9.54, COMPILATION OF MODULE DRIVE_1602
OBJECT MODULE PLACED IN .\Objects\drive_1602.obj
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE drive_1602.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing
                    -s\drive_1602.lst) TABS(2) OBJECT(.\Objects\drive_1602.obj)

line level    source

   1          #include "drive_1602.h"
   2          
   3          #include <stdarg.h>     //  ��׼ͷ�ļ�
   4          #include "stdio.h"
   5          #include "string.h"
   6          
   7          #define lcddata P1
   8          
   9          sbit rs=P2^7;       
  10          sbit en=P2^6;  
  11          
  12          void delay_1ms(unsigned int xms)//��ʱ�������вκ��� 
  13          {   
  14   1        unsigned char i, j;
  15   1        while(xms--)
  16   1        {
  17   2        _nop_();
  18   2        _nop_();
  19   2        _nop_();
  20   2        i = 11;
  21   2        j = 190;
  22   2        do
  23   2        {
  24   3          while (--j);
  25   3        } while (--i);
  26   2       }
  27   1      }  
  28          //****Һ��д��ָ���****//
  29          void Write_1602_com(unsigned char com)
  30          {
  31   1      //  rw=0;
  32   1        rs=0;//����/ָ��ѡ����Ϊָ�� 
  33   1        lcddata=com;//�������� 
  34   1        delay_1ms(1);   
  35   1        en=1;//����ʹ�ܶˣ�Ϊ������Ч���½�����׼�� 
  36   1        delay_1ms(1);  
  37   1        en=0;//en�ɸ߱�ͣ������½��أ�Һ��ִ������ 
  38   1       }
  39          
  40          //***Һ��д�����ݺ���****// 
  41          void Write_1602_date(unsigned char date)
  42          {
  43   1      //   rw=0; 
  44   1         rs=1;//����/ָ��ѡ����Ϊ����   
  45   1         lcddata=date;//��������   
  46   1         delay_1ms(1);   
  47   1         en=1; //en�øߵ�ƽ��Ϊ�����½�����׼��  
  48   1         delay_1ms(1); 
  49   1         en=0; //en�ɸ߱�ͣ������½��أ�Һ��ִ������ 
  50   1      } 
  51          
  52          /************ д�ַ����ݺ���  *****************
  53          //���ܣ���lcd1602ָ��λ������ʾ�ַ���
  54          //����
C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 16:20:57 PAGE 2   

  55          //p:    ָ�����ʾ����ָ��
  56          //x:    X����
  57          //y:    Y����
  58          //************ ***********  *****************/
  59          void WriteLcd1602_String(char x,char y,char  *p)
  60          {
  61   1        char i=0;
  62   1        if(y == 0)
  63   1        {
  64   2           Write_1602_com(0x80 + x);    
  65   2        }
  66   1        else
  67   1        {
  68   2            Write_1602_com(0xC0 + x);
  69   2        }
  70   1        while(*p != 0)
  71   1        {
  72   2              Write_1602_date(*p);
  73   2              p++;
  74   2        }
  75   1      }
  76          
  77          
  78          //***Һ����ʼ������****//
  79          void lcd1602_init()
  80          { 
  81   1        Write_1602_com(0x38);//����Һ������ģʽ����˼��16*2����ʾ��5*7����8λ���� 
  82   1        delay_1ms(1);   
  83   1        Write_1602_com(0x0c);//����ʾ����ʾ��� 
  84   1        delay_1ms(1);   
  85   1        Write_1602_com(0x06);//�������ƶ�������Զ�����  
  86   1        delay_1ms(1);     
  87   1        Write_1602_com(0x01);//����ʾ   
  88   1        delay_1ms(1);   
  89   1        Write_1602_com(0x80);
  90   1        delay_1ms(1);   
  91   1        
  92   1      }  
  93          void LCD1602_Write_address(unsigned char x,unsigned char y)
  94          { 
  95   1           x&=0x0f;             //�е�ַ������0-15��
  96   1           y&=0x01;             //�е�ַ������0-1��
  97   1           if(y==0)             //����ǵ�һ��
  98   1               Write_1602_com(x|0x80);        //���е�ַд��
  99   1           else                 //����ǵڶ���
 100   1               Write_1602_com((x+0x40)|0x80); //���е�ַд��
 101   1      } 
 102          void LCD1602_Disp(unsigned char x,unsigned char y,unsigned char buf)
 103          { 
 104   1           LCD1602_Write_address(x,y);    //�Ƚ���ַ��Ϣд��
 105   1           Write_1602_date(buf);  //��д��Ҫ��ʾ������
 106   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    172    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 16:20:57 PAGE 3   

END OF MODULE INFORMATION.


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