89C51的LED彩灯控制器设计

2018-01-16来源: eefocus关键字:89C51  LED彩灯  控制器

1引言
  随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰 富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用 彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态 参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。

  本文提出了一种基于AT89C51 单片机 的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。在主控模块上设有8个按键和5位七段码LED显示器,根据用户需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为5 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。该新型LED彩灯及其控制器是上海某公司委托开发产品,产品实际应用效果较好,亮灯模式多,用户可以根据不同场合和时间来调节亮灯频率和亮灯时间。与普通LED彩灯相比,具有体积小、价格低、低能耗等优点。

2系统功能
  新型LED彩灯分为2部分,即彩灯控制器(主控模块)和管内LED板模块(受控模块)。彩灯控制器可直接与220 V交流市电相连接,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供12 V工作电源,另一方面为主控模块 单片机 系统(彩灯控制器)提供5 V工作电源。整个系统工作由软件程序控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。

  上电后系统经过初始化,查询是否有功能切换键按下:有,则进入用户设定模式状态;无,则进入默认缺省工作状态。在用户设定模式状态下,用户可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间Ti、频率Fi参数,如果用户想进入缺省状态模式,只需按一下功能切换键即可跳入缺省模式,程序会自动顺序调用亮灯模式;在缺省工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序Model_i顺序调用往下走,从第Model_1模式开始工作,自Model_1到Model_2……到Mod el_n为一个亮灯周期,然后再回到Model_1循环继续工作,同样如果想进入用户设定模式状态,只需按下功能切换键即可。整个n种亮灯模式时间可以看作一个大周期T,其中的每一种花样工作模式Model_i(i=1,2,…,n)时间为小周期Ti,对于每一个模式编写一个独立工作子程序Model_i,其中设定了LED三色灯(红、绿、蓝)的点亮时刻(RED_on,GREEN_on,BLUE_on)和熄灭时刻(RED_off,GREEN_off,BLU E_off),以及模式工作时间Ti以及该模式LED闪烁频率Fi。5位七段码显示器的前2位(L1,L2)显示当前工作模式的序号Model_i;后3位(L3,L4,L5)七段码 显示三色LED的工作状态,若该颜色灯点亮则对应七段码显示位为“1”,反之熄灭时则显示位为“灭”即不显示,对系统工作状态起到了很好的实时监控作用。

  因此在LED彩灯上电工作后,用户可以方便地通过主控模块上的显示器知道LED彩灯当前工作模式Model_i,工作时间Ti,频率Fi等实时参数。若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,用户可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。此外如果用户对某一种模式感兴趣需要仔细观看该种亮灯模式,可以通过键盘选定任意第Model_i模式使系统循环重复工作在该花样模式下。

3硬件设计
  新型LED彩灯系统包括2大部分,即LED彩灯控制器(89C51主控模块)和LED彩灯管(管内LED板模块)。前者是主控模块,具有按键、显示等功能,并利用89C51的P口输出控制信号;后者是受控模块,上面焊有三色LED彩灯和信号驱动芯片,模块置于LED的透明灯管内。

点击在新窗口中浏览产品

3.1主控模块电路设计
  主控模块电路如图1所示。主控模块主要设计器件有89C51,5个七段码LED显示器,8个按键,2个稳压器(提供12 V,5 V电压),1个信号输出驱动模块芯片(MC4049)等。通过软件设计,使 单片机 P0口作为三色LED驱动信号输出口及移位时钟CLOCK信号,P3口为按键输入口,P2口、P1口与5位七段码LED相接作为显示器的输出口。

3.2管内LED板模块设计
  管内LED板模块电路见图2。管内LED板模块设计主要器件有LED彩灯(红、绿、蓝)、移位触发模块芯片CD4076等。根据实际应用彩灯长度需要,可将不同数量的该管内LED模块实现级连,组成一个完整的LED彩灯。考虑到功率损耗,LED板模块之间接口处用信号正向驱动模块芯片MC4049连接。每个LED板模块上均匀分布3种颜色 LED灯,在实际制作PCB时采用红、绿、蓝3色互隔焊接方式,在电路板上把LED发光管按顺序L1(红)、L2(绿)、L3(蓝)、L4(红)、L5(绿)、L6(蓝)……依次均匀焊在板上成一条直线。为了得到更多的花样模式效果,可以使红绿2种灯从前往后驱动点亮闪烁,蓝灯从后往前驱动点亮闪烁,这样具有很好的动感视觉效果。

点击在新窗口中浏览产品

4软件设计
  新型LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主程序和中断服务子程序。上电后在缺省状态以顺序调用Model_i花样亮灯模式流程为主程序,以一个单位时间5 ms的T0定时为中断服务子程序。在这个5 ms的T0定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯模式Mode l_i内点亮和熄灭各种颜色LED灯的时刻:Red_on,Red_off,Green_on,Green_off,Blue_on,blue_off以及Clock(移位翻转脉冲)等。整个系统软件由主程序( Main)、各个模式子程序(Model_i)、5 ms中断服务子程序(T0 Interrupt)、键盘扫描处理子程序(Key Board)、显示子程序(Display)等程序组成。利用T0定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据不同的模式Mo del_i可以设定不同的工作时间Ti和脉冲翻转频率Fi通过P0口输出,使各色L ED灯的驱动时刻与移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。

  除了T0定时中断之外,程序的大部份时间是在处理按键的查询和LED显示的延时。8个按键分别为:4个参数按键(Fi增、减按键,Ti增、减按键),3个模式改变按键(模式上翻UP、模式下翻DOWN、模式保持KEEP),1个功能切换按键。在每次的T0定时中断服务子程序里,需要对各个时间寄存器和模式寄存器进行加1或者清,为主程序查询作准备,同时查询是否已中断6次(30 ms),若30 ms到了,则对参数按键查询一次,是否有时间Ti频率Fi增减键按下并进行相应子程序处理。

  主程序除了调用各种子模式子程序(Model_i),调用LED显示子程序(Display)和延时子程序(Delay)之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。 主程序流程如图3所示。亮灯模式子程序Model_i可以编写若干(n种),只要控制好各色灯触发和熄灭时刻就可以组合成各种亮灯效果。Model_i程序流程如图4所示。

点击在新窗口中浏览产品
点击在新窗口中浏览产品

  下面以第一种模式工作为例。
  点击在新窗口中浏览产品
  点击在新窗口中浏览产品
  点击在新窗口中浏览产品
  点击在新窗口中浏览产品

5结语
  与市面上大多数的LED彩灯相比,该种彩灯具有更好的灯光装饰效果,性价比更高,与普通的全硬件LED彩灯相比具有更好的经济效益。应用主控模块输出的控制信号去控制灯管内的L ED板模块工作,使得产品性能稳定,便以安装容易操作。由于控制程序存储在89C51 单片机 的电可擦除Flash闪存EPROM中,如果用户需要更改系统的亮灯模式Model_i,无须改变系统硬件电路,只需修改其中程序即可,是一种很有发展前途的彩灯控制器。

参考文献

[1]蔡美琴,张为民,沈新群等.MCS51系列 单片机 系统及其应用[M].北京:高等教育出版社,1992.
[2]何立民. 单片机 应用技术选篇(5)[M].北京:北京航空航天大学出版社,1997.
[3]杨光友. 单片机 微型计算机原理及接口技术[M].北京:中国水利水电出版社,2002


关键字:89C51  LED彩灯  控制器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2018011637426.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:1602 LCD显示实验
下一篇:STC学习板程序烧录说明

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S103K3 I2C
以下为.h文件:定义了PA1为SDA,PA2为SCL #ifndef __I2C_H#define __I2C_H#include "stm8s.h"#include "stm8s_gpio.h"#include "tim1.h"#include "uart.h"#include <iostm8s103f3.h>#include <intrinsics.h> #define SCL              
发表于 2019-11-08
stm32f030cc 替换 stm32f030c8 后程序下载失败问题
最近手头有个项目,开始用的是STM32F030C8T6 这款芯片,但随着后期程序代码增加以及功能增加,发现片上的RAM及FLASH均不够用,第一想到的是找ST中引脚兼容的同系列MCU替换,很自然地找到了STM32F030CCT6这款芯片。替换之前特意看了一下两款芯片是硬件资源是兼容的还用STCUBE配了一个功能引脚 ,功能配置没有问题,ok接下来就是买芯片给换上,。。。。当把芯片换上后,来试试烧录,出现 cannot reset target 错误,一开始还以为是芯片没焊好,重新焊,还是不行,找个新板子再焊一块,还是同样的问题,然后是换个JLINK, 用STLINK等等....无语,都有一中怀疑芯片是假的了。最后重新对比两个芯片
发表于 2019-11-08
stm32f030cc 替换 stm32f030c8 后程序下载失败问题
S3C2410启动代码从ADSv1.2移植到KEIL For ARM uV4的方法
深圳旋极ARM9实验箱上面的ARM9实验教程是基于ADSv1.2 和 Mult-ICE2.2并口仿真器的,大概是04~09年期间流行的开发方式。目前ARM公司主推RVMDK(KEIL For ARM uVsion4)和ULINK(中国ARM玩家主要是JLINK V8)仿真器了,怎么把原来的ADS程序移植到KEIL上面呢?经过分析ADS工程下面的文件,可以看到,原来的工程文件主程序是main.C,其他必须的汇编文件、C头文件、C源文件都放在common和include目录下。首先我们需要把这些工程都需要的基本文件都copy出来,放到一个“基本文件”目录下。里面的“DebugInRAM.ini“文件,是通过JTAG将镜像文件
发表于 2019-11-08
S3C2410启动代码从ADSv1.2移植到KEIL For ARM uV4的方法
ARM9学习4-S3C2410的启动代码分析-For ADSv1.2
通常,启动代码是指CPU复位后到进入C语言的main函数之前需要执行的那段汇编代码.这是由于C语言程序的运行需要具备一定的条件,比如:分配好外部数据空闿堆栈空间和中断入口等筿另外汇编代码可以更直接的对硬件进行操使效率更高. 通常启动代码是放在2410init.s汇编文件;特殊功能寄存器定义在2410addr.s;Memory Bank 配置在mencfg.s;还有系统的选项等在option.s文件;2410init.s不仅包括复位后执行的代码,还包括CPU进入掉电模式,产生中断等和处理器直接相关的,用汇编实现的代码.;=========================================; NAME
发表于 2019-11-08
stc12c5a60s2 0-30电压测量 有注释
#include <STC12C5A60S2.H>#include "intrins.h"#define uchar unsigned char#define uint  unsigned int#define ulong unsigned long/*Define ADC operation const for ADC_CONTR*/#define ADC_POWER   0x80            //ADC 电源控制位  10000000  0X80  /#define
发表于 2019-11-08
ADS中使用S3C2440的时钟源频率的声明方法
需要注意这个问题:如果不在程序的最顶端申请如下内容,将无法使用PCLK、UCLK等内嵌频率变量:#define GLOBAL_CLK 1   //后面的1需要研究#include "def.h"......void Main(){   int pinlv;   pinlv=PCLK;  //如果不在顶部声明GLOBAL_CLK,则无法直接使用PCLK这个内嵌变量。...............} 
发表于 2019-11-07
小广播
何立民专栏 单片机及嵌入式宝典

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

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