- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的光立方控制实验课程设计精选
基于单片机的光立方控制实验
实现功能
通过AT89C51单片机来控制一个由64盏LED灯组成的四层光立方模拟3D显示效果,实现三维显示。
该光立方具有以下功能:
1)能单独点亮每一个LED灯;
2)能点亮任意一条线上的LED灯;
3)能同时点亮任意一个面上的LED灯;
4)能同时点亮所有的LED灯;
5)能让LED灯自由亮灭,产生不同的显示效果。
设计思路
1、单片机资源分配情况
光立方分为四层,从下到上分别由P2.0、P2.1、P2.2、P2.3控制,每层16个LED灯由P0和P1中16个IO引脚控制。层间采用共阴极所以输入低电平有效,列间采用共阳极所以输入高电平有效。
2、系统结构
系统主要由时钟电路、复位电路、LED光立方电路组成;时钟电路和复位电路作为单片机输入,LED光立方电路作为单片机输出。
时钟电路:单片机内部有一个由反向放大器构成的振荡电路,芯片上的XTAL1和XTAL2分别为振荡电路的输入和输出端。只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,由振荡器产生自激振荡,便构成一个完整的振荡信号发生器。
复位电路:通过连接方式,使单片机内部各类寄存器的值变为初始状态,设计综合采用上电复位方式和按键复位方式。
3、程序流程
程序包括延时程序、显示程序两个子程序。
显示程序:主要是在得到当前控制灯的位置后,通过控制与它相连的阴阳两端的引脚电平,从而实现对灯的亮灭进行控制。
延时程序:由于显示程序不能控制灯持续点亮,达不到显示效果,所以我们需要增加延时程序来延长显示时间从而达到显示效果。
所需元器件
LED灯64个
AT89C51单片机一个
102排阻一个
20pF电容两个
12MHz晶振一个
1k欧和10k欧电阻各一个
10微法电容一个
按键一个
单片机插座一个
USB母座一个
7cm*9cm洞洞板一块
电路设计
1.单片机与晶振及复位电路
利用单片机XTAL1和XTAL2两个端口接上12MHz的晶振,在加上两个20pF的电容保护晶振,这样单片机的最小系统就构成了。 然后利用单片机的RST口,接上复位电路,就能使单片机恢复初始状态。
2.单层LED灯电路
层间LED灯采用共阴极接法,一层工16个灯,由单片机16个引脚控制,每层阴极引出一根线为L1、L2、L3、L4,由单片机P2端控制。
3.洞洞板布局
将元器件焊接在洞洞板上,同时接上保护LED的电阻
程序代码
#includestdio.h
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
void Delay(uint del)
{
uint i,j;
for(i=0; idel; i++)
for(j=0; j9270; j++)
;
}
main()
{
P2=0X00;
P0=0XFF;
P1=0XFF;
Delay(600);
P2=0XF0;
P1=0X00;
P0=0X00;
Delay(10);
P1=0XFF;
P0=0XFF;
Delay(10);
P1=0X00;
P0=0X00;
Delay(10);
P1=0XFF;
P0=0XFF;
Delay(10);
P1=0X00;
P0=0X00;
Delay(10);
P1=0XFF;
P0=0XFF;
Delay(10);
P2=0X00;
P0=0X1;
P1=0X00;
Delay(10);/*1*/
P0=0X2;
P1=0X00;
Delay(10);/*2*/
P0=0X4;
P1=0X00;
Delay(10);/*3*/
P0=0X8;
P1=0X00;
Delay(10);/*4*/
P0=0X10;
P1=0X00;
Delay(10);/*5*/
P0=0X20;
P1=0X00;
Delay(10);/*6*/
P0=0X40;
P1=0X00;
Delay(10);/*7*/
P0=0X80;
P1=0X00;
Delay(10);/*8*/
P0=0X00;
P1=0X1;
Delay(10);/*9*/
P0=0X00;
P1=0X2;
Delay(10);/*10*/
P0=0X00;
P1=0X4;
Delay(10);/*11*/
P0=0X00;
P1=0X8;
Delay(10);/*12*/
P0=0X00;
P1=0X10;
Delay(10);/*13*/
P0=0X00;
P1=0X20;
De
您可能关注的文档
- 基于J2EE框架的元器件管理系统毕业设计精选.doc
- 基于J2EE的笔记本销售的设计和实现毕业设计精选.doc
- 基于JSP技术学生网上选课系统的设计与实现本科毕业设计(论文)精选.doc
- 基于java的邮箱管理服务器设计与实现本科毕业设计精选.doc
- 基于JSP的电科院校园二手交易平台毕业设计(论文)精选.doc
- 基于Linux的实现进程的信号量互斥申请—课程设计说明书精选.doc
- 基于Linux的DHCP服务器配置毕业设计论文精选.doc
- 基于Matlab仿真的PID校正控制课程设计精选.doc
- 基于MATLAB数字基带调制设计—课程设计报告精选.doc
- 基于Matlab的声音的延迟与混响课程设计论文精选.doc
文档评论(0)