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

📄 lcd1602.lst

📁 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点
💻 LST
字号:
C51 COMPILER V7.50   LCD1602                                                               08/20/2007 10:44:33 PAGE 1   


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

line level    source

   1          #include<at89x52.h>
   2          #include <intrins.h>
   3          #define uchar unsigned char
   4          #define LCM_Data P1
   5           
   6          
   7          sbit rs = P3^7; 
   8          sbit rw = P3^6;
   9          sbit ep = P3^4;
  10          
  11          void delay_ms(unsigned int);
  12          
  13          void lcd_wcmd(uchar);
  14          void lcd_bz();
  15          void lcd_pos(uchar);
  16          void lcd_wdat(uchar);
  17          void display(uchar,uchar *);
  18          
  19          uchar code dis1[] = {" www.willar.com "};
  20          uchar code dis2[] = {"WELCOME TO WEINA"};
  21          
  22          
  23          void delay_ms(unsigned int i)
  24          {
  25   1              unsigned char j;
  26   1              while (i--)
  27   1              {
  28   2                      for( j=0;j<123;j++);
  29   2              }
  30   1      }
  31          
  32          
  33          
  34          void lcd_bz()
  35          {       // ??LCD????
  36   1      bit result;
  37   1      LCM_Data |= 0x80 ;
  38   1              do
  39   1              {
  40   2                      rs = 0;
  41   2                      rw = 1;
  42   2                      ep = 1;
  43   2                      result = (bit)(LCM_Data & 0x80);////
  44   2                      ep = 0;
  45   2              }while (result == 1);
  46   1      }
  47          
  48          
  49          
  50          void lcd_wcmd(uchar cmd)
  51          {       // ???????LCD
  52   1       lcd_bz();
  53   1        rs = 0;
  54   1        rw = 0;
  55   1        ep = 0;
C51 COMPILER V7.50   LCD1602                                                               08/20/2007 10:44:33 PAGE 2   

  56   1        LCM_Data = cmd;
  57   1        ep = 1;
  58   1        ep = 0;  
  59   1      }
  60          
  61          void lcd_pos(uchar pos)
  62          {       //??????
  63   1       lcd_wcmd(pos | 0x80);
  64   1      }
  65          
  66          void lcd_wdat(uchar dat) 
  67          {       //?????????LCD
  68   1       lcd_bz();
  69   1        rs = 1;
  70   1        rw = 0;
  71   1        ep = 0;
  72   1        LCM_Data = dat;
  73   1        ep = 1;
  74   1        ep = 0; 
  75   1      }
  76          
  77          void lcd_init()
  78          {       //LCD?????
  79   1       delay_ms(15);
  80   1       lcd_wcmd(0x38);   //function set
  81   1       delay_ms(5);
  82   1       lcd_wcmd(0x38);   //function set
  83   1       delay_ms(5);
  84   1       lcd_wcmd(0x38);
  85   1       
  86   1       lcd_wcmd(0x38); 
  87   1       lcd_wcmd(0x08);   //display on/off
  88   1       lcd_wcmd(0x01);   //??LCD?????
  89   1        delay_ms(5);
  90   1       lcd_wcmd(0x06);   //entry mode set
  91   1       lcd_wcmd(0x0c);   //entry mode set
  92   1      
  93   1      }
  94          
  95          /*---------------
  96          ????:display()
  97          ?? :?LCD????????
  98          ?? :??????,??????
  99          ?? :lcd_wcmd(), lcd_pos()
 100          ????:pos ?????,q?????????????
 101          ??? :?
 102          ----------------*/
 103          void display(uchar pos, uchar *q)
 104          { 
 105   1       uchar i;
 106   1       //lcd_wcmd(0x01); //clear 
 107   1       delay_ms(5);
 108   1       lcd_pos(pos);
 109   1       for(i=0;i<16;i++)
 110   1       {
 111   2        lcd_wdat(*q);
 112   2        q++;
 113   2       delay_ms(250);
 114   2       } 
 115   1      }
 116          
 117          main()
C51 COMPILER V7.50   LCD1602                                                               08/20/2007 10:44:33 PAGE 3   

 118          {
 119   1       //delay_ms(500);
 120   1       lcd_init();    // ???LCD   
 121   1       delay_ms(10);
 122   1      
 123   1       display(0x00,dis1);
 124   1       display(0x40,dis2);
 125   1       //display(0x14,dis1);
 126   1       //display(0x54,dis2);
 127   1       //lcd_wcmd(0x07);   //entry mode set
 128   1       //delay(1);
 129   1       while(1)
 130   1       { ;
 131   2        //display(0x00,dis1);
 132   2        //display(0x40,dis2);
 133   2        //display(0x14,dis1);
 134   2        //display(0x54,dis2);
 135   2       }
 136   1      }
 137          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    223    ----
   CONSTANT SIZE    =     34    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   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 + -