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

📄 1602lcd.lst

📁 51单片机的数字显示代码
💻 LST
字号:
C51 COMPILER V7.08   1602LCD                                                               02/13/2006 14:41:53 PAGE 1   


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

line level    source

   1          /*  描述:                                                                       *
   2          *         1602字符型LCD显示演示程序                                            *
   3          *        在第一行显示 Welcome to Mars!                                              *
   4                                             *
   5          *                                                                              *
   6          ********************************************************************************
   7          * 【声明】 此程序仅用于学习与参信息!          
   8          *******************************************************************************/
   9          
  10          
  11          #include <reg51.h>
  12          #include <intrins.h>
  13          
  14          typedef unsigned char BYTE;
  15          typedef unsigned int WORD;
  16          typedef bit BOOL ; 
  17          
  18          sbit rs = P2^7;         //
  19          sbit rw = P2^6;
  20          sbit ep = P2^5;
  21          
  22          BYTE code dis1[] = {"Welcome to Mars!"};
  23          
  24          
  25          delay(BYTE ms)
  26          {                                                       // 延时子程序
  27   1              BYTE i;
  28   1              while(ms--)
  29   1              {
  30   2                      for(i = 0; i< 250; i++)
  31   2                      {
  32   3                              _nop_();
  33   3                              _nop_();
  34   3                              _nop_();
  35   3                              _nop_();
  36   3                      }
  37   2              }
  38   1      }
  39          
  40          BOOL lcd_bz()
  41          {                                                       // 测试LCD忙碌状态
  42   1              BOOL result;
  43   1              rs = 0;
  44   1              rw = 1;
  45   1              ep = 1;
  46   1              _nop_();
  47   1              _nop_();
  48   1              _nop_();
  49   1              _nop_();
  50   1              result = (BOOL)(P0 & 0x80);
  51   1              ep = 0;
  52   1              return result;  
  53   1      }
  54          
  55          lcd_wcmd(BYTE cmd)
C51 COMPILER V7.08   1602LCD                                                               02/13/2006 14:41:53 PAGE 2   

  56          {                                                       // 写入指令数据到LCD
  57   1              while(lcd_bz());
  58   1              rs = 0;
  59   1              rw = 0;
  60   1              ep = 0;
  61   1              _nop_();
  62   1              _nop_();        
  63   1              P0 = cmd;
  64   1              _nop_();
  65   1              _nop_();
  66   1              _nop_();
  67   1              _nop_();
  68   1              ep = 1;
  69   1              _nop_();
  70   1              _nop_();
  71   1              _nop_();
  72   1              _nop_();
  73   1              ep = 0;         
  74   1      }
  75          
  76          lcd_pos(BYTE pos)
  77          {                                                       //设定显示位置
  78   1              lcd_wcmd(pos | 0x80);
  79   1      }
  80          
  81          lcd_wdat(BYTE dat)      
  82          {                                                       //写入字符显示数据到LCD
  83   1              while(lcd_bz());
  84   1              rs = 1;
  85   1              rw = 0;
  86   1              ep = 0;
  87   1              P0 = dat;
  88   1              _nop_();
  89   1              _nop_();
  90   1              _nop_();
  91   1              _nop_();
  92   1              ep = 1;
  93   1              _nop_();
  94   1              _nop_();
  95   1              _nop_();
  96   1              _nop_();
  97   1              ep = 0; 
  98   1      }
  99          
 100          lcd_init()
 101          {                                                       //LCD初始化设定
 102   1              lcd_wcmd(0x38);                 //
 103   1              delay(1);
 104   1              lcd_wcmd(0x0c);                 //
 105   1              delay(1);
 106   1              lcd_wcmd(0x06);                 //
 107   1              delay(1);
 108   1              lcd_wcmd(0x01);                 //清除LCD的显示内容
 109   1              delay(1);
 110   1      }
 111          
 112          main()
 113          {
 114   1              BYTE i;
 115   1              lcd_init();                             // 初始化LCD                    
 116   1              delay(10);
 117   1              lcd_pos(1);                             // 设置显示位置为第一行2223第5个字符
C51 COMPILER V7.08   1602LCD                                                               02/13/2006 14:41:53 PAGE 3   

 118   1              i = 0;
 119   1              while(dis1[i] != '\0')
 120   1              {                                               // 显示字符Welcome to use"
 121   2                      lcd_wdat(dis1[i]);
 122   2                      i++;
 123   2              }
 124   1      
 125   1              while(1);                               // 
 126   1      }
 127          
 128          


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