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

📄 lcd1602.lst

📁 51单片机用c语言实例 包括ad
💻 LST
字号:
C51 COMPILER V7.09   LCD1602                                                               04/28/2006 14:49:32 PAGE 1   


C51 COMPILER V7.09, 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          /********************************************************
   2           * 文件名称: LCD1602.C
   3           * 功能描述: 
   4           ********************************************************/
   5          
   6          #include<reg51.h>
   7          #include<intrins.h>
   8          //引脚定义
   9          sbit RSPIN = P1^5;
  10          sbit RWPIN = P1^6;
  11          sbit EPIN = P1^7;
  12          
  13          unsigned char XPOS,YPOS;
  14          unsigned char DisTab1[] = "TD-NMC+  Xi'an Tang Du Crop.       ";
  15          unsigned char DisTab2[] = "www.tangdu.com  029-88375025       ";
  16          
  17          void delay(unsigned int t)
  18          {  unsigned int i,j;
  19   1         for(i=0;i<t;i++)
  20   1            for(j=0;j<10;j++);
  21   1      }
  22          
  23          void lcdwaitidle(void)          //忙状态判别
  24          {  P0=0xff;
  25   1         RSPIN=0;
  26   1         RWPIN=1;
  27   1         EPIN=1;
  28   1         while((P0&0x80)==0x80);      //读取忙标志BF, 判为1否, 为1等待
  29   1         EPIN=0;
  30   1      }
  31          
  32          void lcdwcn(unsigned char c)    //写指令c
  33          {  RSPIN=0;
  34   1         RWPIN=0;
  35   1         P0=c;
  36   1         EPIN=1;
  37   1         _nop_();
  38   1         EPIN=0;
  39   1      }
  40          
  41          void lcdwc(unsigned char c)             //查询忙标志, 然后写指令c
  42          {  lcdwaitidle();
  43   1         lcdwcn(c);
  44   1      }
  45          
  46          void lcdwd(unsigned char d)             //查询忙标志, 然后写数据d
  47          {  lcdwaitidle();
  48   1         RSPIN=1;
  49   1         RWPIN=0;
  50   1         P0=d;
  51   1         EPIN=1;
  52   1         _nop_();
  53   1         EPIN=0;
  54   1      }
  55          
C51 COMPILER V7.09   LCD1602                                                               04/28/2006 14:49:32 PAGE 2   

  56          void lcdpos(void)
  57          {
  58   1              XPOS&=0x3f;
  59   1              YPOS&=0x03;
  60   1         if(YPOS==0x00)
  61   1            lcdwc(XPOS|0x80);                 //DDRAM地址设置(第1行)
  62   1         else if(YPOS==0x01)
  63   1            lcdwc((XPOS+0x40)|0x80);  //DDRAM地址设置(第2行)
  64   1      }
  65          
  66          void lcdinit(void)                              //LCD初始化
  67          {  delay(150); lcdwcn(0x38);    //总线8位, 两行显示, 5*7点阵字符体
  68   1         delay(50); lcdwcn(0x38);
  69   1         delay(50); lcdwcn(0x38);
  70   1         lcdwc(0x38);
  71   1         lcdwc(0x08);         //关闭显示, 光标消失, 闪烁禁止
  72   1         lcdwc(0x01);         //清屏
  73   1         lcdwc(0x06);         //AC加1计数, 禁止滚动
  74   1         lcdwc(0x0e);         //开显示
  75   1      }
  76          
  77          void Display(void)              // 显示子程序
  78          {
  79   1              for(XPOS=0; XPOS<16; XPOS++)
  80   1              {
  81   2                      YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);
  82   2                      YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);
  83   2                      delay(2000);
  84   2              }
  85   1              for(XPOS=16; XPOS<30; XPOS++)
  86   1              {
  87   2                      lcdwc(0x18);    // 滚屏
  88   2                      YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);
  89   2                      YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);
  90   2                      delay(2000);
  91   2              }
  92   1      }
  93          
  94          void main(void)
  95          {  
  96   1              EPIN=0;
  97   1              lcdinit();
  98   1              while(1)
  99   1              {
 100   2                      lcdwc(0x01);
 101   2                      lcdwc(0x02);
 102   2                      Display();
 103   2              delay(5000);
 104   2              }
 105   1      }


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