基于单片机的光立方的设计毕业设计Word下载.docx
- 文档编号:7072995
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:89
- 大小:1.95MB
基于单片机的光立方的设计毕业设计Word下载.docx
《基于单片机的光立方的设计毕业设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的光立方的设计毕业设计Word下载.docx(89页珍藏版)》请在冰点文库上搜索。
1.3.2 章节安排
第1章为绪论部分,简要介绍了3D光立方研究背景和意义、国内外的一些应用和现状以及主要内容的介绍等。
第2章为为总体设计部分,主要说明了总体设计思路、光立方控制显示原理和系统的控制方案,主要元器件的介绍说明,各个模块的设计。
第3章为硬件部分设计,包括单片机控制电路的设计、主要模块设计等。
第4章为软件设计,包括软件设计流程图,软件设计程序等。
第5章软硬件调试,包括后期软件调试,以及整体效果调试。
第6章内容总结。
第2章 系统总体设计方案
2.1 光立方控制原理
3D光立方其功能相当于三维显示器,只不过3D光立方是由LED灯组成的三维的立方体。
光立方显示的原理简单的说就是用单片机控制512个LED灯,在不同时刻点亮要显示图案位置所在的灯,利用人眼余辉效应,可以看到比较完整的显示图案或动画了。
其原理如下:
光立方从下到上共8层,每一层64个LED的负极接到一起,第一层64个正极单独引出,第二层的每个正极分别接到它对应第一层正极,第三层的正极接第二层的正极。
就是竖着看是8个接到一个正极上。
连在一起的是阴极,这样焊接起来。
光立方引出8个层引出线加上64个正极引出线,因此只需对这72根引出线控制即可[1]。
2.2 系统的总体设计方案
本设计采用层整体控制的思路,每层只引出一个引脚。
那只要将64个灯阳极或阴极连在一起,在连到这个引脚上即可。
采用HC573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,这样通过查询相应芯片的型号可以确定基本电路。
系统框图如图2-1所示。
图2-1 光立方显示控制结构框图
如上图2-1所示,系统的整体设计框图包括控制模块,即核心的单片机、驱动模块、电源模块、接口模块以及光立方显示模块。
2.3 主要元器件介绍
(1)STC89C52RC单片机
STC89C52RC单片机各个引脚功能不同,P0、P1、P2和P3口在常规状态下是双向I/O口,其余的并且有的引脚有双功能。
这里只对第二功能说明。
而P1和P3口都有第二功能,如表2-1所示[2]。
表2-1 P1和P3口的第二功能
引脚号
第二功能
P1.0
T2(定时/计数器2外部计数脉冲输入),时钟输出
P1.1
T2EX(定时/计数器2捕获/重装触发和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0()外中断0
P3.3
INT1()外中断1
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
(2)74HC573锁存器
图2-3 74HC573引脚图
如图2-3所示为74HC573锁存器的引脚分布图,可用于列控制。
OE的专业术语为三态允许控制端(低电平有效),通常叫作输出使能端。
1D~8D为数据输入端;
1Q~8Q为数据输出端;
LE为锁存允许端,或叫锁存控制端。
真值表用来表示数字电路或者数字芯片工作状态的直观特性[3]。
表2-2 74HC573的功能表
输入
输出
输出使能
锁存使能
D
Q
L
H
X
不变
Z
如表2-2所示,真值表中字母的含义即H--高电平、L--低电平、X--任意电平、Z--高阻态。
也就是既不是高电平也不是低电平,而它的电平状态由与它相连接的其他电气状态决定;
Q0--上次的电平状态。
(3)ULN2803达林顿管
ULN2803是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压为50V,电流为500mA,输入电压为5V,适用于TTLCOMS,由达林顿管组成驱动电路。
图2-5 ULN2803引脚图
表2-3 ULN2803参数表
额定值
符号
值
单位
输出电压
V
50
输入电压
30
集成极电流-连续
I
500
Ma
基极电流-连续
25
工作环境温度范围
T
0至7
C
保存温度范围
-55至+150
结温
125
(4)PL2303
PL2303是一种高度集成的RS232-USB接口转换器,该器件作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;
另一方面从RS232外设接收数据转换为USB数据格式传送回主机。
其各引脚的定义如图2-6所示:
图2-6 PL2303引脚图
(5)78M05稳压芯片
由于单片机供电需使用5V的电压,而供给的电源高于5V,因此需要稳压芯片78M05电路可以输入一个直流稳压电源,他的输出电压恰好为5V,刚好是51系列单片机运行所需的电压将高电压转换为单片机可以使用的电压。
共有三个引脚一个输入,一个输出还有一个是地,其引脚如图2-7所示。
图2-7 78M05稳压芯片引脚图
第3章 系统硬件设计
3.1 单片机介绍
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
STC89C52系列单片机主要特性如下:
(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
(2)工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
(3)工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
(4)用户应用程序空间为8K字节。
(5)片上集成512字节RAM。
(6)通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
(7)共3个16位定时器/计数器。
即定时器T0、T1、T2。
STC89C52芯片引脚如图3-1所示。
图3-1 STC89C52引脚图
P0端口(P0.0~P0.7P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0每个引脚驱动写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线,此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;
而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻[4]。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表3-1。
表3-1 P1.0和P1.1口引脚复用功能
功能特性
T2(定时器/计数器2外部计数输入),时钟输出
T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器SFR区中的P2寄存器的内容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如表3-2所示。
表3-2 P3口引脚复用功能
复用功能
INT0(外部中断0)
T0(定时器0的外部输入)
T1(定时器1的外部输入)
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/ROG(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号,低电平有效。
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。
注意加密方式1时,将内部锁定位。
XTAL1(19引脚):
输入到单片机内部振荡器的反响放大器。
当采用外部振荡器时,对HMOS单片微机,此引脚应接地;
对CHMOS单片机,此引脚作驱动端。
XTAL2(18引脚):
反相放大器的输出,输入到内部时钟发生器。
当采用外部振荡器时,XTAL2接收振荡器信号,对CHMOS单片机,此引脚应悬浮。
3.2 总控制电路设计
图3-2 总控制电路原理图
图3-2为总控制电路的电路图。
总控制电路主要由电源电路、复位电路和晶振电路组成。
单片机STC89C52加电时,需要进行复位操作,复位后STC89C52的工作环境配置成初始状态,并从程序的开始进行运行。
RST引脚接复位电路,本系统采用11.0592MHz的外部晶振电路[5]。
3.2.1 复位电路
单片机通常有上电复位和按键复位两种复位方法。
本系统复位电路采用按键复位,模拟已经通电并充电完成,然而此时按下按键,电容被短路,那么电容放电电流的流向是从正极到负极放电,这是单片机的复位脚就是高电平,单片机复位[6]。
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用频率为12MHz的晶振,则复位信号持续时间应超过2µ
s才能完成复位操作。
手动按钮复位需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
复位电路原理如图3-3所示。
图3-3 复位电路原理图
3.2.2 晶振电路
每个单片机系统里都有晶振,全称叫晶体震荡器,在单片机系统中,晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快[6]。
本次设计晶振部分主要元器件包括2个22pF电容和1个11.0592MHz晶振组成。
XTAL0和XTAL1分别为振荡电路的输入端和输出端,时钟可有内部或外部生成,在XTAL0和XTAL1引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
电容的大小起频率微测的作用。
晶振电路原理图如图3-4所示
图3-4 复位电路原理图
3.3 供电系统及电源接口设计
系统分为两种供电方式,一种即最小系统板供电,它给单片机单独供电,而外围器件供电主要是,提供达林顿管层选时以及74HC573位选时的供电等,而电源接口采用适配器供电,系统供电原理如图3-5所示。
图3-5 系统供电原理图
三端稳压集成电路LM7805,是稳压用的集成电路。
只有三条引脚输出,分别是输入端、接地端和输出端。
在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压。
此直流电压经过LM7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
本稳压电源可作为TTL电路或单片机电路的电源。
3.4 USB转TTL电平设计
USB转TTL电平设计主要目的是通过PL2303芯片将USB数据转换为单片机可用的串口数据。
PL2303是一种高度集成的RS232-USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案,该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可以实现USB信号与RS232信号的转换,能够方便嵌入到各种设备,以供下载程序时使用。
USB转TTL原理如图3-6所示。
图3-6 USB转TTL原理图
3.5 层控制电路设计
系统对于光立方的层控制采用达林顿管来实现选择哪一层。
这个电路设计较为简单,只要控制其中要显示的层引脚就能选通相应的层[7]。
ULN2803为八重达林顿晶体管阵列用于层控制,如图2-5所示引脚1,2,3,4,5,6,7,8为输入,对应的脚18,17,16,15,14,13,12,11为输出。
10脚为8路输出的续流二极管公共端。
输入电压5V,TTL和5V的CMOS电路可直接驱动。
输出500MA,50V。
因为输出是集电极开路,所以输出接负载,负载的另一端得接正电源。
应用是9脚接地。
当输入为0时,输出达林顿管截止,负载无电流。
输入为高电平时,输出达林顿管饱和,负载就有电流流入输出口。
10脚在驱动感性负载时用的,驱动感性负载时10脚接负载电源+。
UNL2803层控制器原理如图3-7所示。
图3-7 ULN层控制器原理图
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机P3驱动ULN2803时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源[8]。
3.6 行列选择电路设计
系统采用8个74HC573实现行列的控制,采用了HC573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,这样我们通过查询相应芯片的型号可以确定基本电路。
而本次设计是采用P0口为使能控制,选择哪一个74HC573通,而P2口送灯的亮灭信息到74HC573中锁存起来[9]。
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器[10]。
当OE为高电平时,无论LE与D端为何种电平状态,其输出都为高阻态。
很明显,此时该芯片处于不可控制状态。
而我们将74HC573接入电路是必须要控制它的,由此在设计电路时就必须将OE接低电平。
当OE为低电平时,LE为H时,D与Q同时为H或L;
而当LE为L时,无论D保持何种电平状态,Q都保持上一次的数据状态。
也就是说,当LE为高电平时,Q端数据紧随D端数据而变化;
当LE为低电平时Q端数据保持LE端变化为低电平之前Q端的数据状态。
在开发板上,LE端与单片机的引脚相连,再将锁存器的输入端与单片机的的某组I/O口相连,便可通过控制锁存器的锁存端与锁存器的数据输入端的数据来改变锁存器的数据输出端的数据状态。
74HC573行列控制原理如图3-8所示。
图3-8 行列控制原理路
3.7 PCB设计
在画PCB电路板时,要兼顾到布局要求,布局原则,布局顺序,以及一些常用的布局方法等。
(1)元器件布局要求:
保证电路功能和性能指标;
满足工艺性、检测、维修等方面的要求;
元器件排列整齐、疏密得当,兼顾美观性。
(2)元器件布局原则:
排列方位尽可能与原理图一致,布线方向最好与电路图走线方向一致;
PCB四周留有5-10mm空隙不布器件;
布局的元器件应有利于发热元器件散热;
高频时,要考虑元器件之间的分布参数,一般电路应尽可能使元器件平行排列;
高、低压之间要隔离,隔离距离与承受的耐压有关。
对于单面PCB,每个元器件引脚独占用一个焊盘,且元器件不可上下交叉,相邻两元器件之间要保持一定间距,不得过小或碰接。
(3)元器件布局顺序:
先放置占用面积较大的元器件;
先集成后分立;
先主后次,多块集成电路时先放置主电路。
(4)常用元器件的布局方法:
可调元件应放在印制板上便于调节的地方;
质量超过15g的元器件应当用支架,大功率器件最好装在整机的机箱底板上,热敏元件应远离发热元件;
对于管状元器件一般采用平放,对于集成电路要确定定位槽放置的方位是否正确。
综合考虑本次设计PCB图见附录。
3.8 光立方制作
3.8.1 弯折LED灯
本次3D光立方采用高亮蓝色灯,制作步骤如下所示:
(1)水平折弯LED灯。
基本徒手可以完成,为了焊接的整齐性,要保证角度的统一。
如图3-9所示。
(2)垂直折弯:
可借助尖嘴钳,目的是让阴极摆出发光体一部,使其可以与其上下的LED进行搭接。
图3-9 LED弯折图
3.8.2 制作底层支架
为了在光立方焊接时稳固一点,所以首先制作底板支撑光架,底板采用泡沫板,首先自己画一个8*8的直径为5mm的圆的布局图,圆用黑色实心表示,打印出来并平贴在泡沫板上面,然后把黑色圆实心挖去,剩下的图以备用。
泡沫板如图3-10所示。
图3-10 泡沫板
3.8.3 搭建光立方
搭建光立方是按照先一排,再一层都焊接好,最后到体。
但是在每一层焊好后,要对LED灯测试,因为焊接的时候,烙铁温度高容易损坏LED灯。
并且层与层之间的连接也要测试灯的好坏。
到最后全部测试一次。
最终焊接的图如图3-11所示。
图3-11 光立方体图
第4章 系统软件设计
4.1 软件编译流程
本设计的软件调试与编译是在KeiluVision2的环境下进行的,KeiluVision2可以对C语言进行编程,首先在KeiluVision2环境下先新建一个工程NewProject,在下拉菜单中选择Atmel中的At89c52(AT89C52与STC89C52RC头文件兼容)[11]。
新建工程如图4-1所示。
图4-1 新建工程
在新建的File对话框中输入程序,保存在新建的Project中,格式为.c文件。
并添加到Group中。
保存文件如图4-2所示。
图4-2 保存文件
接下来编译写好的程序,编译没有错误有如4-3所示
图4-3 编译没有错误
接下来就是生成Hex文件,在Output中在CreatHEX选项前打上对号,点击OK按钮,然后在进行一次编译即可生成HEX文件[12]。
生成HEX文件如图4-4所示。
图4-4 生成hex文件
生成HEX文件后,把之前编译好的.c文件保存到sourcegroup1中。
添加.c文件如下图4-5所示。
图4-5 添加.c文件
在编译完生成hex文件后,运行STC_ISP_V479软件,将此程序烧录到开发板上,首先设置打开的软件,MCUType选择STC89C52RC,然后再打开之前生成的hex文件,根据电脑设备管理器中选择的端口,对应选择需要的COMS通道,最后就要进行下载了。
等提示请给MCU上电时,打开开发板上的开关,程序便自动进行烧录了[13]。
烧录程序对话框如图4-6所示。
图4-6 烧录程序对话框
程序下载到单片机中之后,就要进行整体设计的演示了,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 立方 设计 毕业设计