找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的心形流水灯

[复制链接]
跳转到指定楼层
楼主

===========代码(Keil uVision4编辑,编译)=========================
#include<reg51.h>

#define u8 unsigned char
#define u16 unsigned int
#define temp_ON        0xc0
#define temp_OFF 0xff
u8 U_TO_D[8]={0xfb,0xf1,0xe0,0xc0,0xf7,0xe3,0xc1,0xc0};
u8 D_TO_U[8]={0xdf,0xce,0xc4,0xc0,0xfe,0xdc,0xc8,0xc0};
u8 temp,temp1,temp2;

void delay_ms(u16 n)
{
        u16 i,j;
        for(i=0;i<n;i++)
                for(j=0;j<113;j++)
                        ;
}

void all_OFF()
{
        P0=temp_OFF;
        P1=temp_OFF;
        P2=temp_OFF;
        P3=temp_OFF;
}

void up_to_down()
{  
        u16 i;         
        for(i=0;i<4;i++)
        {
                P0=U_TO_D[i];
                P3=U_TO_D[i+4];
                delay_ms(300);
        }
        temp1=0xfe,temp2=0xdf;
        for(i=0;i<6;i++)
        {
                P1=temp1,P2=temp2;
                delay_ms(300);
                temp1=temp1-(2<<i);
                temp2=temp2-(16>>i);       
        }
        all_OFF();
        delay_ms(300);
}

void down_to_up()
{
        u16 i;
        temp1=0xdf,temp2=0xfe;
        for(i=0;i<6;i++)
        {
                P1=temp1,P2=temp2;
                delay_ms(300);
                temp1=temp1-(16>>i);
                temp2=temp2-(2<<i);       
        }
        for(i=0;i<4;i++)
        {
                P0=D_TO_U[i];
                P3=D_TO_U[i+4];
                delay_ms(300);
        }       
        all_OFF();
        delay_ms(300);
}

void left_to_right()
{
   u16 i;
   temp1=0xdf,temp2=0xfe;

   for(i=0;i<6;i++)
   {
                    P0=temp1,P1=temp2;
                delay_ms(300);
                temp1=temp1-(16>>i);
                temp2=temp2-(2<<i);
   }
   temp1=0xdf,temp2=0xfe;
   for(i=0;i<6;i++)
   {
                    P3=temp1,P2=temp2;       
                delay_ms(300);
                temp1=temp1-(16>>i);
                temp2=temp2-(2<<i);
   }
   all_OFF();
   delay_ms(300);

}

void right_to_left()
{
   u16 i;
   temp1=0xfe,temp2=0xdf;
   for(i=0;i<6;i++)
   {
                    P3=temp1,P2=temp2;
                delay_ms(300);
                temp1=temp1-(2<<i);
                temp2=temp2-(16>>i);
   }
   temp1=0xfe,temp2=0xdf;
   for(i=0;i<6;i++)
   {
                    P0=temp1,P1=temp2;
                delay_ms(300);
                temp1=temp1-(2<<i);
                temp2=temp2-(16>>i);               
   }
   all_OFF();
   delay_ms(300);
}

void clockwise()
{
        u16 i;
        temp=0xfe;
        for(i=0;i<6;i++)
        {
                 P0=temp;
                delay_ms(300);
                temp=temp-(2<<i);
        }
        temp=0xfe;
                for(i=0;i<6;i++)
        {
                 P1=temp;
                delay_ms(300);
                temp=temp-(2<<i);
        }
        temp=0xfe;
        for(i=0;i<6;i++)
        {
                 P2=temp;
                delay_ms(300);
                temp=temp-(2<<i);
        }
        temp=0xfe;
        for(i=0;i<6;i++)
        {
                 P3=temp;
                delay_ms(300);
                temp=temp-(2<<i);
        }
        all_OFF();
        delay_ms(300);
       
}

void anticlockwise()
{
           u16 i;
        temp=0xdf;
           for(i=0;i<6;i++)
        {
                   P3=temp;
                delay_ms(300);
                temp=temp-(16>>i);
        }

        temp=0xdf;
           for(i=0;i<6;i++)
        {
                   P2=temp;
                delay_ms(300);
                temp=temp-(16>>i);
        }

        temp=0xdf;
           for(i=0;i<6;i++)
        {
                   P1=temp;
                delay_ms(300);
                temp=temp-(16>>i);
        }

        temp=0xdf;
           for(i=0;i<6;i++)
        {
                   P0=temp;
                delay_ms(300);
                temp=temp-(16>>i);
        }

        all_OFF();
        delay_ms(300);
}

void main()
{
           while(1)
           {
                   up_to_down();
                   down_to_up();
                left_to_right();
                right_to_left();
                   clockwise();
                anticlockwise();
        }

}

led1_1.jpg (790.86 KB, 下载次数: 21)

led1_1.jpg

led1_1.zip

141.29 KB, 下载次数: 20, 下载积分: 黑币 -5

心形灯源文件

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:399179 发表于 2018-9-18 10:12 来自手机 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

板凳
ID:89286 发表于 2018-9-18 17:55 | 只看该作者
thanks for sharing
回复

使用道具 举报

地板
ID:313328 发表于 2018-9-18 18:12 | 只看该作者
感谢,非常好的
回复

使用道具 举报

5#
ID:264913 发表于 2018-10-3 13:31 | 只看该作者
不得不说,最后那个压缩包有点。。。。。。。。。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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