毕业设计最终修订板.doc_第1页
毕业设计最终修订板.doc_第2页
毕业设计最终修订板.doc_第3页
毕业设计最终修订板.doc_第4页
毕业设计最终修订板.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

成都工业学院 通信工程系毕业设计 论文 毕业设计 论文 专 业 通信技术 班 次 09621 姓 名 xxxxxx 指导老师 xxxxxxx 成都工业学院 二 0 一 二 年 成都工业学院 通信工程系毕业设计 论文 I 基于单片机的电子倒计时牌设计 摘要 摘要 本次基于单片机倒计时挂牌的设计 以 AT89C51 单片机作为核心 最长 可以倒计 100 天 倒计设置时间位切换 设定数值 启动定时器 切换日历通 过外部中断来实现 并利用两个四位 LED 数码管显示到计的时间 天 时 分 秒 为了简化线路 降低成本 采用以软件为主的接口方法 即不使用专门的 硬件译码器 而采用软件程序进行译码 关键词关键词 单片机 AT89C51 LED数码管 外部中断 成都工业学院 通信工程系毕业设计 论文 II 目目 录录 第第 1 1 章章 绪论绪论 1 1 1 1 国内现状 1 1 2 开发意义 1 1 3 设计方案 1 第第 2 2 章章 硬件系统的设计及分析硬件系统的设计及分析 2 2 2 1 硬件电路模块图 2 2 2 主控芯片单片机 AT89C51 2 2 2 1 单片机概述 2 2 2 2 单片机的组成 3 2 2 3 本次设计采用的单片机 4 2 2 4 定时与中断的原理 6 2 3 LED 数码管 7 2 3 1 数码管结构 7 2 3 2 数码管的接法及相关段码对应的关系 8 2 3 3 数码管使用注意事项 9 2 4 硬件电路设计 9 第第 3 3 章章 程序设计及分析程序设计及分析 1111 3 1 软件系统模块图 11 3 2 各子程序设计 11 3 2 1 主程序 11 3 2 2 转换子程序及显示子程序模块 12 3 2 3 定时器 T0 中断 13 3 2 4 外部中断 0 14 3 2 5 外部中断 1 15 3 2 6 延时子程序 17 第第 4 4 章章 系统仿真测试与硬件制作系统仿真测试与硬件制作 1818 4 1 电路图 18 4 2 使用说明 18 4 3 样机制作 18 4 4 静态电路 19 4 5 动态电路 19 4 6 软件仿真与硬件制作总结 20 结语结语 2222 致谢致谢 2323 参考文献参考文献 2424 附录附录 2525 成都工业学院 通信工程系毕业设计 论文 1 第 1 章 绪论 1 1 国内现状 在生活和生产的各领域中 凡是有自动控制要求的地方都会有单片机 的身影出现 从简单到复杂 从空中 地面到地下 凡是能想像到的地方 几乎都有使用单片的需求 现在尽管单片机的应用已经很普遍了 但仍有 许多可以用单片机控制而尚未实现的项目 因此 单片机的应用大有想像 和拓展空间 单片机的应用有利于产品的小型化 多功能化和智能化 有 助于提高劳动效率 减轻劳动强度 提高产品质量 改善劳动环境 减少 能源和材料消耗 保证安全等 但是 单片机应用的意义绝不仅限于它的 广阔范围以及所带来的经济效益上 更重要的意义还在于 单片机的应用 正从根本上改变着传统的控制系统设计思想和设计方法 从前必须有模拟 电路或数字电路实现的大部分功能 现在已能使用单片机通过软件 编程 序 方法实现了 这种以软件取代硬件并提高系统性能的控制系统 软化 技术 称之为微控制技术 微控制技术是一种全新的概念 是对传统控制 技术的一次革命 随着单片机应用的推广普及 微控制技术必将不断发展 日益完善和更加充实 1 2 开发意义 本课题开发的意义在于它既节省了硬件成本 又能实现多功能 既可 做倒计时秒表 又可进行定时 还可以通过扩展完成其他功能 而且功能的 相互转换也十分简单 对于厂商 有很大的挖掘潜在价值的空间 对于消费 者 也有很大的吸引力 1 3 设计方案 在这次的方案设计的过程中主要用到了以下几种思路 1 本电路应用 TIMER0 MODE 16 位计数器的计时中断法 2 1 秒等于 1000 毫秒 而每一计时脉冲是 100 毫秒 因此需输入 10 个 计时脉冲 方可达到 1 秒的时间 由于 16 位计数器初值为 0000H 需 65536 个计时脉冲方可发生溢出 若晶振频率为 6MHZ 则最大定时时间为 131ms 3 现在需 10 个脉冲 则计数器的初值计算为 定时时间 t 2 16 T0 初值 机器周期 初值 2 16 fosc 12 t 3CB0H 所以 THO 3CH TL0 0BOH 4 倒计时牌具有如下工作状态 设置状态和运行状态 倒计时牌上 电后 显示为全 0 这时要设置倒计时时间 按 K1 开始设置时间 这时 设置的是秒 按一次 K2 秒加 1 再按一次 K1 设置分 依次类推 设置 完天后 按 K1 则启动定时器 开始倒计时 在倒计时牌运行状态下 按 K2 显示当前的日期 年 月 日 再按一次 回到倒计时间显示 注 INT0 对应的开关为位切换 启动按钮 K1 INT1 对应的开关位切换 启动按钮 K2 成都工业学院 通信工程系毕业设计 论文 2 硬件系统 晶 振 电 源 数 码 管 单 片 机 第 2 章 硬件系统的设计及分析 本章主要介绍硬件系统模块的设计以及它的一些电路原理的一些简单 的分析 2 1 硬件电路模块图 本次单片机到计时挂牌的硬件电路设计主要包括了晶振复位电路 LED 数 码管的接口连接电路 主控制器单片机的电路和电源电路 直接用 5V 电源适配 器 其模块图如图 2 1 所示 图 2 1 硬件电路模块图 倒计时牌硬件系统的设计 关键是其显示器接口电路的设计 本设计采用 直接利用单片机 AT89C51 的并行 I O 口构成倒计时牌显示接口电路 其硬件系 统主要包括单片机 包含晶振 电源 控制电路 设置初始时间以及日历切换 LED 数码管 2 2 主控芯片单片机 AT89C51 在本次设计中主要采用的是以软件接口的电路设计 在硬件系统设计中 单片机是核心控制器 2 2 1 单片机概述 单片机因将其主要组成部分集成在一个芯片上而得名 具体说就是把 成都工业学院 通信工程系毕业设计 论文 3 中央处理器 CPU Central processing unit 随机存储器 RAM Random access memory 只读存储器 ROM Read only memory 中断系统 定时 器 计数器以及 I O Input output 接口电路等主要微型机部件集成在一 个芯片上 虽然单片机只是一个芯片 但从组成和功能上看 它已具有了 计算机系统的属性 为此 称它为单片微型计算机 SCMC Single chip micro computer 简称单片机 单片机主要应用与控制领域 用以实现 各种测试和控制功能 为了强调起控制属性 也可以把单片机称为微控制 器 MCU Micro controller unit 在国际上 微控制器 的叫法似乎更 通用一些 而在我国则比较习惯与 单片机 这一名称 单片机在应用时 通常是处于控制系统的核心地位并融入其中 即以嵌入的方式进行使用 为了强调其 嵌入 的特点 也常常将单片机称为嵌入式微控制器 EMCU Embedded micro controller unit 在单片机的电路和结构中 有 许多嵌入式应用的特点 2 2 2 单片机的组成 单片机的组成分为应用系统结构组成和硬件结构组成两大部分 1 单片机应用系统结构 单片机嵌入到对象环境 结构 体系中作为其中的一个智能化控制单元 构成各种嵌入式应用的电路系统 统称为单片机应用系统 单片机应用系统结 构通常分为 3 个层次即单片机 单片机系统 单片机应用系统 如图 2 2 所示 图 2 2 单片机应用系统结构 2 单片机的硬件结构 单片机是一个单芯片形态 嵌入式应用 面向测控对象的计算机系统 它的CPU及CPU外围都是单独针对单片机的特点而专门设计的 AT89C51的内 部结构如图2 3所示 成都工业学院 通信工程系毕业设计 论文 4 4KBROM 特殊功能 寄存器 SFR 定时 计 数器 T0 T1 并行 I O 接 口 串行接口中断系统 时钟源 时钟源 CPU 2 3 AT89C51 的内部结构图 2 2 3 本次设计采用的单片机 本次设计主要用的单片机为AT89C51它的实物图如图2 4所示 图2 5为 AT89C51引脚图 图2 4 89C51实物图和引脚图 图2 5为AT89C51引脚图 成都工业学院 通信工程系毕业设计 论文 5 在这里着重介绍下单片机的引脚功能 对这些功能的合理运用也是实现本 次设计的关键 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能 驱动 8 个 TTL 逻 辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 当访问外部程序和数据存储器时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 不具有内部上拉电阻 在 flash 编程时 P0 口也用来接 收指令字节 在程序校验时 输出指令字节 程序校验 时 需要外部上拉 电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 p1 输出 缓冲器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻 把端口拉高 此时可以作为输入口使用 作为输入使用时 被外部拉低的引 脚由于内部电阻的原因 将输出电流 IIL 此外 P1 0 和 P1 1 分别作定时器 计数器 2 的外部计数输入 P1 0 T2 和定时器 计数器 2 的触发输入 P1 1 T2EX 在 flash 编 程和校验时 P1 口接收低 8 位地址字节 引脚号第二功能 P1 0 T0 定时器 计数器 T0 的外部计数输入 时钟输出 P1 1 T2EX 定时器 计数器 T2 的捕捉 重载触发信号和方向控制 P1 5 MOSI 在系统编程用 P1 6 MISO 在系统编程用 P1 7 SCK 在系统编程用 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出 缓冲器能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电 阻的原因 将输出电流 IIL 在访问外部程序存储器或用 16 位地址读 取外部数据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使用 8 位地址 如 MOVX RI 访问外部数据存储器时 P2 口输出 P2 锁存器的内容 在 flash 编程和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p3 输出 缓冲器能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻 把端口拉高 此时可以作为输入 口使用 作为输入使用时 被外部拉低的 引脚由于内部电阻的原因 将输出电流 IIL P3 口亦作为 AT89S52 特 殊功能 第二功能 使用 如下表所示 在 flash 编程和校验时 P3 口 也接收一些控制信号 端口引脚 第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INTO 外中断 0 P3 3 INT1 外中断 1 P3 4 TO 定时 计数器 0 P3 5 T1 定时 计数器 1 P3 6 WR 外部数据存储器写选通 成都工业学院 通信工程系毕业设计 论文 6 P3 7 RD 外部数据存储器读选通 此外 P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高 电平将是单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存允 许 输出脉冲用于锁存地址的低 8 位字节 一般情况下 ALE 仍以时钟振 荡频率的 1 6 输出固定的脉冲信号 因此它可对外输出时钟或用于定时目的 要注意的是 每当访问外部数据存储器时将跳过一个ALE 脉冲 对 FLASH 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通 过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操 作 该位置位后 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活 此外 该 引脚会被微弱拉高 单片机执行外部程序时 应设置ALE 禁止位无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89S52 由外部程序存储器取指令 或数据 时 每个机器周期两次PSEN 有效 即输出两个脉冲 在此期间 当访问外部数据存储器 将跳过两次 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 Vcc 端 CPU 则执行内部程序存储器的指令 FLASH 存储器编程时 该引脚加上 12V 的编程允许电源 Vpp 当然这必须是该器件是使用 12V 编程电压 Vpp XTAL1 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2 振荡器反相放大器的输出端 2 2 4 定时与中断的原理 中断是一项重要的计算机技术 采用中断技术可以使多项任务共享一 个资源 所以中断技术实质上就是一种资源共享技术 向CPU发出中断请 求的来源称之为中断源 MCS 51是一个多中断源的单片机 以80C51为例 有三类共五个中断源 分别是外部中断两个 定时中断两个和串行中断一个 1 外中断 外中断是由外部信号引起的 共有两个中断源 即外部中 断0和外部中1 它们的中断请求信号分别由引脚INT0 P3 2 和 INT1 P3 3 引入 外部中断请求有两种信号方式 即电平方式和脉冲方 式 可通过有关控制位进行定义 2 定时中断 定时中断是为满足定时或计数的需要而设置的 3 串行中断 串行中断是为串行数据传送的需要而设置的 4 中断控制 这里所说的中断控制是指提供给用户使用的中断控制手 段 实际上就是一些专用寄存器 在MCS 51单片机中 用于此目的的控制 寄存器共有四个 即定时器控制寄存器 中断允许控制寄存器 中断优先 控制寄存器以及串行口控制寄存器 5 定时器控制寄存器 TCON 该寄存器用于保存外部中断请求和以 及定时器的计数溢出 寄存器地址88H 位地址8FH 88H 如表2 1所示 成都工业学院 通信工程系毕业设计 论文 7 表2 1 定时器控制寄存器地址表 位 地 址 8F8E8D8C8B8A8988 位 符 号 TF1TR1TF0TR0IE1IT1IE0IT0 这个寄存器既有定时器 计数器的控制功能又有中断控制功能 其中与 中断有关的控制位共六位 IE0 IE1 IT0 IT1 TF0和TF1 6 中断允许控制寄存器 IE 寄存器地址A8H 位地址AFH A8H 如 表2 2所示 表2 2中断允许位地址位符号 位 地 址 AFAEADACABAAA9A8 位 符 号 EA ESET1EX1ET0EXO 其中与中断有关的控制位共六位 EA EX0 EX1 ET0 ET1 ES 7 中断优先级控制寄存器 IP MCS 51的中断优先级控制只定义了 高 低两个优先级 各中断源的优先级由优先寄存器 IP 进行设定 IP 寄存器地址B8H 位地址为BFH B8H 寄存器的内容及位地址表如表2 3所 示 表2 3中断优先级控制寄存器 位 地 址 BFBEBDBCBBBAB9B8 位 符 号 PSPT1PX1PT0PX0 外部中断0优先级设定位 PT0 定时中断0优先级设定位 PX1 外部中断1 优先级设定位 PT1 定时中断1优先级设定位 PS 串行中断优先级设定位 为 0的位优先级为低 为1的位优先级为高 8 定时器 计数器的控制寄存器 与定时器 计数器应用有关的控制寄存 器有 定时器控制寄存器 TCON TCON寄存器既参与中断控制又参与定时控制 其中有关定时的控制位 共有四位 TF0 TF1 TR0 TR1 成都工业学院 通信工程系毕业设计 论文 8 工作方式控制寄存器 TMOD TMOD寄存器是一个专用寄存器 用于 设定两个定时器 计数器的工作方式 但TMOD寄存器不能位寻址 只能用字 节传送指令设置其内容 2 3 LED 数码管 本节介绍LED数码管主要从数码管的结构和在硬件设计中的注意事项上 着手 2 3 1 数码管结构 LED数码显示器的结构与显示段码LED数码显示器的结构 LED数码显示 器是一种有LED发光二极管组合显示字符的显示器件 它使用了8个LED发光 二极管 其中7个用于显示字符 一个用于显示小数点 故通常称之为7段 发光二极管数码管 其内部结构如图2 6所示其中a为引脚排列 b为共阳结 构 c为共阴 图2 6七段二极数码管 2 3 2 数码管的接法及相关段码对应的关系 1 LED数码显示器有两种连接方法共阴和共阳 本次采用的是共阴极数 码管 具体方法如下 共阳极接法 把发光二极管的阳极连在一起构成公共阳极 使用时公 共阳极接 5V 每个发光二极管的阴极通过电阻与输入端相连 共阴极接法 把发光二极管的阴极连在一起构成公共阴极 使用时公 共阴极接地 每个发光二极管的阳极通过电阻与输入端相连 LED数码显示器的接口方法与电路如下 1 LED数码显示的接口方法 单片机与LED数码显示器有以硬件为主 和以软件为主的两种接口方法 本次设计以软件为主的接口方法 2 LED数码显示器的接口电路 实际使用的LED数码显示器位数较多 a 引脚排列 b 共阳结 构 c 共阴结构 成都工业学院 通信工程系毕业设计 论文 9 为降低成本 大部分以软件为主的接口方法对于多位LED数码管显示器 通 常采用动态扫描显示方法 即逐个循环点亮各位显示器 这样虽然在任一 时期只有一位显示器被点亮 但是由于人眼有视觉残留效应 看起来与全 部显示持续点亮的效果基本一样 3 驱动器 LED显示是单片机控制产品中常见的应用 使用LED模块 这种模块中带有LED显示管和LED驱动电路 用起来较方便 一般用户直接采 用单片机 LED驱动器 LED显示管的方式 但本次设计直接用的是单片机 LED显示 2 LED数码显示器的显示段码 为了显示字符 要为LED显示器段码 或称字形代码 组成一个8字形字符的7段 再加上1个小数点位 共计 8段 因此提供给LED显示器的显示段码为1个字节 各段码位的对应关系如 表2 4所示 显示数字在共阳极和共阴极二极管对应的十六进制关系如表2 5所示 本次设计中所采用的是共阴极的LED数码管 表2 4 段码位所对应的关系 段码位 D7D6D5D4D3D2D1D0 显示位 hgfedcba 表 2 5 显示数字分别在共阳和共阴极结构中十六进制对应关系 字型共阳极段码共阴极段码 1C0H3FH 2F9H06H 3A4H5BM 4B0H4FH 599H66H 692H6DH 782H7DH 8F8H07H 980H7FH 2 3 3 数码管使用注意事项 在硬件设计中一定要注意一些数码管的注意事项 不然在后期的样机制作 中很容易被损坏掉 1 段及小数点上加限流电阻 2 使用电压段 根据发光颜色决定 3 使用电流 静态 总电流 80mA 每段 10mA 动态 平均电流 4 5mA 峰值电流 100mA 4 在硬件电路的设计中还一定要注意 LED 数码管的与单片机的接口 如 果接口错乱 很可能出现乱码 成都工业学院 通信工程系毕业设计 论文 10 2 4 硬件电路设计 本次硬件系统设计主要是要弄清楚主控芯片单片机的各个引脚功能 此次 设计采用的是直接利用单片机 AT89C51 的并行 I O 口构成倒计时牌显示接口电 路 其硬件系统主要包括单片机以软件为主的接入方法 所以在很大程度上也 简化了电路 降低了成本 且硬件设计系统看上去简单明了 其次在这个硬件 设计中用的是一个八位的 LED 数码管 所以除了对单片机要足够的理解外 还 要知道 LED 数码管的原理 搞清楚它每个结构功能和与单片机正确的接口 另 外在加上一些必要的电路如晶振复位等 此次硬件系统设计就能基本完成 硬 件电路如图 2 7 所示 图 2 7 硬件电路图 在此图中 LED 数码管的片选位 数码管每个显示的段位 接的是单片机的 P1 口 数码管的位选为 控制具体哪个数码管是否亮 接的是单片机的 P2 口 外中断 INT0 接的是 K1 键 外中断 INT1 接的是 K2 键 RST 接的是复位电路 XTAL1 和 XTAL2 接的是晶振电路 成都工业学院 通信工程系毕业设计 论文 11 第 3 章 程序设计及分析 本章主要介绍软件系统模块的设计以及它的一些子程序的设计及其一 些简单的分析 3 1 软件系统模块图 在程序设计中首先我们的得有一个设计模块这样便于我们设计和写程 序 这次的设计模块图如 3 1 所示 软件系统 主 程 序 转 换 子 程 序 显 示 子 程 序 T 0 溢 出 中 断 外 部 中 断 0 外 部 中 断 1 延 时 子 程 序 图 3 1 软件系统模块图 在本次的程序设计中总的模块是在软件系统下分为了主程序 转换子 程序 显示子程序 T0 溢出中断子程序 外部中断 0 外部中断 1 延时子 程序 通过这几个程序衔接在一起就构成了本次设计的总的软件系统 3 2 各子程序设计 在程序的设计中主要包括主程序模块 转换子程序及显示子程序模块 定时器 T0 中断模块 外部中断模块和延时程序模块 3 2 1 主程序 主程序 MAIN 的主要功能是初始化程序 转换子程序和调用延时子 程序以及数码管的断码表及显示程序 其流程图如 3 2 所示 成都工业学院 通信工程系毕业设计 论文 12 开始 初始化 转换子程序 显示子程序 结束 图 3 2 主程序流程图 在主程序的设计中 先开始后做一些初始化 顺着依次是转换子程序 显示子程序 然后在返回转换子显示子程序 直到所有的数据转换显示完 最后直至结束 3 2 2 转换子程序及显示子程序模块 转换子程序 LOOP 将中断服务程序中产生的天 时 分 秒数据 转换成适应 LED 数码管显示的数据 并将其存放在缓冲区中 各个要显示的 单元都存放在数据缓冲区中 如表 3 1 所示 表 3 1 各单元存放的数据缓冲区 单元存放地在显示缓冲冲区 十位 显示缓冲区 个位 天30h40h41h 时31h42h43h 分32h44h45h 秒33h46h47h 年的前两位34h48h49h 年的后两位35h4ah4bh 月36h4ch4dh 日37h4eh4fh 显示子程序 DISPLY 动态控制数码管的点亮同时显示数据 完成 8 个 LED 数码管的动态显示 显示字符通过查表方式实现 在显示过程中调用 延时程序 不各显示单元显示前须将其数据由存放地址单元拆分后传送至显示缓 冲区中 再将其传送至对应的端口 成都工业学院 通信工程系毕业设计 论文 13 3 2 3 定时器 T0 中断 定时器 T0 溢出中断 IT0P 程序主要用于产生秒的时间基准 以及 在此基础上的天 时 分 秒的正常倒计时以及日期的累加 流程图如图 3 3 所示 开始 返回 设置初值 是否到1秒 秒是否减至 1秒 减1秒 将秒置为59秒 分 减1 分是否减至 1 将分置为59 时减 1 时是否减至 1 将时置为23 天数 减1 日期加1 N Y N Y N Y N Y 图3 3 定时器T0溢出中断 IT0P 程序流程图 成都工业学院 通信工程系毕业设计 论文 14 3 2 4 外部中断 0 外部中断 0 INT0P 用于设置倒计时牌时间时切换各个位以及开启定 时器 其中切换时以 R3 为标志 在计时时也设计到了标志 R4 其中涉及到 的不同的取值含义分别如表 3 2 表 3 3 所示 表 3 2 标志及其功能参数 标志单元 取值实现功能 R30 初始化值 R31 设置秒单元 R32 设置分单元 R33 设置时单元 R34 设置天单元 R35 启动定时器 开始倒计时 其中涉及到标志 R4 如表 3 3 所示 表 3 3 标志 R4 及其参数 标志单元取值实现功能 R40 初始化值 此时可以设置时间 R41 倒计时运行状态 此时不能设置时 间 其中在中外中断 0 程序的设计流程图如图 3 4 所示 外部中断0开始 中断返回 R3加1 R3等于5 N Y 开启T0 开始倒计 时 R3清零 R4置1 图3 4外部中断0流程图 外中断0的程序设计中 主要就是标志R3 R4的不同取值代表了不同的 功能 当R4取值到5时 表明时间设置完 开始倒计时 这时R3清零 R4置 成都工业学院 通信工程系毕业设计 论文 15 1 当R4置1后就表明程序进入到计 这个时候就不能在设置时间了 3 2 5 外部中断 1 外部中断 1 INT1P 程序主要用于天 时 分和秒的修改 按一次加 1 其中涉及到标志 R2 如表 3 4 所示 表 3 4 标志 R2 功能 工作组寄存器数值功能 R20 送倒计时时间 R21 送当前日历 R22 清 0 外部中断 1 主要设计的就是设置时间天 时 分 秒时的修改 设置 出想要他实现的到计值 其流程图如 3 5 所示 成都工业学院 通信工程系毕业设计 论文 18 外部中断 1 开始 R4 是否为 0 R3 是否为 0 R3 是否为 1 秒单元加 1 秒加到 60 了吗 MMAMA 吗 秒单元清 0 R3 是否为 2 分单元加 1 分加到 60 了吗 分单元清 0 R3 是否为 3 时单元加 1 时加到 24 了 吗 时单元清 0 R3 是否为 4 天单元加 1 天加到 100 了吗 天单元清 0 中断返回 R2 1 R2 等于 2 吗 R2 清 0 图 3 5 外中断 1 流程图 成都工业学院 通信工程系毕业设计 论文 19 3 2 6 延时子程序 延时程序 DL1ms 主要用于数码管显示时延时 其流程图如 3 6 所示 开始 结束 设置循环次数2 设置循环次数0FFH 0FFH自减是否 为0 R7自减是否为0 Y N Y N 图 3 6 延时程序流程图 在应用单片机的时候 经常会遇到需要短时间延时的情况 解决这个 问题时可通过程序在执行多个指令时每个指令机器周期所占用的时间来延 时 成都工业学院 通信工程系毕业设计 论文 20 第 4 章 系统仿真测试与硬件制作 本章主要是以图片的形式介绍系统在进行仿真测试和硬件的制作过程 4 1 电路图 本次仿真采用的 protuse 软件进行仿真设计如图 4 1 所示 图 4 1 软件仿真图 仿真时上电时 不对其做任何设置时 数码管显示的时候全部是零 4 2 使用说明 倒计时牌具有如下工作状态 设置状态和运行状态 倒计时牌上电后 显示为全 0 这时要设置倒计时时间 按 K1 开始设置时间 这时设置的 是秒 按一次 K2 秒加 1 再按一次 K1 设置分 依次类推 设置完天后 按 K1 则启动定时器 开始倒计时 在倒计时牌运行状态下 按 K2 显示当 前的日期 年 月 日 再按一次 回到倒计时间显示 注 INT0 对应 的按钮为 K1 INT1 对应的按钮为 K2 4 3 样机制作 本次硬件制作工具有 导线若干 1K 电阻若干 包括实验用的 330 欧姆电阻若干 包括实验用的 220 欧姆电阻若干 包括实验用的 烙铁 一只 焊锡若干 单片机 STC89C52 一个 单片机插槽一个 独立开关 3 个 最下系统元器件 复位电路元器件 电源插槽一个 2 个四段共阴数码管 因为本次在硬件制作时未能买到 AT89C51 所以用 STC89C52 代替制作实物 成都工业学院 通信工程系毕业设计 论文 21 4 4 静态电路 在硬件制作完后不上电时电路属于静态的如图 4 2 所示 在不上电的 情况下 静态电路的实物原图 本次实物制作应用的晶振为 6MHZ 加了一 个复位电路 图 4 2 静态电路图 4 5 动态电路 电路制作好后上电后就为动态电路 如图 4 3 动态电路所示上电瞬间 数码管全部显示为零 图 4 3 动态电路 成都工业学院 通信工程系毕业设计 论文 22 图 4 4 为当前随便设置一个时间 2 天 5 小时 7 分 57 秒 的到计显示 图 4 4 随便设置一个时间的到计显示 4 6 软件仿真与硬件制作总结 本次毕业设计我运用了所学的 wave proteus 等软件进行软件编译调试与仿 真 软件完成之后便开始制作实物 对实物进行调试 在这个过程中出现了很 多的问题 通过翻阅相关书籍 网上查找资料与请教老师和同学等方式将困难 逐一的解决了 下面是我遇到的部分问题与解决的方法 仿真时候遇到的问题 1 仿真时有的数码管亮有的不亮 分析 可能是程序出错 问题解决 通过认真检查程序 发现有的时间为没有送驱动点亮的核心代 码 最后加上一些代码 最终全部点亮 2 仿真时 再设置好倒计时 到计的过程中 刚开始还正常 中途时间就 不是按着设置好的时间到计了 时间错乱了 分析 应该是中断程序里面有错误 问题解决 仔细检查中断程序 最后发现在定时器 T0 中断 IT0P 程序中 的那个溢出点没设好 最后通过改变参数解决了此问题 在硬件制作中遇到的问题 1 测试中遇到 LED 数码管不显示 分析 可能存在在漏焊 虚焊 或者元件损坏的原因 也可能程序出了点小问 题 还可能是控制接口接错了 问题解决 控制接口接错了 改掉接口的接法 最后解决了此问题 2 仿真通过但在硬件调试中遇到数码管显示亮度不够 分析 可能是硬件电路的原因 成都工业学院 通信工程系毕业设计 论文 23 问题解决 认真测试了电路中电流 电压 发现 LED 数码管电流强度不够 最后在数码管和芯片之间加了一个下拉电阻增强电路中的电流后解决了此问题 通过不断努力 最终整个程序编译成功 proteus 仿真实现 硬件制作成 功 成都工业学院 通信工程系毕业设计 论文 24 结语 在本次的设计中系统有不足之处 也遇到了一些困难 综合一下我归 纳了以下几点 1 本系统最长可倒计时 100 天 可通过外部中断设置初始时间 及显 示当前日历 本系统在设计时考虑到只需倒计时 100 天 所以显示的日历 只是最近 3 个月的 并且初始日期是在程序中设置的 即不能任意设定初 始值 这是本系统的不足之处 改进之处为让本系统可以任意指定初始日 期 在程序中须有相当于万年历的相关程序 这会是个比较大的挑战 同 时这个简单的倒计时还有很大的拓展空间 如增加串口设置功能 接收和 发送 R232 方式的串行数据 是单片机和单片机通讯 单片机和计算机通讯 的重要功能设置 也可以用程序控制既可以正计也可以到计 正计时当做 时间表来用等等 2 这次倒计时牌设计 毕业设计 是我学习单片机以来做的最大的一 个东西 之前在学习的过程中已经做过类似的东西比如电子钟和秒表 做 起这个实验来自己还是蛮有信心的 3 此次课程设计也很好的检验了自己对所学知识的理解以开始对一些 东西不是很理解 比如中断的概念及其过程 在设计的过程中 中断程序 的编写对自己来说是有点难度的 当做完这个实验后对其有了比较深入的 理解 同时也体会到了中断方式相比查询方式具有效率高等优点 4 在整个实验的设计过程中 遇到了不少的难题 首先就题目本身来 说 并没有要求显示多少天 但要求显示日历 个人觉得如果只是倒计时 少数几天的话 就没有显示日历的必要了 最后自己选择了倒计时 100 天 符合题目的要求 但是在日历的功能实现上 自己做的是很不好的 日历 的初始日期是固定的 如果再涉及到闰年的问题的话 对自己来说将是很 大的挑战 通过此次课程设计 自己对单片机有了更大的兴趣 当然自己想学好 这门课以及真正的能独立做出一些东西还得付出很大的努力 今后自己会 努力 多看书 多操作 以至深入地理解其原理 取得更大的进步 成都工业学院 通信工程系毕业设计 论文 25 致谢 历时将近一个月的时间终于将这篇论文写完 在论文的写作过程中遇 到了无数的困难和障碍 同时在硬件电路制作的过程中也遇到了许多队问 题 都在同学和老师的帮助下度过了 在这次毕业设计的过程中最要感谢的是我的毕业设计指导老师罗海老师 指导 每次给您打电话您都不厌其烦的给我解释 甚至有一次我忘记了时 间很晚了给您打电话 您依然没有丝毫责备的意思 罗海老师专业知识扎 实 对我提出的问题和困惑能够很准确的给予回答 您不仅知识广博 治 学严谨 实践经验丰富 而且宽厚待大 和蔼可亲 让我受益非浅 如果 没有您的指导我的论文也不可能顺利写完 还有帮助过我的同学老师在此 表示无比的感谢 成都工业学院 通信工程系毕业设计 论文 26 参考文献 1 周向红 刘国繁 51 系列单片机应用与实践教程 北京 北京航空大学出 版社 2008 2 刘南平 艾艳锦 图解电子电路基础系列电路基础 西安 科技出版社 2007 3 曾一江 刘虹 李寿强 单片微机原理与接口技术 西安 科技出版社 2006 4 房小翠 单片机实用系统设计技术 北京 国防工业出版社 2003 5 李建忠 单片机原理及应用 西安 西安电子科技大学出版社 2002 6 朱宇光 单片机应用新技术教程 北京 电子工业出版社 2000 7 刘守义 单片机应用技术 西安 西安电子科技大学出版社 2002 8 晁阳 单片机 MCS 51 原理及应用开发教程 北京 清华大学出版社 2002 9 关德新 冯文全 单片机外围器件使用手册 电源器件分册 北京 北京航 空航天大学出版社 2001 10 范风强 兰婵丽 单片机语言 C51 应用实战集锦 浙江 电子工业出版 社 2001 11 刘同法 陈忠平 单片机基础与最小系统实践 北京 北京航空航天大 学出版社 2001 12 李全利 仲伟峰 徐军 单片机原理及应用 北京 清华大学出版社 2000 成都工业学院 通信工程系毕业设计 论文 27 附录 该程序最多可产生 100 天的倒计时 采用 6MHZ 的晶振 外部中断 0 对 初值设置时 的各单元进行切换 同时还控制 T0 的开始 外部中断 1 对相应的单元 设置初值 每按一次该单元增加 1 R3 1 设置秒单元 R3 2 设置分单元 R3 4 设置 时单元 R3 4 设置天单元 R3 5 T0 开始计时 以下是这些程序的内容 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0P ORG 00BH LJMP IT0P ORG 0013H LJMP INT1P ORG 0100H MAIN MOV TMOD 01H 定时器 T0 设为方式一 MOV R1 17 日历 MOV R2 00H 切换显示 日历和倒计时的切换 MOV R5 0AH 十次中断产生一秒 MOV R3 00H 利用外部中断 0 对天 时 分 秒进行切换 MOV R4 00H 当倒计时开始 R3 5 时对倒计时的初值不能再 进行设置 MOV 30H 00H 天 MOV 31H 00H 时 MOV 32H 00H 分 MOV 33H 00H 秒 MOV 34H 20 年的前两位 MOV 35H 09 年的后两位 MOV 36H 06 月 MOV 37H 17 日 SETB EX0 外部中断 0 中断允许 SETB EX1 外部中断 1 中断允许 SETB IT0 外部中断 0 为边沿触发 SETB IT1 外部中断 1 为边沿触发 SETB ET0 T0 溢出中断允许 SETB EA 中断允许总控制 MOV TH0 3CH 定时器 T0 置初值 MOV TL0 0B0H LOOP 成都工业学院 通信工程系毕业设计 论文 28 MOV DPTR DMB 段码表首地址放进 DPTR MOV A 33H 对秒进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 46H A 秒的十位对应的段码放进缓冲区 46H MOV A B MOVC A A DPTR MOV 47H A 秒的个位对应的段码放进缓冲区 47H MOV A 32H 对分进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 44H A 分的十位对应的段码放进缓冲区 44H MOV A B MOVC A A DPTR MOV 45H A 分的个位对应的段码放进缓冲区 45H MOV A 31H 对时进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 42H A 时的十位对应的段码放进缓冲区 42H MOV A B MOVC A A DPTR MOV 43H A 时的个位对应的段码放进缓冲区 43H MOV A 30H 对天进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 40H A 天的十位对应的段码放进缓冲区 40H MOV A B MOVC A A DPTR MOV 41H A 天的个位对应的段码放进缓冲区 41H MOV A 37H 对日期进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 4EH A 日期的十位对应的段码放进缓冲区 4EH MOV A B MOVC A A DPTR 成都工业学院 通信工程系毕业设计 论文 29 MOV 4FH A 日期的个位对应的段码放进缓冲区 4FH MOV A 36H 对月份进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 4CH A 月份的十位对应的段码放进缓冲区 4CH MOV A B MOVC A A DPTR MOV 4DH A 月份的个位对应的段码放进缓冲区 4DH MOV A 35H 对年的后两位进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 4AH A 年的后两位的十位对应的段码放进缓冲区 4AH MOV A B MOVC A A DPTR MOV 4BH A 年的后两位的个位对应的段码放进缓冲区 4BH MOV A 34H 对年的前两位进行拆分 MOV B 10 DIV AB MOVC A A DPTR MOV 48H A 年的前两位的十位对应的段码放进缓冲区 48H MOV A B MOVC A A DPTR MOV 49H A 年的前两位的个位对应的段码放进缓冲区 49H 下面为显示程序 DISPLAY CLR P2 7 CJNE R2 00H S7 MOV A 47H SJMP S77 S7 MOV A 4FH S77 MOV P1 A LCALL DL1ms SETB P2 7 CLR P2 6 CJNE R2 00H S6 MOV A 46H SJMP S66 S6 MOV A 4EH 成都工业学院 通信工程系毕业设计 论文 30 S66 MOV P1 A LCALL DL1ms SETB P2 6 CLR P2 5 CJNE R2 00H S5 MOV A 45H SJMP S55 S5 MOV A 4DH S55 MOV P1 A LCALL DL1ms SETB P2 5 CLR P2 4 CJNE R2 00

温馨提示

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

评论

0/150

提交评论