ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:755.25KB ,
资源ID:2969908      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2969908.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(光立方单片机课程设计报告资料.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

光立方单片机课程设计报告资料.docx

1、光立方单片机课程设计报告资料通信工程专业 单片机系统课程设计8*8*8光立方学 院: 信息与通信工程学院 (系)专 业: 通信工程 学 生 姓 名: 栾佳玉/常雅楠 学 号: 2014136113/2014136102 指 导 教 师: 宋修锐 完 成 日 期: 2016.05.24 大连民族大学1 设计背景及要求1.1 研究背景在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心。为追求舒适、逼真、清晰的3D视频显

2、示,为此制作出一个三维立体显示图案的LED光立方。该设计方案将打破了传统的平面显示视频的方法,该方案设计的LED显示屏显示画面色彩鲜艳,立体感强,静如油画,可以广泛应用于广告公司、交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。1.2 设计要求一、基本要求 (1)设计制作一个8*8*8的三维的发光二极管显示方阵,能够通过编写程序来实现对每一个发光二极管的控制。 (2)能够实现图像,符号或者文字的静态显示。 (3)能够实现图像,符号,或者文字的立体图像的简单的动态显示。二、扩展要求 (1)可实现图形、符号和文字的旋转、缩放等多种显示模式。 (2)可以利用无线传输的方式来遥控光

3、立方的显示模式。2 系统方案设计2.1 系统方案框图图2.1 系统方案框图利用单片控制LED点阵显示的原理和控制技术,来制作控制光立方显示。通过编写程序控制不同LED的显示,显示所要显示的内容。根据人眼的视觉暂留效应,设置每幅画面的延迟时间使连续的一系列画面呈现动态。最终达到所要显示的内容。每个灯都是由层控制端和列控制端共同决定亮或灭。3 系统硬件电路设计3.1 单片机最小系统图3.1 复位电路及晶振电路 复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。一是在给电路通电时马上进行

4、复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。复位电路都是比较简单的大都是只有电阻和电容组合就可以办到了,再复杂点就有三极管等配合程序来进行了。晶振电路是给单片机提供时钟信号。图3.2 电源电路图3.3下载电路3.2 uln2803电路设计图3.4 uln2803电路采用的是ULN2803达林顿管驱动器与进行驱动。ULN2803是八重达林顿,1 至 8脚为8路输入,18 到 11脚为8路输出。驱动能力 500MA 50V。应用时9脚接地,如果驱动感性负载,10脚接负载电源V+。输入的电平信号为0,或5V。8 输入0时,输出达林顿管截止。输入为5V电平时,输出达

5、林顿饱和。输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作。八路NPN达林顿连接晶体管阵系列特别适用于低逻辑电平数字电路和较高的电流/电压要求之间的接口,广泛应用于计算机工业中。所拥有的器件具有集电极开路输出和续流箱位二极管,用于抑制跃变。ULN2803的设计与标准TTL系列兼容,而ULN2804 最适于6至15伏高电平CMOS或PMOS。3.3 74hc573电路设计图3.5 74hc573电路74HC573包含八路3态输出的非反转透明锁存器,是一种高性能硅栅CMOS器件。74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使

6、能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。一个2803与八个573结合使用,可以精准的控制到每一个灯上,进而控制整个光立方的花型。3.4 显示电路设计层共阴,每一竖列共阳。在实际焊接的过程中,先将灯的阴阳极分别折出90度,中间留出一定的空间避免焊接时阴阳极挨在一起造成短路。将阳极焊在一起,每八个形成一列,将八列的阴极逐个焊在一起形成一层,如此焊出八层。在与P

7、CB板相连时,阳极与板上的孔焊接,每层的阴极焊接在一起,将2803的八个输出分别从板上跳线接至每层的阴极。这样基本完成了光立方的焊接。在绘制PCB板的过程中,我们确定了孔间距为两厘米,在焊接的过程中严格执行两厘米的间距,否则会造成某一列或某一行不平,影响最终效果。我们制作了光立方LED的焊接模板,从而可以精准的确定焊接距离。在焊接的过程中,先用电压表检查灯泡是否完好,否则焊完之后再用电压表检测发现损坏的小灯很难从光立方上拆除。而且也要注意阴阳极,不要焊反而误以为灯泡损坏。4 系统软件设计4.1 定义74hc573控制输入模块 P0口;uln2803驱动模块 P1;74hc573控制输出模块 P

8、2口。初始化定时器0,延时5us,开中断,使其处于等待中断状态。接着,初始化光立方体,驱动光立方,利用扫描形式使光立方体的LED灯逐个点亮形成动画。4.2软件设计软件设计包括主程序、显示程序两大部分,软件功能结构框图如4.1所示。主程序通过调用按键查询程序来判断待显示的图案及花样,主程序则调用相对应的显示程序送到控制端口4.3主程序部分主程序部分主要进行对不同花样的调用及选择。4.4显示部分动态扫描显示是把整个光立方分成若干部分,每一幅画面显示过程是显示完一部分后,又显示第二部分,直到显示完最后一部分又重新开始显示第一部分,重复循环进行。在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的静

9、态画面。也就是说采用动态扫描显示需要不断进行画面的刷新。动态扫描分为行扫描和列扫描,两种方式区别在于选通端和数据输入端分别是行还是列。先选通列然后再从行送入对应列的数据,这样从第1列到第8列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面,从而完成数据的传送。5 系统调试 在焊接完成后,我们分模块对单片机的电路进行了测试,如电源电路,下载电路等,在检查完毕后,让光立方全亮的程序,检查光立方是否有虚焊的地方,再对虚焊的部分进行焊接,最后以实现光立方全亮,再对光立方进行花样编程。结 论 一、已经完成的功能(1)设计制作一个8*8*8的三维的发光二极管显示方阵,能够通过编写

10、程序来实现对每一个发光二极管的控制。(2)能够实现图像,符号或者文字的静态显示。(3)能够实现图像,符号,或者文字的立体图像的简单的动态显示。 二、已经还有待于完善的功能:(1)可实现图形、符号和文字的旋转、缩放等多种显示模式。(2)可以利用无线传输的方式来遥控光立方的显示模式。参 考 文 献1 刘岩川,董玉华.刘忠富等著.MCS-51系列单片机原理及系统设计.北京:电子工业出版社,2014.2 焉德军,刘明才著.计算机基础与C语言程序设计(第二版).北京:清华大学出版社,2014.3 高歌,刘远贵,马聪.Altium Designer 电子设计应用教程。北京:清华大学出版社,2014.4 刘

11、明才,牟连泳,辛慧杰等.C语言程序设计.机械工业出版社,2011.5 郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,2009. 附录一 系统硬件电路图图1 系统硬件电路图 附录二 实物照片(有通电运行的照片)图2 实物图 图3 通电实物图附录三 系统完整程序代码(加注释)#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P1 /定义数据端口 ,为层控制端口,即uln2803, 程序中遇到DataPort 则用P1 替换#define shuchu P0#define LATCH=P2;/定义锁存使能端口 第一个57

12、3的使能控制端口sbit DataPort1=P10;sbit DataPort2=P11;sbit DataPort3=P12;sbit DataPort4=P13;sbit DataPort5=P14;sbit DataPort6=P15;sbit DataPort7=P16;sbit DataPort8=P17;sbit LATCH1=P20;/定义锁存使能端口 第一个573的使能控制端口sbit LATCH2=P21; sbit LATCH3=P22;sbit LATCH4=P23;sbit LATCH5=P24;sbit LATCH6=P25;sbit LATCH7=P26;sbit

13、 LATCH8=P27;sbit key1=P34;sbit key2=P35; void Delay(unsigned int t) while(-t);unsigned char line8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/ 显示行值01234567 void display(unsigned char *Data)/显示子程序,指针数组作为形参,直接指向传过来的实参数组的地址 ,这样就可直接操纵数组传过来的数组了 unsigned char i; for(i=0;i8;i+) DataPort=linei; /先给层输入数据 即uln28

14、03 shuchu=Datai; LATCH1=1;LATCH1=0; shuchu=Data8+i; LATCH2=1;LATCH2=0; shuchu=Data16+i; LATCH3=1;LATCH3=0; shuchu=Data24+i; LATCH4=1;LATCH4=0; shuchu=Data32+i; LATCH5=1;LATCH5=0; shuchu=Data40+i; LATCH6=1;LATCH6=0; shuchu=Data48+i; LATCH7=1;LATCH7=0; shuchu=Data56+i; LATCH8=1;LATCH8=0; Delay(200); /扫描间隙延时,时间太长会闪烁,太短会造成重影 void liang() /点亮所有的灯 unsigned int i; for(i=0;i5000;i+) DataPort=0xff; /先给每层都输入数据 shuchu=0xff; /8个573输出端为高 /DataPort=0xff; /把0xff送进锁存器18中,使它们的输出引脚都输出高电平,与行锁存器的0x00相对,点亮所有的灯 LATCH1=1;LATCH1=0; /打开锁存放数据 关闭锁存防止干扰 LATCH2=1;LATCH2=0; LATCH3=1;LATCH3=0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1