新闻中心

EEPW首页 > 光电显示 > 设计应用 > 基于DAC0832的LED亮度控制系统设计

基于DAC0832的LED亮度控制系统设计

作者: 时间:2011-06-23 来源:网络 收藏

本文引用地址:https://www.eepw.com.cn/article/168962.htm

  只有1路模拟输出,必须采用分时控制的方式循环控制三个发光二极管的,实现接通某一个 时,其它 保持要原有不能熄灭,为了达到这个目的,这里采用了运算放大器接成电压跟随器的形式控制,即多路电子开关的每个输出与发光二极管间都接一个电压跟随器,而且在运算放大器的正向输入端接了一个保持电容,使输入电压能够保持一段时间,其接线如下:

  由于运算放大器的输入阻抗很大,所以Ch2上的电压能够保持一段时间,在数模转换器输出电压控制其它发光二极管期间,该运算放大器的输出电压能够保持不变。

  装置硬件原理图如图5。

  2 软件

  软件主要完成两个功能, 第一, 完成各个LED的循环点亮; 第二,通过程序控制各个LED亮度的变化。本例中要实现灯光旋转的效果,所以每个LED都按三角波的型式亮度变化,先逐渐变亮,达到最亮时再由最亮逐渐变暗,如此反复进行;三个LED的亮度变化要有一个时差,如果一个LED从暗到亮再到暗作为一个周期的话,则D2比D1 滞后1/3 周期, D3 比D2 滞后1/3 个周期。

  2.1 主程序

  使各个LED循环点亮通过主程序循环实现,将表示三个LED亮度的三个数据放到连续的三个RAM单元30H、31H、32H中,主程序中循环读取这三个单元的数据送到 转换,根据30H、31H、32H中数值的不同,转换输出的模拟电压也不同,单片机控制多路电子开关将不同的模拟电压送给不同的LED,从而实现各个LED具有不同的亮度。由于本例中用P2口控制ADC0832的选通和电子开关的选通,根据原理图接线可知,点亮发光二极管D0、D1、D2对应的P2口数据分别为00H、01H、02H。

  2.2 中断程序

  控制LED亮度变化通过定时器T0定时中断程序实现, T0中断改变30H、31H和32H的数值就可以改变LED 亮度了,若实现灯光旋转的效果,则三个LED的亮度应按图6曲线变化。



评论


相关推荐

技术专区

关闭