基于单片机的光立方控制系统设计_毕业设计说明书(论文)(编辑修改稿)内容摘要:
的,当在单片机的 RST 引脚引入高电平并保持 2 个机器周期时,单片机内部就执复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。 实际应用中,复位操作有两种 基本的形式:一种是上电复位,另一种是按键复位。 由于本次设计采用的是按键复位,所以这里只介绍按键复位,如图 24 所示。 图 24 按键复位电路 按键复位要求按下按键后,单片机实现复位操作。 按下按键瞬间 RST 引脚获得高电平,随着电容 C1的充电, RST 引脚的高电平将逐渐下降。 RST 引脚的高电平只要能保持足够的时间( 2 个机器周期),单片机就可以进行复位操作。 该电路典型的电阻和电容参数为:晶振为 12MHz 时, C1为 10uF, R1为 ,晶振为 6MHz 时, C1为 22uF, R1为 1kΩ。 单片机的复位操作使单 片机进入初始化状态。 初始化后,程序计数器 PC=0000H 所以程序从 0000H 地址单元开始执行。 单片机启动后,片内 RAM 为随机值,运行中的复位操作不改变片内 RAM 的内容。 特殊功能寄存器复位后状态使确定的。 P0~ P3 为 FFH, SP 为 07H, SBUF 不定,IP、 IE 和 PCON 的有效值为 0,其余的特殊功能寄存器的状态均为 00H。 驱动模块 为节约成本,本光立方设计没有选择硬件电路集成设计,把驱动电路与控制电路合 四川信息职业技术学院毕业设计说明书 (论文 ) 第 8 页 为一体。 而是选择用常用的芯片做为光立方的驱动。 由于 LED 灯比较多,需要的电流相对比较大,所以采用 74HC595 和 ULN2803 组成来组成驱动电路。 采用 74HC595 移位暂存的方法,来分别把 8 个灯的亮灭信息储存, 74HC595 的 64 个输出引脚控制前面所述每一个面的 8 个灯;而 ULN2803 控制灯的每一个层。 驱动电路由阴极驱动电路(图25)和阳极驱动电路(图 25)组成。 图 25 阴极驱动电路 图 26 阳极驱动电路 阴极驱动电路 阴极驱动电路由一个 ULN2803 达林顿管组成。 从单片机 P1 口出来的信号送到ULN2803 进行处理放大,再输出到每一层 LED 灯的阴极。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 9 页 ULN2803 是 个 NPN 达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如 TTL, CMOS 或 PMOS 上 / NMOS)和较高的电流 /电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载。 该 ULN2803 是专为符合标准 TTL,而制造 ULN2804 适合 6 至 15V 的高级别 CMOS 或 PMOS 上。 该电路为反向输出型,即输入低电平电压,输出端才能导通工作。 芯片引脚图如下页图 27 所示: 图 27 ULN2803芯片 引脚图说明: 18 引脚:输入端 1118 引脚:输出端 9 引脚:地端 10(COM)引脚:电源 +COM 脚的作用是当你使用 ULN2803(2020)来驱动继电器时,可以将 COM 脚接到继电器的 VCC 端,利用 ULN2803(2020)内部的反向二极管作保护继电器,消除继电器闭合时产生的感应电压。 阳极驱动电路 阳极驱动电路由八个 74HC595 芯片组成,在本光立方系统中用来每一面 LED 灯的阳极。 即对从单片机 、 、 输出的信息进行移位存储,然后再由八个 74HC595输出给每一面 LED 灯。 74HC595 是硅结构的 CMOS 器件,是具有 8 位移位寄存器和一个存储器, 三态输出功能。 移位寄存器和存储器是分别的时钟。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 10 页 数据在 SCHcp 的上升沿输入,在 STcp 的上升沿进入的存储寄存器中去。 如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入( Ds),和一个串行输出( Q7’) ,和一个异步的低电平复位,存储寄存器有一个并行 8 位的,具备三态的总线输出,当使能 OE 时(为低电平),存储寄存器的数据输出到总线。 芯片引脚图如图 28 所示: 图 28 74HC595芯片 引脚图说明: Q0到 Q7 引脚: 8位并行数据输出,其中 Q0为第 15脚 GND 第 8脚:接地 Q7 第 9脚:串行数据输出 MR 第 10脚:主复位(低电平) SHCP 第 11脚:移位寄存器时钟输入 STCP 第 12脚:存储寄存器时钟输入 OE 第 13脚:输出有效(低电平) DS 第 14脚:串行数据输入 VCC 第 16脚:电源 在本光立方系统中使用 74HC595,因为它 具有一个 8 位串入并出的移位寄存器和一个 8 位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。 引脚 DS 为串行数据输入端,与单片机 相连,用来传送数据;引脚 SHCP 为移位寄存器的移位时钟脉冲,与单片机 相连; STCP 是输出寄存器的打入信号,与单片机 口相接。 再从 Q0 到 Q7 输出到每一面 LED 灯的阳极,从而达到控制每一面 四川信息职业技术学院毕业设计说明书 (论文 ) 第 11 页 上的每个 LED 灯。 显示模块 显示电路模块是由 8 面 88 的雾状蓝光 LED 面组成,每一面都 是由一个移位寄存器来控制。 LED 的选择 选择雾状蓝光 LED 灯的原因是它具有非常高的亮度, 发光强度 为 800~1200MCD,且散光的特性使得从各个方位看起来亮度一致性好,强有力的保证了 LED 立方体的炫目效果与众不同。 加之,本光立方系统在电路上的优良设计,即使把 LED 立方体放在太阳下,效果依然清晰可见,不像其他的,只能在关了灯的黑暗房间才看见。 再者,雾状蓝光 LED 灯灯珠脚长约为 26mm,这使得 折角和焊接变得更加容易、方便。 更重要的一点是 雾状蓝光 LED没有像其他高亮 LED灯那样刺眼 ,而且蓝光给人一种梦幻般的视觉冲击。 所以现在雾状蓝光 LED 灯做为本光立方显示的元件。 显示电路 显示电路具体元器件是由 512 个雾状蓝光 LED 灯组成,把 512 个雾状蓝光 LED 灯焊接成 8面 88的小模块,最后把每一面组装到 PCB电路板上,这样就构成了一个 888的 LED 光立方体;每一面由一个移位寄存器来控制,每一层由驱动芯片 ULN2803 来控制,就完成了对整个显示电路上每一个灯的控制。 下面以一面显示电路图来 举例。 一面 LED 显示电路由 64 个雾状蓝光 LED 灯组成,把八列 LED 灯的阴极全部焊接在一起接到驱动芯片 ULN2803,而每八行的阳极分别接到一个移位寄存器 74HC595 上。 在电路图上八行阳极 U1U8 接到同一个 74HC595 上,和对应的引脚连接;而八列阴极一起由 1C 接到 ULN2803 上。 具体电路图如下页图 29 所示: 四川信息职业技术学院毕业设计说明书 (论文 ) 第 12 页 图 29 一面显示电路 整机工作原理 通过对主控芯片 STC125A60S2 进行编程, 采用 74HC595 移位暂存的方法,来分别把每一面 64 个 LED 灯的亮灭信息存到这个上面,然后由输出 引脚控制每一面的 64 个LED 灯;而每层灯的阴极全连接在一起接入 ULN2803,由 ULN2803 来驱动每一层 LED灯。 通过这个设计, 512 个 LED 灯每一个都有单独的位置编码,每个 LED 灯的亮灭就可以由自由地控制; 从而实现我们所需要显示的 图 象。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 13 页 第三章 软件设计 系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。 因此,软件是本系统的灵魂,软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。 程序的编写需要借助软件编辑器;程序是使单片机系统 按预定的操作方式运行,它是单片机系统程序的框架;在系统上电后,要对系统进行初始化。 软件设计包括按键程序、主程序、显示程序三大部分,软件功能结构框图如 31 所示。 主程序通过调用按键查询程序来判断待显示的图案及花样,主程序则调用相对应的显示程序送到控制端口。 图 31 软件功能结构框图 主程序的设计 本光立方 系统软件采用 C 语言编写,按照模块化的设计思路设计程序。 首先分析程序所要实现的功能,程序要实现可静态显示、动态显示、三维立体显示。 通过按键控制程序选择不同的显示程序进行显示。 本系统设置有三个独立按键,分别是 , , , 3个按键分别控制三种不同的动画显示模式;为了增加炫目的效果,本光立方在四个底座设得有四个呼吸灯。 主程序流程图如下页图 32所示: 主程序 显示程序 按键程序 四川信息职业技术学院毕业设计说明书 (论文 ) 第 14 页 图 32 主程序流程图 程序开始时首先必须对单片机进行初始化设置,其中初始化设置的内容包括:中断优先级的设定,中断初始化,定时器初始化,串行通信时通信方式的选择和波特率的设定,各 I/O 口功能的设定等。 显示程序的设计 显示程序的设计是整个光立方系统显示的核心思想,它包括 LED 的数据传送思路和扫描方式的选择。 LED 显示的数据传送 动态扫描显示是把整个光立方分成若干部分,每一幅画面显示过程是显示完一部分后,又显示第二部分,直到显示完最后一部分又重新开始显示第一部分,重复循环进行。 在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的静态画面。 也就是说采用动态扫描显示需要不断进行画面的刷新。 动态扫描分为行扫描和列扫描,两种方式区别在于选通端和数据输入端分别是行还是列。 先选通列然后再从行送入对应列的数据,这样从第 1 列到第 8 列循环往复,只要切换的速度足够的快利用人眼的延 时特性就可以看见一幅稳定的画面,从而完成数据的传送。 显示程序的设计 显示采用的是扫描显示方式,选通一列后按照列对应的数据表的数据第 i 列对应的 四川信息职业技术学院毕业设计说明书 (论文 ) 第 15 页 列数据为数组中的第 i 和第 i+7 个元素。 将对应数据由低至高位依次从控制端口输出显示。 向右逻辑移位所得结果通过单片机端口输出到移位寄存器 74HC595,然后输出到LED 灯的阳极。 如此依次循环选通各列来显示所需画面。 动态显示程序流程图如 33 所示。 把显示的数据送到 P0 口,相应的移位寄存器接收数据,再把数据送到端口并存储输出显示,接着把下一组数据送到 P0 口,改变 片选移位寄存器的数据,送到相应移位寄存器输出显示,直到把所有的数据局输出传送完毕后,显示完成后,退出显示程序,等待指令。 输出形式多种多样,可以静态输出图案,也可以动态、左移、右移、循环等花样显示。 图 33 显示程序流程图 软件调试 单片机是本设计的核心控制器,只有保证单片机的正常工作才能完成程序的运行及显示的控制。 保证单片机最小系统能够正常工作是前提。 判断办法就是用万用表测量单片机时钟引脚( 1 19 脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18 脚对地约 , 19 脚对地约。 对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第 9 脚对地电压为零,可以用导线短时间和+ 5V 连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路没问题。 四川信息职业技术学院毕业设计说明书 (论文 ) 第 16 页。基于单片机的光立方控制系统设计_毕业设计说明书(论文)(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。