0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机的花样流水灯设计

王子变青蛙_35400519 来源:王子变青蛙_35400519 作者:王子变青蛙_35400 2022-06-28 10:29 次阅读

一、前言

二、模块介绍及原理说明

三、硬件连接

四、程序说明

五、效果演示

六、代码链接


一、前言

花样流水灯就是让LED灯按照一定规律进行各种变化,流水灯在生活中也随处可见,例如在建筑物的棱角上装上流水灯,可以起到变换闪烁达到美不胜收的效果。此设计使用16个LED灯,有四种花样,循环往复显示,每隔15S左右的时间进行一次花样变换。也可手动切换花样。单片机系统装有按键复位电路可直接复位电路。

二、模块介绍及原理说明

单片机最小系统:

单片机最小系统完成系统运行的最基本电路,单片机最小系统可配合其他模块或自行搭建电路完成各种实验功能,单片机最小系统接口设计灵活,电路简洁,可完成基本的驱动任务。单片机最小系统包括晶振电路、复位电路。复位电路我使用按键复位,方便系统的重启。

三、硬件连接

本设计使用P0、P2控制LED灯由于LED灯所需电量少,所以不需要加驱动就可以完成显示。P3^0为按键控制端口,用于控制花样灯的切换。

仿真连接

实物连接

四、程序说明

主程序,用以调用不同的函数。

main()
{
  Timer0Init();  //定时器0初始化
  P2=0x00;//端口初始化
  P0=0x00;
 while(1)
      {
         key();	
				
		 	  if(num==0)
			   {
				   P2=0x00;
                   P0=0x00;
				 }
	       else if(num==1)
		           	num1();//花样一
		     else if(num==2)         
		           	num2();	//花样二            
		     else if(num==3)
		           	num3();
		     else if(num==4) 
		         	  num4();     
      }
}

定时器函数,用来控制不同花样切换的时间,更加准确,此设计控制每种花样的显示时间为15S,可根据喜好自己调节。

void Timer0() interrupt 1
{
	TH0=(65536-6000)/256;	//给定时器赋初值,定时10ms
	TL0=(65536-6000)%256;
	ssec++;
	if(ssec>=100)       	  //毫秒	  时钟
	  {
		ssec=0;
		sec++; 
		if(sec>=15)			  //秒
		{
			sec=0;
			num++;
		}
		if(num==5)
			num=1;
	  } 
}	

花样表格函数,将各种花样流水灯分开放入表格中,在主函数中进行调用。通过查表的方式显示各种花样,实用性更强,在花样较多时也方便进行管理。花样相对简单,可自己进行编写。

unsigned char code seg1[]={
	            0x7f,0xbf,0xdf,0xef,
						  0xf7,0xfb,0xfd,0xfe,
						  0xff,0xff,0x00,0x00,
						  0x55,0x55,0xaa,0xaa
						  };   //第一种

unsigned char code seg2[]={0x01,0x03,0x07,0x0f,
						  0x1f,0x3f,0x7f,0xff,
						  0xff,0xff,0xff,0xff,
						  0xff,0xff,0xff,0xff
						  };
unsigned char code seg3[]={0x00,0x00,0x00,0x00,
						  0x00,0x00,0x00,0x00,
						  0x80,0xc0,0xe0,0xf0,
						  0xf8,0xfc,0xfe,0xff,
						  };	//第二种


unsigned char code seg4[]={0x01,0x03,0x07,0x0f,
						  0x1f,0x3f,0x7f,0xff,
						  0xff,0x7f,0x3f,0x1f,
						  0x0f,0x07,0x03,0x01
						  };
unsigned char code seg5[]={
	            0x01,0x03,0x07,0x0f,
						  0x1f,0x3f,0x7f,0xff,
						  0xff,0x7f,0x3f,0x1f,
						  0x0f,0x07,0x03,0x01
						  }; //第三种
unsigned char code seg6[]={
        0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,
				0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
				0x81,0x82,0x84,0x88,0x90,0xa0,0xc0,
				0xc1,0xc2,0xc4,0xc8,0xd0,0xe0,
				0xe1,0xe2,0xe4,0xe8,0xf0,
				0xf1,0xf2,0xf4,0xf8,
				0xf9,0xfa,0xfc,
				0xfd,0xfe,
				0xff

						  };
unsigned char code seg7[]={
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
				0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x81,0x41,0x21,0x11,0x09,0x05,0x03,
				0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x83,0x43,0x23,0x13,0x0b,0x07,
				0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x87,0x47,0x27,0x17,0x0f,
				0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x8f,0x4f,0x2f,0x1f,
				0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x9f,0x5f,0x3f,
				0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0xbf,0x7f,
				0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0xff,
				0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
				0xff,0xff,0xff,0xff,0xff,0xff,0xff,
				0xff,0xff,0xff,0xff,0xff,0xff,
				0xff,0xff,0xff,0xff,0xff,
				0xff,0xff,0xff,0xff,
				0xff,0xff,0xff,
				0xff,0xff,
				0xff,
						  }; //第四种

按键函数,可以通过按键进行LED灯花样的切换,按键函数中需要加入消抖函数,以防止按键误触。

void key()
{
	    if(key1==0)  //按键控制
	       {
	 	         delay(10);
		         if(key1==0)
		         {
		            num++;
		            if(num==5) num=0;
		         }
			       while(!key1);	 //检测按键是否松开
	       }
    	
}

五、效果演示

仿真演示https://live.csdn.net/v/219964

实物演示https://live.csdn.net/v/219965

六、代码链接

欢迎留言评论分享自己的看法,如有错误欢迎指正。关注公众号:“小小创客”回复“花样流水灯“获得源码及仿真。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23100

    浏览量

    657552
  • 单片机
    +关注

    关注

    6030

    文章

    44504

    浏览量

    632312
  • 51单片机
    +关注

    关注

    273

    文章

    5697

    浏览量

    123056
  • 流水灯
    +关注

    关注

    21

    文章

    432

    浏览量

    59616
收藏 人收藏

    评论

    相关推荐

    基于51单片机的跑马灯/流水灯系统

    具体实现功能(1)9种LED流水灯模式通过按键进行切换,数码管显示流水灯模式。(2)通过加减按键可以切换每种LED流水灯的速度。仿真演示视频:设计介绍51
    的头像 发表于 10-22 14:12 134次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的跑马灯/<b class='flag-5'>流水灯</b>系统

    51单片机驱动

    电子发烧友网站提供《51单片机驱动.exe》资料免费下载
    发表于 09-20 11:46 3次下载

    单片机POV LED流水灯制作

    电子发烧友网站提供《单片机POV LED流水灯制作.docx》资料免费下载
    发表于 05-28 14:34 3次下载

    51单片机流水灯制作

    流水灯是学习51单片机的一个基本项目,是我们对单片机IO口输出认识的基本项目。当然学会了花样流水灯
    的头像 发表于 02-26 10:06 1461次阅读
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>流水灯</b>制作

    单片机编程实例介绍

    是指使用特定的编程语言编写控制单片机工作的程序。 在本文中,将为您提供一些常见的单片机编程实例,包括基础应用、传感器应用、通信应用等方面的案例。 一、基础应用 LED流水灯 流水灯是最
    的头像 发表于 01-16 09:37 2541次阅读

    基于51单片机的倒车雷达的设计

    电子发烧友网站提供《基于51单片机的倒车雷达的设计.rar》资料免费下载
    发表于 01-12 09:54 3次下载

    基于51单片机的声控灯设计

    电子发烧友网站提供《基于51单片机的声控灯设计.rar》资料免费下载
    发表于 01-07 09:37 4次下载

    基于51单片机的锅炉监测设计

    电子发烧友网站提供《基于51单片机的锅炉监测设计.rar》资料免费下载
    发表于 01-05 10:49 0次下载

    基于51单片机的电机控制设计

    电子发烧友网站提供《基于51单片机的电机控制设计.rar》资料免费下载
    发表于 01-03 11:19 4次下载

    基于51单片机的光控小夜灯设计

    电子发烧友网站提供《基于51单片机的光控小夜灯设计.rar》资料免费下载
    发表于 01-03 11:13 0次下载

    基于51单片机的倒车雷达的设计

    电子发烧友网站提供《基于51单片机的倒车雷达的设计.rar》资料免费下载
    发表于 01-03 10:24 4次下载

    stc51单片机怎么烧录

    烧录STC51单片机是一项常见的操作,下面将详细介绍如何进行烧录以及所需的步骤和工具。本文将按照如下顺序进行详解: STC51单片机简介 硬件烧录工具介绍 硬件烧录步骤 软件烧录工具介
    的头像 发表于 01-02 17:41 2961次阅读

    基于51单片机的电子闹钟设计

    基于51单片机的电子闹钟设计(实物)
    发表于 01-02 09:58 7次下载

    51单片机定时器定时1秒程序流水灯结果分析

    流水灯的设计原理、实现步骤和结果分析。 一、设计原理 在51单片机中,定时器常用的工作方式有两种:定时器模式和计数器模式。定时器模式是指定时器的计数值递增至最大值后重新计数,从而周期性产生中断;计数器模式是指定时器的
    的头像 发表于 12-26 14:57 6445次阅读

    分享花样流水灯源程序

    电子发烧友网站提供《分享花样流水灯源程序.doc》资料免费下载
    发表于 11-18 09:59 3次下载
    分享<b class='flag-5'>花样</b><b class='flag-5'>流水灯</b>源程序