背光系统设计.docx
- 文档编号:28658653
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:423.29KB
背光系统设计.docx
《背光系统设计.docx》由会员分享,可在线阅读,更多相关《背光系统设计.docx(17页珍藏版)》请在冰豆网上搜索。
背光系统设计
基于NCP5623的和单片机的背光系统设计
一、课程设计题目:
基于NCP5623的和单片机的背光系统设计
二、任务和要求
(1)收集资料和熟悉相关内容——包括单片机最小系统设计,I2C总线协议,用RGB三原色LED实现背光的概念,单片机c语言编程和开发环境。
(2)连接调试STC89C52单片机最小系统,可以运行简单的程序。
焊接和连接NCP5623,并将其最小系统一起连接。
(3)进一步熟悉开发环境,编写程序,调试整个系统,实现资料上所列的几个功能,也就是使三种颜色的灯组合成不同的颜色来变化,同时形成不同的花色。
(4)撰写课程设计报告要遵守一定的规范和要求,即课程设计报告书写工整、语句通顺、数据准确、图表清晰。
三、总体方案的选择
硬件部分:
根据设计的电路图,再面包板上连接好电路,得到完整的电路系统。
软件部分:
在软件KeiluVision2环境下调试程序,最终实现I2C协议及LED控制部分。
模块化分3部分:
MAX232EJE电路、STC89C52电路以及NCP5623电路。
总的设计系统如下图:
四、单元电路的设计
4.1MAX232EJE电路
经过设计与计算得到所需要的器件如下:
6个100pf电容、MAX232EJE一个、数据传输端口、USB端口
电路图如下:
4.2STC89C52电路
经过设计与计算得到所需要的器件如下:
晶振一个、2个30pf电容、8.2
电阻一个、STC89C52一个、10uf电容
电路图如下:
4.3NCP5623电路
经过设计与计算得到所需要的器件如下:
2个1uf/6.3V电容、红绿蓝三个灯62
电阻一个、NCP5623一个
电路图如下:
五、画总体电路图
根据各部分之间的关系得到总的电路图如下:
六、软件部分
6.1I2C协议
I2C协议的总程序程序图如下:
(1)起动总线函数与结束总线函数
在I2C总线上每传输一位数据,都有一个时钟脉冲相对应,其逻辑“0”和“1”的信号电平取决于该点的正端电源VDD的电压。
I2C总线数据传输时,在时钟线高电平期间数据线上必须保持有稳定的逻辑电平状态,高电平为数据1,低电平为数据0。
只有在时钟线为低电平时,才允许数据线上的电平变化。
I2C总线数据传送时有两种时序状态被分别定义为起始信号和终止信号。
起始信号:
在时钟线保持高电平期间,数据线在由高电平到低电平变化时启动I2C总线,为I2C总线的起始信号(SDA置1,SCL置1,然后SDA置0,产生下降沿触发总线起动)
。
终止信号:
在时钟线保持高电平期间,数据线在由低电平到高电平变化时将停止I2C总线的数据传送,为I2C总线的终止信号。
(SDA置0,SCL置1,然后SDA置1,从而触发总线停止)
起始信号和终止信号都是由主控制器产生。
总线上带有I2C总线接口的器件很容易检测到这些信号。
但是对于不具备这些硬件接口的单片机来说,为了能准确地检测到这些信号,必须保证在总线的一个时钟周期内对数据线至少进行两次采样。
v
(2)字节数据发送函数
在没有时钟信号时,数据传送将停止进行,接口的线与特征将使SCL在低电平时钳住总线。
这种情况可以用于当接收器接收到一个字节数据后要进行一些其他工作而无法立即接收下一个数据时,迫使总线进入等待状态,直到接收器准备好接收新数据时再释放时钟线使数据传送得以继续正常进行。
例如,当接收器接收完主控制器的一个字节数据后,产生中断信号并进行中断处理,中断处理完毕后才能接收下一个字节数据,这时接收器在中断处理时钳住SCL为低电平直到中断处理完毕才释放SCL。
(3)写控制字
主控器发送起始信号后,立即发送寻址字节,这时,总线上的所有器件都将寻址字节中的7位地址与自己器件地址相比较,如两者相同,则该器件认为被主控器寻址,并根据读写位确定是被控发送器或被控接收器。
6.2LED控制部分
NCP5623中每个灯的控制地址如下表:
总流程图如下:
程序如下
#include
#define_NOP()//空指令
sbitSCL=P2^1;
sbitSDA=P2^0;
voiddelay1(unsignedintt)
{
unsignedchari;
for(;t>0;t--)
{
for(i=6425;i>0;i--);
}
}
voiddelay(void)//定义延时函数
{
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
}
voidI2C_Start(void)//定义I2C起始函数
{
SDA=1;//SCL为高电平时,SDA由高电平变为低电平时为开始
delay();
SCL=1;
delay();
SDA=0;
delay();
SCL=0;
delay();
}
voidI2C_STOP(void)//定义I2C终止函数
{
SDA=0;
delay();//SCL为高电平时,SDA有高电平变为低电平时为终止
SCL=1;
delay();
SDA=1;
delay();
}
voidack(void)//响应函数
{
unsignedchari;
SCL=1;
delay();
while((SDA==1)&&(i<200))i++;
SCL=0;
delay();
}
voidSend_byte(unsignedcharzdata)
{
unsignedcharj;
SCL=0;
for(j=0;j<8;j++)//在SCL=0时,发送8位数据
{
if(zdata&0x80)//判断第一位是否为高
{
SDA=1;//第一位为高,SDA=1
}
else
{
SDA=0;//第一位为低,SDA=0
}
zdata=zdata<<1;//发送第二位数据
delay();
SCL=1;
delay();
SCL=0;//数据只有在SCL由1变为0时才改变
delay();
}
SDA=1;
delay();
}
voidinit(void)
{
SDA=1;
SCL=1;
}
voidwrite_byte(unsignedchardat)
{
init();
I2C_Start();
Send_byte(0x70);
ack();
Send_byte(dat);
ack();
I2C_STOP();
}
voidmie()
{
write_byte(0x40);
write_byte(0x60);
write_byte(0x80);
}
voidmain(void)
{
unsignedchari;
while
(1)
{
write_byte(0x3f);
mie();
for(i=0x60;i<0x7f;i++)
{
write_byte(i);//绿灯逐渐变亮
delay1(1000);
}
delay1(5000);
for(i=0x5f;i>0x40;i--)//三灯渐灭
{
write_byte(i);
write_byte(i+0x20);
write_byte(i+0x40);
delay1(1000);
}
for(i=0x80;i<0x9f;i++)//蓝灯逐渐变亮
{
write_byte(i);
delay1(1000);
}
mie();
delay1(5000);
for(i=0x40;i<0x5f;i++)//三灯渐亮
{
write_byte(i);
write_byte(i+0x20);
write_byte(i+0x40);
delay1(1000);
}
mie();
delay1(2000);
for(i=0x7f;i>0x60;i--)//绿灯逐渐变暗
{
write_byte(i);
delay1(1000);
}
mie();
delay1(2000);
for(i=0x9f;i>0x80;i--)//蓝灯逐渐变暗
{
write_byte(i);
delay1(1000);
}
mie();
delay1(5000);
for(i=0x40;i<0x5f;i++)//红绿灯渐亮
{
write_byte(i);
write_byte(i+0x20);
delay1(1000);
}
delay1(5000);
for(i=0x5f;i>0x40;i--)//红绿灯渐灭
{
write_byte(i);
write_byte(i+0x20);
delay1(1000);
}
delay1(2000);
}
七、设计过程中发生的问题及解决的方法
7.1NCP5623焊接问题
由于芯片管脚非常小,需要用比较尖的烙铁头对着每个引脚焊接,对电烙铁的要求较高,而且焊接速度慢,还有可能虚焊和粘焊。
对于一些粘在一起的锡球,我们用拉焊的方法解决,需要的工具都很一般,特别是电烙铁,在焊接过程中烙铁头并没有接触焊盘而是焊锡球。
由于焊锡球的张力,各个引脚上的焊锡很均匀且不多,很美观!
速度嘛,熟练以后相对来说拖焊要快一点。
此方法可谓是一种简捷可靠而又廉价的焊接方法!
同时用电焊焊接芯片时,常感觉芯片补电焊搞得很烫。
但焊好后如果没有其它问题,电路正常工作,也就是说芯片没有被烫坏。
7.2电路连接问题
首先是设计好电路总图,这是连接好电路的基本保障。
同时把面包版的正负极连接好,从而使整个板子正极相同、负极相通,并用万用表检测。
其次是对每一个模块的连接。
每一个模块连接好后就要检测,以保证电路的可行性。
最后是总体连接好后检测,基本也没有什么问题,就可以找个小程序先导入板子里面测试一下,看是否能导通。
在这个过程中,出现了比较多的问题,特别是数据线把电脑和电路连接好后,一直不能载入程序,我们以为是.外在硬件导致,于是开始一点点的测试,发现没问题之后依旧不行。
擦除之后再从新看看,依旧如此,换个片子然后反复的检测电路也基本没有问题,最后在王老师和魏老师的共同努力下,发现问题主要出在数据线上,换了好的之后就可以了。
7.3程序问题
程序可以说是本次实验的关键。
由于以前没有接触过单片机,所以我们首先得熟悉它的开发环境,也就是KeiluVision2。
熟悉之后开始练习,本次的中心器件是NCP5623,因此得看它的有关资料,在这个过程中了解的东西相对难些,而且资料基本都是外文资料,更需要我们细心的去研究,有很多不懂的必须问老师,也是在老师的讲解下慢慢了解了它的功能以及怎么用它来实现所需要的功能。
在有了基本概念之后剩下的就是慢慢编程了,编程部分首先是I2C协议,这是整个电路的核心连接部分。
当然在这个过程中遇到的问题也比较多,主要就是控制LED灯部分,由于对文献理解的出入,导致在写程序时出现了不少的错误。
我们开始也就是先实现一个简单的功能,让3个灯都亮,可最后编好之后就是有问题,不能一起亮,我们求助老师之后,发现是在每次写进去之后,都用了延迟、接受,这与NCP5623的功能有些出入,我们再研究了它的功能之后,修改之后就可以了。
依照上面的思路,其他功能也实现的比较快。
最后一个问题就是虽然实现了各个功能,但由于计算机本身运算快,导致我们看到的现象不明显,这就要调节延迟函数,在经过不断的调试之后,总体现象还是比较好的。
八、分析和总结
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。
通过这次课程设计,加强了我们动手、思考和解决问题的能力。
在整个设计过程中,我们通过这个方案包括设计了一套电路原理连接图。
在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。
我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件印象更加深刻。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这个期末测试之后的课程设计对我们的作用是非常大的。
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致整项工作的失败。
实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的。
这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
最后这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,在王老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
[1]宏晶科技(深圳).STC89C52RC/RD+系列单片机中文指南.2005-2-16.
[2]MichaelBairanzade.利用多个LED控制器实现自动渐进调光.今日电子.2008年6月:
49-51.
[3]NCP5623TripleOutputI2CControlledRGBLEDDriver.October.2008.
[4]安森美半导体.适合于低压便携设备背光或闪光应用的LED驱动器方案.电源世界.2010年11月:
47-50.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 背光 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)