16-基于单片机的心形流水灯

发布者:静静思索最新更新时间:2021-09-18 来源: eefocus关键字:单片机  心形流水灯 手机看文章 扫描二维码
随时随地手机看文章

具体实现功能

系统由STC89C51/52单片机+按键模块+LED灯模块+电源构成。


具体功能:


(1)至少10个发光管4种花样自动变换,循环往复;


(2)彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍;


(3)系统复位清零开关。


设计背景

霓虹灯是城市的美容师,每当夜幕降临时,华灯初上,五颜六色的霓虹灯就把城市装扮得格外美丽。LED数码灯带采用全新的结构和专有技术,主体由高亮度发光二极管(简称LED)通过特殊的专利结构进行连接,运用特有的光学技术与专有的包覆层设计而形成。主要特性是节能、环保、防震、防水,其最大的特点就是发光均匀,360度通体发光,在工作状态下从外看不到LED的发光点,与传统霓虹灯的发光效果完全相同。因此,利用LED发光二极管设计彩色霓虹灯是一个不错的选择。


本设计采用STC89C51单片机的彩灯控制系统,实现对LED彩灯的控制。根据用户需要可以编写若干种亮灯方式,并实现了手动控制及自动控制,各种亮灯时间的不同,在不同时刻输出灯亮或灯灭的控制信号,驱动各种颜色的灯亮或灭。亮灯方式多,用户可以根据不同场合和时间来调节亮灯频率和亮灯时间。彩灯控制系统得到了广泛应用。


硬件设计

如图是本系统的硬件设计方案,具体地,硬件电路由以下模块构成:


(1)单片机最小系统。用于驱动和控制其他模块,以实现整体功能,其以STC89C51单片机为核心芯片,并辅以复位电路和晶振电路。


(2)按键模块。用于实现自动模式与手动模式。


(4)LED排灯模块。心形排列,用以实现多种花样电路;


(5)电源模块。用于整个系统的供电。

软件设计

根据本文设计需求,在硬件电路设计的基础上,需要通过软件编程实现的具体功能:


(1)驱动各个模块工作,实现LED灯点亮;


(2)按键设置功能。实现彩灯花样变换的快慢节拍手动和自动方式控制;手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍;


(3)花样灯实现。实现至少10个发光管4种花样自动变换,循环往复。


具体设计流程如图所示。

原理图

本系统原理图设计采用Altium Designer19,具体如图。

程序

本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现

本设计利用protues8.7软件实现仿真设计,具体如图。

关键字:单片机  心形流水灯 引用地址:16-基于单片机的心形流水灯

上一篇:17-基于51单片机低频信号发生器
下一篇:15-基于51单片机的数字频率计设计

推荐阅读最新更新时间:2024-11-16 21:38

呼吸灯(PWM)+普中51单片机+江科大自化协
1 实验原理 PWM(Pulse Width Modulation)脉冲宽度调制,一种用数字信号控制模拟量的方法,因此在控制领域应用非常广泛。所谓PWM信号就是调整波形的占空比得到一系列矩形脉冲。PWM信号产生的原理是基于面积等效原理。即冲量相同的形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。 2 参考程序 #include REGX52.H sbit LED=P2^0; void Delay(unsigned int i) { while(i--); } void main() { unsigned char Time,i; while(1) { for(Time=0;Time
[单片机]
呼吸灯(PWM)+普中51<font color='red'>单片机</font>+江科大自化协
单片机控制无刷电机初步调试成果和学习经历
调了一天多的无刷电机,用的无刷电调,其实本来应该是用32做的,但是不知道原理, 于是用了比较熟悉的51单片剂一下来进行调试 一下,查询的资料,还是蛮简单的,但是实际操作并没有那么容易, 在网上查也没有能用的程序,尤其是51,因为基本用无刷的都是无人机 四六轴。所以今天贴上我的程序,分享给大家,希望能对各位减少时间学习,快速上手,本程序实现的功能是在第一次给无刷电机上电后,首先拉高油门,然后降低油门,最后满开油门,注意,,,,注意,,,,注意,一定不要用带螺旋桨的无刷电机来实验,危险,开机后会全速运行,我开全速是为了用涵道,所以全速,, 废话不多说,贴程序 51单片机源程序如下: /**********************
[单片机]
<font color='red'>单片机</font>控制无刷电机初步调试成果和学习经历
怎样解决pic单片机读修改写问题
关于这类似的问题你可以自己先做块板子动手试下,相信应该也不是很难用IO口模拟I2C通信,实现方式是端口外接上拉电阻,输出寄存器设置为零,然后改变方向寄存器实现0和1的转换,设置为输出则为0,输出设置为1,在上拉电阻作用下将端口拉高,端口其他IO口做控制用,在做I2C通信时候发现I2C总线输出0时结果输出总是为高,用示波器观察最后发现问题是,输出寄存器设置成0后,在写端口其它IO口的时候,是将整个端口值都会来,然后修改写的一位,整个端口写一遍,由于I2C的IO口有上拉电阻,每次读回来的值都是1,写整个端口的时候就把输出寄存器的值改写成1了,导致输出不能为零的问题。解决办法是,设置端口的影子寄存器,每次要修改端口任意IO口值时,都是先
[单片机]
卡尔曼滤波在单片机上的使用
#ifndef _KALMAN_H_ #define _KALMAN_H_ extern KalmanGain;// 卡尔曼增益 extern EstimateCovariance;//估计协方差 extern MeasureCovariance;//测量协方差 extern EstimateValue;//估计值 extern void KalmanFilterInit(void); extern KalmanFilter( Measure); #endif #include config.h #include math.h KalmanGain;// 卡尔曼增益 Estimat
[单片机]
卡尔曼滤波在<font color='red'>单片机</font>上的使用
MSP430单片机硬件知识-5种低功耗模式
5种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVE MODE)模式。其中AM耗电最大,LPM4耗电最省,仅为0.1uA。另外工作电压对功耗的影响:电压越低功耗也越低。 系统PUC复位后,MSP430进入AM状态。在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM模式,再由AM模式选择进入相应的低功耗模式,如此类推。 工作模式的选择由状态寄存器SR中的SCG1、SCG0、OSCOFF、CPUOFF位控制。由于在CPU的头文件中对CPU内的各寄存器和模块的各种工作模式都作了详尽的定义,所以编程时尽可能的利用就
[单片机]
ARM-Linux开发与MCU开发有何不同?
针对ARM-Linux程序的开发,主要分为三类:应用程序开发、驱动程序开发、系统内核开发,针对不同种类的软件开发,有其不同的特点。今天我们来看看ARM-Linux开发和MCU开发的不同点,以及ARM-Linux的基本开发环境。 1. ARM-Linux应用开发和单片机开发的不同 这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用操作系统,也称为裸机编程,这种开发方式主要应用于一些低端的ARM芯片上,其开发过程非常类似单片机,这里不多叙述。还有一种是在ARM芯片上运行操作系统,对于硬件的操作需要编写相应的驱动程序,应用开发则是基于操作系统的,这种方式的嵌入式应用开发与单片机开发
[单片机]
基于单片机的具有通讯口的智能温控表
1 引言 温控表已广泛应用于工业控制等诸多领域,本文介绍的具有计算机通讯功能的智能温控表是一种新颖的自动化仪表,它以单片机AT89C52为核心,采用电压/频率转换技术和RS-485通信接口芯片MAX487,具有测量精度高、可靠性好、抗干扰性能强、可实现计算机网络控制等优点,可广泛应用于冶金、纺织、化工、医疗等行业。它具有-200~+500%26;#176;C范围的温度测量和自动控制,是老式温控表的替代产品,市场前景广阔。 2 系统硬件设计 系统硬件框图如图1所示。   系统接通220V交流电源后,通过稳压电路(7805、7905)产生%26;#177;5V直流工作电源,以满足本系统中集成电路工作需要,系统的遥测电路开始工
[应用]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved