新闻中心

EEPW首页 > 光电显示 > 设计应用 > 基于单片机的RGB LED背光源的设计方案

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

作者:时间:2012-04-11来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/168185.htm

0 引 言

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


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭