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

📄 lcd.lst

📁 TS-1620原理图和程序 TS-1620原理图和程序
💻 LST
字号:
C51 COMPILER V7.10   LCD                                                                   07/31/2008 09:54:54 PAGE 1   


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

line level    source

   1                                                                  /*******************************************************************************
   2          *  标题:  伟纳电子ME300B单片机开发系统演示程序 - 1602LCD显示演示程序           *
   3          *  文件:  wl009.C                                                              *
   4          *  日期:  2004-1-5                                                             *
   5          *  版本:  1.0                                                                  *
   6          *  作者:  伟纳电子 - Freeman                                                   *
   7          *  邮箱:  freeman@willar.com                                                   *
   8          *  网站: http://www.willar.com                                                *
   9          ********************************************************************************
  10          *  描述:                                                                       *
  11          *         1602字符型LCD显示演示程序                                            *
  12          *         在第一行显示  welcome                                                *
  13          *         在第一行显示  www.willar.com                                         *
  14          *                                                                              *
  15          ********************************************************************************
  16          * 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
  17          * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
  18          *******************************************************************************/
  19          
  20          //shixr, LCD显示程序,须学习
  21          
  22          #include <reg51.h>
  23          #include <intrins.h>
  24          
  25          typedef unsigned char BYTE;
  26          typedef unsigned int WORD;
  27          typedef bit BOOL ; 
  28          
  29          sbit rs = P2^0;         //
  30          sbit rw = P2^1;
  31          sbit ep = P2^2;
  32          
  33          BYTE code dis1[] = {"welcome!"};
  34          BYTE code dis2[] = {"www.willar.com"};
  35          
  36          delay(BYTE ms)
  37          {                                                       // 延时子程序
  38   1              BYTE i;
  39   1              while(ms--)
  40   1              {
  41   2                      for(i = 0; i< 250; i++)
  42   2                      {
  43   3                              _nop_();
  44   3                              _nop_();
  45   3                              _nop_();
  46   3                              _nop_();
  47   3                      }
  48   2              }
  49   1      }
  50          
  51          BOOL lcd_bz()
  52          {                                                       // 测试LCD忙碌状态
  53   1              BOOL result;
  54   1              rs = 0;
  55   1              rw = 1;
C51 COMPILER V7.10   LCD                                                                   07/31/2008 09:54:54 PAGE 2   

  56   1              ep = 1;
  57   1              _nop_();
  58   1              _nop_();
  59   1              _nop_();
  60   1              _nop_();
  61   1              result = (BOOL)(P0 & 0x80);
  62   1              ep = 0;
  63   1              return result;  
  64   1      }
  65          
  66          lcd_wcmd(BYTE cmd)
  67          {                                                       // 写入指令数据到LCD
  68   1              while(lcd_bz());
  69   1              rs = 0;
  70   1              rw = 0;
  71   1              ep = 0;
  72   1              _nop_();
  73   1              _nop_();        
  74   1              P0 = cmd;
  75   1              _nop_();
  76   1              _nop_();
  77   1              _nop_();
  78   1              _nop_();
  79   1              ep = 1;
  80   1              _nop_();
  81   1              _nop_();
  82   1              _nop_();
  83   1              _nop_();
  84   1              ep = 0;         
  85   1      }
  86          
  87          lcd_pos(BYTE pos)
  88          {                                                       //设定显示位置
  89   1              lcd_wcmd(pos | 0x80);
  90   1      }
  91          
  92          lcd_wdat(BYTE dat)      
  93          {                                                       //写入字符显示数据到LCD
  94   1              while(lcd_bz());
  95   1              rs = 1;
  96   1              rw = 0;
  97   1              ep = 0;
  98   1              P0 = dat;
  99   1              _nop_();
 100   1              _nop_();
 101   1              _nop_();
 102   1              _nop_();
 103   1              ep = 1;
 104   1              _nop_();
 105   1              _nop_();
 106   1              _nop_();
 107   1              _nop_();
 108   1              ep = 0; 
 109   1      }
 110          
 111          lcd_init()
 112          {                                                       //LCD初始化设定
 113   1              lcd_wcmd(0x38);                 //
 114   1              delay(1);
 115   1              lcd_wcmd(0x0c);                 // 0x0c
 116   1              delay(1);
 117   1              lcd_wcmd(0x06);                 //      0x06
C51 COMPILER V7.10   LCD                                                                   07/31/2008 09:54:54 PAGE 3   

 118   1              delay(1);
 119   1              lcd_wcmd(0x01);                 //清除LCD的显示内容
 120   1              delay(1);
 121   1      }
 122          
 123          main()
 124          {
 125   1              BYTE i;
 126   1              lcd_init();                             // 初始化LCD                    
 127   1              delay(10);
 128   1              lcd_pos(4);                             // 设置显示位置为第一行的第5个字符
 129   1              i = 0;
 130   1              while(dis1[i] != '\0')
 131   1              {                                               // 显示字符"welcome!"
 132   2                      lcd_wdat(dis1[i]);
 133   2                      i++;
 134   2              }
 135   1              lcd_pos(0x41);                  // 设置显示位置为第二行第二个字符
 136   1              i = 0;
 137   1              while(dis2[i] != '\0')
 138   1              {
 139   2                      lcd_wdat(dis2[i]);      // 显示字符"  www.willar.com  "
 140   2                      i++;
 141   2              }
 142   1              while(1);                               // 
 143   1      }
 144          
 145          


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