如何用单片机简单制作一个流水灯

如题所述

    工具:STC系列51单片机、串口转换器(USB转TTL 或232转TTL)

    材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。

    以下程序可以直接用Keil C 直接编译执行。

//可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。


//具体实现方法可以参考如下程序:

   

#include <reg51.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

void delay(uint a);

void main()

{

    P1=0xfe;

    while(1)

    {

        // 向左循环点亮LED

         for(i=0; i<7; i++)

        {

            P1=_crol_(P1,1);  // 左移一位,点亮下一位LED

            delay(55);

       }

       // 向右循环点亮LED

       for(i=0; i<7; i++)

       {

            P1=_cror_(P1,1); // 右移一位,,点亮上一位LED

            delay(55);

       }

    }

}

// 延时函数,延时a毫秒

void delay(uint a)

{

    uint x,y;

    for(x=a;x>0;x--)

        for(y=110;y>0;y--);

}

   

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-18

教你怎样制作一个LED流水灯

第2个回答  2016-09-29
如果是8位流水灯,可接到单片机的一组io上,软件可采用移位运算实现流水灯显示
!(1<<1),!(1<<2)...
第3个回答  2016-09-29
让灯一个一个亮,就是让io口一个一个拉高,或者拉低
第4个回答  2016-09-29
#include<reg52.h>
unsigned int a;
void mian()
{
P1 = P1<<1;//你看你的流水灯硬件管脚接的是哪个端口相应的改一下,就可以了

a= 65535;

while(a--);//软件延时

}本回答被提问者采纳

怎样用单片机实现一个流水灯的效果呢?
要实现流水灯效果,首先需要将每个LED灯的一个引脚连接到单片机的一个I\/O端口上。然后,通过编程控制这些I\/O端口的电平状态,就可以控制LED灯的亮灭。在编程时,通常使用循环结构来实现流水灯效果。例如,可以使用一个for循环,依次将每个LED灯对应的I\/O端口置为高电平(通常为VCC或5V),然后延时一段...

怎样用单片机做一个简单的流水灯?
在这个单片机流水灯代码中,假设使用的是8051单片机。需要定义8个LED灯,分别连接到P1端口的不同引脚上。然后使用一个循环结构来控制这8个LED灯按照一定的顺序逐个亮起,形成流水灯的效果。具体来说,使用for循环来控制LED灯的亮灭顺序。在每次循环中,通过给P1端口赋值来控制LED灯的亮灭状态。例如,给P...

如何用单片机制作一个流水灯?
1、首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。2、写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。3、下面是流水灯的主函数,流水灯一个点亮后一个熄灭反复循环点亮熄灭。4、这样流水灯就可以反复循环了。把程序下到仿真软件或者是开发板,进行仿...

用单片机控制的LED流水灯设计(电路、程序全部给出)
流水灯的魅力在于其动态变化,而软件编程则是关键。这里,我们将采用位操作法,通过顺序控制P1口的位,实现LED的循环点亮。比如,首先让LED 7亮起,通过SETB P1.6指令,紧接着LED 8亮起,执行CLR P1.7指令将其关闭。更深入的细节在于延时子程序的编写,如SETB\/P1.7后,调用延时函数DELAY,确保LED...

51单片机C程序实验LED灯:[2]左到右的流水灯
说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单 说明:本例有两种程序写法 第一种是入门级别比较基础的写法 先是依旧延时子程序,然后主程序利用直接赋值,与...

基于51单片机设计的花样流水灯设计
在51单片机中,可以通过定时器和端口控制实现花样流水灯的效果。硬件搭建时,需要将多个LED灯按照一定的顺序连接到51单片机的IO引脚上。每个LED灯配备一个适当电阻,连接到5V电源引脚和地线上,形成一个完整的电路。具体硬件搭建方法如下:(1)将多个LED灯依次连接组成电路链,每个LED的正极连接到51单片机...

如何用单片机实现流水灯,从一依次亮到八,再从八依次亮?
单片机流水灯C语言程序的源代码如下:include \/\/51系列单片机定义文件。define uchar unsigned char \/\/定义无符号字符。define uint unsigned int \/\/定义无符号整数。void delay(uint); \/\/声明延时函数。硬件特征 1、单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分...

51单片机中如何用汇编语言编写流水灯
第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。 第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这...

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) \/\/8个流水灯逐个闪动 { P1=~temp;delay(100); \/\/调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) \/\/8个流水灯反向逐个闪动 { P1=~temp;delay(100); \/\/调用延时函数 temp>>=1;} temp...

流水灯闪烁是怎么回事 单片机教你做简单任务
1、这个写程序的时候就给6个I\/O输出高电平或低电平就行了。2、先让6个I\/O口输出高电平或低电平,这个要看你的是什么单片机,51单片机都是默认的是高电平是亮,然后延时一会再让它输出低电平就行了,就这样一直循环。

相似回答