




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
基于NCP5623的和单片机的背光系统设计 课程设计题目:基于NCP5623的和单片机的背光系统设计 二、任务和要求 (1)收集资料和熟悉相关内容——包括单片机最小系统设计,I2C总线协议,用RGB三原色LED实现背光的概念,单片机c语言编程和开发环境。 (2)连接调试STC89C52单片机最小系统,可以运行简单的程序。焊接和连接NCP5623,并将其最小系统一起连接。 (3)进一步熟悉开发环境,编写程序,调试整个系统,实现资料上所列的几个功能,也就是使三种颜色的灯组合成不同的颜色来变化,同时形成不同的花色。 (4)撰写课程设计报告要遵守一定的规范和要求,即课程设计报告书写工整、语句通顺、数据准确、图表清晰。 三、总体方案的选择 软硬结合 模块化 研 究 方 法 硬件部分:根据设计的电路图,再面包板上连接好电路,得到完整的电路系统。 软件部分:在软件KeiluVision2环境下调试程序,最终实现I2C协议及LED控制部分。 模块化分3部分:MAX232EJE电路、STC89C52电路以及NCP5623电路。 总的设计系统如下图: MAX232 NCP5623 STC89C52 设计电路图 焊接芯片 连接各模块电路 导入程序检测电路 在KeiluVision2环境下编程 调试并修改 I2C协议 不同花色灯 LED控制部分 四、单元电路的设计 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协议的总程序程序图如下: 写控制字 起动总线函数 结束总线函数 字节数据发送函数 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中每个灯的控制地址如下表: 总流程图如下: 灯灭 主函数 写地址(0x3f) 写入各灯状态地址 延时 程序如下 #include<reg52.h> //头文件 #define_NOP() //空指令 sbitSCL=P2^1; sbitSDA=P2^0; voiddelay1(unsignedintt) { unsignedchari; for(;t>0;t--) { for(i=6425;i>0;i--); } } voiddelay(void)//定义延时函数 {

快乐****蜜蜂
实名认证
内容提供者


最近下载