




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电大学专业课程设计报告书院系名称:电子工程学院学生姓名:学号:专业名称:光电子技术系班 级:实习时间:2013-10-082013-10-18一课程设计题目基于51单片机的RGB背光系统二任务和要求1.收集资料并绘制51单片机的最小系统原理图,熟悉单片机开发环境KEIL C51和C语言编程。2.查阅资料了解I2C总线协议。3.参照LED驱动芯片NCP5623和串口通信芯片MAX232数据手册绘制总电路图。4.根据电路图在面包板上连接电路并测试。5.画出软件流程图并在KEIL C51开发环境上编写源代码并调试。6.利用STCISP下载软件将调试好的代码烧录到单片机中,在面包板观察LED亮暗
2、变化,然后通过改动源代码实现LED现象的不同功能。7.分析总结此次课程设计过程中遇到了问题及解决办法和心得体会并撰写设计报告。三总设计方案硬件设计:采用单片机作为LED的控制核心器件,选用NCP5623实现LED背光源的静态显示。单片机主要实现的功能是通过I2C协议控制NCP5623芯片,NCP5623根据单片机发送的命令调节3种颜色的LED的亮度从而达到背光的效果。NCP5623是安森美半导体推出的高能效3路输出LED驱动器,带有I2C接口,并且内置渐进调光功能,3路LED可独立控制,总LED电流可达90mA,并且是一种无铅器件。软件设计:NCP5623是接收单片机的命令而产生动作,单片机给
3、NCP5623芯片发送指令是通过I2C总线,两者之间通过I2C协议进行通信。(I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能高性能串行总线。I2C总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL)。NCP5623能实现的功能如下表:I2C AddressCOMMANDBits7:0OperationNote$70000X XXXXSystem Shut DownBits4:0 are irrelevan$700010 0000 0011 1111Set Up the ILED currentILED register Bi
4、ts4:0 contain the ILED value as defined by the IREF value$700100 0000 0101 1111Set Up the RED PWM REDPWM Bits4:0 contain the PWM value$700110 0000 0111 1111Set Up the GREEN PWMGREENPWM Bits4:0 contain the PWM value$701000 0000 1001 1111Set Up the BLUE PWMBLUEPWM Bits4:0 contain the PWM value$701010
5、0000 1011 1111Set Up the IEND UpwardUPWARD Bits4:0 contain the IEND value$701100 0000 1101 1111Set Up the IEND DownwardDWNWRD Bits4:0 contain the IEND value$701110 0001 1111 1111Set Up the Gradual Dimming time and run the sequenceGRAD Bits4:0 contain the TIME value该表的$70代表NCP5623的I2C器件写地址对于NCP5623来讲
6、没有读操作。该器件的命令为1个字节,它可以被认为是I2C传输的内容部分。该字节最高3位用来表征命令,后面5位用来表征命令的参数,比如001表示对个3个LED亮度同时进行控制,而后面5位则表示亮度。下面是每个命令的子程序实现,I2C_Start()是启动I2C总线读写函数,I2C_Stop()是停止I2C传输函数,write_Byte()是传输数据函数。每个命令的实现开头都应该有I2C_Start()启动传输,最后应该有I2C_Stop()停止I2C总线活动。4 单元电路设计1. STC89C52单片机最小系统模块最小系统电路图单片机最小系统是在单片机上接晶振电路和复位电路,VCC接高电平,GN
7、D接地。单片机为宏晶公司生产的STC89C52RC,外部晶振为12MHz。2. MAX232串口下载模块MAX232为美信公司生产的串口芯片,通过引脚R1OUT和T1IN分别与单片机的P3.0(RxD)和P3.1(TxD)连接实现通信。3. LED驱动芯片NCP5623电路模块NCP5623为安森美公司生产的一种LED驱动芯片,上图LED为共阳极接法,还需接100左右限流电阻,SDA为数据端,接单片机P2.0,SCL为时钟端,接单片机P2.1.5 总电路图根据各模块连接总的电路图如下:6 软件部分I2C协议总流程图I2C起始函数响应函数字节数据发送函数I2C终止函数I2C协议响应函数写控制字1
8、. I2C起始与终止函数SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。 起始函数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(); /SCL为高电平时,SDA有高电平变为低电平时为终止SCL=1;delay();SDA=1;delay();
9、2. 字节传送与应答每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。字节传送函数void Send_byte(unsigned char zdata)unsigned char j; SCL=0; for(j=0;j8;j+) /在SCL=0时,发送8位数据 if(zdata&0x80) /判断第一位是否为高SDA=1; / 第一位为高,SDA=1elseSDA=0; / 第一位为低,SDA=0zdata=zdata1;/发送第二位数据delay();SCL=1;delay();SCL=0;/数据只有在SCL由1变
10、为0时才改变delay();SDA=1;delay();void init(void) SDA=1;SCL=1;响应函数void ack(void) /响应函数unsigned char i;SCL=1;delay();while(SDA=1)&(i200)i+;SCL=0;delay();3. 写入过程主控器发送起始信号后,立即发送寻址字节,这时,总线上的所有器件都将寻址字节中的7位地址与自己器件地址相比较,如两者相同,则该器件认为被主控器寻址,并根据读写位确定是被控发送器或被控接收器。void write_byte(unsigned char dat)init();I2C_Start();
11、Send_byte(0x70); /芯片地址ack();Send_byte(dat);ack();I2C_STOP();LED控制部分:NCP5623中每个灯的控制地址如下表:7 课程设计中遇到的问题及解决办法问题1:芯片与面包板之间接触不良,易出现短路。解决办法:我自己找了块PCB板子在上面焊接了电路,结果很稳定。问题2:MAX232电路模块电容选择错误(101),导致源代码下载不成功。解决办法:最后经过老师指导调换了电容(104)成功解决问题。问题3:下载完代码验证结果,LED亮暗变化太快,中间间隔时间短。解决办法:在每个LED变化过程中加延时使其更好的把效果显示出来,而且还加了一个灭函数
12、,让其在变化过程中更好的过度。问题3:对LED驱动芯片NCP5623了解甚少,导致在编写程序是摸不着头脑。解决办法:在网上查找芯片手册,认真阅读,里面有有关芯片的地址和数据。8 分析与总结 对待任何一次课程设计我都会尽全力去做好,并且我对课程设计也很感兴趣,这次也不例外,因为我非常喜欢动手,所以第一天在老师讲完课程设计题目和注意事项后我就抓紧时间设计电路,于是第二天老师检查完电路图后我就领到了器件,很幸运,为数不多的LED驱动芯片NCP5623我也领了一块,我先把NCP5623焊在转接板上,很成功达到要求。接着我就在面包板上搭了电路,很不稳定,老是接触不良,程序下载失败。感觉自己焊接技术还不错
13、,所以我自己找了一块PCB板子,就先把51单片机的最小系统焊在板子上,焊完之后那串口下载线试了下结果下载失败,当时用万用表测试了电路,没有短路,断路等现象,电路也很正确,不知是哪出现问题,最后听老师说把MAX232串口芯片模块的电容从101换成104,因为焊好的板子拆卸比较困难,没办法,找了5个104独石电容把电容调换了,完了之后接上串口线随便找了一个代码,编译下生成HEX文件,下载成功!内心窃喜。 最小系统完成后我把自己焊接好的NCP5623芯片也和最小系统焊在了一块,最后检查了电路。 硬件是软件的基础,我的基础已经打好,接下来就是重任,画流程图写代码。认真看完NCP5623芯片手册后开始写
14、代码,不写不知道,一写吓一跳,一步一步很是艰难呀,错误连篇,于是就看别人弄好的代码,了解下别人的思路,最后经过自己的修改和老师同学的帮忙完成了源代码的编译。下载到板子上,效果很明显,红绿蓝交替亮暗,很是吸引注意,于是我就很着急找老师验收,结果碰了一鼻子灰,老师问我实现灯灭功能的函数里那个for语句有什么作用,我没回答上来,很是尴尬,老师就让先下去认真看看,懂了之后再回答,下去后经过研究,问同学,最后修改了一下代码,找老师汇报情况,老师很认真的给我讲解了部分知识。经过这次实习我学习很多知识,最重要的是有颇丰的实习经验,感谢同学的帮助,更感谢老师的悉心指导和无私奉献!九附录程序源代码:#inclu
15、de /头文件#define _NOP() /空指令sbit SCL=P21;sbit SDA=P20;void delay1(unsigned int t)unsigned char i;for(;t0;t-) for(i=6425;i0;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();vo
16、id I2C_STOP(void) /定义I2C终止函数SDA=0;delay(); /SCL为高电平时,SDA有高电平变为低电平时为终止SCL=1;delay();SDA=1;delay(); void ack(void) /响应函数unsigned char i;SCL=1;delay();while(SDA=1)&(i200)i+;SCL=0;delay();void Send_byte(unsigned char zdata)unsigned char j; SCL=0; for(j=0;j8;j+) /在SCL=0时,发送8位数据 if(zdata&0x80) /判断第一位是否为高S
17、DA=1; / 第一位为高,SDA=1elseSDA=0; / 第一位为低,SDA=0zdata=zdata1; /发送第二位数据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()unsigned char i;write_
18、byte(0x40);write_byte(0x60);write_byte(0x80);void main(void)unsigned char i;while(1)write_byte(0x3f);mie();for(i=0x40;i0x5f;i+)write_byte(i); /红灯逐渐变亮delay1(1000); delay1(2000); for(i=0x60;i0x7f;i+) /绿灯逐渐变亮write_byte(i);delay1(1000); delay1(2000);for(i=0x80;i0x40;i-) /红灯逐渐变暗write_byte(i);delay1(1000)
19、;mie();delay1(2000);for(i=0x7f;i0x60;i-) /绿灯逐渐变暗write_byte(i);delay1(1000); mie();delay1(2000); for(i=0x9f;i0x80;i-)/蓝灯逐渐变暗write_byte(i);delay1(1000); mie();delay1(5000); for(i=0x40;i0x40;i-) write_byte(i);write_byte(i+0x20);write_byte(i+0x40);delay1(1000); delay1(2000);10 参考文献新概念51单片机C语言教程 电子工业出版社 郭天祥著STC89C52芯片手册 宏晶公司生产MAX232芯片手册 美信公司生产NCP5623芯片手册 安森美公司生产西安邮电大学电子工程学院专业课程设计 过程考核表学生姓名班级/学号承担任务实验室(单位)所在部门光电子技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品评白酒面试题及答案
- 伤口评估与记录试题及答案
- 工装与工位器具管理制度
- 小儿喉异物的护理
- 暑假体育培训
- 2025年中国帕德尔球行业市场全景分析及前景机遇研判报告
- 指骨骨折病人护理常规
- 重症哮喘病例讨论与治疗策略
- 终末期患者的心理护理与安宁疗护实践
- 基于新媒体环境下地方非物质文化遗产的传承
- 跨国知识产权争议解决的国际合作与协调
- 幼儿园预防中暑课件
- 整体施工劳务服务方案
- 水泥搅拌桩施工项目进度管理措施
- 2002版《水利工程施工机械台时费定额》
- 高分子物理模拟试题+参考答案
- 废弃物焚烧炉安全操作规程
- 2025年业务员个人工作计划样本(3篇)
- 职业技术学院“第二课堂成绩单”制度实施办法
- 2024年03月广东珠海华润银行春季校园招考笔试历年参考题库附带答案详解
- 2025年中国烟草公司招聘笔试参考题库含答案解析
评论
0/150
提交评论