单片机流水灯编程三个灯(单片机流水灯程序c语言)

简介

流水灯是单片机学习中最基础的实践项目之一。流水灯的实现可以让我们对单片机的IO口有一个初步的了解,并且可以通过编写不同的代码实现不同的灯显示效果。本文将介绍如何使用单片机实现一个三个独立流水灯的程序。

程序实现

本项目选用C语言来编写代码,并使用Keil C51开发环境,同时需要预先购置由单片机控制的LED灯和外围电路。下面是实现代码的主要思路:

1. 定义需要控制灯的IO口,使用宏定义的方式方便后期修改并且屏蔽硬件差异。

2. 使用C语言的for循环和while循环实现流水灯的循环效果。对于每个流水灯而言,需要控制相应的高电平和低电平时间来表示灯的状态。

3. 通过不同的流水灯循环间隔时间,可以实现不同的灯效果。

代码分析

下面是具体实现的C语言代码:

#include <reg51.h>
#define LED1 P1_0
#define LED2 P1_1
#define LED3 P1_2
void Delayms(unsigned int times);
void main()
{
    while(1)
    {
        for(i=0;i<8;i++)
        {
            LED1=1;
            Delayms(50);
            LED1=0;
            Delayms(50);
        }
        for(i=0;i<8;i++)
        {
            LED2=1;
            Delayms(50);
            LED2=0;
            Delayms(50);
        }
        for(i=0;i<8;i++)
        {
            LED3=1;
            Delayms(50);
            LED3=0;
            Delayms(50);
        }
    }   
}
void Delayms(unsigned int times)
{
    unsigned char i,j;
    for(i=times;i;i--)
    for(j=112;j;j--);
}

代码中使用了简单的循环语句控制LED的高低电平,同时使用了Delayms函数来控制灯亮灭时间,例如:当需要让LED1亮时,先将LED1端口置成1,之后使用Delayms函数来延时50ms,然后再将LED1端口置成0,再使用Delayms函数延时50ms,以达到LED1流水灯效果。

单片机流水灯编程三个灯(单片机流水灯程序c语言)

实验结果

在代码编译成功后,通过将单片机上的相应IO口与外围简单电路连接,即可完成实验。根据代码的简单描述,实现了三个独立流水灯的效果,会交替闪烁的三盏灯始终处于不同的状态。通过代码调整控制灯亮灭时间实现不同的向右或向左流动灯效果。

在原始的代码框架下,我们可以根据个人兴趣进行功能扩展,例如增加灯效,修改流动的灯数量等等。通过单片机流水灯项目的实践,不仅可以对于单片机控制灯的基础有更深入的了解,同时也在代码编写的过程中提高了自身的编程水平。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcunc2yg.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月26日 上午1:26
下一篇 2023年4月26日 上午1:26

猜你喜欢