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

📄 lcd1602.lst

📁 KEIL下编的SST89E58单片机万年历(定时器)程序
💻 LST
字号:
C51 COMPILER V7.06   LCD1602                                                               10/26/2008 02:07:00 PAGE 1   


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

stmt level    source

   1          /*
   2           *      Copyright (C) 2007, 华中科技大学电气与电子科技创新中心
   3           *      All Rights Reserved.
   4           *      
   5           *      文件名:         lcd1602.h
   6           *      文件描述:       1602LCD主程序
   7           *                      
   8           *      当前版本:       1.0
   9           *      作者:           Zuowenping(fmku007@163.com)
  10           *      完成日期:       2007年12月17日
  11           *      
  12          */
  13          #include "lcd1602.h"
  14          #include "intrins.h"
  15          
  16          #define CLR   0x01;
  17          #define DIS_SW  0x0c;
  18          #define FUNC 0x38
  19          
  20          /**************************************
  21          ///////////////查忙
  22          ***************************************/
  23          void check_busy()
  24          {
  25   1      BUSY=1;
  26   1      RS=0;
  27   1      RW=1;
  28   1      E=1;
  29   1      nop();
  30   1              while(BUSY)
  31   1              {
  32   2                      E=0;
  33   2                      nop();
  34   2                      E=1;
  35   2              }
  36   1      }
  37          /**************************************
  38          //////////////发送数据
  39          ***************************************/
  40          void wr_data(unsigned char data1)
  41          {
  42   1      check_busy();
  43   1      RS=1;
  44   1      RW=0;
  45   1      E=1;
  46   1      P0=data1;
  47   1      nop();
  48   1      E=0;
  49   1      nop();
  50   1      E=1;
  51   1      }
  52          /**************************************
  53          ///////////////发送指令
  54          ***************************************/
  55          void wr_code(unsigned char code1)
C51 COMPILER V7.06   LCD1602                                                               10/26/2008 02:07:00 PAGE 2   

  56          {
  57   1      check_busy();
  58   1      RS=0;
  59   1      RW=0;
  60   1      E=1;
  61   1      P0=code1;
  62   1      nop();
  63   1      E=0;
  64   1      nop();
  65   1      E=1;
  66   1      }
  67          /**************************************
  68          ///////////////LCD初始化
  69          ***************************************/
  70          void lcd_init(void)
  71          {
  72   1              wr_code(0x01);          //清屏
  73   1              wr_code(0x0c);          //开显示器,关光标
  74   1              wr_code(FUNC);          //双行显示,八位数据,小字符
  75   1      }
  76          /**************************************
  77          ///////////////向LCD某位置写入字符; x:0-15  y:0-1
  78          ***************************************/
  79          void put_char(unsigned char x,unsigned char y,unsigned char charin)
  80          {
  81   1      unsigned char addr;
  82   1      if(y==0)
  83   1              addr=0x80;
  84   1      else
  85   1              addr=0xc0;
  86   1              addr=addr+x;
  87   1              wr_code(addr);
  88   1              wr_data(charin);
  89   1      }
  90          
  91          /**************************************
  92          ///////////////向LCD某行写入字符串;
  93          ***************************************/
  94          void put_str(unsigned char *p,bit row)
  95          {
  96   1      unsigned char addr_st,i,len=0;
  97   1              while (p[len] >31)
  98   1                      len++;
  99   1      if(row==0)
 100   1              addr_st=0x80;
 101   1      else
 102   1              addr_st=0xc0;
 103   1      for(i=0;i<len;i++)
 104   1      {       wr_code(addr_st);
 105   2              wr_data(*p);
 106   2              addr_st++;
 107   2              p++;
 108   2      }
 109   1      }
 110          /**************************************
 111          ///////////////延时;
 112          ***************************************/
 113          void nop()
 114          
 115          {
 116   1      _nop_();
 117   1      _nop_();
C51 COMPILER V7.06   LCD1602                                                               10/26/2008 02:07:00 PAGE 3   

 118   1      _nop_();
 119   1      _nop_();
 120   1      _nop_();
 121   1      _nop_();
 122   1      }


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