基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计
基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计
必看!!视频讲解
基于51单片机的LED彩灯霓虹灯心形流水灯设计
这里写目录标题
- 1 开发环境
- 2 功能说明介绍
- 3 仿真图
- 4 程序
- 5 原理图
- 7 设计报告
- 7.1 设计背景与意义
- 7.2 设计目的
- 7.3 本文结构安排
- 8 资料清单下载链接
1 开发环境
仿真图:proteus8.9以上
程序代码:KEIL4/KEIL5
原理图:AD
设计编号:A0005
2 功能说明介绍
结合实际情况,基于51单片机设计一个LED彩灯控制器设计。该系统应满足的功能要求为:
具体功能:
(1)至少10个发光管4种花样自动变换,循环往复;
(2)彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;
(3)自动控制方式每15秒变换一次,1分钟循环一遍;
(4)系统复位清零开关;操作简单、功能完善、精确度高。
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。霓虹灯是城市的美容师,每当夜幕降临时,华灯初上,五颜六色的霓虹灯就把城市装扮得格外美丽。LED数码灯带采用全新的结构和专有技术,主体由高亮度发光二极管(简称LED)通过特殊的专利结构进行连接,运用特有的光学技术与专有的包覆层设计而形成。主要特性是节能、环保、防震、防水,其最大的特点就是发光均匀,360度通体发光,在工作状态下从外看不到LED的发光点,与传统霓虹灯的发光效果完全相同。但目前市场上的彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外,从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。
3 仿真图
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS16位单片机,片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器,期间采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用16位中央处理器和Flash存储单元,功能强大的AT89C51单片机可灵活应用于各种控制领域。
AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个1 6位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
本系统中央控制器采用的单片机AT89C51,复位电路采用上电复位电路。外接的晶振为12MHz晶振。
4 程序
工程文件使用Keil4/keil5打开
代码
部分代码
#include <reg52.h> //包含头文件#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define SPEED 10//流水灯的速度sbit key0 = P2^0; //定义手动控制按键sbit key1 = P2^1; //定义自动控制按键uint js = 0,flag_auto=0;//定义计数15秒,自动变花样标志位uchar Run_mode=0;/****延时****/void delay(uint i){uint j=1000;while(i--){j=1000;while(j--);}}void delayms(uint z) //毫秒{ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--); }uchar LED_WATER1(){ static uchar temp1=0x01,temp2=0x80; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_cror_(temp2,1); delay(SPEED); if(temp1==0x01)//循环了一圈 {return 1;} else return 0;}uchar LED_WATER2(){ static uchar temp1=0x01,temp2=0x01; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_crol_(temp2,1); delay(SPEED); if(temp1==0x01) {return 1;} else return 0;}uchar LED_WATER3(){ static uchar temp1=0x07,temp2=0x07; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_crol_(temp2,1); delay(SPEED); if(temp1==0x07) {return 1;} else return 0;}uchar LED_WATER4(){ static uchar temp1=0x07,temp2=0xe0; P1=~temp1; temp1=_crol_(temp1,1); P3=~temp2; temp2=_cror_(temp2,1); delay(SPEED); if(temp1==0x07)//循环了一圈 {return 1;} else return 0;}void timer0() interrupt 1 using 1 //定时器0中断服务函数{ TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872 TL0=(65536-45872)%256; js++; //叠加20次 是一秒 if(js==300) { js=0; //清空 flag_auto=flag_auto+1; //产生15s的倒计时 if(flag_auto>3) flag_auto=1; //限幅,最多4个花样 }}//主函数void main(){ uchar num=0; Timer0_init(); //定时器初始化LED_WATER1();Run_mode=0; while(1) { if(key1==0) //自动控制按键 { delayms(3); //去除按键抖动 if(key1==0) { while(!key1); //以上表示按下开始按键 flag_auto=0; //清零 TR0=1; //开启定时器 while(1) { if(key0==0) //调节到手动模式 { TR0=0; //关闭定时器 js=0; flag_auto=0;//计数、自动换花样变量清零 break; //跳出 } switch(flag_auto)//花样自动变化 { case 0: LED_WATER1(); break; case 1: LED_WATER2(); break; case 2: LED_WATER3(); break; case 3: LED_WATER4(); break; } } } } if(key0==0) //手动控制按键 { delayms(3); //去除按键抖动 if(key0==0) { while(1) { if(key1==0) //调节到自动模式 { TR0=0; //关闭定时器 js=0; flag_auto=0;//计数、自动换花样变量清零 break; //跳出 } if(key0==0) ++flag_auto;//换花样 if(flag_auto>3) flag_auto=1; //限幅,最多4个花样 switch(flag_auto) //花样手动变化 { case 0: LED_WATER1(); break; case 1: LED_WATER2(); break; case 2: LED_WATER3(); break; case 3: LED_WATER4(); break; } } } } }}
。主程序流程图如下图所示。
在整个报警系统工作中,烟雾浓度信息经ADC0832转换处理后,由单片机进行分析处理,判断系统是否启动报警。主程序还包括LED八段式数码管浓度字符显示功能、手动报警功能、报警浓度设定功能,中断子程序等,使报警器功能更加完善,更加方便。
预热后,程序就开始执行初始化子程序,初始化实现的功能是I/O口输入、输出状态设定, 寄存器初始化,中断功能等。首先,设定定时初值为50ms,利用IAP 写入EEPROM,作为取值间隔。然后,设置定时器0,选择方式1。方式1状态下,定时器的工作寄存器TH1、TL1,是全16位参与操作。接下来,定时器0中断的允许位置1,打开定时器0,关闭蜂鸣器,开启绿灯,设置报警限初值。
5 原理图
原理图由AD绘制,原理图和仿真图有出入,原理图需要电源,电源开关模块。此设计资料详细,硬件手册资料图片详细,不对硬件调试负责,做实物需要一定的基本功。主控芯片可以换为STC89C51/STC89C52
如图3.1是本系统的硬件设计方案,具体地,硬件电路由以下模块构成:
(1)单片机最小系统。用于驱动和控制其他模块,以实现整体功能,其以STC89C51单片机为核心芯片,并辅以复位电路和晶振电路。
(2)按键模块。用于实现自动模式与手动模式。
(4)LED排灯模块。心形排列,用以实现多种花样电路;
(5)电源模块。用于整个系统的供电。
7 设计报告
7.1 设计背景与意义
霓虹灯是城市的美容师,每当夜幕降临时,华灯初上,五颜六色的霓虹灯就把城市装扮得格外美丽。LED数码灯带采用全新的结构和专有技术,主体由高亮度发光二极管(简称LED)通过特殊的专利结构进行连接,运用特有的光学技术与专有的包覆层设计而形成。主要特性是节能、环保、防震、防水,其最大的特点就是发光均匀,360度通体发光,在工作状态下从外看不到LED的发光点,与传统霓虹灯的发光效果完全相同。因此,利用LED发光二极管设计彩色霓虹灯是一个不错的选择。
本设计采用STC89C51单片机的彩灯控制系统,实现对LED彩灯的控制。根据用户需要可以编写若干种亮灯方式,并实现了手动控制及自动控制,各种亮灯时间的不同,在不同时刻输出灯亮或灯灭的控制信号,驱动各种颜色的灯亮或灭。亮灯方式多,用户可以根据不同场合和时间来调节亮灯频率和亮灯时间。彩灯控制系统得到了广泛应用。
7.2 设计目的
(1)巩固和加深对单片机原理和接口技术知识的理解;
(2)培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;
(3)学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;
(4)掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;
(5) 能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图、仿真图和流程图。
7.3 本文结构安排
本文围绕着基于51单片机的LED彩灯控制器展开设计,以LED花样灯需求为出发点,首先明确了研究背景与意义,介绍了设计目的,并论述了设计要求及设计内容,接下来的几章将具体展开相关设计与研究:
第二章介绍系统总体方案及相关理论知识,重点阐述了系统功能需求和系统方案论证,接着简要介绍了系统硬件及软件基本知识。
第三章重点展开硬件系统设计,首先明确硬件电路设计的思路及框架。接着依次介绍了:单片机最小系统、按键电路、LED灯电路、电源电路等。通过对以上重点电路的介绍,强化了硬件电路设计的细节和重点。
第四章展开软件系统设计,通过对软件设计进行需求分析,明确软件设计的目的与需求,进一步通过程序流程图展示设计思路及框架。
第五章介绍仿真实现步骤,特别是仿真电路实现的流程和仿真测试,完美实现了设计需求及目标。
第六章总结全文,总结本文所做的工作及贡献,并根据存在的问题展望此课题今后的研究方向。
8 资料清单下载链接
见文章视频
本资料下载链接
基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计相关推荐
- 基于51单片机的心形流水灯
心形流水灯套件 1 设计目的 (1)掌握单片机芯片AT89C51的基本功能和使用. (2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用. (3)了解音乐的基本知识. (4)提高数字电子电 ...
- 【DIY】多模式51单片机心形流水灯+呼吸灯+蜂鸣器音乐
目录: 总体设计 1.基础硬件DIY设计 1)整体原理图 2)PCB电路 3)3D_PCB 2.单片机程序设计 1)呼吸灯[简易模拟PWM] 2)蜂鸣器音乐 3)几种简易流水灯方式 3.效果展示 1) ...
- 立创开源 51编程炫酷心形流水灯
随着AI人工智能和物联网的兴起下一个信息革命即将到来,信息时代的AI和物联网无意识地扩散到生产和生活各个领域.物联网是用于扩展通信网络和互联网的应用程序.使用传感技术和智能设备来感知和控制物理世界.它 ...
- 【造物笔记】基于51单片机的心形流水灯
记录一下首个独立完成的小项目(虽然没有什么技术含量) 硬件方面:入门级的单片机点灯电路 软件方面:主要利用了c语言的位操作 整个项目的下载链接放在了文章最后 一.成品展示 正面 反面 二.元器件清单 ...
- 基于STC89C51单片机设计的心形流水灯软件代码部分
硬件电路板 (正反面) 根据PCB电路板对LED灯对应的引脚进行定义 声明LED灯的控制引脚 //LED灯引脚,沿逆时针定义sbit LED1=P0^0; sbit LED2=P0^1;sbit ...
- 【单片机】心形流水灯の制作指南(保姆级)
✌ 作者简介:盐焗小星球_wyb,一名电子信息大学生.
- 【单片机】心形流水灯——27种流水方式
✌ 作者简介:盐焗小星球_wyb,一名在读的电子信息工程专业大学生.
- c语言爱心灯制作步骤,基于51单片机设计的心形花样灯(PCB+Proteus仿真+源程序+设计报告)...
设计了一个基于51单片机的心形花样灯电路,该电路可以实现32个LED灯循环闪亮.依次熄灭.对角闪亮.对角熄灭.间隔闪亮.间隔熄灭等多种功能,可以显示42种不同形式的变化效果.该电路主要由单片机芯片ST ...
- 基于51单片机的花样流水灯设计(源码+仿真+设计报告)
资料编号:113 采用51单片机的IO控制多个LED灯,实现多种模式的流水风,全套资料齐全:具体功能请看下方演示视频 113-基于51单片机的花样流水灯设计(源码+仿真+设计报告) 单片机最小系统介绍 ...
最新文章
- java中的权限修饰符_Java的权限修饰符的区别和用法总结
- sqlserver 无法远程连接到服务器,SQLServer2019无法连接远程服务器
- 如何优雅的分析 Redis 里存了啥?
- java 容器、二叉树操作、107
- 线性表的顺序存储结构(数据结构篇)
- 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析
- Day07-函数(2)
- MongoDB(window安装及服务配置)
- django 1.8 官方文档翻译: 3-5-1 使用Django输出CSV
- 墨菲定律-感悟甚多,出于程序员用xmind做的
- 严重的PHP缺陷可导致QNAP NAS 设备遭RCE攻击
- 4.4 数据的寻址方式(立即寻址、直接寻址、间接寻址、寄存器寻址、相对地址)
- linux如何把文件导出到ftp,Linux如何利用ssh传送文件至FTP空间
- 解除pdf文件打印限制
- 的统一,展现出更深远的思想,使读者领会更深的道理。 语言优美:所谓优美,就是指散文的语言清新明丽(也美丽
- 2022 年杭电多校第八场补题记录
- 腾讯云轻量应用服务器系统盘不够用怎么挂载云硬盘?
- 离职后心生不满、医院前网管“炫技性报复”
- Java之XML解析-使用dom(org.w3c.dom)解析XML
- 新媒体运营教程:如何设计SEM账户结构!