毕业设计(论文)-基于AT89C52单片机的4x4x4光立方设计.doc_第1页
毕业设计(论文)-基于AT89C52单片机的4x4x4光立方设计.doc_第2页
毕业设计(论文)-基于AT89C52单片机的4x4x4光立方设计.doc_第3页
毕业设计(论文)-基于AT89C52单片机的4x4x4光立方设计.doc_第4页
毕业设计(论文)-基于AT89C52单片机的4x4x4光立方设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1 摘要 本设计制作出一个三维立体显示图案的LED光立方。本产品不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。本设计是采用AT89C52单片机为核心控制器,74HC154译码器为扩展I/O口,完成硬件电路设计。通过软件编程控制数据下载到单片机完成设计图案的显示。软件采用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。2 设计任务2.1 任务描述 利用单片机、LED、74HC154和74HC245等元件,首先设计电路图,然后完成电路的焊接,最后输入程序并进行调试,以达到预期的设计目的,可以显示出不同花样的立体图案。2.2 技术指标 考虑到制作成本控制在20元以内,可以采用4*4*4立方体结构进行设计,74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出,74HC245作为三态缓冲门电路。利用1个单片机、1个74HC154、1个74HC245、64个LED完成硬件设计。 程序采用C语言编写。3 光立方总体设计3.1 设计方法 首先把64个LED焊接成正方体形状,每一层共阳,共四层,分别接入74HC245的输出端口,每一层的阴极跟下一层的阴极对应连接,底面16个负极分别接入74HC154的16个端口。因此通过编写程序控制单片机输出,可以完成对立方体亮点的控制,进而可以有选择的设计立体图案。3.2 电路设计74HC154的引脚如图1所示图1 74HC154的引脚图1-11 13-17 :输出端。12:Gnd电源地18-19:使能输入端、低电平有效 20-23地址输入端24:VCC电源正) 只要控制端G1、G2任意一个为高电平,A、B、C、D任意电平输入都无效。G1、G2必须都为低电平才能操作芯片。74HC254的引脚图如图2所示图2 74HC245引脚图第1脚DIR,为输入输出端口转换用, DIR=“1”高电平时信号由“A”端输入“B”端输出, DIR=“0”低电平时信号由“B”端输入“A”端输出。第29脚“A”信号输入输出端,A1=B1A8=B8,A1与B1是一组,如果DIR=“1”G=“0”则A1输入B1输出,其它类同。如果DIR=“0”G=“0”则B1输入A1输出,其它类同。 第1118脚“B”信号输入输出端,功能与“A”端一样,不在描述。第19脚G,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用 第10脚GND,电源地。第20脚VCC,电源正极。硬件连接如图3所示图3 硬件连接图光立方LED实物图如图4所示图4 光立方LED实物图光立方硬件连接实物图如图5所示图5 光立方硬件连接实物图3.3 程序设计程序设计如下#includereg52.h#define uint unsigned int#define uchar unsigned charuint x,y,z,i;void delay(uint z);void dian();void li();void moshi1();void moshi2();void moshi3();void main()while(1) for(i=0;i=4;i+)dian();li();moshi1();moshi2();moshi3(); void delay(uint z)for(x=z;x0;x-)for(y=110;y0;y-);void dian( )P0=0x01;P2=0x00;delay(10);P2=0x01;delay(10);P2=0x02;delay(10);P2=0x03;delay(10); P2=0x04;delay(10);P2=0x05;delay(10); P2=0x06;delay(10); P2=0x07;delay(10);P2=0x08;delay(10);P2=0x09;delay(10); P2=0x0a;delay(10);P2=0x0b;delay(10);P2=0x0c;delay(10);P2=0x0d;delay(10);P2=0x0e;delay(10);P2=0x0f;delay(10);P0=0x02;P2=0x00;delay(10);P2=0x01;delay(10);P2=0x02;delay(10);P2=0x03;delay(10); P2=0x04;delay(10);P2=0x05;delay(10); P2=0x06;delay(10); P2=0x07;delay(10);P2=0x08;delay(10);P2=0x09;delay(10); P2=0x0a;delay(10);P2=0x0b;delay(10);P2=0x0c;delay(10);P2=0x0d;delay(10);P2=0x0e;delay(10);P2=0x0f;delay(10);P0=0x04;P2=0x00;delay(10);P2=0x01;delay(10);P2=0x02;delay(10);P2=0x03;delay(10); P2=0x04;delay(10);P2=0x05;delay(10); P2=0x06;delay(10); P2=0x07;delay(10);P2=0x08;delay(10);P2=0x09;delay(10); P2=0x0a;delay(10);P2=0x0b;delay(10);P2=0x0c;delay(10);P2=0x0d;delay(10);P2=0x0e;delay(10);P2=0x0f;delay(10);P0=0x08;P2=0x00;delay(10);P2=0x01;delay(10);P2=0x02;delay(10);P2=0x03;delay(10); P2=0x04;delay(10);P2=0x05;delay(10); P2=0x06;delay(10); P2=0x07;delay(10);P2=0x08;delay(10);P2=0x09;delay(10); P2=0x0a;delay(10);P2=0x0b;delay(10);P2=0x0c;delay(10);P2=0x0d;delay(10);P2=0x0e;delay(10);P2=0x0f;delay(10);void li()P0=0x0f;P2=0x00;delay(1000);P2=0x01;delay(1000);P2=0x02;delay(1000);P2=0x03;delay(1000); P2=0x04;delay(1000);P2=0x05;delay(1000); P2=0x06;delay(1000); P2=0x07;delay(1000);P2=0x08;delay(1000);P2=0x09;delay(1000); P2=0x0a;delay(1000);P2=0x0b;delay(1000);P2=0x0c;delay(1000);P2=0x0d;delay(1000);P2=0x0e;delay(1000);P2=0x0f;delay(1000); void moshi1() for(i=0;i100;i+) P0=0x01; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1); for(i=0;i100;i+) P0=0x03; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1);for(i=0;i100;i+)P0=0x07; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1); for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1);for(i=0;i100;i+)P0=0x0e; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1);for(i=0;i100;i+)P0=0x0c; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1);for(i=0;i100;i+)P0=0x08; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x04;delay(1);P2=0x05;delay(1); P2=0x06;delay(1); P2=0x07;delay(1);P2=0x08;delay(1);P2=0x09;delay(1); P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0c;delay(1);P2=0x0d;delay(1);P2=0x0e;delay(1);P2=0x0f;delay(1);void moshi2()for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);P2=0x0b;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0f;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0f;delay(1);P2=0x0e;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0f;delay(1);P2=0x0e;delay(1);P2=0x0d;delay(1);for(i=0;i100;i+)P0=0x0f; P2=0x00;delay(1);P2=0x01;delay(1);P2=0x02;delay(1);P2=0x03;delay(1); P2=0x07;delay(1);P2=0x06;delay(1);P2=0x05;delay(1);P2=0x04;delay(1); P2=0x08;delay(1);P2=0x09;delay(1);P2=0x0a;delay(1);P2=0x0b;delay(1);P2=0x0f;delay(1);P2=0x0e;delay(1);P2=0x0d;delay(1);P2=0x0c;delay(1); void moshi3()for(i=0;i100;i+) P0=0x0f;P2=

温馨提示

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

评论

0/150

提交评论