栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

51单片机之百变流水灯

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

51单片机之百变流水灯

1.任务书

接线如图所示

1.1 以3个灯亮从左到右流动,然后一直循环流动。

1.2循环使用不同流水灯,做出你喜欢的样子

2.分析

其实很简单的,无非就是点亮led的先后顺序在加点延时罢了。当我们点亮D0D1D3时关闭其他延时一会又打开D3D4D5关闭D0D1D3,就这样一直循环就可以了,接下来看代码部分

#include 



#define led P1  //定义led io口

#define uint unsigned int 

void delay(uint i){while(i--);}  //延时函数
 
void main()
{
    while(1)
    {
    led=0x1f;delay(30000);
    led=0x8f;delay(30000);
    led=0xc7;delay(30000);
    led=0xe3;delay(30000);
    led=0xf1;delay(30000);
    led=0xf8;delay(30000);
    led=0x7c;delay(30000);
    led=0x3e;delay(30000);
    }

}

当然肯定不只有这一种办法接下来我们试一下另一种办法位移动

#include 
#include  //这个头文件里面有我们需要的函数 _cror_()



#define led P1  //定义led io口

#define uint unsigned int 
#define uchar unsigned char

void delay(uint i){while(i--);}  //延时函数

const uchar d=0x1f;  //定义常数 const是常数说明 常数必须先给值

void main()
{
    while(1)
    {
        led=_cror_(d,0);delay(30000);
        led=_cror_(d,1);delay(30000);
        led=_cror_(d,2);delay(30000);
        led=_cror_(d,3);delay(30000);
        led=_cror_(d,4);delay(30000);
        led=_cror_(d,5);delay(30000);
        led=_cror_(d,6);delay(30000);
        led=_cror_(d,7);delay(30000);
    }

}

当然还可以使用for循环啦

#include 
#include  //这个头文件里面有我们需要的函数 _cror_()



#define led P1  //定义led io口

#define uint unsigned int 
#define uchar unsigned char

void delay(uint i){while(i--);}  //延时函数

const uchar d=0x1f;  //定义常数 const是常数说明 常数必须先给值

void main()
{
    uchar i;
    while(1)
    {
        for(i=0;i<8;i++)
        {
        led=_cror_(d,i);delay(30000);
        }
    }

}

当然接下来还有百变流水灯效果,反正就是你想怎么来就怎么来,就看你们表演了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号