led流水灯

发布时间:2024-08-16  

#include 'reg52.h'


typedef unsigned char u8;

typedef unsigned int u16;


sbit ledD1=P2^0; //P20     

sbit ledD2=P2^1;

sbit ledD3=P2^2;

sbit ledD4=P2^3;

sbit ledD5=P2^4;

sbit ledD6=P2^5;

sbit ledD7=P2^6;

sbit ledD8=P2^7;//P27


void delay(u16 i) //延时函数

{

    while(i--)

    {

        //什么也不做

    };                            

}

void main()

{

         while(1)

         {

             ledD1=0;

            delay(60000);

            ledD1=1;

            delay(60000);


            ledD2=0;

            delay(60000);

            ledD2=1;

            delay(60000);


            ledD3=0;

            delay(60000);

            ledD3=1;

            delay(60000);


            ledD4=0;

            delay(60000);

            ledD4=1;

            delay(60000);


            ledD5=0;

            delay(60000);

            ledD5=1;

            delay(60000);


            ledD6=0;

            delay(60000);

            ledD6=1;

            delay(60000);


            ledD7=0;

            delay(60000);

            ledD7=1;

            delay(60000);


            ledD8=0;

            delay(60000);

            ledD8=1;

            delay(60000);



            

         }


}


我这个好象不对哈,哈哈。


刚根据视频画了一个流水灯的示意图。

代码我再琢磨琢磨


其实改进也很简单,让D7到D2依次亮就可以了。


#include 'reg52.h'

#include 'intrins.h'

typedef unsigned char u8;

typedef unsigned int u16;


sbit ledD1=P2^0;

sbit ledD2=P2^1;

sbit ledD3=P2^2;

sbit ledD4=P2^3;

sbit ledD5=P2^4;

sbit ledD6=P2^5;

sbit ledD7=P2^6;

sbit ledD8=P2^7;




void delay(u16 i) //延时函数

{

    while(i--)

    {

        //什么也不做

    };                            

}



void main()

{

    

    //D1到D8依次亮

    

    while(1)

    {


    ledD1=0;

    delay(60000);

    ledD1=1;

    delay(60000);


    ledD2=0;

    delay(60000);

    ledD2=1;

    delay(60000);


    ledD3=0;

    delay(60000);

    ledD3=1;

    delay(60000);


    ledD4=0;

    delay(60000);

    ledD4=1;

    delay(60000);


    ledD5=0;

    delay(60000);

    ledD5=1;

    delay(60000);


    ledD6=0;

    delay(60000);

    ledD6=1;

    delay(60000);


    ledD7=0;

    delay(60000);

    ledD7=1;

    delay(60000);


    ledD8=0;

    delay(60000);

    ledD8=1;

    delay(60000);


    //以上的代码就是D1到D8依次亮


    //D7到D2依次亮 


    ledD7=0;

    delay(60000);

    ledD7=1;

    delay(60000);


    ledD6=0;

    delay(60000);

    ledD6=1;

    delay(60000);


    ledD5=0;

    delay(60000);

    ledD5=1;

    delay(60000);


    ledD5=0;

    delay(60000);

    ledD5=1;

    delay(60000);


    ledD4=0;

    delay(60000);

    ledD4=1;

    delay(60000);

    

    ledD3=0;

    delay(60000);

    ledD3=1;

    delay(60000);    


    ledD2=0;

    delay(60000);

    ledD2=1;

    delay(60000);



    }



}


两个灯一起亮的流水灯


#include 'reg52.h'

#include 'intrins.h'

typedef unsigned char u8;

typedef unsigned int u16;


sbit ledD1=P2^0;

sbit ledD2=P2^1;

sbit ledD3=P2^2;

sbit ledD4=P2^3;

sbit ledD5=P2^4;

sbit ledD6=P2^5;

sbit ledD7=P2^6;

sbit ledD8=P2^7;




void delay(u16 i) //延时函数

{

    while(i--)

    {

        //什么也不做

    };                            

}



void main()

{

    

    //D1到D8依次亮

    

    while(1)

    {


    //D1 D2一起亮

    ledD1=0;

    ledD2=0;

    delay(60000);

    ledD1=1;

    ledD2=1;

    delay(60000);


    //D3 D4一起亮

    ledD3=0;

    ledD4=0;

    delay(60000);

    ledD3=1;

    ledD4=1;

    delay(60000);


    //D5 D6一起亮

    ledD5=0;

    ledD6=0;

    delay(60000);

    ledD5=1;

    ledD6=1;

    delay(60000);


    //D7 D8一起亮

    ledD7=0;

    ledD8=0;

    delay(60000);

    ledD7=1;

    ledD8=1;

    delay(60000);



    //D6 D5一起亮

    ledD5=0;

    ledD6=0;

    delay(60000);

    ledD5=1;

    ledD6=1;

    delay(60000);


    //D4 D3

    ledD3=0;

    ledD4=0;

    delay(60000);

    ledD3=1;

    ledD4=1;

    delay(60000);


    



    }



}



给自己留了一个作业,当D1到D8的时候灯移动的速度越来越快,而从D8到D2的时候是灯移动越来越慢。


#include 'reg52.h'

#include 'intrins.h'

typedef unsigned char u8;

typedef unsigned int u16;


sbit ledD1=P2^0;

sbit ledD2=P2^1;

sbit ledD3=P2^2;

sbit ledD4=P2^3;

sbit ledD5=P2^4;

sbit ledD6=P2^5;

sbit ledD7=P2^6;

sbit ledD8=P2^7;




void delay(u16 i) //延时函数

{

    while(i--)

    {

        //什么也不做

    };                            

}



void main()

{

    

    //D1到D8依次亮

    

    while(1)

    {


    ledD1=0;

    delay(60000);

    ledD1=1;

    delay(60000);


    ledD2=0;

    delay(55000);

    ledD2=1;

    delay(55000);


    ledD3=0;

    delay(50000);

    ledD3=1;

    delay(50000);


    ledD4=0;

    delay(45000);

    ledD4=1;

    delay(45000);


    ledD5=0;

    delay(40000);

    ledD5=1;

    delay(40000);


    ledD6=0;

    delay(35000);

    ledD6=1;

    delay(35000);


    ledD7=0;

    delay(30000);

    ledD7=1;

    delay(30000);


    ledD8=0;

    delay(25000);

    ledD8=1;

    delay(25000);


    //以上的代码就是D1到D7依次亮


    //D7到D2依次亮 


    ledD7=0;

    delay(30000);

    ledD7=1;

    delay(30000);


    ledD6=0;

    delay(35000);

    ledD6=1;

    delay(35000);


    ledD5=0;

    delay(40000);

    ledD5=1;

    delay(40000);


    ledD4=0;

    delay(45000);

    ledD4=1;

    delay(45000);


    ledD3=0;

    delay(50000);

    ledD3=1;

    delay(50000);

    

    ledD2=0;

    delay(55000);

    ledD2=1;

    delay(55000);    




    }



}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    51单片机流水灯电路图大全;  51单片机流水灯电路图(一)   本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理......
    单片机控制花样流水灯原理图及程序;  AT89C51单片机流水灯c语言程序   1、首先先在proteus画出仿真图,方便仿真程序   2、下面来编写程序,先来写入头函数   3、根据......
    led流水灯(2024-08-16)
    );     ledD8=1;     delay(60000);     //以上的代码就是D1D8依次亮     //D7D2依次亮      ledD7=0;     delay......
    用c语言编写单片机流水灯程序详解;用C语言编写的单片机流水灯程序的软件和硬件,可以让八个LED轮流点亮,每个灯点亮和熄灭时间均为1秒。是利用单片机I/O口控制外部设备的简单例子。当然,在你......
    讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。 1 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合......
    51单片机(入门保姆级教程)——LED闪烁及流水灯;一、LED基本原理和知识 图1 LED共阳极原理图 1.1 LED共阴极和共阳极的含义 LED的最小单元是发光二极管。发光......
    ~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机......
    LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机......
    如何用用C语言编写的单片机来控制流水灯;用C语言编写的单片机流水灯程序的软件和硬件,可以让八个LED轮流点亮,每个灯点亮和熄灭时间均为1秒。是利用单片机I/O口控制外部设备的简单例子。当然,在你......
    80C51单片机-LED流水灯效果;本文将介绍一个基于8051单片机的跑马灯实验,通过编写代码实现LED流水灯效果。这个实验将使用8051单片机的P2口来控制8个LED灯,实现流水灯效果。 实验......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>