光立方课程设计毕业论文.doc_第1页
光立方课程设计毕业论文.doc_第2页
光立方课程设计毕业论文.doc_第3页
光立方课程设计毕业论文.doc_第4页
光立方课程设计毕业论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业课毕业课程程设计说设计说明明书书 光光 立立 方方 摘 要 本设计制作出一个三维立体显示图案的 LED 光立方 本产品不仅可以像发 光二极管点阵一样显示平面的静态或动态画面 还可以显示立体的静态或动态 画面 打破了传统的平面显示方案 同时又增加了显示的花样和立体图案显示 效果 可以广泛用于传媒信息显示和各种装饰显示 为将来显示技术的进步和 发展指导了方向 光立方显示比发光二极管点阵更具有视觉效果 而且画面图 案更加非富多彩 本设计是采用 AT89S52 单片机为核心控制器 八 D 边沿触发器 三态 74LS573 扩展 I O 口 完成硬件电路设计 通过软件编程控制数据下载到单片 机完成设计图案的显示 软件采用自上而下的模块化设计思想 使系统朝着分 布式 小型化方向发展 增强系统的可扩展性和运行的稳定性 关键词 52单片机 74HC573锁存器 8 8 8LED显示 ABSTRACT This design produced a three dimensional pattern of the LED light cube This product can not only like a light emitting diode dot matrix display plane static or dynamic screen can also display three dimensional static or dynamic images and to break the traditional program While increasing the display patterns and three dimensional effect can be widely used to display and decorative display for future progress and development to guide the direction light cube display more visual effects than the light emitting diode dot matrix and the picture is more rich colorful With a combination of graphics and characters more perfect display characteristics The design is AT89S52 MCU core controller eight D edge flip flop 74LS574 tri state expansion I O port completion of the hardware circuit design Programmed by software to control the data is downloaded to the MCU to complete the designs of the show This design software is a top down modular design the system moving in the direction of distributed small development enhance the stability of the system s scalability and running KEYKEY WORDS WORDS 5252single chip 74HC573latch 8 8 8 3DLED 目录 1 设计要求与方案 1 1 1 设计目的 1 1 2 设计要求 1 1 3 设计思路 1 1 4 设计的总体要求及方案选择 2 2 工作原理 3 2 1 模块的简介 3 2 2 3DLED 光立方工作原理 4 3 方案选择 5 3 1 电源的选择 5 3 2 3D 显示核心控制器 5 3 3 I O 口扩展芯片的选择 6 3 4 LED 发光显示二级管 6 4 硬件整体设计概述及功能分析 8 4 1 系统概述 8 4 2 系列单片机简介 9 4 3 时钟电路设计 9 4 4 复位电路设计 10 4 5 74HC573 芯片连接电路图与介绍 11 5 主程序设计思路 13 5 1 程序流程框图 13 5 2 显示程序的设计 13 5 2 1 LED 显示屏的数据传送 13 5 2 2 显示程序的设计 14 6 硬件电路设计 15 6 1 单片机与 74HC573 连接线路 图 15 6 2 LED 焊接方法 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 参考文献 32 1 设计要求与方案 1 1 设计目的 在当今现代信息化社会的高速发展过程中 大屏幕显示已经从公共信息 展示等商业应用向消费类多媒体应用渗透 随着宽带网络的发展 数字化的多 媒体内容将在信息世界中占据主流 新型的大屏幕显示设备将代替传统电视机 成为人们享受信息和多媒体内容的中心 为追求舒适 逼真 清晰的 3D 视频 显示 为此制作出一个三维立体显示图案的 LED 光立方 该设计方案将打破了 传统的平面显示视频的方法 该方案设计的 LED 显示屏显示画面色彩鲜艳 立 体感强 静如油画 可以广泛应用于广告公司 交通运输 车站 商场 医院 宾馆 证券市场 工业企业管理等公共场所 1 2 设计要求 1 毕业设计 论文 中心突出 内容充实 论据充分 论证有力 数据 可靠 结构紧凑 层次分明 图表清晰 格式规范 字迹工整 结论正确 2 设计制作一个 8 8 8 的三维的发光二极管显示方阵 能够通过编写程 序来实现对每一个发光二级管控制 从而来显示多种多样的图案 控制显示输 出至少二十种显示效果 3 通过大量编写程序调试实验现象结果分析研究数据形成规律 对规律 总结得出结论并初步确定算法 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 2 64 个灯孔 2 2 3DLED 光立方工作原理 本设计介绍一个 3D LED 光立方显示屏的制作 在单片机的 P0 口输出显示 代码 然后把扫描片选择锁存器送入 74HC573 通过片选哪一列对应的芯片就 可以把显示的内容送到显示屏显示 考虑到 P0 口必需设置上拉电阻 我们采 用 4 7 k 排电阻作为上拉电阻 设计原理 利用单片控制 LED 点阵显示的原理和控制技术 来制作控制光 立方显示 通过编写程序控制不同 LED 的显示 显示所要显示的内容 根据人 眼的视觉暂留效应 设置每幅画面的延迟时间使连续的一系列画面呈现动态 最终达到所要显示的内容 每个灯都是由层控制端和列控制端共同决定亮或灭 单片机 层驱动器 LED 光立方 列驱动器 图 2 2 LED 光立方整体显示框图 在三维光立方中采用动态扫描显示 这种显示方式巧妙地利用了人眼的视 觉暂留特性 将连续的几帧画面高速的循环显示 只要帧速率高于 24 帧 秒 人眼看起来就是一个完整的 相对静止的画面 最典型的例子就是电影放映机 在电子领域中 因为这种动态扫描显示方式极大的缩减了发光单元的信号线数 量 因此在 LED 显示技术中被广泛使用 现简单描述一下用动态扫描显示的方 式 显示字符 B 的过程 图 2 3 用动态扫描显示字符 B 的过程 3 方案选择 3 1 电源的选择 方案一 采用普通干电池作为 LED 系统的电源 由于点阵系统耗电量较大 点阵系统一般悬挂在高处上 一直不停的工作 使用干电池需经常换电池 不 符合节约型社会的要求 方案二 采用一块 LM7805 三端集成稳压器 把市电经变压器降压输入电 路 而后整流送到 LM7805 三端稳压器稳压输出作为工作电压 不仅功率上可 以满足系统需要 不需要更换电源 并且比较轻便 使用更加安全可靠 方案三 采用 5V 电源的移动充电宝 基于以上分析 决定选取 5V 电源的移动充电宝供电电源 3 2 3D 显示核心控制器 控制部分是整个系统的核心部分 其功能可以实现与上位机通信接收上位 机发送的数据和控制指令经处理过后控制显示屏显示内容 其常用的电子设计 方法有单片机 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 即 Electronic Design Automation 即电子设计自动化 它是以计算 机为工具 在 EDA 软件平台上 对用硬件描述语言 HDL 完成的设计文件自动 地逻辑编译 逻辑化简 逻辑分割 逻辑综合及优化 逻辑布局布线 逻辑仿 真 直至对于特定目标芯片进行适配编译 逻辑影射和编程下载等 而且 MCU 和 DSP 都是通过串行执行指令来实现特定功能 不可避免低速 而 FPGA CPLD 则可实现硬件上的并行工作 在实时测控和高速应用领域前景广阔 另一方面 FPGA CPLP 器件在功能开发上是软件实现的 但物理机制却和纯硬件电路一样 十分可靠 基于以上分析 三种设计方式相比较各有优点且都能够实现控制功能 但 单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用 现在市场上常用的单片机主要有 MCS 52 AVR ARM PIC 等 其中应用最广泛 的单片机首推 Intel 的 52 系列 由于产品硬件结构合理 指令系统规范 加 之生产历史 悠久 有先入为主的优势常作为单片机学习的教材 所以决定 选取 52 系列单片机作为控制部分的核心器件 3 3 I 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 4 LED 发光显示二级管 LED 是一种固体光源 当它两端加上正向电压时就可以发光 采用不同的 材料 可制成不同颜色的发光二极管 作为一种新的光源 广受欢迎而得以快 速发展 从而在各种各样的传媒信息的宣传中得以体现 简述其分类方法如下 1 按颜色分类 单基色显示屏 单一颜色 红色 绿色 黄色 蓝色等等 双基色显示屏 红和绿双基色 256 级灰度 可以显示 65536 种颜色 全彩色显示屏 红 绿 蓝三基色 256 级灰度的全彩色显示屏可以显示 一千六百多万种颜色 2 按使用场合分类 室内显示屏 发光点较小 一般 3mm 8mm 显示面积一般零点几至十 几平方米 室外显示屏 面积一般几十平方米至几百平方米 亮度高 可在阳光下工 作 具有防风 防雨 防水功能 3 按发光点直径分类 室内屏 3mm 3 75mm 5mm 室外屏 10mm 12mm 16mm 19mm 21mm 26mm 基于以上分析结果 加上由于成本和控制的难易程度 决定选取单色 3mm 绿光 LED 作为本次设计显示色彩 亮度高 显示效果很好 4 硬件整体设计概述及功能分析 4 1 系统概述 3D LED 光立方总体框图如图 3 1 所示 电路大体上可以分成核心控制电 路 显示驱动电路 串信通信电路三部分 核心控制电路部分包括一个 52 系 统 CUP 和一些外围电路 在整个电路当中此电路部分可以相当于一个上位机 它负责控制整个电路以及相应的程序的运行 与 PC 机的串行通讯 以及给显 示屏部分发送命令 单片机根据编写好的内容和指令通过 I O 口扩展后驱动 8 8 8 LED 光立方显示屏 本次设计将以此方案为指导思想展开具体的硬件电 路设计 显示电路采用动态扫描方式进行显示时 每列有一个列驱动器 各列的 同名行共用一个行驱动器 由单片机给出的行选通信号 从第一列开始 按顺 序依次对各列进行扫描选通 根据锁存器的特性可以把数据锁存输出 这样就 可以把八列的数据输出显示 完成列线数据的传送 另一方而 根据各列层面 要显示的数据 通过三极管驱动继电器来控制相应层面的电平 列与层面的数 据结合共同来显示图案 AT89S52 行 驱 动 器 列驱动器 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 5 74HC573 芯片连接电路图与介绍 图 4 5 74HC573 芯片连接电路图 74HC573 跟 74LS573 的管脚一样 器件的输入是和标准 CMOS 输出兼容 的 加上拉电阻 他们能和 HC ALSTTL 输出兼容 当锁存使能端为高时 这些器件的锁存对于数据是透明的 也就是说输出同 步 当锁存使能变低时 符合建立时间和保持时间的数据会被锁存 输出能直接接到 CMOS NMOS 和 TTL 接口上操作电压范围 2 0V 6 0V 低输 入电流 1 0uA CMOS 器件的高噪声抵抗特性 管脚功能图 管脚功能图 74HC573 功能表 INPUTS 输入Outputs 输出 OE LE D Q HC573 HXXZ LLXNO CHANGE LHLL LHHH 74HC573 逻辑图 5 主程序设计思路 5 1 程序流程框图 系统软件采用汇编语言编写 按照模块化的设计思路设计程序 首先分析 程序所要实现的功能 程序要实现可静态显示 动态显示 三维立体显示 通 过按键控制程序选择不同的显示程序进行显示 图 5 1 主程序流程图 程序开始时首先必须对单片机进行初始化设置 其中初始化设置的内容包 括 中断优先级的设定 中断初始化 定时器初始化 串行通信时通信方式的 选择和波特率的设定 各 IO 口功能的设定等 把各子程序写为一个可单独执 行的完整子程序段 各子程序编译没有错误后再下载到单片机进行仿真验证 这两项都通过后再将所有的程序整合到一起 形成一个完整的程序再进行编译 和仿真验证 5 2 显示程序的设计 5 2 1 LED 显示屏的数据传送 动态扫描显示是把整个 LED 屏幕分成若干部分 每一幅画面显示过程 是显示完一部分后 又显示第二部分 直到显示完最后一部分又重新开始显 示第一部分 重复循环进行 在重复扫描速度足够快的情况下 我们看到的就 是一幅稳定的静态画面 也就是说采用动态扫描显示需要不断进行画面的刷新 动态扫描分为行扫描和列扫描 两种方式区别在于选通端和数据输入端分别是 行还是列 先选通列然后再从行送入对应列的数据 这样从第 1 列到第 8 列循 环往复 只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的 画面 5 2 2 显示程序的设计 显示采用的是扫描显示方式 选通一列后按照列对应的数据表的数 据第 i 列对应的列数据为数组中的第 i 和第 i 7 个元素 将对应数据由低至高 位依次从控制端口输出显示 向右逻辑移位所得结果通过单片机端口输出到锁 存器 通过片选需要显示对应的锁存器在输出显示 如此依次循环选通各列来 显示所需画面 动态显示程序流程图见 5 2 2 把显示的数据送到 P0 口 相应的锁 存器接收数据 再把片选锁存器的数据送到端口 相应锁存器接收数据并锁存 输出显示 接着把下一组数据送到 P0 口 改变片选锁存器的数据 送到相应 锁存器输出显示 直到把所有的数据局输出传送完毕后 显示完成后 退出显 示程序 等待指令 输出形式多种多样 可以静态输出图案 也可以动态 左 移 右移 循环等花样显示 图 5 2 2 显示程序流程图 6 硬件电路设计 Y N 显示数据送 0 选通列 送锁存输出 送下一列数据 选通信号左 移 左移次数 8 显示完成后 程序初始化 开始 子程序返回 6 1 单片机与 74HC573 连接线路图 首先在 porter 平台里画出单片机 AT89S52 与芯片 74HC573 的连接图 变 换成 PCB 图 转印在 PCB 板上面 然后再根据图把各个元器件焊接上去 但考 虑到 PCB 板太小 不能满足灯座的占地面积 所以把 PCB 板重新固定在 20 22 的万能板上 如图 5 1 所示 图 6 1 单片机与 74HC573 连接线路图 6 2 LED 灯焊接方法 6 2 1 焊接前准备工作 准备好烙铁 焊锡丝 钳子等工具 以及 LED LED 的正负极很好判 别 长的引脚为 短的为 LED 最好选用直径 3mm 的 LED 推荐选绿色 长 脚的 LED 可以省很多工作量 实际测量长脚是 29mm 短脚为 27mm 由于 LED 光立方板子灯的间距决定了 每个 LED 的间距是 20mm 这样长短引脚都符合这 个尺寸 由于所有 LED 框架焊接好后 一旦有 LED 损坏更换难度很大 所以焊 接前要测试所有 LED 用一般数字显示万用表打到二极管量程 用万用表红表 笔接长引脚 黑的接短引脚 LED 正常发光并且亮度基本一致 这样的 LED 就 是好的 否则是坏灯 如果为了确保可靠也可以焊接好一层后测试 LED 是否能 点亮 6 2 2 焊接 将 8 个 LED 焊接为一组 可以通过 2 种方法完成 方法一 需要用钳子将 LED 的正极扭弯 这个弯 一定要小 正好露 出 LED 外围打弯正合适 LED 的正极折弯后留下的引脚长度必须大于 LED 的间 距 20mm 以确保有足够的重合位 LED 灯脚全部折好后 就可以焊接了 为了方 便焊接可以在万能板上面钻几个 2mm 的孔 间距为 8 个洞洞置以便焊接 焊接 细节 将一个 LED 正极的引脚靠近到另一个 LED 正极的打弯处 然后上焊锡焊 接 焊接要光亮可靠 有一定机械强度 这样将全部 LED 焊接成 8 个一组的 LED 灯排待用 焊接时避免用过多助焊剂 要不会粘到 LED 表面 影响外观 焊机避免正负 2 极短路 注意每一层的二极管都是共阴的 方法二 需要借助一个工艺设备 这个东西可以自己动手制作 用 这个辅助焊接当然要容易些 焊接方法也是一样的 将一个 LED 正极的引脚靠 近到另一个 LED 正极的打弯处 然后上焊锡焊接 焊接要光亮可靠 有一定机 械强度 这样将全部 LED 焊接成 8 个一组的 LED 灯排待用 焊接小经验 由于 LED 灯脚有一定弹性 一个 LED 的引脚靠近到另一个 LED 正极的打弯处时 一 松手就又弹远了 所以建议焊接时多掰一点 掰过了之后利用弹性将两个要焊 接的引脚 靠进 这样焊接会容易许多 如图 6 2 2 所示 图 6 2 2 灯焊接模具 6 3 整体实物图 整个光立方的连接是用排线和杜邦线连接而成 这样方便拆和安装 但过 程比较繁琐 也很容易出错误 有事也会产生接触不良 整体图如图 6 3 1 和 图 6 3 2 所示 图 6 3 1 排线和杜邦线连接图 6 3 2 整体实物图 7 程序设计的选择与分析 作为一种结构化的程序设计语言 C 语言的特点就是可以使你尽量少地对硬 件进行操作 具有很强的功能性 结构性和可移植性 常常被优选作为单片机 系统的编程语言 但是基于单片机的 C 语言和标准 C 语言有很大区别 如何结 合单片机的系统资源 用 C 语言开发符合实际工程需要的单片机系统 对用编 程者来说具有十分重要的意义 7 1 单片机 C 语言主要特点 用 C 编写程序比汇编更符合人们的思考习惯 开发者可以摆脱与硬件无必 要的接触 更专心的考虑功能和算法而不是考虑一些细节问题 这样就减少了 开发和调试的时间 C 语言具有良好的程序结构 适用于模块化程序设计 因此 采用 C 语言设计单片机应用系统程序时 首先要尽可能地采用结构化的程序设 计方法 将功能模块化 由不同的模块完成不同的功能 1 这样可使整个应 用系统程序结构清晰 易于调试和维护 不同的功能模块 分别指定相应的入 口参数和出口参数 对于一些要重复调用的程序一般把其编成函数 这样可以 减少程序代码的长度 又便于整个程序的管理 还可增强可读性和移植性 在实际单片机程序设计中 程序结构一般均采用如下结构 include 头文件说明部份 unsigned char x1 x2 全局变量声明部份 Function1 功能函数定义部份 main inti j 整型变量声明部份 Function1 功能函数说明部份 7 2 单片机 C 语言与标准 C 语言的区别 由于现在越来越多的产品都采用单片机开发 所完成的计算和控制工作 也日趋复杂 但是单片机系统是一种资源十分有限的系统 这主要表现在程序 存储器资源的不足 因此在程序设计时如何使用好这些有限的资源就显得十分 重要 用 C 语言编程虽然具有许多的优点 但是生成的代码相对要长 要是编 程技术不好 生成的代码甚至有可能比汇编语言生成的代码长几倍 因此对编 程者来说 应该注意到单片机 C 语言和一般意义上的标准 C 语言的区别 对程 序进行适当的优化 7 3 数据类型的选用 单片机 C 语言编程不同于一般的 C 语言编程的显著的一个特点 就是要 和程序存储器资源结合起来 虽然其提供的数据据类型十分丰富 但是只有 bit 和 char 等数据类型是是机器语言直接支持的数据类型 用此类数据类型的 语句所生成的代码较短 而其它的数据类型如整型 浮点型等数据要有一定的 内部程序或内部函数的支持 相对来说用该类数据类型的语句生成的代码要长 有些 C 语言程序表面上看起来十分的简单 但在在实际编译时 生成的代码却 相当长 因此我们要按照实际需要 合理地选用数据 可以大大的减少所生成 的代码长度 例如在 S52中每种数据类型变量所占用存储器字节数和经编译后 生成的代码长度如表1所示 通过表1我们知道 不同的数据类型所生成的机器代码长度相差很多 相 同类型的数据类型有无符号对机器代码长度也有影响 在程序编译时生成机器 代码长的数据类型的优先级越高 不同的数据类型在进行程序运算时要转化为 高优先级的的数据类型 相应的代码长度也会增长 2 因此我们应尽可能地 使用 bit char 等机器语言直接支持的数据类型 无符号数的变量应声明为无 符号数 尽可能地减少程序中使用的数据类型的种类 7 4算法设计问题 单片机 C 语言和标准 C 语言存在着很大差别 在计算机上进行 C 语言程序 设计时由于不必考虑程序代码的长短 只需考虑程序功能实现 但是在单片机 上进行 C 语言程序设计就必须考虑系统的硬件资源 有时并不是程序的算法越 简单 长度越短越好 因为有一些算法要调用一些内部的子程序和函数 生成 的机器代码长度非常长 不同的算法对程序代码长度影响十分大 因此在进行 程序设计时 就尽量采用程序生成代码短的算法 在不影响程序功能实现的情 况下可以采用一些优化算法 2 在单片机 C 语言编译成机器代码时 不同的运算生成的机器代码的长度相 差很大 尽可能地减少程序中对某种数据类型的运算种类 越复杂的数据类型 效果越明显 在进行数据计算时 在一定的精度范围内 可以用一些近似的计 算来完成一些运算 既不损失精度又能减少大量的代码 比如 用逻辑 AND 充电 Loop JB P3 6 AD END 开始计数匹配 INC A CJNE A 100 Loop AD END CLR P3 7 放电 CJNE A 100 Ret Val 看结果是否有溢出 有溢出说明结果不对 SJMP Con OV 返回值 Ret Val DEC A MOV R7 A A D 转换的结果保存在 R7中 传递给主程序 Con OV RET END 单片机 C 程序 include unsigned char AD unsigned char 在 C 程序中声明汇编模数转换子程序 void timer0 void interrupt 1 using 1 unsigned char x x AD 在 C 程序中调用汇编程序 Main 主程序 在以上程序中 函数的返回值为一无符号字符型数 根据调用规则 返回 值在 R7中 这样才可保证数据的传递不出错 另外 在调用过程中 必须注意 寄存器的入栈 这样在以后用到 A D 转换时 在 C 语言中调用汇编语言子程序 AD 即可 7 7 程序分析选择 C 语言具有很强的功能性和结构性 可以缩短单片机控制系统的开发周期 而且易于调试和维护 已经成为目前单片机语言中最流行的编程语言 所以本 设计选取 C 语言作为编辑语言 8 程序设计 include define uint unsigned int define uchar unsigned char uchar ceng 0 x01 0 x02 0 x04 0 x08 0 x10 0 x20 0 x40 0 x80 uchar table erwei 0 x80 0 xC0 0 xE0 0 xF0 0 xF8 0 xFC 0 xFE 0 xFF uchar LED A 0 x00 0 x7E 0 x88 0 x88 0 x88 0 x88 0 x7E 0 x00 uchar LED B 0 x00 0 x6C 0 x92 0 x92 0 x92 0 x92 0 xFE 0 x00 uchar LED C 0 x00 0 x00 0 x82 0 x82 0 x82 0 x82 0 x7C 0 x00 uchar LED D 0 x00 0 x7C 0 x82 0 x82 0 x82 0 x82 0 xFE 0 x00 void delay uint z void erwei void ceng void juxing void LEDA void LEDB void LEDC void LEDD void main while 1 ceng delay 200 erwei delay 200 LEDA delay 200 void delay uint z uchar x y for x 0 x z x for y 0 y 121 y void erwei uint a P2 0 xFF P0 0 xFF for a 0 a0 a P1 table erwei a delay 200 delay 200 void ceng uint i P2 0 xFF P0 0 xFF for i 0 i0 i P1 uchar ceng i delay 200 delay 200 delay 200 void LEDA uint b P1 0XFF P2 0XFF for b 0 b 8 b P0 LED A b delay 200 9 设计结果分析 本次光立方的设计 主要控制电路是采用双面附铜板 灯座是用万能板焊 接而成 因为考虑在作图是的方面 设想完全采用排线和杜邦线将整个电路连 接 而事实在实际的操作过程中 产生很多的问题 最主要的问题 就是将已 经连接好的电路运行时 只要光立方有触动 运行就会出现乱码 因为在连线 的接触点有接触不良的问题产生 而这也是避免不了的 这就是用外界线连接 电路的最大弊端 采用排线和杜邦线连接整个电路有很大的弊端 但是 用 porter99SE 作图 时 简单方便很多 大大节省的作图时间 而且 在拆取过程和组装过程也很 方便 总 结 毕业设计是学生即将完成学业的最后一个重要环节 它既是对学校所学知 识的全面总结和综合应用 又为今后走向社会的实际操作应用铸就了一个良好 的开端 所以在此有必要对这次的毕业设计作一个系统的总结 说一说自己内 心的想法 这次毕业设计 我选择了实做的题目 基于单片机的 8 8 8 的光立方的设 计 本次设计达设计预期要求 LED 显示屏各点亮度均匀 充足 可显示图形 和简单的文字 而且显示图形和文字显示稳定 清晰无串扰 图形或文字显示 有静止 移入移出等显示方式 本次毕业设计不仅是对我的一种锻炼 也是对我大学年所学知识的综合检 查 从开始设计到设计的完成 我感觉收获很多 不仅在理论上有了很大的升 华 并且还在实践中锻炼了自己 使自己成长了许多 本文首先对整个系统的工作原理和实现方法进行了简单的介绍 给出了系 统工作的整体框图 在此基础上 介绍了系统设计用到的各个模块的功能特性 并进性了方案比较 选择出了最优越的方案 在理论上对整个系统有一定了解 的情况下 进行了系统模块的电路的设计 充分利用各方面的资料 发挥我所 学的特长 整个系统的开发过程是曲折的 首先在硬件设计上 由于以前所学 课程有一定的基础 我多方查阅资料 不断的向老师 同学学习请教 以确保 设计的电路系统完整 并能实现最完美的系统功能 经过几个月学习 我设计 出了各个部分模块的电路图 并实现了电路图的组合 经过测试与修改 与指 导老师最终完善了硬件电路的设计 并能够比较理想的完成本次毕业设计功能 在完成毕业设计的过程中也存在一些问题 没有考虑仿真软件是一个理想 的仿真环境 而实际连接的电路板与仿真现象有差异 譬如连接不当 驱动能 力不强 相邻器件间的干扰等问题会导致在仿真软件中能良好运行的程序 出 现显示问题 经过排查和合理的器件摆放焊接 问题解决 对于软件设计 因为以前的编程经验不够 因此 在这方面花费了很多的 精力和时间 尽管过程很艰难 但是在真正意义上学到了知识 为以后的工作 和学习积累了宝贵的经验 总体来说这次的毕业设计很成功 达到了预期的设计要求 不仅学到了许 多课本上学不到的知识 提高了自己动手动脑的能力 丰富了创新和创造的思 维 有点缺憾是时间有限 不能进一步深入和扩散学习和研究 希望有时间可 以对程序和电路图作更进一步的改进 譬如实现显示图案的上下移动 对角线 移动 三色显示等 在研制过程中注重先进 适用的原则 注重科技与应用结 合 来用产 学 研结合 侧重于科研技术转化为生产力 本系统经过了设计 阶段 开发实现阶段以及最后的应用测试阶段 经过 1 个月的努力 核心问题 已经全部解决 所有功能均已基本实现 只是在通用性上还有待提高 这次毕 业设计的经历使我对 52 单片机的一些特征 性能 以及应用及原理有了深刻 的了解 真正做到了学有所得 学有所用 可以说获益匪浅 但是 总的说来 由于我在理论和实践方面存在一定的不足 所以在设计 思路和实现功能上难免有不足之处 请各位老师多多批评指正 设计结束了 但学习仍在继续 从这次的毕业论文设计中 我真正的意识 到 在以后的学习中 要理论联系实际 把我们所学的理论知识用到实际当中 实践是检验真理的唯一标准 我们电子专业的学习更是如此 不仅要有丰富的 理论知识 还要有很强的动手能力 只有理论与实践并重 专业水平才能提高 这就是在这次毕业设计中的最大收获 在今后的人生中 不断对自己所学的知 识进行更新 进行补充 致 谢 在论文即将完成之际 我首先向关心 帮助 指导我的导师 万系杰老 师表示衷心的感谢并致以崇高的敬意 在这三年的大学学习生涯中 我的人生步伐一直向前 在学习上和思想上 以及动手能力上都受益匪浅 这除了自身的努力外与电子办公室的各位老师的 辛勤帮助 热心鼓舞 积极开导是分不开的 谨向各位老师们致以衷心的感谢 和崇高的敬意 本课题在选题及设计过程中一直得到万老师的悉心指导 万老 师曾多次为我指点迷津 帮助我开拓设计思路 精心点拨 热忱鼓励 万老师 以其渊博的学识 严谨的治学态度 求实的工作作风和他敏捷的思维 饱满的 工作热情以及对我的耐心指导和严格要求给我留下了深刻的印象 使我在理论 和实际应用两方面的能力都得到了很大的提高 使我受益匪浅 万老师治学严 谨 待人诚恳 他高屋建瓴的学术眼光 对事业孜孜不倦地追求和勤奋不辍的 精神将使我终生受益 是我终生学习的榜样 在此向恩师致以最诚挚的谢意 在此 我还要感谢在一起设计讨论的同学 正是由于你们的帮助和支持 我才能克服一个又一个的困难和疑惑 直至本设计的顺利完成 感谢你们给予 我的帮助并且对于我提出的任何难题都给予热心 耐心的解答 使我受益颇深 最后 我要向在百忙之中抽时间对本文进行审阅 评议的老师表示感谢 参考文献 1 关积珍 LED 显示屏发展状况及趋势 J 世界电子元器件 2 关积珍 陆家和我国 LED 显示屏技术和产业发展及展望 3 Jeyamkondan S Jayas D S Holly R A 16x16 dot matrix LED has 4mm profile Electronics Weekly 11 26 2003 Issue 2125 36 36 1 9p 1c AN 11842012 4 缪思恩 LED 大屏幕显示电路设计 J 电子技术应用 1996 08 56 77 5 Dave Jackson 关于 DSP 芯片的问与答 今日电子 1998 12 1 7 6 卢弥坚 主从分布式 LED 大屏幕显示系统 J 电脑与信息技术 1997 04 6 13 7 高胜东 梁采 张宏富 一种 LED 大屏幕显示系统 J 成都 气象学院学报 1998 03 108 120 8 张全福 汇编语言程序设计实验教学改革与探索 教学研究 2005 06 3 5 9 文哲雄 用单片机控制 LED 显示屏 D 佛山 佛山科学技术学院 1995 05 5 10 10 郑刚 李宇成 LED 大屏幕显示系统的设计 J 北方工业大学学报 2001 03 43 47 11 李元生 LED 光柱专用驱动器 J 家庭电子 2005 04 1 7 12 陈新忠 基于 RS232 总线的单片机多机通信软件设计 J 现代电子技术 2002 03 56 78 13 李桂平 LED 屏幕显示器的设计 J 零陵师范学院学报 2002 09 367 380 14 David F Rogers Computer graphics algorithm M Beijing China Machine Press 2002 97 99 15 Marston R Radio Electronics Working with LED display drivers J Mar1992 Vol 63 Issue 3 658p 3 charts 23 diagrams AN 9206290756 袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论