基于单片机的RGB LED背光源的设计方案

出处:xwj 发布于:2012-04-10 09:38:33

  摘 要:为设计背光源提出了一种解决方案。根据三原色原理,利用单片机作为控制元件、结合NCP 5623三原色控制芯片,设计了一种RGB LED背光源。对于NCP 5623的控制所用的I2 C总线的实现上,采取利用单片机任意2个通用I/O管脚和NCP两5623的I2 C引脚连接,作为I2 C总线,通信协议实现上采用软件模拟的方式,且单片机作为控制单元,只需实现系统的功能。这种方式简化了设计,节约了I2 C总线主控制器器件,降低了成本。在软件设计上,在此给出了软件模拟I2 C协议方式下的NCP 5623每一个功能的实现程序模板,给出了NCP 5623应用的一种通用方法,组合使用可实现三原色及亮度可调的基本功能。对教学和实践都有深刻意义。

  0 引 言

  液晶显示器(LCD)是光调制器件,自身并不发光,所以为了可以清楚地看到透射式液晶显示器的显示内容,需要给液晶屏匹配一个背光源。目前的背光模组一般使用冷阴极管(CCFL)为光源,包含了红、绿、蓝等各色光的频率。CCFL因辉度高、成本低廉、技术成熟等优点被广泛的运用在平板显示器上。随着发光二极管(LED)亮度的改善,LED背光模组显示出CCFL无法比拟的优点,如色彩还原性好、寿命长、不含汞、有利于环境保护,这些使其成为LCD背光模组中的研究热点。LED背光模组的设计主要包括光学结构设计,驱动电路设计以及程序设计,显示性能主要表现在亮度、色度、均匀性等方面。本文将从驱动电路和软件设计的角度进行阐述,讲述了设计所采用的元器件、硬件原理及其软件编程,详细地探讨了RGB LED背光源的设计方案。

  1 硬件设计

  本设计采用单片机作为LED的控制器件,选用NCP 5623实现LED背光源的静态显示。单片机主要实现的功能是通过I2C协议控制NCP 5623芯片,NCP 5623根据单片机发送的命令调节3种颜色的LED的亮度从而达到背光的效果。NCP 5623是安森美半导体日前推出的高能效3路输出LED驱动器,带有I2C接口,并且内置渐进调光功能,3路LED可独立控制,总LED电流9可达0mA,并且是一种无铅器件。

  该器件特别适用于驱动手机和MP3播放器等便携产品中的3色RGB(红、绿、蓝)LED装饰光和增强型LCD背光。硬件结构图如图1所示。

图1 三原色LED驱动硬件结构图

图1 三原色LED驱动硬件结构图

  2 软件设计

  NCP 5623是接受单片机的命令而产生动作,单片机给NCP 5623芯片发送指令是通过I2C总线,两者之间通过I2C协议进行通信。I2C总线的实现可以有多种方法,而对于本文的情况,速率不是问题的重点,所以采取一般的单片机用某两个普通I/O 口模拟I2C 总线。对于单片机模拟I2C总线已经非常成熟,只要根据以往的程序根据自己的需要略加修改即可。对于背光光源来说,主要调整三原色之间的亮度比例和根据自己的需要进行总体亮度调节,这些都可以通过NCP 5623所提供的命令实现,所以只要掌握了这些指令传输的程序实现,可以自己根据需要组合实现自己想要的功能,下面就给出NCP 5623各个命令的子程序实现。

  NCP 5623能实现的功能如表1。

表1 NCP 5623编程序列图

表1 NCP 5623编程序列图

  该表的$70代表NCP 5623的I2C器件写地址。

  对于NCP 5623来讲没有读操作。该器件的命令为1个字节,它可以被认为是I2C传输的内容部分。该字节3位用来表征命令,后面5位用来表征命令的参数,比如001表示对3个LED亮度同时进行控制,而后面5位则表示亮度。下面是每个命令的子程序实现,I2C_Start()是启动I2C总线读写函数,I2C_Stop()是停止I2C传输函数,writeByte()是传输数据函数。每个命令的实现开头都应该有I2C_Start()启动传输,应该有I2C_Stop()停止I2C总线活动。

  灯灭命令实现:

  bit tempbit;

  tempbit=0;

  I2 C_Start();

  writeByte(0x70);

  tempbit=checkAck();

  writeByte(0x00);

  tempbit=checkAck();

  I2 C_Stop();

  为了节约篇幅,下面的程序省略I2C_Start();I2C_Stop()和每个writeByte()函数后面的tempbit =checkAck()。

  同时控制3个灯的亮度命令模板:

  writeByte(0x70);

  writeByte(value); //value可取0x20-0x3f

  控制红灯的亮度命令模板:

  writeByte(0x70);

  writeByte(value); //value可取0x40-0x5f

  I2 C_Stop();

  控制绿灯的亮度命令模板:

  writeByte(0x70);

  writeByte(value); //value可取0x60-0x7f

  控制黄灯的亮度命令模板:

  bit tempbit;

  writeByte(0x70);

  writeByte(value); //value可取0x80-0x9f

  渐亮模式程序实现:

  writeByte(0x70);

  writeByte(value0); //value0可取0x20-0x3f

  writeByte(value1); //value1可取0xa0-0xbf

  writeByte(value2); //value2可取0xe1-0xff

  必须保证value0的后5位的值小于value1后5位

  的值。

  渐暗模式程序实现:

  writeByte(0x70);

  writeByte(value0); //value0可取0x20-0x3f

  writeByte(value1); //value1可取0xc0-0xdf

  writeByte(value2); //value2可取0xe1-0xff

  必须保证value0的后5位的值大于value1后5位的值。

  可以将上面的每个命令实现为子函数,根据实际情况组合,实现不同的应用。

  3 结 语

  本文提出了一种基于单片机实现LED背光源静态显示的方法。针对其功能和特性,采用了NCP 5623芯片,完成了有关电路的设计和软件设计。可以实现亮度多级调控的背光光源,而且可以根据不同命令的组合实现可各种颜色可变,亮度可调,亮度和颜色渐变的功能,可用于其他应用。

参考文献:

[1]. CCFL datasheet https://www.dzsc.com/datasheet/CCFL_1862812.html.

关键词:LEDLED背光单片机

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!