51单片机 四位左右循环流水灯C语言源码

[复制链接]
查看3 | 回复0 | 2021-6-9 18:59:10 | 显示全部楼层 |阅读模式
  1. /*****************************************
  2. *实验效果:程序运行后,实现流水灯图形
  3. *****************************************/

  4. #include <REGX52.H>    //包含单片机寄存器的头文件
  5. #include<intrins.h>

  6. #define uchar unsigned char
  7. uchar j, num;

  8. void delay(unsigned int xms)   //延时x毫秒(ms)
  9. {
  10.     unsigned int i, j;
  11.     for(i = xms; i > 0; i--)
  12.         for(j = 112; j > 0; j--);
  13. }


  14. void main()
  15. {
  16.     num = 1;
  17.     P0 = 0x01;        //P0=0000 0001,对应第1个灯亮
  18.     delay(1000);      //延迟1秒
  19.     while(1)            //无限循环,以使led灯持续闪烁,并防止程序跑飞
  20.     {
  21.         if(num == 1)
  22.         {

  23.             for(j = 0; j < 3; j++)
  24.             {
  25.                 P0 = _crol_(P0, 1); //左移函数,依次是00000010,00000100,00001000
  26.                 delay(1000);        //延迟1秒
  27.                 if(P0 == 0x08)
  28.                     num = 0;
  29.             }
  30.         }
  31.         else
  32.         {
  33.             for(j = 0; j < 3; j++)
  34.             {
  35.                 P0 = _cror_(P0, 1);  //左移函数,依次是0000 0100,0000 0010,0000 0001
  36.                 delay(1000);         //延迟1秒
  37.                 if(P0 == 0x01)
  38.                     num = 1;
  39.             }
  40.         }
  41.     }
  42. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则