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

📄 yejin.lst

📁 这是一个1602液晶的显示程序
💻 LST
字号:
C51 COMPILER V8.02   YEJIN                                                                 05/23/2008 22:40:04 PAGE 1   


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

line level    source

   1           /***************************************************************************/
   2          /*杭州电子&计算机工作室*/
   3          /*http://www.hificat.com*/
   4          /*1602LCD演示程序*/
   5          /*目标器件:AT89S51*/
   6          /*晶振:11.0592MHZ*/
   7          /*编译环境:Keil 7.50A*/
   8          /***************************************************************************/
   9          /*********************************包含头文件********************************/
  10          #include <reg51.h>
  11          #include <intrins.h>
  12          /*********************************端口定义**********************************/
  13          
  14          sbit rs= P2^0;
  15          sbit rw = P2^1;
  16          sbit ep = P2^2;
  17          /********************************显示数据表*********************************/
  18          unsigned char  dis1[] = {"www.hificat.com"};
  19          unsigned char code dis2[] = {"0571-85956028"};
  20          unsigned char code dis3[] =     {"freela..."};
  21          unsigned char code dis4[] ={"septemberan"};
  22          unsigned char code dis5[]={"1234567890"};
  23          /*****************************************************************************
  24          函数功能:LCD延时子程序
  25          入口参数:ms
  26          出口参数:
  27          *****************************************************************************/
  28          void delay(unsigned char ms)
  29          {
  30   1      unsigned char i;
  31   1      while(ms--)
  32   1      {
  33   2      for(i = 0; i< 250; i++)
  34   2      {
  35   3      _nop_();
  36   3      _nop_();
  37   3      _nop_();
  38   3      _nop_();
  39   3      }
  40   2      }
  41   1      }
  42          /*****************************************************************************
  43          函数功能:测试LCD忙碌状态
  44          入口参数:
  45          出口参数:result
  46          *****************************************************************************/
  47          bit lcd_bz()
  48          {
  49   1      bit result;
  50   1      rs = 0;
  51   1      rw = 1;
  52   1      ep = 1;
  53   1      _nop_();
  54   1      _nop_();
  55   1      _nop_();
C51 COMPILER V8.02   YEJIN                                                                 05/23/2008 22:40:04 PAGE 2   

  56   1      _nop_();
  57   1      result = (bit)(P0 & 0x80);
  58   1      ep = 0;
  59   1      return result;
  60   1      }
  61          /*****************************************************************************
  62          函数功能:写指令数据到LCD子程序
  63          入口参数:cmd
  64          出口参数:
  65          *****************************************************************************/
  66          void lcd_wcmd(unsigned char cmd)
  67          {
  68   1      while(lcd_bz());//判断LCD是否忙碌
  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          函数功能:设定显示位置子程序
  88          入口参数:pos
  89          出口参数:
  90          *****************************************************************************/
  91          void lcd_pos(unsigned char pos)
  92          {
  93   1      lcd_wcmd(pos | 0x80);
  94   1      }
  95          /*****************************************************************************
  96          函数功能:写入显示数据到LCD子程序
  97          入口参数:dat
  98          出口参数:
  99          *****************************************************************************/
 100          void lcd_wdat(unsigned char dat)
 101          {
 102   1      while(lcd_bz());//判断LCD是否忙碌
 103   1      rs = 1;
 104   1      rw = 0;
 105   1      ep = 0;
 106   1      P0 = dat;
 107   1      _nop_();
 108   1      _nop_();
 109   1      _nop_();
 110   1      _nop_();
 111   1      ep = 1;
 112   1      _nop_();
 113   1      _nop_();
 114   1      _nop_();
 115   1      _nop_();
 116   1      ep = 0;
 117   1      }
C51 COMPILER V8.02   YEJIN                                                                 05/23/2008 22:40:04 PAGE 3   

 118          /*****************************************************************************
 119          函数功能:LCD初始化子程序
 120          入口参数:
 121          出口参数:
 122          *****************************************************************************/
 123          void lcd_init()
 124          {
 125   1      lcd_wcmd(0x38);
 126   1      delay(1);
 127   1      lcd_wcmd(0x0c);
 128   1      delay(1);
 129   1      lcd_wcmd(0x06);
 130   1      delay(1);
 131   1      lcd_wcmd(0x01);
 132   1      delay(1);
 133   1      }
 134          /*****************************************************************************
 135          函数功能:主程序
 136          入口参数:
 137          出口参数:
 138          *****************************************************************************/
 139          void main(void)
 140          {
 141   1      unsigned char i;
 142   1      lcd_init();// 初始化LCD
 143   1      delay(10);
 144   1      lcd_pos(0x01);//设置显示位置
 145   1      i = 0;
 146   1      while(dis1[i] != '\0')
 147   1      {
 148   2      lcd_wdat(dis1[i]);//显示字符
 149   2      i++;
 150   2      }
 151   1      lcd_pos(0x42);// 设置显示位置
 152   1      i = 0;
 153   1      while(dis2[i] != '\0')
 154   1      {
 155   2      lcd_wdat(dis2[i]);// 显示字符
 156   2      i++;
 157   2      }
 158   1       lcd_wcmd(0x90);
 159   1       i=0;
 160   1       while(dis3[i]!='\0')
 161   1        {
 162   2        lcd_wdat(dis3[i]);
 163   2        i++;
 164   2        }
 165   1      lcd_wcmd(0xd1);
 166   1      i=0;
 167   1      while(dis4[i]!='\0')
 168   1      {
 169   2         lcd_wdat(dis4[i]);
 170   2         i++;
 171   2         }
 172   1      while(1)
 173   1      {
 174   2      delay(100);
 175   2      i++;
 176   2      
 177   2      lcd_wcmd(0xdd);
 178   2      lcd_wdat(i);
 179   2      if(i==10)
C51 COMPILER V8.02   YEJIN                                                                 05/23/2008 22:40:04 PAGE 4   

 180   2       i=0;
 181   2         }
 182   1      }


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