DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1160|回复: 0
打印 上一主题 下一主题

[待整理] 基于单片机的彩灯设计方案

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-10 08:31:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1.引言
       随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性。
       全球气候暖化危机和能源紧缺在进一步推动LED照明的普及,LED照明具有环保、光效高和寿命长的特点,但在完全取代具有墙上型调光器的白炽灯方面,LED照明还存在兼容性差的先天不足。其主要原因在于:
       1)现有的调光器都是针对白炽灯设计的,而白炽灯呈现的是纯阻性;LED作为固态半导体照明器件,需要恒定的直流电流驱动,所以LED照明一般都需要驱动器从交流110V/220V转换到所需要的直流电流;
       2)调光器种类繁多,而且工作原理各不相同,包括前切型、后切型和智能型等;
       3)LED照明器的种类也很多。这样一来,对于不同的LED照明匹配不同类型的调光器;LED的驱动器面临巨大挑战;其中,可靠性和安全性尤为重要。照明属于消费电子产品,直接接触千家万户的消费者,不仅价格要适当,更重要的是要安全可靠;即便是任一元器件失效或调光器与LED不匹配,也不能造成漏电、过热、过流等任何安全故障。
2.硬件设计
       单片机控制三组小灯可以按控制单色依次点亮,还可以通过改变输出脉冲不同的占空比来控制输出电压,以控制该色LED的点亮,实现多色光LED渐变发光功能,使三种颜色的灯可以发出多种颜色,单片机控制P1口的某管脚按规定输出高低电平,输出高电平时由ULN2003输出低电平,经ULN2003反向为高电平,使驱动三极管截止,LED不能点亮,每种颜色的三个小灯由单片机芯片P1口的一个管脚控制,实现它们的顺序点亮及颜色渐变和颜色突变功能。


图1 LED调光原理框图



图2 LED发光元件电路图

3.软件设计

图3 单片机控制LED调光电路流程图

4.程序设计
  #include<reg52.h>
  sbit LED1=P1^0;
  sbit LED=P1^1;
  sbit LED2=P1^2;
  unsigned char CYCLE;
  unsigned char PWM_ON;
  void delay (unsigned int cnt)
  {
  while(--cnt);
  }
  main()
  {   bit flag;
  TMOD=0x01;
  TH0=(65536-100)/256;
  TL0=(65536-100)%256;
  IE=0x82;
  TR0=1;
  CYCLE=50;
  while(!flag)
  {   delay(20000);
  PWM_ON++;
  if(PWM_ON==CYCLE)
  {   flag=1;
  }
  }
  while(flag)
  {   delay(20000);
  PWM_ON--;
  if(PWM_ON==0)
  {   flag=0;
  }
  }
  }
  void time(void) interrupt 1
  {  STatic unsigned char count;
  TH0=(65536-100)/256;
  TL0=(65536-100)%256;
  if(count==PWM_ON)
  {   LED1=1;
  LED=1;
  LED2=1;
  }
  count++;
  if(count==CYCLE)
  {   count=0;
  if(PWM_ON!=0)
  LED1=0;
  LED=0;
  LED2=0;
  }}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-1 05:02 , 耗时 0.092290 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

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