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

📄 循环移位流水灯.lst

📁 循环位移流水灯的程序设计
💻 LST
字号:
C51 COMPILER V8.02   循环_莆涣_水灯                                                        04/04/2008 18:41:37 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 循环_莆涣_水灯
OBJECT MODULE PLACED IN 循环移位流水灯.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 循环移位流水灯.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2                                                 
   3                                                                 循环移位流水灯
   4          
   5            功能: P1口外接的八个LED按照程序预定的组合,有选择、有节奏的点亮或
   6                   者熄灭,从而可以使LED发出的灯光达到像水流一样“流动”的效果。
   7            
   8            说明: 运用C语言中简单的“移位”及“位或”操作,组合出一系列所需的8位
   9                   二进制数,并给P1口赋值,P1口对应的各LED就会按照要求被点亮或熄灭。
  10                   
  11            调试:1、通过对换程序中移位符号(">>"、"<<")的位置,可以方便地改变流水灯流动的方向。
  12                  2、通过修改变量“LED”的初值,可以方便地实现N(1至7)个LED作为一组流动的效果。
  13              
  14                  
  15              (C)西安电子科技大学    测控技术与仪器         编写:郭世忠     日期:2008/02/15
  16          */
  17          
  18          #include<reg52.h>               //51寄存器头文件
  19          
  20          void Delayms(int ms);   //函数声明
  21          
  22          void main(void)         //主函数
  23          {
  24   1       unsigned char LED;             //定义变量      
  25   1       
  26   1       LED=0xf8;                              //LED赋初值     可根据需要在“LED初值列表”中选择对应初值
  27   1                                              //这里以点亮3个LED为例,因此选择初值为 0xf8
  28   1      
  29   1       while(1)                       //死循环,单片机程序必须是一个死循环
  30   1       {      
  31   2        P1=LED;                               //I/O口赋值,将变量“LED”此刻的值传给P1口。这一句写在这里是为了
  32   2                                                      //保证P1口能够从LED的初值开始显示,大家不信可以改一下位置看效果。
  33   2      
  34   2        LED=(LED>>7)|(LED<<1);//移位运算,向左或向右移1位,并更新LED的值,下一周期更新到P1口 
  35   2                                                      //此处对换移位符号(">>"、"<<")的位置,可改变流水灯流动的方向。
  36   2        
  37   2        Delayms(5000);                //延时,保持当前发光状态片刻。
  38   2       }
  39   1      }
  40          /*****************************  LED初值列表  *******************************
  41          *
  42          *流动LED的个数     对应二进制     对应十六进制
  43          *          1       1111 1110         0xfe
  44          *                  2       1111 1100         0xfc
  45          *          3       1111 1000         0xf8
  46          *                  4       1111 0000         0xf0
  47          *                  5       1110 0000         0xe0
  48          *                  6       1100 0000         0xc0
  49          *                  7       1000 0000         0x80
  50          *说明:P1口对应的LED是低电平有效,因此,0代表点亮LED,1代表熄灭LED.
  51          ****************************************************************************/
  52           
  53          
  54          
  55          /****************************************************************************
C51 COMPILER V8.02   循环_莆涣_水灯                                                        04/04/2008 18:41:37 PAGE 2   

  56          * 名    称:Delayms()
  57          * 功    能:延迟1ms
  58          * 入口参数:ms: 延迟毫秒数
  59          * 出口参数:无
  60          * 说    明: 11.0592MHz条件下
  61          ****************************************************************************/
  62          void Delayms(int ms)
  63          {
  64   1         unsigned int i;
  65   1         for(;ms>0;ms--)            //循环ms次
  66   1         {
  67   2            for(i=0;i<113;i++); //每次1ms延迟@ 11.0592MHz
  68   2         }
  69   1      } 
  70          
  71          
  72          
  73          
  74          
  75          
  76          
  77          
  78          
  79          
  80          
  81          
  82          
  83          
  84          
  85          


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