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

📄 lcm1602.lst

📁 51单片机与PC通信--串口通信实验 keil环境
💻 LST
字号:
C51 COMPILER V8.02   LCM1602                                                               05/12/2008 23:46:50 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCM1602
OBJECT MODULE PLACED IN LCM1602.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE LCM1602.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          
   4          sbit RSPIN = P1^0;         //数据/命令选择端
   5          sbit RWPIN = P1^1;         //读写控制信号
   6          sbit EPIN = P1^2;          //使能信号
   7          
   8          unsigned char XPOS,YPOS;
   9          
  10          void delay1(unsigned int t)       //延时
  11          {  unsigned int i,j;
  12   1         for(i=0;i<t;i++)
  13   1            for(j=0;j<10;j++)
  14   1               ;
  15   1      }
  16          
  17          void lcdwaitidle(void)      //读写检测.对控制器每次进行读写操作之前,都必须进行,
  18          {  P0=0xff;
  19   1         RSPIN=0;
  20   1         RWPIN=1;
  21   1         EPIN=1;
  22   1         while((P0&0x80)==0x80);       //确保STA7 为0
  23   1         EPIN=0;
  24   1      }
  25          
  26          void lcdwcn(unsigned char c)     //不判忙直接写指令
  27          {  RSPIN=0;
  28   1         RWPIN=0;
  29   1         P0=c;
  30   1         EPIN=1;
  31   1         _nop_();
  32   1         EPIN=0;
  33   1      }
  34          
  35          void lcdwc(unsigned char c)             //判忙后写指令  
  36          {  lcdwaitidle();
  37   1         lcdwcn(c);
  38   1      }
  39          
  40          void lcdwd(unsigned char d)              //写数据       
  41          {  lcdwaitidle();
  42   1         RSPIN=1;
  43   1         RWPIN=0;
  44   1         P0=d;
  45   1         EPIN=1;
  46   1         _nop_();
  47   1         EPIN=0;
  48   1      }
  49          
  50          void lcdpos(void)                  //确定当前光标位置
  51          {  XPOS&=0x0f;
  52   1         YPOS&=0x03;
  53   1         if(YPOS==0x00)
  54   1            lcdwc(XPOS|0x80);
  55   1         else if(YPOS==0x01)
C51 COMPILER V8.02   LCM1602                                                               05/12/2008 23:46:50 PAGE 2   

  56   1            lcdwc((XPOS+0x40)|0x80);
  57   1      }
  58          
  59          void lcdreset()                                  //LCM初始化
  60          {  EPIN=0;
  61   1         delay1(150); lcdwcn(0x38);    //写指令38H
  62   1         delay1(50); lcdwcn(0x38);     //写指令38H
  63   1         delay1(50); lcdwcn(0x38);     //写指令38H
  64   1         lcdwc(0x38);                                  //显示模式设置,设置16X2 显示,5X7 点阵,8 位数据接口
  65   1         lcdwc(0x08);         //显示关闭                  
  66   1         lcdwc(0x01);         //显示清屏
  67   1         lcdwc(0x06);     //显示光标移动设置
  68   1         lcdwc(0x0c);     //显示开及光标设置
  69   1      }
  70          
  71          void lcdfill(unsigned char n)           //向1602写一满屏字符
  72          {
  73   1         for(YPOS=0;YPOS<2;YPOS++)
  74   1            for(XPOS=0;XPOS<16;XPOS++)
  75   1            {  lcdpos();
  76   2               lcdwd(n);  }
  77   1      }
  78          
  79          void lcdchar(unsigned char x,unsigned char y,unsigned char ch)    //在1602指定位置写一个字符
  80          {
  81   1              XPOS=x;  YPOS=y;
  82   1              lcdpos();
  83   1              lcdwd(ch);
  84   1      }
  85          
  86          void lcdwda(unsigned char x,unsigned char y,unsigned char *s) //在1602指定位置写一行字符串
  87          {  YPOS=y;
  88   1         for(XPOS=x;XPOS<16;XPOS++)
  89   1         {  lcdpos();
  90   2                if (*s=='\0') return;
  91   2            lcdwd(*s);
  92   2            s++;
  93   2            //delay1(5000);//(400);
  94   2         }
  95   1      }


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