课程设计报告

发布 2022-10-01 06:28:28 阅读 4396

西安邮电大学。

1.课程设计题目。

led背光灯系统。

2.任务和要求。

任务:通过stc89c52、max232、ncp5623、i2c总线组合连接硬件电路,设计一个简单的背光灯系统,了解传输协议和ncp5623的功能表以及其工作原理。编写程序控制红、绿、蓝3个led进行有规律的亮灭。

要求:所设计的背光灯系统应该完成以下功能:

1、可以让红绿蓝三个灯按不同顺序,不同花样亮;

2、可以实现红绿蓝三个灯亮暗的调节;

3、整个系统的变化过程清晰可辨,且与程序相对应。

3.总体方案的选择。

本次课程设计要求用stc89c52、ncp5623、max232等其它器件设计一个背光灯系统,并实现亮度和颜色的调节。

亮度方面,考虑到led的亮度和通过它的电流成正比,因此可以通过控制电流来实现亮度的调节,注意要加一个限流电阻。

颜色方面,考虑到利用红黄蓝三原色可以获得多种颜色,因此通过三原色各自亮度的调节达到颜色的调节。

根据i2c传输协议以及ncp5623的功能表编写程序,控制led灯按不同顺序,不同亮度工作。

总体设计方案框图如下:

4.单元电路的设计。

1)电平转换电路。

由于stc89c52的工作电压在0到+5伏,而从usb线传过来的电压不满足此要求,所以要先进行电压的转换。利用max232实现此功能。

max232的具体管脚分布以及外扩电路如图所示:

在实际的操作中c3、c5、c6、c7、c8的大小选择的是1μf。9号和10号管脚是和单片机stc89c52的p2^4和p2^2相连的。

2)stc89c52单元电路。

单片机stc89c52的管脚分布和外扩电路如下图:

单片机的10号和11号管脚是和max232的9号和10号连接的,单片机的25号和23号即p2^4和p2^2是和ncp的9号和11号即sda和scl相连的。

3)ncp5623单元电路。

ncp5623的管脚分布和外扩电路如下图。

ncp5623的1号、7号、8号、14号管脚是悬空的。9号接单片机的p2^0411号接单片机的p2^2。

5.总体电路图。

6.软件部分。

1)i2c协议。

i2c总线只有两根双向信号线。一根是数据线sda,另一根是时钟线scl。

iic总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

scl线为高电平期间,sda线由高电平向低电平的变化表示起始信号;scl线为高电平期间,sda线由低电平向高电平的变化表示终止信号。

起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。

连接到i2c总线上的器件,若具有i2c总线的硬件接口,则很容易检测到起始和终止信号。

接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将scl线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放scl线使之为高电平,从而使数据传送可以继续进行。

每一个字节必须保证是8位长度。数据传送时,先传送最高位(msb),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。

由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。

如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续传送。

当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。这个信号是由对从机的“非应答”来实现的。然后,从机释放sda线,以允许主机产生终止信号。

2)led控制部分。

ncp5623控制三色led灯的真值表:

根据表里的描述变换区间控制led使其按不同方式亮。

7.设计过程中发生的问题及解决的方法。

1)起初看到ncp5623的功能表感觉无从下手,根本看不懂是什么意思,后来查阅了好多资料才知道**里的数据到底是控制什么的,才有思路去写程序。

2)将max232和stc模块电路搭建好之后,用led检验电路是否连通时发现电路不亮。用万用表检测电路的各个部分后发现面包板的有些部分并未连通,后来将整个面包板都接通了,才能正常工作了。所以在用面包板时一定要先将面包板的各个部位连通,以免造成以后工作的不便。

3)程序编号后,烧到板子上发现灯不亮,仔细检查了ncp5623部分发现12个13管脚接到地上了,而应该将这两个管脚接到电源上。并且要连接一个旁路电容。

4)当电路可以实现简单的控制后,在此基础上多加了一些功能,发现灯在变化的过程**现乱码,仔细检查程序发现没有将电流的控制部分加进去。

8.分析和总结。

1)由于自己以前学过单片机,所以做起来相对简单一些,连电路很容易,主要是写程序部分,怎样把程序写的更完美,功能实现的越多,都是要考虑的部分。

2)此次实习让我对51单片机有了更深一步的了解,只要搭配不同的芯片就可以实现不同的功能。在搭电路时一定要看清楚芯片的1管脚,不能将其插错,否则很容易烧坏芯片。

1.3在这次设计过程中,体现出自己单独设计背光灯的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

9.参考文献。

郭天祥的《51单片机c语言教程》

10.过程考核表和成绩鉴定表。

西安邮电大学电子工程学院专业课程设计过程考核表。

西安邮电大学电子工程学院专业课程设计成绩鉴定表。

11. 所有的程序按功能命名后附在文件后面。

具体**如下:

#include<>头文件。

#include <>

#define uint unsigned int宏定义。

#define uchar unsigned char

sbit scl=p2^1; /i2c时钟总线。

sbit sda=p2^0; /i2c数据总线。

uchar rtab[10]=;

uchar gtab[10]=;

uchar btab[10]=;

/在32个数据中均匀的挑出十个数据。

uchar rr[10]=;

uchar gr[10]=;

uchar br[10]=;

延时函数。void delay延迟微秒级别,主要用来表示i2c总线工作时上升沿及下降沿变化时的延迟。

uchar i,j;

for(i=0;i<=7;i++)

void delay1ms(uint z)

uint x,y;

for (x=z;x>0;x--)

for (y=111;y>0;y--)

void delay_50us(uint t)

uchar j;

for(;t>0;t--)

for(j=19;j>0;j--)

void delay_50ms(uint t)

uchar j;

for(;t>0;t--)

for(j=6425;j>0;j--)

***起动总线函数***

void start_i2c() 在时钟为高电平时,给数据一个下降沿脉冲。

sda=1发送起始条件的数据信号。

delay();

scl=1;

delay起始条件建立时间大于4.7us,延时*/

sda=0发送起始信号*/

delay();

结束总线函数。

void stop_i2c() 在时钟为高电平时,给数据一个上升沿脉冲。

sda=0; /发送结束条件的数据信号*/

delay();

scl=1; /结束条件建立时间大于4μs*/

delay();

sda=1; /发送i2c总线结束信号*/

delay();

***字节数据发送函数。

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...