请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2863|回复: 0

关于流水灯

[复制链接]

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2020-11-25 15:01:15 | 显示全部楼层 |阅读模式
5金钱
我想实现从左到右再从右到左的流水灯,但是我下面这个程序只能一直右到左
#include <reg52.h>
sbit ADDR0 = P2^0;
sbit ADDR1 = P2^1;
sbit ADDR2 = P2^2;
sbit ADDR3 = P2^3;
sbit ENLED = P2^4;

void main()
{
unsigned int i = 0; //定义循环变量5 i,用于软件延时
unsigned char cnt = 0; //定义计数变量 cnt,用于移位控制

ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (1) //主循环,程序无限循环执行该循环体语句
{
P2 = ~(0x01 << cnt); //P0 等于 1 左移 cnt 位,控制 8 个 LED
for (i=0; i<20000; i++); //软件延时
cnt++; //移位计数变量自加 1
if (cnt >= 8) //移位计数超过 7 后,再重新从 0 开始
  {
    cnt = 0;
  }
       
         while (1)
     {
     P2 = ~(0x80 >> cnt); //P2 等于 1 右移 cnt 位,控制 8 个 LED
     for (i=0; i<20000; i++); //软件延时
     cnt++; //移位计数变量自加 1
          if (cnt >=8)
            {cnt = 0;
             break; }
     }
       
}
}

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有0人回答

回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-19 07:56 , Processed in 0.098092 second(s), 29 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表