湖南工学院“光立方单片机技术”课程设计..docx
- 文档编号:900304
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:31
- 大小:2.76MB
湖南工学院“光立方单片机技术”课程设计..docx
《湖南工学院“光立方单片机技术”课程设计..docx》由会员分享,可在线阅读,更多相关《湖南工学院“光立方单片机技术”课程设计..docx(31页珍藏版)》请在冰点文库上搜索。
《单片机技术》课程设计说明书
8*8*8的光立方
学院:
电气与信息工程学院
学生姓名:
指导教师:
职称讲师
专业:
电气工程及其自动化
班级:
学号:
完成时间:
2015年07月
摘 要
光立方不仅可以像发光二极管点阵一样显示平面的静态或动态画面,还可以显示立体的静态或动态画面,打破了传统的平面显示方案。
同时又增加了显示的花样和立体图案显示效果,可以广泛用于传媒信息显示和各种装饰显示,为将来显示技术的进步和发展指导了方向,光立方显示比发光二极管点阵更具有视觉效果,而且画面图案更加非富多彩。
本设计包括硬件系统的设计和软件系统的设计。
其中硬件系统包括核心控制器AT89S52单片机;驱动电路模块:
ULN2803作为层驱动,74LS573作为行驱动和列驱动;时钟信号电路模块:
采用普通晶体时钟源,其中晶体用12MHZ的石英晶振;显示模块:
由512个发光二极管组成;供电模块:
使用5V移动电源作为供电电源;键盘模块:
由四脚按键组成。
软件系统包括系统监控程序模块,光立方显示程序模块,键盘程序模块。
通过软件编程控制数据下载到单片机完成设计图案的显示。
软件采用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
关键词:
AT89S52单片机;74HC573锁存器;8×8×8LED显示;ULN2803
III
目录
1设计要求与方案 1
1.1设计目的 1
1.2设计要求 1
1.3设计方案 1
2光立方的工作原理 2
2.1模块简介 2
2.2工作原理 3
3方案选择 4
3.1电源的选择 4
3.23D显示核心控制器 4
3.3I/O口扩展芯片的选择 5
3.4LED发光二级管 5
4硬件整体设计概述及功能分析 7
4.1系统概述 7
4.2单片机简介 8
4.3时钟电路设计 8
4.4复位电路设计 9
4.574HC573芯片介绍 9
4.6 ULN2803芯片介绍 10
5硬件电路设计 11
5.1硬件电路元件分布图 11
5.2LED灯焊接方法 11
5.2.1 焊接前准备工作 11
5.2.2 焊接 11
5.3整体实物图 12
6主程序设计 14
6.1程序流程框图 14
6.2显示程序的设计 15
7设计结果分析 16
结束语 19
参考文献 20
致谢 21
附录 22
附录A 元件清单 22
附录B PCB图 23
附录C 程序清单 24
1设计要求与方案
1.1设计目的
在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透。
随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心。
为追求舒适、逼真、清晰的3D视频显示,为此制作出一个三维立体显示图案的LED光立方。
该设计方案将打破了传统的平面显示视频的方法,该方案设计的LED显示屏显示画面色彩鲜艳,立体感强,静如油画,可以广泛应用于广告公司、交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。
1.2设计要求
该光立方通电或按键复位后能自动显示P.,进入准备工作状态。
该光立方可以通过键盘选择显示花样,切换花样,停止显示。
要求8×8×8的光立方硬件,并且显示四种及以上花样。
1.3设计方案
本设计根据二极管点阵的原理由单片机I/O口控制点亮不同的二极管从而组成出不同的画面,根据人眼的视觉暂留现象即当物体移去时视觉神经对物体的印象不会立即消失而是要延续0.1-0.4秒的时间,来设置每幅画面的延迟时间使连续的一系列画面呈现动态。
每一个层面的二极管阳极接在一起受一路
I/O口控制,实际电路中该路I/O口输出的控制信号通过ULN2803来控制的,再输入发光二极管的阳极使其驱动。
每一个二极管的阴极分别受单片机扩展后的I/O控制。
每个灯都是由片选端口和控制端口共同决定亮或灭。
因此,我们可以随意的来点亮立方体中任意一处的灯,来构建多种多样的图案。
借鉴单片机控制LED点阵显示的原理,通过系统分析,确定该系统该具有哪些功能,有哪些模块,各个模块之间是怎样连接,以及怎样组合电路是最合理最简单的,即硬件方案设计。
编写硬件电路的相对应软件程序部分,利用仿真软件对程序进行测试修改。
电路系统焊接完毕后,测试整个的系统模块的功能,看各个功能是否能正常运行,并依据实验结果找出程序中的错误,改正这些错误至测试成功完成毕业设计要求。
22
2光立方的工作原理
2.1模块简介
有8个8×8点阵,再用8个引脚来当充当各个8×8点阵的“开关”。
只要将64个灯阳极连在一起,在连到这个引脚上。
采用了74HC573锁存的方法,来分别把64个灯的亮灭信息存到这个上面,然后再一起输出到灯上,573的
64个输出引脚控制前面所述每一个面的64个灯;而每层灯的阳极全连接在一起接入ULN2803,由ULN2803控制的每一个层灯。
通过单片机主控芯片
AT89S52来控制所有灯的亮灭,从而控制P0、P1、P2实现控制X、Y、Z空间立体控制来显示我们所需要显示的现象。
如图1和图2所示。
整个设计主要分为三个模块分别是主控模块、驱动模块、显示模块。
图1 光立方显示模块整体示意图
图2 64个灯孔
2.2工作原理
ULN2803的1~8脚接主控芯片的P1口(1~8脚),数据由主控芯片P1口输入经过ULN2803从11~18脚输出,实现通过ULN2803来驱动每一层。
每个
573的2~9脚(数据输入)都连接在一起连接到主控芯片的P0口(32~39脚)
,数据从主控芯片P0口输送到573,573的1脚是3态输出使能输入(低电平)一般都与地相接,573的11脚(锁存使能输入)都连接在一起连接到主控芯片的P2口(21~28脚)作为锁存控制。
当573的11脚为高电平和2~9脚为高电平时,573的12~19脚(3态锁存输出)为高电平,驱动一横面的灯亮,当
LED光立方
层驱动器
单片机
11脚为高低平、2~9脚为低电平时,573的12~19脚则就为低电平,从而灯灭,当11脚为低电平时,2~9脚不管高低电平,12~19脚的输出不变。
主控芯片通过573+ULN2803来驱动控制哪竖面的哪一层的哪个灯的亮灭。
R1~R8是限流电阻。
P0口必需设置上拉电阻,我们采用10kΩ的排阻作为上拉电阻。
列驱动器
图3LED光立方整体显示框图
3 方案选择
3.1 电源的选择
方案一:
采用普通干电池作为LED系统的电源,由于点阵系统耗电量较大,点阵系统一般悬挂在高处上,一直不停的工作。
使用干电池需经常换电池,不符合节约型社会的要求。
方案二:
采用一块LM7805三端集成稳压器。
把220V交流电经变压器降压输入电路,而后整流送到LM7805三端稳压器稳压输出作为工作电压。
不仅功
率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。
方案三:
采用5V的移动电源,体积小,便于携带,安全可靠。
基于以上分析,决定选取5V的移动电源作为供电电源。
3.23D显示核心控制器
系统的工作原理是在二维LED点阵的基础上,扩大LED之间的距离,应用层叠技巧搭建成一个实心LED立方体,用主控系统直接控制外围驱动电路输出,间接实现对LED灯的亮灭控制。
采用逐层扫描的工作方式,利用人们视觉暂留效应,实现动静态文字和图像显示。
因为控制涉及的LED灯较多,且要求自由控制每个LED灯的亮灭,所以对控制系统的功能有较高的要求。
其常用的电子设计方法有单片机、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软件平台上,对用硬件描述语言VHDL完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。
而且MCU和DSP都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD
则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,
FPGA/CPLP器件在功能开发上是软件实现的,但物理机制却和纯硬件电路一样,十分可靠。
基于以上分析,三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用。
现在市场上常用的单片机主要有MCS-52、AVR、ARM、PIC等。
其中应用最广泛的单片机首推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口扩展芯片。
3.4LED发光二级管
LED是一种固体光源,当它两端加上正向电压时就可以发光。
采用不同的材料,可制成不同颜色的发光二极管。
作为一种新的光源,广受欢迎而得以快
速发展。
从而在各种各样的传媒信息的宣传中得以体现。
简述其分类方法如下。
按颜色分类:
单基色显示屏:
单一颜色(红色、绿色、黄色、蓝色等等)。
双基色显示屏:
红和绿双基色,256级灰度、可以显示65536种颜色。
全彩色显示屏:
红、绿、蓝三基色,256级灰度的全彩色显示屏可以显示
一千六百多万种颜色。
按使用场合分类:
室内显示屏:
发光点较小,一般Φ3mm--Φ8mm,显示面积一般零点几至十几平方米。
室外显示屏:
面积一般几十平方米至几百平方米,亮度高,可在阳光下工作,具有防风、防雨、防水功能。
按发光点直径分类:
室内屏:
Φ3mm、Φ3.75mm、Φ5mm。
室外屏:
Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm。
基于以上分析结果,加上由于成本和控制的难易程度,决定选取单色
Φ3mm蓝光LED作为本次设计显示色彩,亮度高,显示效果很好。
4硬件整体设计概述及功能分析
4.1系统概述
光立方总体框图如图4所示。
电路大体上可以分成核心控制电路、显示驱动电路、显示电路三部分。
核心控制电路部分包括一个52系统CUP和一些外围电路。
在整个电路当中,此电路部分可以相当于一个上位机,它负责控制整个电路以及相应的程序的运行、以及给显示屏部分发送命令。
单片机根据编写好的内容和指令通过I/O口扩展后驱动8×8×8LED光立方显示屏。
本次设计将以此方案为指导思想展开具体的硬件电路设计。
列驱动器
AT89S52
时钟电路
8×8×8LED
光立方显示屏
复位电路
显示电路采用动态扫描方式进行显示时,每列有一个列驱动器,各列的同名行共用一个行驱动器。
由单片机给出的行选通信号,从第一列开始,按顺序依次对各列进行扫描选通,根据锁存器的特性可以把数据锁存输出。
这样就可以把八列的数据输出显示,完成列线数据的传送。
另一方而,根据各列层面要显示的数据,通过ULN2803控制相应层面的电平,列与层面的数据结合共同来显示图案。
行驱动器
图4系统结构总图
4.2单片机简介
单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器
ROM、定时器/计数器和多种I/O接口电路。
单片机最小系统包括时钟电路和复位电路。
时钟电路用于产生AT89S52单片机工作时必需的控制信号。
单片机的内部电路正是在时钟信号的控制下,严格地按照时序执行指令进行工作。
复位电路是为单片机初始化操作准备的。
只要单片机的复位引脚RST上的复位信号要持续两个机器周期(24个时钟周期)以上,就可以使AT89S52单片机复位。
如图5所示。
图5 单片机引脚图
4.3时钟电路设计
AT89S52单片机各功能部件的运行都以时钟信号为基准,有条不紊、一拍一拍地工作。
因此时钟频率直接影响单片机的处理速度,时钟电路的质量也是直接影响单片机系统的稳定性。
常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。
本次采用外部时钟方式。
AT89S52单片机芯片内部设有一个由反向放大器构成的振荡器,XTAL1和
XTAL2分别为振荡电路的输入端和输出端,时钟可有内部或外部生成,在
XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
时钟频率fosc采用
12MHZ,C3、C4的电容值取33pF,电容的大小起频率微测的作用。
如图6所示。
图6 时钟电路
4.4复位电路设计
AT89S52单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,PC初始化为0000H。
单片机从这个状态开始执行程序。
除了进入系统的正常初始化之外,当程序行出错(如程序“跑飞”
)或操作错误使系统处于“死锁”状态时,也需要按复位键即RST脚为高电平,使AT89S52摆脱“跑飞”“死锁”状态而重新启动程序。
单片机有多种复位方式,常用的复位操作有上电复位和手动按键电平复位方式。
本设计采用手动按键电平复位方式,电路图见图7。
上电复位是通过外部复位电路的电容充电来实现的,复位电路产生的复位信号(高电平有效)由
RST通过复位电路相连,手动输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号对AT89S52单片机进行复位。
当上电时,C1相当于短路,有时碰到干扰时会造成错误复位,可在复位端加个去耦电容,可以复位电路更加可靠。
图7 复位电路
4.574HC573芯片介绍
74HC573跟74LS573的管脚一样。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和HC/ALSTTL输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
输出能直接接到CMOS,NMOS和TTL接口上操作电压范围:
2.0V~6.0V,低输入电
流:
1.0uA,CMOS器件的高噪声抵抗特性。
管脚如图8所示。
图8 74HC573管脚图
4.6 ULN2803芯片介绍
ULN2803是八重达林顿管,1至8脚为8路输入,18到11脚为8路输出。
驱动能力为500MA\50V。
应用时9脚接地,10脚接负载电源V+,输入的电平信号为0或5V。
输入为0,输出达林顿管截止,输入为5V电平时,输出达林顿管饱和。
输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作,该电路为反向输出型,即输入为低电平电压,输出端才能导通工作。
管脚如图9所示。
图9 ULN2803管脚
5硬件电路设计
5.1硬件电路元件分布图
首先在AD软件里画出硬件电路的连接图,变换成PCB图,转印在PCB板上面,然后再根据图把各个元器件焊接上去。
如图10所示。
图10 硬件电路元件分布图
5.2LED灯焊接方法
5.2.1焊接前准备工作
准备好烙铁、焊锡丝、钳子等工具,以及LED。
LED的正负极很好判别,长的引脚为+,短的为-。
LED最好选用直径3mm的LED,推荐选蓝色。
长脚的
LED可以省很多工作量。
实际测量长脚是29mm,短脚为26mm,由于LED光立方板子灯的间距决定了,每个LED的间距是13mm。
这样长短引脚都符合这个尺寸。
由于所有LED框架焊接好后,一旦有LED损坏更换难度很大,所以焊接前要测试所有LED,用一般数字显示万用表打到二极管量程,用万用表红表笔接长引
脚,黑的接短引脚。
LED正常发光并且亮度基本一致,这样的LED就是好的,否则是坏灯。
如果为了确保可靠也可以焊接好一层后测试LED是否能点亮。
5.2.2焊接
将8个LED焊接为一组,需要借助一个工艺设备,这个东西可以自己动手
制作,用这个辅助焊接当然要容易些。
焊接方法也是一样的,将一个LED正极的引脚靠近到另一个LED正极的打弯处,然后上焊锡焊接,焊接要光亮可靠,有一定机械强度。
这样将全部LED焊接成8个一组的LED灯排待用。
焊接小经验,由于LED灯脚有一定弹性,一个LED的引脚靠近到另一个LED正极的打弯处时,一松手就又弹远了,所以建议焊接时多掰一点,掰过了之后利用弹性将两个要焊接的引脚靠近,这样焊接会容易许多。
如图11所示。
图11 焊接模具
5.3整体实物图
整个光立方的连接是用排线和杜邦线连接而成,这样方便拆和安装,但过程比较繁琐,也很容易出错误,有时也会产生接触不良。
整体图如图12和图
13所示。
图12 整体实物图1
图13 整体实物图2
6主程序设计
6.1程序流程框图
开始
处理后选择相应程序送端口
由键盘扫描程序读取控制数据
延时
启动定时器
中断初始化
计数初值初始化
TMOD初始化
系统软件采用C语言编写,按照模块化的设计思路设计程序。
首先分析程序所要实现的功能,程序要实现可静态显示、动态显示、三维立体显示。
通过按键控制程序选择不同的显示程序进行显示。
图14主程序流程图
程序开始时首先必须对单片机进行初始化设置,其中初始化设置的内容包括:
中断初始化,定时器初始化,计数初值初始化等。
把各子程序写为一个可单独执行的完整子程序段。
各子程序编译没有错误后再下载到单片机进行仿真
验证,这两项都通过后再将所有的程序整合到一起,形成一个完整的程序再进行编译和仿真验证。
6.2显示程序的设计
显示采用的是扫描显示方式,选通一列后按照列对应的数据表的数据第i列对应的列数据为数组中的第i和第i+7个元素。
将对应数据由低至高位依次从控制端口输出显示。
向右逻辑移位所得结果通过单片机端口输出到锁存器,通过片选需要显示对应的锁存器在输出显示。
如此依次循环选通各列来显示所需画面。
动态显示程序流程图见图15。
把显示的数据送到P0口,相应的锁存器接收数据,再把片选锁存器的数据送到端口,相应锁存器接收数据并锁存输出显示,接着把下一组数据送到P0口,改变片选锁存器的数据,送到相应锁存器
输出显示,直到把所有的数据局输出传送完毕后,显示完成后,退出显示程序,等待指令。
输出形式多种多样,可以静态输出图案,也可以动态、左移、右移、循环等花样显示。
开始
显示数据送0
选通列,送锁存输出
送下一列数据,选通信号左移
N
左移次数>8?
Y
子程序返回
程序初始化
图15显示程序流程图
7设计结果分析
光立方的显示效果如下所示,图16光立方显示为箭头形状,顶层LED灯全亮;图17光立方只有顶层一层的LED灯亮;图18光立方底层LED灯显示为心形,顶层LED灯全亮;图19光立方显示为沙漏形状;图20光立方显示为阿拉伯数字2。
图16 光立方显示箭头形状
图17 光立方顶层LED灯全亮
图18 光立方显示为心形
图19 光立方显示为沙漏形状
图20 光立方显示为数字2
本次光立方的设计,主要控制电路是采用双面附铜板,灯座是用万能板焊接而成。
因为考虑在作图是的方面,设想完全采用排线和杜邦线将整个电路连接。
而事实在实际的操作过程中,产生很多的问题。
最主要的问题,就是将已经连接好的电路运行时,只要光立方有触动,运行就会出现乱码。
因为在连线的接触点有接触不良的问题产生,而这也是避免不了的。
这就是用外界线连接电路的最大弊端。
采用排线和杜邦线连接整个电路有很大的弊端。
但是,用AltiumDesigner作图时,简单方便很多,大大节省的作图时间。
而且,在拆取过程和组装过程也很方便。
结束语
课程设计是对一个学期所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好的开端。
这次课程设计,我选择的题目:
基于单片机的8×8×8的光立方的设计。
本次设计预期要求:
该光立方可以通过键盘选择显示花样,切换花样,停
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南 工学院 立方 单片机 技术 课程设计