找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6800|回复: 7
打印 上一主题 下一主题
收起左侧

怎样让单片机流水灯的程序从第一个亮到最后一个无限循环?

[复制链接]
跳转到指定楼层
楼主
ID:502570 发表于 2019-4-1 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于单片机流水灯程序改写
怎样让单片机流水灯的程序从第一个亮到最后一个又从第一个亮到最后一个这样无限循环下去
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:299872 发表于 2019-4-2 04:24 来自手机 | 只看该作者
while(1){P0=0x01;for(i=0;i<8;i++)P0<<=1;}手机回复都的,主要就是这个。要看你的LED在哪个口,还要定义i类型,还要加延时,不然快到你以为全开!
回复

使用道具 举报

板凳
ID:482226 发表于 2019-4-2 07:15 | 只看该作者
无限循环需要用while(){}循环
按顺序亮灯就有很多做法了,数组编号累加,顺序端口累加,自己编辑中间加延时隔开........
回复

使用道具 举报

地板
ID:164602 发表于 2019-4-2 08:07 | 只看该作者
非常简单嘛!
#include<reg51.h>
#include<intrins.h>

#define GPIO_LED P2//将P2口另外取名为GPIO_LED

void Delay10ms(unsigned int);

void main(void)
{
        GPIO_LED=0xfe;
        Delay10ms(50);
        while(1)
        {
                        GPIO_LED=_crol_(GPIO_LED,1);
                        Delay10ms(50);
        }
}

void Delay10ms(unsigned int c)
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}
回复

使用道具 举报

5#
ID:503018 发表于 2019-4-2 10:20 | 只看该作者
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
aa=0xfe;
while(1)
{
P1=aa;
delayms(1000);
aa=_crol_(aa,1);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);

}
回复

使用道具 举报

6#
ID:503098 发表于 2019-4-2 11:19 | 只看该作者
给一个循环就好呀。
回复

使用道具 举报

7#
ID:500015 发表于 2019-4-2 14:29 | 只看该作者
用一个while语句
回复

使用道具 举报

8#
ID:503217 发表于 2019-4-2 15:01 | 只看该作者
做个循环语句

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
aa=0xfe;
while(1)
{
P1=aa;
delayms(1000);
aa=_crol_(aa,1);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);

}
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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