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

📄 szz1.lst

📁 各种基本的小程序,用到了实验板中的各个功能,很有用哦!
💻 LST
字号:
C51 COMPILER V6.12  SZZ1                                                                   03/26/2008 19:18:16 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE SZZ1
OBJECT MODULE PLACED IN .\szz1.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE .\szz1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89x51.H>
   2          #include <intrins.h>
   3          #define uchar unsigned char
   4          #define begin 1
   5          sbit RS=P0^2;
   6          sbit RW=P0^3;
   7          sbit E=P0^4;
   8          void lcd_initial();
   9          void write_s(uchar *s);
  10          void write_data(uchar);
  11          void write_code(uchar);
  12          void check_busy();
  13          void display();
  14          void delay(uchar);
  15          uchar s,m,h,n;
  16          void main()
  17          {
  18   1      TMOD=0x01;
  19   1      EA=1;
  20   1      ET0=1;
  21   1      TL0=50000%256;
  22   1      TH0=50000/256;
  23   1      TR0=1;
  24   1      lcd_initial();
  25   1      
  26   1      write_code(0x86+begin);//显示:
  27   1      delay(2);
  28   1      write_s(":");
  29   1      delay(2);
  30   1      write_code(0x89+begin);//显示:
  31   1      delay(2);
  32   1      write_s(":");
  33   1      display();
  34   1      delay(20);
  35   1      write_code(0x80);
  36   1      write_s("TIME");
  37   1      while(1)
  38   1      {
  39   2      display();
  40   2      delay(20);
  41   2      }
  42   1      }
  43          void lcd_initial()
  44          {
  45   1      write_code(0x01);
  46   1      delay(5);
  47   1      write_code(0x38);
  48   1      delay(5);
  49   1      write_code(0x0c);
  50   1      delay(5);
  51   1      write_code(0x06);
  52   1      }
  53          void check_busy()
  54          {
  55   1      RS=0;
C51 COMPILER V6.12  SZZ1                                                                   03/26/2008 19:18:16 PAGE 2   

  56   1      RW=1;
  57   1      E=1;
  58   1      while(0x80&P2);
  59   1      E=0;
  60   1      }
  61          void write_s(uchar *s)
  62          {
  63   1      while(*s>0)
  64   1      {
  65   2      write_data(*s);
  66   2      s++;
  67   2      }
  68   1      }
  69          
  70          void write_data(uchar dat) 
  71          {
  72   1      check_busy();
  73   1      P2=dat;
  74   1      _nop_();
  75   1      _nop_();
  76   1      RS=1;
  77   1      RW=0;
  78   1      E=1;
  79   1      _nop_();
  80   1      _nop_();
  81   1      E=0;
  82   1      delay(2);
  83   1      }
  84          void write_code(uchar command)
  85          {
  86   1      check_busy();
  87   1      P2=command; 
  88   1      _nop_();
  89   1      _nop_();
  90   1      RS=0;
  91   1      RW=0;
  92   1      E=1;
  93   1      _nop_();
  94   1      _nop_();
  95   1      E=0;
  96   1      delay(2);
  97   1      }
  98          void display()
  99          {
 100   1      write_code(0x84+begin);//显示小时
 101   1      delay(2);
 102   1      write_data(h/10+0x30);
 103   1      delay(2);
 104   1      write_data(h%10+0x30);
 105   1      delay(2);
 106   1      write_code(0x87+begin);//显示分钟
 107   1      delay(2);
 108   1      write_data(m/10+0x30);
 109   1      delay(2);
 110   1      write_data(m%10+0x30);
 111   1      delay(2);
 112   1      write_code(0x8a+begin);//显示秒钟
 113   1      delay(2);
 114   1      write_data(s/10+0x30);
 115   1      delay(2);
 116   1      write_data(s%10+0x30);
 117   1      }
C51 COMPILER V6.12  SZZ1                                                                   03/26/2008 19:18:16 PAGE 3   

 118          void  delay(uchar i)
 119          {
 120   1      uchar j=250;
 121   1      for(;i>0;i--,j=250)
 122   1      {while(--j);}
 123   1      }
 124          void timer( ) interrupt 1
 125          {
 126   1      TL0=50000%256;
 127   1      TH0=50000/256;
 128   1      n++;
 129   1      if(!(n%40))
 130   1      {
 131   2      s++;
 132   2      if(s==60)
 133   2      {
 134   3      s=0;
 135   3      m++;
 136   3      if(m==60)
 137   3      {
 138   4      m=0;
 139   4      h++;
 140   4      if(h==24)
 141   4      h=0;
 142   4      }
 143   3      }
 144   2      }
 145   1      }


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