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

📄 流水灯.lst

📁 供C51单片机初学C语言的朋友学习使用的演示程序
💻 LST
字号:
C51 COMPILER V8.09   流水灯                                                                08/21/2008 14:41:17 PAGE 1   


C51 COMPILER V8.09, COMPILATION OF MODULE 流水灯
OBJECT MODULE PLACED IN 流水灯.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE 流水灯.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*===============================================================
   2          本实验:
   3          
   4                  register为寄存器变量。在C语言中,如果有一些使用频繁,则为
   5          
   6                          存取变量的值要花费不少时间。为了提高执行效率,C语言允许将局
   7          
   8                          部变量的值放到CPU的寄存器中,需要是直接从寄存器取出草较运算,
   9                          
  10                          不需要再到内存中取。由于堵寄存器的存取速度远高于对内存的存
  11          
  12                          取速度,因此这样可以提高执行效率。这种变量叫做寄存器变量,
  13          
  14                          用关键字register作声明。
  15          
  16          
  17          注: (1):主芯片AT89S52使用11.0592M晶振
  18          
  19                  (2):Keil uV3 3.30编译运行通过
  20          
  21                  (3):本例程在 Dream型开发板 平台上成功运行通过
  22          
  23                  (4):更多学习资源浏览:(http://www.dream-core.cn)
  24          
  25          ==================================================================*/
  26          #include <reg52.h>
  27          #define uchar unsigned char
  28          #define uint unsigned int
  29          void delay(uint x)
  30          {
  31   1              register uint y;
  32   1              for(;x;x--)
  33   1                      for(y=0;y<255;y++);
  34   1      }
  35          void main()
  36          {
  37   1              uint z;
  38   1              uchar temp;
  39   1              while(1)
  40   1              {
  41   2                      temp=0x01;//让流水灯从左向右逐个闪动。
  42   2                      for(z=0;z<8;z++)
  43   2                      {
  44   3                              P1=~temp;//把temp值取反付给P1。
  45   3                              delay(50);
  46   3                              temp<<=1;//temp值左移一位。
  47   3                              }
  48   2                       temp=0x80;//让流水灯从右向左逐个闪动。
  49   2                      for(z=0;z<8;z++)
  50   2                      {
  51   3                              P1=~temp;
  52   3                              delay(50);
  53   3                              temp>>=1;//temp值右移取反付给P1。
  54   3                              }
  55   2                 temp=0xfe; //让流水灯从左向右依次全部点亮
C51 COMPILER V8.09   流水灯                                                                08/21/2008 14:41:17 PAGE 2   

  56   2                 for(z=0;z<8;z++)
  57   2                      {
  58   3                              P1=temp;
  59   3                              delay(50);
  60   3                              temp<<=1;
  61   3                      }
  62   2                 temp=0x7f;
  63   2                 for(z=0;z<8;z++)     //让流水灯从右向左依次全部点亮
  64   2                      {
  65   3                              P1=temp;
  66   3                              delay(50);
  67   3                              temp>>=1;
  68   3                      }
  69   2              }
  70   1      }


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