背光系统设计_第1页
背光系统设计_第2页
背光系统设计_第3页
背光系统设计_第4页
背光系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于NCP5623的和单片机的背光系统设计一、 课程设计题目:基于NCP5623的和单片机的背光系统设计二、任务和要求(1)收集资料和熟悉相关内容包括单片机最小系统设计,I2C总线协议,用RGB三原色LED实现背光的概念,单片机c语言编程和开发环境。(2)连接调试STC89C52单片机最小系统,可以运行简单的程序。焊接和连接NCP5623,并将其最小系统一起连接。(3)进一步熟悉开发环境,编写程序,调试整个系统,实现资料上所列的几个功能,也就是使三种颜色的灯组合成不同的颜色来变化,同时形成不同的花色。(4)撰写课程设计报告要遵守一定的规范和要求,即课程设计报告书写工整、语句通顺、数据准确、图表

2、清晰。三、总体方案的选择软硬结合模块化研究方法硬件部分:根据设计的电路图,再面包板上连接好电路,得到完整的电路系统。软件部分:在软件Keil uVision2环境下调试程序,最终实现I2C协议及LED控制部分。模块化分3部分:MAX232EJE电路、STC89C52电路以及NCP5623电路。总的设计系统如下图:MAX232NCP5623STC89C52设计电路图焊接芯片连接各模块电路导入程序检测电路在Keil uVision2环境下编程调试并修改I2C协议不同花色灯LED控制部分四、单元电路的设计4.1 MAX232EJE电路经过设计与计算得到所需要的器件如下:6个100pf电容、MAX23

3、2EJE一个、数据传输端口、USB端口电路图如下:4.2 STC89C52电路经过设计与计算得到所需要的器件如下:晶振一个、2个30pf电容、8.2电阻一个、STC89C52一个、10uf电容电路图如下:4.3 NCP5623电路经过设计与计算得到所需要的器件如下:2个1uf/6.3V电容、红绿蓝三个灯62电阻一个、NCP5623一个电路图如下:五、画总体电路图根据各部分之间的关系得到总的电路图如下:六、软件部分6.1 I2C协议I2C协议的总程序程序图如下:写控制字起动总线函数结束总线函数 字节数据发送函数I2C协议(1)起动总线函数与结束总线函数 在I2C总线上每传输一位数据,都有一个时钟

4、脉冲相对应,其逻辑“0”和“1”的信号电平取决于该点的正端电源VDD的电压。I2C总线数据传输时,在时钟线高电平期间数据线上必须保持有稳定的逻辑电平状态,高电平为数据1,低电平为数据0。只有在时钟线为低电平时,才允许数据线上的电平变化。I2C总线数据传送时有两种时序状态被分别定义为起始信号和终止信号。起始信号:在时钟线保持高电平期间,数据线在由高电平到低电平变化时启动I2C总线,为I2C总线的起始信号(SDA置1,SCL置1,然后SDA置0,产生下降沿触发总线起动)。终止信号:在时钟线保持高电平期间,数据线在由低电平到高电平变化时将停止I2C总线的数据传送,为I2C总线的终止信号。(SDA置0

5、,SCL置1,然后SDA置1,从而触发总线停止)起始信号和终止信号都是由主控制器产生。总线上带有I2C总线接口的器件很容易检测到这些信号。但是对于不具备这些硬件接口的单片机来说,为了能准确地检测到这些信号,必须保证在总线的一个时钟周期内对数据线至少进行两次采样。v(2)字节数据发送函数在没有时钟信号时,数据传送将停止进行,接口的线与特征将使SCL在低电平时钳住总线。这种情况可以用于当接收器接收到一个字节数据后要进行一些其他工作而无法立即接收下一个数据时,迫使总线进入等待状态,直到接收器准备好接收新数据时再释放时钟线使数据传送得以继续正常进行。例如,当接收器接收完主控制器的一个字节数据后,产生中

6、断信号并进行中断处理,中断处理完毕后才能接收下一个字节数据,这时接收器在中断处理时钳住SCL为低电平直到中断处理完毕才释放SCL。(3)写控制字主控器发送起始信号后,立即发送寻址字节,这时,总线上的所有器件都将寻址字节中的7位地址与自己器件地址相比较,如两者相同,则该器件认为被主控器寻址,并根据读写位确定是被控发送器或被控接收器。6.2 LED控制部分NCP5623中每个灯的控制地址如下表:总流程图如下:灯灭主函数写地址(0x3f)写入各灯状态地址延时程序如下#include<reg52.h> /头文件#define _NOP()/空指令sbit SCL=P21;sbit SDA=

7、P20;void delay1(unsigned int t)unsigned char i;for(;t>0;t-) for(i=6425;i>0;i-);void delay(void) /定义延时函数_NOP();_NOP();_NOP();_NOP();_NOP();void I2C_Start(void) /定义I2C起始函数SDA=1;/SCL为高电平时,SDA由高电平变为低电平时为开始delay();SCL=1;delay();SDA=0;delay();SCL=0;delay();void I2C_STOP(void)/定义I2C终止函数SDA=0;delay();

8、 /SCL为高电平时,SDA有高电平变为低电平时为终止SCL=1;delay();SDA=1;delay(); void ack(void) /响应函数unsigned char i;SCL=1;delay();while(SDA=1)&&(i<200)i+;SCL=0;delay();void Send_byte(unsigned char zdata)unsigned char j; SCL=0; for(j=0;j<8;j+) /在SCL=0时,发送8位数据 if(zdata&0x80) /判断第一位是否为高SDA=1; / 第一位为高,SDA=1el

9、seSDA=0; / 第一位为低,SDA=0zdata=zdata<<1; /发送第二位数据delay();SCL=1;delay();SCL=0; /数据只有在SCL由1变为0时才改变delay();SDA=1;delay();void init(void) SDA=1;SCL=1;void write_byte(unsigned char dat)init();I2C_Start();Send_byte(0x70);ack();Send_byte(dat);ack();I2C_STOP();void mie()write_byte(0x40);write_byte(0x60);

10、write_byte(0x80);void main(void)unsigned char i;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);dela

11、y1(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(50

12、00); 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.1 NCP5623焊接问题由于芯片管脚非常小,需要用比较尖的烙铁头对着每个引脚焊接,对电烙铁的要求较高,而且焊接速度慢,还有可能虚焊和粘焊。对于一些粘在一起的锡球,我们用拉焊的

13、方法解决,需要的工具都很一般,特别是电烙铁,在焊接过程中烙铁头并没有接触焊盘而是焊锡球。由于焊锡球的张力,各个引脚上的焊锡很均匀且不多,很美观!速度嘛,熟练以后相对来说拖焊要快一点。此方法可谓是一种简捷可靠而又廉价的焊接方法!同时用电焊焊接芯片时,常感觉芯片补电焊搞得很烫。但焊好后如果没有其它问题,电路正常工作,也就是说芯片没有被烫坏。7.2 电路连接问题首先是设计好电路总图,这是连接好电路的基本保障。同时把面包版的正负极连接好,从而使整个板子正极相同、负极相通,并用万用表检测。其次是对每一个模块的连接。每一个模块连接好后就要检测,以保证电路的可行性。最后是总体连接好后检测,基本也没有什么问题

14、,就可以找个小程序先导入板子里面测试一下,看是否能导通。在这个过程中,出现了比较多的问题,特别是数据线把电脑和电路连接好后,一直不能载入程序,我们以为是.外在硬件导致,于是开始一点点的测试,发现没问题之后依旧不行。擦除之后再从新看看,依旧如此,换个片子然后反复的检测电路也基本没有问题,最后在王老师和魏老师的共同努力下,发现问题主要出在数据线上,换了好的之后就可以了。7.3 程序问题程序可以说是本次实验的关键。由于以前没有接触过单片机,所以我们首先得熟悉它的开发环境,也就是Keil uVision2。熟悉之后开始练习,本次的中心器件是NCP5623,因此得看它的有关资料,在这个过程中了解的东西相

15、对难些,而且资料基本都是外文资料,更需要我们细心的去研究,有很多不懂的必须问老师,也是在老师的讲解下慢慢了解了它的功能以及怎么用它来实现所需要的功能。在有了基本概念之后剩下的就是慢慢编程了,编程部分首先是I2C协议,这是整个电路的核心连接部分。当然在这个过程中遇到的问题也比较多,主要就是控制LED灯部分,由于对文献理解的出入,导致在写程序时出现了不少的错误。我们开始也就是先实现一个简单的功能,让3个灯都亮,可最后编好之后就是有问题,不能一起亮,我们求助老师之后,发现是在每次写进去之后,都用了延迟、接受,这与NCP5623的功能有些出入,我们再研究了它的功能之后,修改之后就可以了。依照上面的思路

16、,其他功能也实现的比较快。最后一个问题就是虽然实现了各个功能,但由于计算机本身运算快,导致我们看到的现象不明显,这就要调节延迟函数,在经过不断的调试之后,总体现象还是比较好的。八、分析和总结此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通过这个方案包括设计了一套电路原理连接图。在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在

17、这上面的时间用去很多。我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件印象更加深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。同时我认为我们的工作是一个团队的

18、工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 最后这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,在王老师的辛勤指导下,终于游逆而解。同时,在老师

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论