基于STC89C54单片机的汉字点阵显示屏的设计_毕业设计.doc_第1页
基于STC89C54单片机的汉字点阵显示屏的设计_毕业设计.doc_第2页
基于STC89C54单片机的汉字点阵显示屏的设计_毕业设计.doc_第3页
基于STC89C54单片机的汉字点阵显示屏的设计_毕业设计.doc_第4页
基于STC89C54单片机的汉字点阵显示屏的设计_毕业设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计 论文 题 目 基于基于 STC89C54STC89C54 单片机的汉字点阵显示屏的设计单片机的汉字点阵显示屏的设计 系 别 年级专业 学生姓名 学 号 指导教师 完成时间 毕业设计 论文 I 摘摘 要要 在现代化的社会里 因为 LED 具有功耗低 寿命长 性能好的优点 由单片 机控制 LED 来实现文字 图像信息显示的应用也越来越广泛 其使用价值也越来 越受重视 本设计基于 STC89C54 单片机来实现汉字显示的功能 介绍了汉字点阵 显示系统的设计过程 选用了 4 块 8 8 的 LED 点阵模块来构成一个 16 16 的点阵 显示屏 它主要由单片机 STC89C54 的 P1 口和 P2 口来控制其行选 采用时 8 位 串入并出芯片 74HC595 来控制其列选 由集成 8 个 NPN 达林顿管的 ULN2803 来 提供驱动电流 因为 ULN2803 有反相功能 所以在发送显示信息时 我们通过给 模块要求亮的行置 1 而给相应的列来置 1 从而使相应的二极管导通 于是字便 被显示出来了 此后再对字进行扫描显示 便会产生动态效果 此外 本设计增加 语音播报功能 使该系统性能得到显著提升 关键词关键词 单片机 74HC595 ULN2803 毕业设计 论文 II AbstractAbstract In modern society because the LED has low power consumption long life performance advantages controlled by single chip LED text image information display applications are increasingly being used its value in use is also growing attention This design based STC89C54 microcontroller to achieve the function of the system of Chinese characters cycle through the character dot matrix display system design process selection of four 8 x 8 LED dot matrix module to form a 16 16 screen it mainly consists ofmicrocontroller STC89C54 port P1 and P2 port to control the line selected again using the 8 for the string into and out of the chip 74HC595 to control the column selected Integrated 8 Darlington ULN2803 to drive current ULN2803 inverting function so send display information through the different points of the requirements of the bright line of modules set to the appropriate column to set so that the corresponding diode conduction so the word willdisplayed after which the word scan there will be a dynamic effect Keywords SCM 74HC595 ULN2803 毕业设计 论文 目目 录录 摘 要 I Abstract II 第一章 系统设计方案 1 1 1 系统方案的确定 1 第二章 硬件设计 2 2 1 主控芯片 2 2 1 1 STC89C54 单片机 2 2 1 2 单片机信号引脚 2 2 1 4 51 单片机最小系统 3 2 1 5 中断控制 4 2 2 I O 扩展芯片 6 2 3 驱动芯片 7 2 4 汉字显示点阵屏 9 2 4 1 点阵屏模块 9 2 4 2 8 8 点阵工作原理说明 9 2 5 电源电路 10 2 6 单片机的时钟电路 10 2 7 单片机的复位电路 11 2 8 原理框图 11 2 9 整体硬件设计电路 12 第三章 软件设计 13 3 1 点阵屏主程序流程图 13 3 2 装载函数流程图 13 3 3 显示函数流程图 14 第四章 系统调试 15 4 1 硬件调试 15 4 2 软件调试 15 4 2 1 程序跳转错 15 结束语 16 参考文献 17 附录 1 18 附录 2 19 附录 3 实物图片 23 致 谢 24 毕业设计 论文 1 第一章第一章 系统设计方案系统设计方案 1 11 1 系统方案的确定系统方案的确定 LED 点阵显示系统的总体框图如图 1 1 所示 硬件电路大体上可以分单片机及 其外围电路 显示驱动电路 I O 口扩展电路 语音播报电路四部分 本设计实现 16 16 单色汉字循环显示 右移滚动显示 无线控制和语音播报功能 硬件部分采 用 4 块 8 8 点阵屏级联的方式实现 点阵屏的行列各为 16 管脚 考虑到单片机 I O 口资源比较紧张 需要扩展 I O 口 故采用 8 位 74HC595 串行输入并行输出芯 片来扩展 I O 口 由集成 8 个 NPN 型达林顿管的 ULN2803 来提供驱动电流 语音播 报模块采用 WT588D 语音芯片 配合其编程软件 可以把语音下载到指定地址的 FLASH 中 通过单片机给语音模块控制信号 实现在显示汉字的同时 朗读显示的 内容 整个系统以 STC89C54 为控制芯片 P1 和 P2 口为行扫描控制端 两列上拉排 阻增强单片机 I O 口的驱动能力 利用 ULN2803 来满足 LED 屏的驱动电流 P0 口为芯片 74HC595 的输入 且 2 片 74HC595 级联后为列扫描控制 系统提供 12MHz 的时钟电路和按键控制的复位电路 通过软件程序调用不同的代码来显示 字符或文字 本设计采用动态扫描方式逐列轮流点亮 LED 点阵屏 对于 16 16 的点阵来说 显示一帧图像需要发送 16 次行 列字型码 首先发送第一列的字型码 使其处于 有效 可以被点亮 而其他列处于无效的的状态 然后发送相对应的行值 这样第 图 1 1 点阵显示系统的总体框图 主控芯片 STC89C54 3 根控制线 I O 扩展串入并出 74HC595 16 16 LED 点阵显示屏16 根线 行驱动 ULN2803 WT588D 语音播报模块 5V 电源 4 根线 毕业设计 论文 2 一列的 LED 灯根据字型码可以亮灭 接着为了消除阴影 发送使 LED 灯熄灭的行 字型码 是所有的 LED 灯熄灭 依此循环发送行列值 可以显示图像 采用扫描方式显示时 每一行有一个行驱动器 各行的同名列共用一个驱动器 显示数据通常存储在单片机的 ROM 中 按 8 位一个字节的形式顺序排放 显示时 要把一行中各列的数据都传送到相应的列驱动器上去 这就存在一个显示数据传输 的问题 从控制电路到列驱动器的数据传输可以采用并列方式或串行方式 显然 采用并行方式时 从控制电路到列驱动器的线路数量大 相应的硬件数目多 当列 数很多时 并列传输的方案是不可取的 软件部分编程采用基于 Windows XP 系统的 Keil C 此软件界面美观 操作方 便 易于程序的编写 最后通过 STC ISP 编程软件将正确的程序写入 STC89C54 芯片中 通过硬件电路显示 第二章第二章 硬件设计硬件设计 2 12 1 主控芯片主控芯片 2 1 1 STC89C54 单片机单片机 本设计采用 STC89C54 单片机 该单片机拥有 16KB 的可编程的闪存 Flash programmable and erasable read only memory 1280 字节 RAM 片上闪存允许 100000 次编程烧写 在系统开发时可以十分容易地进行程序修改 即使程序错误 也不会成为废品 由于在单片机集成电路上包括 8 位 CPU 和闪存 32 个并行 I O 接口 以及定时器等部件使 STC89C54 成为强大的控制器 它为很多单片机控制系 统提供一种高效灵活的解决方案 另外 STC89C54 单片机出厂时已经完全加密 无 法解密 并且利用内部集成 ISP 功能 外接一个 MAX232 芯片 通过串口可以方 便下载程序 签于以上理由 最终选择 STC89C54 单片机为主控芯片 2 1 2 单片机单片机信号引脚信号引脚 51 系列单片机 8031 8051 及 89C51 89S51 均有 40Pin 封装的双列直插 DIP 封 装 图 2 1 是它们的引脚配置 40 个引脚中 正电源和地线两根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 下面对这些引脚的功能加以解释说明 Pin20 接地引脚 Pin40 正电源脚 工作时 接 5V 电源 Pin19 时钟 XTAL1 脚 片内振荡电路的输入端 Pin18 时钟 XTAL2 脚 片内振荡电路的输出端 毕业设计 论文 3 8051 的时钟有两种方式 一种是片内时钟振荡方式 但需在 18 和 19 脚外接 石英晶体 2 12MHz 和振荡电容 振荡电容的值一般取 10p 30p 另外一种是外部 时钟输入方式 即将 XTAL1 接地 外部时钟信号从 XTAL2 脚输入 输入输出 I O 引脚 P0 P1 P2 P3 in39 Pin32 为 P0 0 P0 7 输入输出脚 Pin1 Pin8 为 P1 0 P1 7 输入输出脚 Pin21 Pin28 为 P2 0 P2 7 输入输出脚 Pin10 Pin17 为 P3 0 P3 7 输入输出脚 Pin9 RESET Vpd 复位信号复用脚 当 8051 通电 时钟电路开始工作 在 RESET 引脚上出现 24 个时钟周期以上的高电平 系统即初始复位 8051 的复位方式可以是自动复位 也可以是手动复位 该设计采用手动复位 此外 RESET Vpd 还是一复用脚 Vcc 掉电期间 此脚可接上备用电源 以保证 单片机内部 RAM 的数据不丢失 Pin30 ALE 当访问外部程序器时 ALE 地址锁存 的输出用于锁存地址的低位 字节 而访问内部程序存储器时 ALE 端将有一个 1 6 时钟频率的正脉冲信号 这 个信号可以用于识别单片机是否工作 也可以当作一个时钟向外输出 如果单片机 是 EPROM 在编程其间 将用于输入编程脉冲 Pin29 当访问外部程序存储器时 此脚输出负脉冲选通信号 PC 的 16 位地址 数据将出现在 P0 和 P2 口上 外部程序存储器则把指令数据放到 P0 口上 由 CPU 读入并执行 Pin31 EA Vpp 程序存储器的内外部选通线 ST89C54 单片机 内置有 16kB 的 程序存储器 当 EA 为高电平时 读取内部程序存储器指令数据 如果 EA 为低电 平 则不管地址大小 一律读取外部程序存储器指令 图 2 1 STC89C54 芯片图 毕业设计 论文 4 2 1 4 51 单片机最小系统单片机最小系统 STC89C54 由于拥有达到 16K 的内部程序存储器和 1280 字节的 RAM 已经满 足了一般的设计需求 所以只需要建立单片机最小系统 即可满足本设计的控制部 分的要求 硬件连接如图 2 2 所示 51 单片机的 RST 为复位信号端 高电平有效 当维持低电平时单片机将正常 读指令处理 当复位时 PC 指向 0000H 当刚刚接通单片机电源时 由于电源的冲击 将通过电容流过一定的电流 在 电阻上产生一定的正电压 RST 高电平使得单片机复位 待电源稳定了 电容相 当于断路 使得 RST 引脚接地 为低电平 单片机进入正常工作 但用户要求复位时 按下 S2 按键 VCC 绕过电容流过 10K 电阻 向地拉电 流 RST 引脚处于高电平 单片机复位 PC 指向 0000H 地址 2 1 5 中断控制中断控制 STC89C54 的中断控制是指 MCS 51 提供给用户的中断控制手段 实际上就是 一些特殊功能寄存器 与中断有关的特殊寄存器有中断允许控制寄存器 IE 和中断 优先级控制寄存器 IP 在 MCS 51 单片机中有 5 个中断源 允许中断称 中断开放 不允许中断称 中断屏蔽 因此 当对所运行的程序不希望有某个中断请求打断它 图 2 2 STC89C54 最小系统 毕业设计 论文 5 时 可以对该中断加以屏蔽 本设计的程序中有此应用 STC89C54 对中断请求源 的开放或屏蔽是由中断允许寄存器 IE 控制的 IE 的格式如表 2 1 所示 表 2 1 STC89C54 IE 寄存器 IE AFHAEH ADH ACH ABH AAHA9H A8H A8H EA ES ET1 EX1 ET0 EX0 中断允许寄存器 IE 对中断的开放和关闭实现两级控制 所谓两级控制就是有 一个总的开关中断控制位 EA IE 7 当 EA 0 时 关闭所有的中断申请 即任何 中断申请都不接受 当 EA 1 时 CPU 开放中断 但 5 个中断源还要由 IE 的低 5 位的各对应控制位的状态进行中断允许控制 IE 中各位的含义如下 EA 中断允许总控制位 EA 0 屏蔽所有中断请求 EA 1 CPU 开放中断 对各中断源的中断请求是否允许 还要取决于各中断源的中断允许控制位的状态 ES 串行口中断允许位 ES 0 禁止串行口中断 ES 1 允许串行口中断 ET1 定时器 计数器 T1 的溢出中断允许位 ET1 0 禁止 T1 中断 ET1 1 允许 T1 中断 EX1 外部中断 INT1 中断允许位 EX1 0 禁止 INT1 中断 EX 1 允许 INT1 中断 ET0 定时器 计数器 T0 的溢出中断允许位 ET0 0 禁止 T0 中断 ET0 1 允许 T0 中断 EX0 外部中断 INT0 中断允许位 EX0 0 禁止 INT0 中断 EX0 1 允许 INT1 中断 特殊功能寄存器 TMOD 为定时器的方式控制寄存器 寄存器中每位的定义如 图 2 3 所示 高 4 位用于定时器 1 低 4 位用于定时器 0 其中 M1 M0 用来确定所选的工作方式 如表 2 2 所示 图 2 3 TMOD 定时器方式寄存器 表 2 2 工作方式选择 毕业设计 论文 6 C T 定时器方式或计数器方式选择位 C T 1 时 为计数器方式 C T 0 时 为定时器方式 GATE 定时器 计数器运行控制位 用来确定对应的外部中断请求引脚 INT0 INT1 是否参与 T0 或 T1 的操作控制 当 GATE 0 时 只要定时器控制 寄存器 TCON 中的 TR0 或 TR1 被置 1 时 T0 或 T1 被允许开始计数 TCON 各位含义见后面叙述 当 GATE 1 时 不仅要 TCON 中 TR0 或 TR1 置 位 还需要 P3 口的 INT0 或 INTl 引脚为高电平 才允许计数 特殊功能寄存器 TCON 用于控制定时器的操作及对定时器中断的控制 其各 位定义如图 2 4 所示 其中 D0 D3 位与外部中断有关 TR0 TR1 定时器 T0 T1 的运行控制位 该位置 1 或清 0 用来实现启动计 数或停止计数 TF0 TF1 定时器 T0 T1 的溢出中断标志位 当 T0 计数溢出时由硬件自动 置 1 在 CPU 中断处理时由硬件清为 0 TMOD 和 TCON 寄存器在复位时其每一位均清零 本设计中中断寄存器和定时器配合使用 精确定时 1ms 使用定时器中断模式 之前 要对定时器进行初始化 即要确定定时器的工作模式 初值 开中断和打开 定时器 2 22 2 I OI O扩展芯片扩展芯片 本设计使 用 74HC595 来扩展并行 I O 口 节约单片机资源 其逻辑电路图如 2 5 所示 74HC595 内含 8 位串入 串 并出移位寄存器和 8 位三态输出锁存器 寄 存器和锁存器分别有各自的时钟输入 SCLK 和 SLCK 都是上升沿有效 当 图2 5 74HC595逻辑表 图 2 4 TCON 寄存器 毕业设计 论文 7 SCLK 从低到高电平跳变时 串行输入数据 SDA 移入寄存器 当 SLCK 从低到高 电平跳变时 寄存器的数据置入锁存器 清除端 CLR 的低电平只对移位寄存器复 位 QS 为低电平 而对锁存器无影响 当输出允许控制 EN 为高电平时 并行输 出 Q0 Q7 为高阻态 而串行输出 QS 不受影响 74HC595 最多需要 5 根控制线 即 SDA SCLK SLCK CLR 和 EN 本设计的 I O 扩展部分的电路图如 2 6 所示 其中 CLR 可以直接接到高电平 用软件来实现寄存器清零 EN 直接接到低电平 不需要软件改变亮度 把其余三 根线和单片机的 I O 口相接 即可实现单片机对 LED 的控制 数据从 SDA 口送入 74HC595 在每个 SCLK 的上升沿 SDA 口上的数据移入寄存器 在 SCLK 的第 9 个 上升沿 数据开始从 QS 移出 如果把第一个 74HC595 的 QS 和第二个 74HC595 的 SDA 相接 数据即移入第二个 74HC595 中 照此一个一个接下去 可接任意多个 数据全部送完后 给 SLCK 一个上升沿 寄存器中的数据即置入锁存器 此时如果 EN 为低电平 数据即从并口 Q0 Q7 输出 把 Q0 Q7 与 LED 的 8 段相接 LED 就 可以实现显示了 2 32 3 驱动芯片驱动芯片 ULN2803 属于高电压大电流达林顿晶体管系列 该芯片中的八个 NPN 达林顿 管来驱动低逻辑电平数字电路和大电流高电压要求的灯 继电器 打印机和其它类 图 2 6 74HC595 扩展 I O 口电路 U n ooo c L o o o o o o 95 毕业设计 论文 8 似负载间的接口的理想器件 广泛应用于计算机 工业和消费类的产品中 所有器 件的集电极开路输出和用于瞬变抑制的续流钳位二极管 ULN2803 的设计与标准 TTL 兼容 其内部逻辑如图 2 7 所示 该驱动芯片最大可以提供 500mA 的驱动电流 每个 LED 灯需要 5 10mA 的驱 动电流 每行有 16 个 LED 灯 大约需要 160mA 的驱动电流 使用 ULN2803 可以 满足设计要求 本设计驱动电路连接图 2 8 所示 图2 7 ULN2803内部框图 图 2 8 ULN2803 驱动电路 毕业设计 论文 9 2 42 4 WT588DWT588D语音模块语音模块 本设计采用广州唯创科技有限公司的集单片机和语音电路于一体的可编辑语音 芯片 WT588D 语音模块 芯片做为语音核心电路 实现语音播报功能 WT588D 系 列语音单片机功能多 音质好 应用范围广 性能稳定 弥补了以往各类语音芯片 应用领域狭小的缺陷 WT588D 语音模块 芯片工作电压为 DC2 8V 5 5V 支持 WAV MP3 WMA 等格式音频 有 MP3 控制模式 按键控制模式 10 种按键触 发控制方式 按键组合控制模式 并口控制模式 一线串口控制模式 三线串 口控制模式以及三线串口控制控制端口扩展输出模式 丰富的使用模式为开发人员 的应用提供了很大便利条件 本设计采用上升沿按键模式 该语音芯片支持 6K 22KHz 采样率的音频加载 几乎可以将加载的音频音质完整无损的通过喇叭 播放出来 WT588D 系列语音单片机能通过配套软件 WT588D voiceChip 轻而易举 的做到语音组合播放 插入完美的陶冶静音 有 220 个可控制的语音地址位 每个 地址位能加载 128 段语音可组合语音 WT588D 系列语音单片机模块内置 SPI FLASH 存储器 WT588D 系列语音单片机芯片可根据实 际用法外置 SPI FLASH 存储器 只需更换 SPI FLASH 的内容就可实现不同的控制模式 语音组合的切换 WT588D 系列语音单片机支持 SPI FLASH 内容在线下载 选用 WT588D 模块还是 芯片 模块本身带有最小系统应用电路 只需连接好音频输出 以及控制端 通电 即可工作 应用较方便 WT588D 语音芯片体积小 适合应用在要求电路板体积小 的电路上 WT588D 采用数码形式压缩音频 音域广 播放语音时无底噪音 声音 还原度好 能与 MP3 相媲美 工业性能好 能确保 WT588D 在多种复杂的环境下 正常的进行工作 通过配套的电脑操作软件 就能对 WT588D 完成所有功能的设 置 WT588D 软件人性化界面操作 功能编辑简单透彻 语音模块的硬件原理图如图 2 9 所示 本设计使用按键上升沿触发方式 当单 片机收到播放声音信号时 单片机的 I O 口发送低电平 给语音模块的按键接口 图 2 9 语音模块原理图 毕业设计 论文 10 也就是语音模块接收到单片机发送的低电平 由此信号触发语音模块发送指定的声 音 2 52 5汉字显示汉字显示点阵屏点阵屏 2 5 1 点阵屏模块点阵屏模块 本设计为 4 块 8 8 的单色点阵屏拼接而成 其中每块 8 8 单色点阵屏如图 2 10 所示 本点阵模块显示颜色为红色 点亮一个 LED 的电压为 1 5V 电流为 5 10mA 2 5 2 8 8 点阵工作原理说明点阵工作原理说明 从图 2 11 可以看出 8 8 点阵共需要 64 个发光二极管组成 且每个发光二极 管是放置在行线和列线的交叉点上 当对应的某一列置 0 电平 某一行置 1 电平 图2 10 8 8单色点阵屏 图2 11 8 8点阵LED结构 毕业设计 论文 11 则相应的二极管就亮 因此要实现一根柱形的亮法 对应的一列为一根竖柱 或者 对应的一行为一根横柱 因此实现柱的亮的方法如下所述 一根竖柱 对应的列置 0 而行则采用扫描的方法来实现 一根横柱 对应的行置 1 而列则采用扫描的方法来实现 2 6 电源电路电源电路 该电路直接可以将输入的交流电源转化成 5V 的直流电源 该整流桥能够通 过的最大电流为 2A 稳压管 W7805 能够将输入 10V 的电压降低为 5V 其最大 工作电流为 1 5A 在它的输入端并联一个 0 33 微法的电容 输出端并联一个 0 1 微法的电容 可以保证它正常工作 发光二极管串接一个 10K 的限流电阻作为电 源工作指示灯 2 7 单片机的时钟电路单片机的时钟电路 MCS 51 片内有一个高增益反相放大器 其输入端 XTAL1 和输出端 XTAL2 用于外接定时元件构成自激振荡电路 定时元件是由石英晶体和微调 电容组成的并联谐振电路 电容 C1 和 C2 对频率有微调作用 电容容量的选择范 图2 12 电源电路 图 2 13 单片机晶振电路 图 2 14 单片机复位电 路 毕业设计 论文 12 围为 5pF 30pF 振荡频率的选择范围为 1 2MHz 12MHz 在本方案选择 12MHZ 石 英晶体和 20pF 电容组成的并联谐振电路作为单片机的时钟电路 根据该电路可以 知道单片机的指令周期为 1 微秒 单片机的时钟电路如图 2 13 所示 2 8 单片机的复位电路单片机的复位电路 RST VPD端的外部复位电路有两种工作方式 上电自动复位和按键手动复位 根据单片机可靠复位要求 即要求 RST VPD端保持 2 个机器周期以上的高电平 本系统采用按键手动复位 相当于 RST 端直接接高电平 复位电路如图 2 14 所示 2 92 9 原理框图原理框图 图 2 15 电路为 1 块 8 8 点阵显示电路连接图 本设计利用一块 8 8 点阵来体 会和掌握点阵屏的显示汉字的原理 为 16 16 点阵屏做理论依据和技术支持 1 把 单片机系统 区域中的 P1 端口用 8 芯排芯连接到 点阵模块 区域中的 DR1 DR8 端口上 2 把 单片机系统 区域中的 P3 端口用 8 芯排芯连接到 点阵模块 区域中的 DC1 DC8 端口上 如果要显示大的图象可多个点阵拼在一起 只须将点阵的行和行相串联 列和 列相串联 用 74HC595 来控制单个行就可以了 多个点阵屏的连接 多个点阵显示时 常将所有位的行选线并联在一起 由一个 8 位 I O 口控制 而列分别由另一个 74HC595 控制 也可采用并行扩展口构成显示电路 通常 需 要扩展器件管脚的较多 价格较高 本设计将介绍一种利用单片机的一个并行 I O 口实现多个点阵显示的简单方法 图 2 1 所示是该电路的硬件原理图 其中 图2 15 原理框图 毕业设计 论文 13 74HC595 是 8 位并行输出门控串行输入移位寄存器 显示时 其显示数据以串行 方式从 STC89C54 的 P0 2 口输出送往移位寄存器 74HC595 的 SDA 端 单片机的 P0 1 和 P0 0 输出 74HC595 的正确时序信号 然后将变成的并行数据从输出端 Q0 Q7 输出 以控制点阵的列 由 STC89C54 的 P1 P2 口输出高低电平 以对 行控制 2 102 10 整体硬件设计电路整体硬件设计电路 图 2 16 为设计的整体硬件电路图 本设计采用 4 块 8 8 单色点阵屏级联成一 个 16 16 的点阵屏 来完成显示汉字的功能 以 STC89C54 为主控芯片 ULN2803 为驱动芯片 控制行 74HC595 为 8 位串入并出芯片 扩展 I O 口 控 制列 另外 还有单片机的最小系统等基本电路 为了提高单片机 I O 口的驱动能 力 本设计在 P0 口增加了 10K 的上拉电阻 图 2 16 整体硬件电路图 毕业设计 论文 14 第三章第三章 软件设计软件设计 3 13 1 点阵屏主程序点阵屏主程序流程图流程图 图 3 1 主程序流程图 本设计实现了多个汉字的循环滚动显示 程序流程图如图 3 1 所示 软件部分 主要实现初始化包括各个寄存器的赋初值 清除 74HC595 控制线和数据线数据 给定时器 1 赋初值 主程序调用了两个主要的子函数 装载字型码函数和显示函数 装载函数实现在字型码表中把将要显示的字型码存放到 32 个字节的缓冲区中的功 能 显示函数完成发送相对应的行列字型码的工作 3 23 2装载函数流程图装载函数流程图 装载函数的流程图如图 3 2 所示 装载函数实现把将要显示的字型码装载到一 个 32 字节的缓冲区中 以备显示程序发送字型码 首先判断是否要装载数据 判 断的依据在于定时器是否溢出 定时器 1 定时 1ms 然后通过一个变量计数 50 次 溢出 总延时 50ms 当到达设定的时间 通过一定的算法 获得装载数据的初 始指针 依次装载 16 组数据 完成函数功能 具体算法 因为每 32 个字型码是一 帧数据 一幅图像 每帧有 16 列 假定显示 2 个字符 字型码为 64 个 8 位二进 制数据 则需要显示的总列数为 48 列 而移动的列数范围为 0 31 通过移动的列数 来获得在字型码数组中显示的指针 初始化定时器 1 开中断 开定时器 开始 装载函数 调用显示函数 结束 毕业设计 论文 15 3 33 3显示函数流程图显示函数流程图 依次装载数据 结束 开始 判断是否 装载数据 获得显示指针 图 3 2 装载函数流程图 图 3 3 显示函数流程图 结束 开始 发送列值 发送行值 判断是否发 送完 16 次 延时 熄灭 毕业设计 论文 16 74HC595 是 8 位串入并出的 I O 扩展芯片 595 发送列码 循环 16 次送完一 帧列值 使列循环点亮 在发送列值的同时发送相对应的存放在缓冲区的行值 使 一帧图像显示 接着延时一段时间后 控制 P1 口和 P2 口的高低电平 使行的电 压处于高电平状态 从而使整个点阵屏全灭 循环滚动显示 第四章第四章 系统调试系统调试 当完成前面所有工作后 进入最后环节系统调试 虽然前面的工作非常重要 但系统调试也是在整个工作中起着举足重轻的作用 通过它 我们可以查出硬件设 计和软件设计中存在的错误及可能出现的不协调问题 以便修改设计 4 14 1 硬件调试硬件调试 硬件调试主要是电路线路的调试 检查所用的元器件型号是否正常 在此次调 试中点阵屏是重点 因为这次用的是 4 块 8 8 的点阵屏 而不是 16 16 的点阵屏 4 块点阵屏拼接起来的 左右 2 块点阵屏的 行 相互焊接起来 上下 2 块点阵屏的 列 相互焊接起来 比较复杂 存在虚焊或不小心焊错的情况 在显示中发现有一列没有点亮 所用元器件正常情下 经检查 点阵屏的 某一列虚焊 列控制芯片 74HC595 的一端脚无输出信号 原因是面包板的一插 孔存在断路现象 换插孔后 输出正常 4 24 2 软件调试软件调试 本设计在制作的过程中遇到了很多问题 观测到了很多实验现象 通过上百次 的调试 烧写程序 观看实验结果 认真逐一排错 最后才实现设计功能 软件的 调试是通过对用户程序的编译 连接 执行来发现程序中存在的语法错误与逻辑错 误并加以排除纠正的过程软件调试的一般方法是先独立后联机 先分块后组合 先 单步后连续 在软件调试过程中通常会出现如下的情况 4 2 1 程序跳转错程序跳转错 这种错误是程序运行不到指定的地方或发生死循环 通常是用错变量或变量初 值设置不正确等 具体现象是只显示第一个字 而不显示以后的字节 通过软件仿 真发现字型码的显示指针数值存在误差 修改算法 确保缓冲区数据的正确性 来 实现循环显示的功能 毕业设计 论文 17 4 2 2 显示汉字太闪烁显示汉字太闪烁 刚开始实现单字显示后 在设计循环显示时 发现汉字显示的太闪烁 突兀感 太强 整体效果不流畅 有种说不出来的感觉 因为本设计采用动态扫描循环显示 在增加整帧的延时时间 使其显示的时间延长 相当于在熄灭的时间不变的情况下 显示时间和总时间均增加 反复调整时间 也不能达到预期效果 最后 采用同一 个汉字显示 60 次后在显示下一个汉字的方式 增加了显示时间 使显示自然 效 果较好 4 2 3 显示汉字有重影显示汉字有重影 通过编写附录 1 中的测试程序 发现点阵屏全亮 除去 3 个坏点外 说明硬 件电路基本正确 编写简单的汉子循环显示程序时 发现单独显示一个程序时 不 错 字迹清晰 美观 然而在换字 显示下一字符 后 部分行列有重影现象 具 体说就是在显示第二个字的时候 有部分第一个字符亮的电平还接着亮 和第二个 字符的字型码重叠显示 构成阴影效果 更改换字速度和延时时间 均不能达到消 除重影的目的 后来在发送一个字型码后 延时一段时间 发送使整个屏全灭的行 码 在发送下一个字符 根据此编程思想 解决了汉字重影显示的问题 4 2 4 增加语音模块 调试有问题增加语音模块 调试有问题 在设计的后期阶段 为了增加本设计的亮点 增加了语音播报功能 刚开始采 用的是单片机三线式控制语音播报模块 实现同时触发语音播报和汉字两个功能 然而在根据 WT588D 语音芯片的时序 编写了控制播报函数 在主程序相应的位 置根据播报函数 发送不同的地址码 实现语音播报功能 然而在整机调试过程中 发现 可以实现语音播报功能 然而整个汉字屏的产生了闪烁 由于设计是在滚动 模式下有语音播报功能 所以不能采取在汉字循环显示模式下增加单个汉字显示的 次数解决问题的办法 分析具体原因 发现根据语音芯片的时序 可知在发送一个 地址码时 即完成一次调用播报函数 大概需要 20ms 的时间 本函数的占用的时 间太长是根本原因 最后更改语音模块的播放模式 采用按键控制播放模式 经过 实际验证本模式不需要太长的时间就能触发语音播放 用单片机的一个 I O 端口 发送高低电平给语音模块的按键输入端口 实现由单片机控制在点阵屏显示的同时 给语音模块发送播报信号 4 2 5 不能实现汉字循环模式和滚动模式的切换不能实现汉字循环模式和滚动模式的切换 在完成点阵屏汉字循环模式和滚动模式的程序后 发现单独使用任一模式 都 能达到预期效果 然而在改写为根据按键选择显示模式后 却只显示汉字滚动模式 而不能实现汉字循环模式 刚开始一直认为是硬件问题 是没有把按键值送给单片 毕业设计 论文 18 机 更改按键电路 增加一个 10K 的上拉电阻 结果不变 分析错误原因 查找 程序 发现在调用滚动模式时 有一个内嵌的 while 1 死循环 使程序一直处于滚 动模式 将该处死循环该为判断按键是否有效的判断语句 使在按键无效时 点阵 屏工作在滚动模式 在按键有效时 能停止滚动模式的工作 根据按键的选择值执 行不同的显示模式 结束语结束语 本次毕业设计是利用 8 位单片机开发系统 设计 16 16 汉字显示点阵屏系统 循环滚动显示 老师 您辛苦了 该设计方法已多次应用于学生单片机实验的显示电路和多种仪器显示系统中 在日常生活中经常见 将该显示程序调入其它主程序中 即可完成显示功能 通 过本次设计 发现自己的编程思想还不成熟 有些子程序编写的并不规范 可移植 性不好 另外 本设计给人的视觉效果不好 有一种突兀的感觉 有待改正 整体 功能较简单 争取以后能开发出上位机软件 毕业设计 论文 19 参考文献参考文献 1 张志良编著 单片机原理及控制技术 北京 机械工业出版社 2006 2 陈明萤编著 8051 单片机课程设计实训教材 北京 清华大学出版社 2004 3 张义 陈敌北编著 例说 8051 北京 人民邮电出版社 2006 4 魏泽鼎编著 单片机应用技术与实例 北京 电子工业出版社 2004 5 孙育才编著 单片微型计算机及其应用 南京 东南大学出版社 2004 6 沈德金 陈粤初编著 单片机接口电路与应用程序实例 北京 航天航空大学出版 社 1990 7 李朝青编著 单片机原理及接口技术 简明修订版 杭州 北京航空航天大学 出版社 1998 毕业设计 论文 20 附录附录1 1 测试程序测试程序 以下是汉字点阵屏显示系统的测试程序 主要实现点阵屏的全亮和全灭 来检 测点阵屏硬件设计的正确与否 检查点阵屏是否存在坏灯 SLCK BIT P0 0 SCLK BIT P0 1 SDA BIT P0 2 ORG 0000H SJMP START ORG 0030H START MOV R1 16 CLR SDA CLR SCLK CLR SLCK SETB SDA D3 CLR SCLK NOP SETB SCLK DJNZ R1 D3 SETB SLCK MOV P2 0FFH MOV P2 0FFH ACALL DELAY 1S AJMP START DELAY 1S MOV R6 100 D1 MOV R5 40 D2 MOV R4 123 NOP DJNZ R4 DJNZ R5 D2 DJNZ R6 D1 RET END 通过本程序 实现了点阵屏的全亮和全灭 说明点阵屏硬件电路设计比较合理 不存在接错线的现象 另外发现有一块点阵屏存在坏灯的现象 毕业设计 论文 21 附录附录2 2 设计程序设计程序 以下是 16 16 汉字显示点阵屏的总程序 该程序实现了循环滚动显示 老师 您辛苦了 程序名称 LED1616 点阵流动显示汉字 简要说明 最大可显示 16 16 汉字 P1 口接上行线 P2 口接下行线 P0 口接列扫描线 编 写 wgypan include include 移位库函数头文件 sbit SLCK P0 0 74HC595 锁存信号 sbit SCLK P0 1 74HC595 移位信号 sbit SDA P0 2 74HC595 数据端 参数设置 define hang1 P1 上行线 define hang2 P2 下行线 define sum sizeof hanzi 32 自动计算汉字字数 define ziti 16 字体大小 宽度 define light 50 显示亮度 define move speed 50 移动速度 unsigned char code hanzi 0 x02 0 x22 0 x22 0 x22 0 x22 0 x22 0 xFE 0 x23 0 x23 0 x22 0 x26 0 x2A 0 x72 0 x22 0 x02 0 x00 0 x10 0 x10 0 x20 0 x20 0 x40 0 x7C 0 x92 0 x12 0 x22 0 x22 0 x42 0 x42 0 x02 0 x0E 0 x00 0 x00 老 0 0 x00 0 x3F 0 x00 0 x00 0 xFF 0 x00 0 x4F 0 x48 0 x48 0 x48 0 x7F 0 x48 0 x48 0 x48 0 x4F 0 x00 0 x02 0 xE4 0 x08 0 x70 0 x80 0 x00 0 xF0 0 x00 0 x00 0 x00 0 xFF 0 x00 0 x20 0 x10 0 xE0 0 x00 师 1 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x1A 0 x1C 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 2 0 x01 0 x02 0 x0C 0 x3F 0 xC0 0 x09 0 x16 0 x60 0 x20 0 x2F 0 x20 0 x24 0 x22 0 x31 0 x20 0 x00 0 x00 0 x04 0 x1C 0 xC0 0 x1C 0 x02 0 x02 0 x92 0 x4A 0 x82 0 x02 0 x0E 0 x00 0 x90 0 x0 C 0 x00 您 3 0 x01 0 x21 0 x21 0 x29 0 x25 0 x23 0 xA1 0 x61 0 x21 0 x23 0 x25 0 x29 0 x21 0 x21 0 x01 0 x00 0 x00 0 x20 0 x20 0 x20 0 x20 0 x20 0 x20 0 xFF 0 x20 0 x20 0 x20 0 x20 0 x20 0 x00 0 x00 0 x00 辛 4 0 x02 0 x22 0 x22 0 x22 0 x22 0 xFA 0 x22 0 x2F 0 x22 0 x22 0 xFA 0 x22 0 x22 0 x22 0 x22 0 x00 毕业设计 论文 22 0 x00 0 x00 0 x00 0 x7E 0 x44 0 x44 0 x44 0 xC4 0 x44 0 x44 0 x44 0 x7E 0 x00 0 x00 0 x00 0 x00 苦 5 0 x00 0 x40 0

温馨提示

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

评论

0/150

提交评论