毕业课程设计光立方 2.docx
- 文档编号:26880118
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:17
- 大小:635.78KB
毕业课程设计光立方 2.docx
《毕业课程设计光立方 2.docx》由会员分享,可在线阅读,更多相关《毕业课程设计光立方 2.docx(17页珍藏版)》请在冰豆网上搜索。
毕业课程设计光立方2
1、设计要求与方案…………………………………………………………………1
1.1设计目的……………………………………………………………………1
1.2设计要求……………………………………………………………………1
1.3设计思路……………………………………………………………………1
1.4设计的总体要求及方案选择……………………………………………2
2、工作原理………………………………………………………………………3
2.1模块的简介…………………………………………………………………3
2.23DLED光立方工作原理……………………………………………………4
3、方案选择…………………………………………………………………………5
3.1电源的选择…………………………………………………………………5
3.23D显示核心控制器…………………………………………………………5
3.3I/O口扩展芯片的选择……………………………………………………6
3.4LED发光显示二级管………………………………………………………6
4、硬件整体设计概述及功能分析…………………………………………………8
4.1系统概述…………………………………………………………………8
4.2系列单片机简介……………………………………………………………9
4.3时钟电路设计………………………………………………………………9
4.4复位电路设计……………………………………………………………10
4.574HC573芯片连接电路图与介绍…………………………………………11
5、主程序设计思路………………………………………………………………13
5.1程序流程框图………………………………………………………………13
5.2显示程序的设计……………………………………………………………13
5.2.1LED显示屏的数据传送……………………………………………13
5.2.2显示程序的设计……………………………………………………14
6、硬件电路设计…………………………………………………………………15
6.1单片机与74HC573连接线路图……………………………………………15
6.2LED焊接方法………………………………………………………………15
6.2.1焊前准备工作……………………………………………………15
6.2.2焊接…………………………………………………………………16
6.3整体实物图………………………………………………………………17
7、程序设计分析与选择…………………………………………………………18
7.1单片机C语言主要特点……………………………………………………19
7.2单片机C语言与标准语言的区别…………………………………………19
7.3数据类型的选用…………………………………………………………20
7.4算法设计问题……………………………………………………………20
7.5数据存储器的分配…………………………………………………………21
7.6单片机C语言与汇编语言的混合编程……………………………………21
7.7程序分析选择……………………………………………………………23
8、程序设计………………………………………………………………………24
9、设计结果分析…………………………………………………………………28
总结………………………………………………………………………………30
致谢…………………………………………………………………………………31
参考文献……………………………………………………………………………3
1、设计要求与方案
1.3设计思路
本设计根据二极管点阵的原理由单片机I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间,来设置每幅画面的延迟时间使连续的一系列画面呈现动态。
每一个层面的二极管阳极接在一起受一路I/O口控制,实际电路中该路I/O口输出的控制信号通过5V继电器的吸合和断开来控制的,再输入发光二极管的阳极使其驱动。
每一个二极管的阴极分别受单片机扩展后的I/O控制。
每个灯都是由片选端口和控制端口共同决定亮或灭。
因此,我们可以随意的来点亮立方体中任意一处的灯,来构建多种多样的图案。
1.4设计的总体要求及方案选择
本次设计制作一个8*8*8的三维的发光二极管立方显示体,能够通过编写程序来实现对每一个发光二级管的亮灭控制,从而可以显示多种多样的图案。
为了吸引观众增强显示效果,可以有多种显示模式。
最简单的显示模式是静态显示。
与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够变化的。
按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。
产生不同显示显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。
这样程序书写就不会过于繁琐和重复,而且对核心控制器的内存空间要求不高。
借鉴单片机控制LED点阵显示的原理,通过系统分析,确定该系统该具有哪些功能,有哪些模块,各个模块之间是怎样连接,以及怎样组合电路是最合理最简单的,即硬件方案设计。
编写硬件电路的相对应软件程序部分,利用仿真软件对程序进行测试修改。
电路系统焊接完毕后,测试整个的系统模块的功能,看各个功能是否能正常运行,并依据实验结果找出程序中的错误,改正这些错误至测试成功完成毕业设计要求
2、工作原理
2.1模块的简介
有8个8*8点阵,再用8个引脚来当充当各个8*8点阵的“开关”。
只要将64个灯阳极连在一起,在连到这个引脚上。
采用了HC573暂存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,573的64个输出引脚控制前面所述每一个面的64个灯;而每层灯的阴极全连接在一起接入单片机,由单片机控制的每一个层灯。
通过单片机主控芯片AT89S52来控制所有灯的亮灭,从而控制P0、P1、P2实现控制X、Y、Z空间立体控制来显示我们所需要显示的现象。
如图2.1和2.2所示。
整个设计主要分为三个模块分别是主控模块、驱动模块、显示模块.
图2.1层面
图2.264个灯孔
2.23DLED光立方工作原理
本设计介绍一个3DLED光立方显示屏的制作,在单片机的P0口输出显示代码,然后把扫描片选择锁存器送入74HC573,通过片选哪一列对应的芯片就可以把显示的内容送到显示屏显示。
考虑到P0口必需设置上拉电阻,我们采用4.7kΩ排电阻作为上拉电阻。
设计原理:
利用单片控制LED点阵显示的原理和控制技术,来制作控制光立方显示。
通过编写程序控制不同LED的显示,显示所要显示的内容。
根据人眼的视觉暂留效应,设置每幅画面的延迟时间使连续的一系列画面呈现动态。
最终达到所要显示的内容。
每个灯都是由层控制端和列控制端共同决定亮或灭。
图2.2LED光立方整体显示框图
在三维光立方中采用动态扫描显示,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。
最典型的例子就是电影放映机。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
现简单描述一下用动态扫描显示的方式,显示字符“B”的过程。
图2.3用动态扫描显示字符“B”的过程
3、方案选择
3.1电源的选择
方案一:
采用普通干电池作为LED系统的电源,由于点阵系统耗电量较大,点阵系统一般悬挂在高处上,一直不停的工作。
使用干电池需经常换电池,不符合节约型社会的要求。
方案二:
采用一块LM7805三端集成稳压器。
把市电经变压器降压输入电路,而后整流送到LM7805三端稳压器稳压输出作为工作电压。
不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。
方案三:
采用5V电源的移动充电宝。
基于以上分析,决定选取5V电源的移动充电宝供电电源。
3.23D显示核心控制器
控制部分是整个系统的核心部分,其功能可以实现与上位机通信接收上位机发送的数据和控制指令经处理过后控制显示屏显示内容。
其常用的电子设计方法有单片机、DSP、及EDA技术。
方案一:
单片机
单片机是集成了CPU,ROM,RAM和I/O口的微型计算机。
它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。
单片机品种齐全,型号多样CPU从8,16,32到64位,多采用RISC技术,片上I/O非常丰富,有的单片机集成有A/D,“看门狗”,PWM,显示驱动,函数发生器,键盘控制等。
它们的价格也高低不等,这样极大地满足了开发者的选择自由。
除此之外单片机还具有低电压和低功耗的特点。
随着超大规模集成电路的发展,单片机在便携式产品中大有用武之地。
方案二:
DSP芯片
DSP又叫数字信号处理器。
顾名思义,DSP主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。
现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域。
DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。
DSP依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
芯片内置544字的高速SRAM。
外部可寻址64K字程序/数据及I/O,令周期在25ns~50ns之间,实时性处理比16位单片机快2倍以上,可取代一般的单片机。
方案三:
EDA
EDA(即ElectronicDesignAutomation)即电子设计自动化,它是以计算机为工具,在EDA软件平台上,对用硬件描述语言HDL完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。
而且MCU和DSP都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,FPGA/CPLP器件在功能开发上是软件实现的,但物理机制却和纯硬件电路一样,十分可靠。
基于以上分析,三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用。
现在市场上常用的单片机主要有MCS-52、AVR、ARM、PIC等。
其中应用最广泛的单片机首推Intel的52系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势常作为单片机学习的教材。
所以决定选取52系列单片机作为控制部分的核心器件。
3.3I/O口扩展芯片的选择
方案一:
选取串口输入并口输出芯片74LS164,虽然I/O口使用较少,由于本次设计共需要72路I/O口,列驱动电路就需要8块74LS164。
显示数据是先后顺序给送去的,显示会有延迟,而LED动态显示的刷新的时间控制大约10ms,实时性差,效果不好。
方案二:
74HC573跟74LS573的管脚一样。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和HC/ALSTTL输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
8块74HC573共用64个I/O口,数据可以并行写入芯片,延迟时间少,满足设计要求。
综合以上比较,决定选取74HC573作为列线驱动I\O口扩展芯片。
4、硬件整体设计概述及功能分析
4.1系统概述
3DLED光立方总体框图如图3.1所示。
电路大体上可以分成核心控制电路、显示驱动电路、串信通信电路三部分。
核心控制电路部分包括一个52系统CUP和一些外围电路。
在整个电路当中此电路部分可以相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给显示屏部分发送命令。
单片机根据编写好的内容和指令通过I/O口扩展后驱动8*8*8LED光立方显示屏。
本次设计将以此方案为指导思想展开具体的硬件电路设计。
显示电路采用动态扫描方式进行显示时,每列有一个列驱动器,各列的同名行共用一个行驱动器。
由单片机给出的行选通信号,从第一列开始,按顺序依次对各列进行扫描选通,根据锁存器的特性可以把数据锁存输出。
这样就可以把八列的数据输出显示,完成列线数据的传送。
另一方而,根据各列层面要显示的数据,通过三极管驱动继电器来控制相应层面的电平,列与层面的数据结合共同来显示图案。
图4.1系统结构设计总图
4.2系列单片机简介
单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
单片机最小系统包括时钟电路和复位电路。
时钟电路用于产生AT89S52单片机工作时必需的控制信号。
单片机的内部电路正是在时钟信号的控制下,严格地按照时序执行指令进行工作。
复位电路是为单片机初始化操作准备的。
只要单片机的复位引脚RST上的复位信号要持续两个机器周期(24个时钟周期)以上,就可以使AT89S52单片机复位。
如图3.2所示。
图4.2单片机最小系统电路图
4.3时钟电路设计
AT89S52单片机各功能部件的运行都以时钟信号为基准,有条不紊、一拍一拍地工作。
因此时钟频率直接影响单片机的处理速度,时钟电路的质量也是直接影响单片机系统的稳定性。
常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。
本次采用外部时钟方式。
AT89S52单片机芯片内部设有一个由反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡电路的的输入端和输出端,时钟可有内部或外部生成,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
时钟频率fosc采用12MHZ,C1、C2的电容值取30pF,电容的大小起频率微测的作用。
如3.3图所示。
图4.3时钟电路图
4.4复位电路设计
AT89S52单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,PC初始化为0000H。
单片机从这个状态开始执行程序。
除了进入系统的正常初始化之外,当程序行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需要按复位键即RST脚为高电平,使AT89S52摆脱“跑飞”“死锁”状态而重新启动程序。
单片机有多种复位方式,常用的复位操作有上电复位和手动按键电平复位方式。
本设计采用手动按键电平复位方式,电路搭建图见图4.4。
上电复位是通过外部复位电路的电容充电来实现的,复位电路产生的复位信号(高电平有效)由RST通过复位电路相连,手动输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号对AT89S52单片机进行复位。
当上电时,C3相当于短路,有时碰到干扰时会造成错误复位,可在复位端加个去耦电容,可以复位电路更加可靠。
图4.4按键电平复位电路图
4.574HC573芯片连接电路图与介绍
图4.574HC573芯片连接电路图
74HC573跟74LS573的管脚一样。
器件的输入是和标准CMOS输出兼容
的;加上拉电阻,他们能和HC/ALSTTL输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同
步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
输出能直接接到CMOS,NMOS和TTL接口上操作电压范围:
2.0V~6.0V,低输入电流:
1.0uA,CMOS器件的高噪声抵抗特性。
管脚功能图:
管脚功能图
74HC573功能表
INPUTS输入
Outputs输出
OE
LE
D
Q(HC573)
H
X
X
Z
L
L
X
NOCHANGE*
L
H
L
L
L
H
H
H
74HC573逻辑图
5、主程序设计思路
5.1程序流程框图
系统软件采用汇编语言编写,按照模块化的设计思路设计程序。
首先分析程序所要实现的功能,程序要实现可静态显示、动态显示、三维立体显示。
通过按键控制程序选择不同的显示程序进行显示。
图5.1主程序流程图
程序开始时首先必须对单片机进行初始化设置,其中初始化设置的内容包括:
中断优先级的设定,中断初始化,定时器初始化,串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。
把各子程序写为一个可单独执行的完整子程序段。
各子程序编译没有错误后再下载到单片机进行仿真验证,这两项都通过后再将所有的程序整合到一起,形成一个完整的程序再进行编译和仿真验证。
5.2显示程序的设计
5.2.1LED显示屏的数据传送
动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面显示过程是显示完一部分后,又显示第二部分……直到显示完最后一部分又重新开始显示第一部分,重复循环进行。
在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的静态画面。
也就是说采用动态扫描显示需要不断进行画面的刷新。
动态扫描分为行扫描和列扫描,两种方式区别在于选通端和数据输入端分别是行还是列。
先选通列然后再从行送入对应列的数据,这样从第1列到第8列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。
5.2.2显示程序的设计
显示采用的是扫描显示方式,选通一列后按照列对应的数据表的数据第i列对应的列数据为数组中的第i和第i+7个元素。
将对应数据由低至高位依次从控制端口输出显示。
向右逻辑移位所得结果通过单片机端口输出到锁存器,通过片选需要显示对应的锁存器在输出显示。
如此依次循环选通各列来显示所需画面。
Y
N
显示数据送0
选通列,送锁存输出
送下一列数据,选通信号左移
左移次数>8
显示完成后
程序初始化
开始
子程序返回
动态显示程序流程图见5.2.2。
把显示的数据送到P0口,相应的锁存器接收数据,再把片选锁存器的数据送到端口,相应锁存器接收数据并锁存输出显示,接着把下一组数据送到P0口,改变片选锁存器的数据,送到相应锁存器输出显示,直到把所有的数据局输出传送完毕后,显示完成后,退出显示程序,等待指令。
输出形式多种多样,可以静态输出图案,也可以动态、左移、右移、循环等花样显示。
图5.2.2显示程序流程图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业课程设计光立方 毕业 课程设计 立方