基于AT89S51单片机的数字电子钟设计_第1页
基于AT89S51单片机的数字电子钟设计_第2页
基于AT89S51单片机的数字电子钟设计_第3页
基于AT89S51单片机的数字电子钟设计_第4页
基于AT89S51单片机的数字电子钟设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

Q260046902 专业做论文专业做论文I 学院 信息工程学院学院 信息工程学院 班级 通信班级 通信 0304 姓名 陈云姓名 陈云 学号 学号 20035236 Q260046902 专业做论文专业做论文II 基于基于 AT89S51 单片机的数字电子钟设计单片机的数字电子钟设计 摘要 本文介绍了一款基于 AT89S51 单片机数字钟的设计 通过多功能数字钟的设 计思路 详细叙述了系统硬件 软件的具体实现过程 论文重点阐述了数字钟硬件 中 MCU 模块 语音模块 时钟模块和相关控制模块等的模块化设计与制作 软件 同样采用模块化的设计 包括中断模块 闹钟模块 语音模块 时间调整模块设计 并采用简单流通性强的 C 语言编写实现 本设计实现了时间与闹钟的修改功能 语 音播报功能 年 月 日和星期的显示功能 并且通过对比实际的时钟 查找出了 误差的来源 确定了调整误差的方法 尽可能的减少误差 使得系统可以达到实际 数字钟的允许误差范围内 关键词 AT89S51 单片机 数字钟 语音播报 Q260046902 专业做论文专业做论文III The design of digital electronic clock base on SCM of AT89S51 Abstract This paper introduced the design of digital clock based on SCM of AT89S51 the specific process of how the system hardware and software achieved were detailed description through the design of multifunction digital clock The modular design and production which consisted of MCU module voice module clock module and the associated control module were mainly recounted As well as hardware designing software design use the same method consists suspension module alarm clock module voice module time adjust module and that use the C language to achieve because of its simple and strong negotiability In this design the functions of time and alarm clock run and change voice broadcast functions of the year month day and week display have been achieved And by comparing the actual clock find out the source of the error and determined the method of adjusting error reduce errors as much as possibly so this system can achieve a practical digital clock with error within the permissible range Key words AT89S51 microcontroller Digital clock Voice Broadcast Q260046902 专业做论文专业做论文IV 目 录 第 1 章 绪论 1 1 1 课题背景 1 1 2 课题意义 1 1 3 数字钟的应用 2 1 4 本章小结 2 第 2 章 整体设计方案 3 2 1 单片机的选择 3 2 2 单片机的基本结构 5 2 3 本章小结 6 第 3 章 数字钟的硬件设计 7 3 1 最小系统设计 7 3 2 数字钟的外围电路设计 9 3 2 1 时钟电路 9 3 2 2 LCD 显示电路 11 3 2 3 语音录放电路 13 3 2 4 电源电路 13 3 2 5 相关控制电路 14 3 3 本章小结 16 第 4 章 数字钟的软件设计 17 4 1 系统软件设计内容 17 4 2 主程序 18 4 3 时钟设置子程序 20 4 4 中断子程序 23 4 5 LCD 显示子程序 24 4 3 本章小结 24 第 5 章 调试与功能说明 26 5 1 硬件调试 26 Q260046902 专业做论文专业做论文V 5 2 系统性能测试与功能说明 28 5 2 1 系统时钟误差分析 28 5 2 2 软件调试问题及解决 29 5 3 系统 PCB 图 30 5 4 本章小节 30 结论 31 致谢 32 参考文献 33 附录 1 34 附录 2 35 西南科技大学本科生毕业论文 1 第 1 章 绪 论 1 1 课题背景 单片机自 1976 年由 Intel 公司推出 MCS 48 开始 迄今已有二十多年了 由于 单片机集成度高 功能强 可靠性高 体积小 功耗地 使用方便 价格低廉等一 系列优点 目前已经渗入到人们工作和生活的方方面面 几乎 无处不在 无所不 为 单片机的应用领域已从面向工业控制 通讯 交通 智能仪表等迅速发展到家 用消费产品 办公自动化 汽车电子 PC 机外围以及网络通讯等广大领域 单片机有两种基本结构形式 一种是在通用微型计算机中广泛采用的 将程序存 储器和数据存储器合用一个存储器空间的结构 称为普林斯顿结构 另一种是将程 序存储器和数据存储器截然分开 分别寻址的结构 一般需要较大的程序存储器 目前的单片机以采用程序存储器和数据存储器截然分开的结构为多 本文讨论的单片机多功能定时器的核心是目前应用极为广泛的 51 系列单片机 配置了外围设备 构成了一个可编程的计时定时系统 具有体积小 可靠性高 功 能强等特点 不仅能满足所需要求 而且还有很多功能可供开发 有着广泛的应用 领域 20 世纪 80 年代中期以后 Intel 公司以专利转让的形式把 8051 内核技术转让 给许多半导体芯片生产厂家 如 ATMEL PHILIPS ANALOG DEVICES DALLAS 等 这些厂家生产的芯片是 MCS 51 系列的兼容产品 准确地说是与 MCS 51 指令系统兼容的单片机 这些兼 容机与 8051 的系统结构 主要是指令系统 相同 采用 CMOS 工艺 因而 常用 80C51 系列来称呼所有具有 8051 指令系统的单片机 它们对 8051 单片机一般都作 了一些扩充 更有特点 其功能和市场竞争力更强 不该把它们直接称呼为 MCS 51 系列单片机 因为 MCS 只是 Intel 公司专用的单片机系列型号 MCS 51 系列及 80C51 单片机有多种品种 它们的引脚及指令系统相互兼容 主要在内部结构上有 些区别 目前使用的 MCS 51 系列单片机及其兼容产品通常分成以下几类 基本型 增强型 低功耗型 专用型 超 8 位型 片内闪烁存储器型 1 2 课题意义 在日常生活和工作中 我们常常用到定时控制 如扩印过程中的曝光定时等 早期常用的一些时间控制单元都使用模拟电路设计制作的 其定时准确性和重复精 西南科技大学本科生毕业论文 2 度都不是很理想 现在基本上都是基于数字技术的新一代产品 随着单片机性能价 格比的不断提高 新一代产品的应用也越来越广泛 大可构成复杂的工业过程控制 系统 完成复杂的控制功能 小则可以用于家电控制 甚至可以用于儿童电子玩具 它功能强大 体积小 质量轻 灵活好用 配以适当的接口芯片 可以构造各种各 样 功能各异的微电子产品 随着电子技术的飞速发展 家用电器和办公电子设备逐渐增多 不同的设备都 有自己的控制器 使用起来很不方便 根据这种实际情况 设计了一个单片机多功 能定时系统 它可以避免多种控制器的混淆 利用一个控制器对多路电器进行控制 同时又可以进行时钟校准和定点打铃 它可以执行不同的时间表 考试时间和日常 作息时间 的打铃 可以任意设置时间 这种具有人们所需要的智能化特性的产品 减轻了人的劳动 扩大了数字化的范围 为家庭数字化提供了可能 1 3 数字钟的应用 数字电子钟具有走时准确 一钟多用等特点 在生活中已经得到广泛的应用 虽然现在市场上已有现成的电子钟集成电路芯片出售 价格便宜 使用也方便 但 是人们对电子产品的应用要求越来越高 数字钟不但可以显示当前的时间 而且可 以显示日期 农历 以及星期等 给人们的生活带来了方便 另外数字钟还具备秒 表和闹钟的功能 且闹钟铃声可自选 使一款电子钟具备了多媒体的色彩 时间对人们来说总是那么宝贵 工作的忙碌性和繁杂性容易使人忘记当前的时 间 忘记了要做的事情 当事情不是很重要的时候 这种遗忘无伤大雅 但是 一 旦重要事情 一时的耽误可能酿成大祸 电子钟已成为人们日常生活中必不可少的 必需品 广泛用于个人家庭以及车站 码头 剧院 办公室等公共场所 给人们的 生活 学习 工作 娱乐带来极大的方便 由于数字集成电路技术的发展和采用了 先进的石英技术 使电子钟具有走时准确 性能稳定 携带方便等优点 它还用于 计时 自动报时及自动控制等各个领域 1 4 本章小结 本章主要介绍了单片机的历史发展过程 单片机的产生与发展给人们带来了来 那些影响 以及数字钟在日常生活中的具体应用给日常生活带来的方便 西南科技大学本科生毕业论文 3 第 2 章 整体设计方案 由于本系统要求具有语音播报功能 所以需采用十六位可处理语音信号的单片 机 其主要设计思想是 整个系统用单片机为中央控制器 由单片机执行采集时钟 芯片的时间信号并通过显示模块来输出信号及相关的控制功能 时钟芯片产生时钟 信号 利用单片机的 I O 口传给单片机 并通过 I O 口实现 LCD 的显示 系统设有 4 个按键可以对时间星期年月日进行调整 还可以设置闹钟 整体框架如图 2 1 所示 语 音 模 块 LCD 显示 单 片 机 电 源 模 块 复位 电路 时钟 模块 按键 模块 图图 2 1 系统整体框图系统整体框图 2 1 单片机的选择 AT89S51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引脚结构 芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元 功能强 大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案 西南科技大学本科生毕业论文 4 AT89S51 具有如下特点 40 个引脚 4k Bytes Flash 片内程序存储器 128 bytes 的随机存取数据存储器 RAM 32 个外部双向输入 输出 I O 口 5 个中断优先 级 2 层中断嵌套中断 2 个 16 位可编程定时计数器 2 个全双工串行通信口 看门狗 WDT 电路 片内时钟振荡器 此外 AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式 空闲模式下 CPU 暂停工作 而 RAM 定时计数器 串行口 外中断系统可继续工作 掉电模式冻结振荡器而保存 RAM 的数据 停止 芯片其它功能直至外中断激活或硬件复位 主要功能特性为 兼容 MCS 51 指令系统 4k 可反复擦写 1000 次 ISP Flash ROM 32 个双向 I O 口 4 5 5 5V 工作电压 2 个 16 位可编程定时 计数器 时钟频率 0 33MHz 全双工 UART 串行中断口线 128x8bit 内部 RAM 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 看门狗 WDT 电路 灵活的 ISP 字节和分页编程 双数据寄存器指针 AT89S51 单片机与其他品牌单片机相比有着性价比高 性能稳定的特点 1 51 单片机的优点 如果是作低成本的智能产品 51 构架单片机的成本优势 还是无人能敌的 比 如一片 AT89S51 和 AT89S52 单片机的批量价格大概是 5 元左右 STC89C52 单片机 的批量价格大概是 6 元多 这样的芯片价格是很低的 一片简单的 74 系列通用数字 逻辑芯片还要 1 元左右 而一片 51 单片机内部集成有成千上万个晶体管开关电路 51 构架已经诞生很多年了 到目前依然有着强大的生命力和实用性 从 1976 年 51 构架成功面市 多少年过去了 从 90 年代初全新闪存结构的 AT89C51 要 90 元一片 西南科技大学本科生毕业论文 5 到现在 AT89S51 只要 5 元多一片 51 依然大量的使用着 使用 51 单片机能够有效 的控制智能产品整机的成本 51 系列还是有着无法替代的重要地位 2 AT89S51 与 AT89C51 的比较 AT89S51 相对与 AT89C51 新增加了很多功能 性能有了较大提升 价格基本 不变 甚至比 89C51 更低 AT89S51 具有 ISP 在线编程功能 这个功能的优势在于改写单片机存储器内的 程序不需要把芯片从工作环境上拔除 可以在线烧写 AT89S51 的最高工作频率为 33MHz 89C51 的极限工作频率是 24M 就是说 S51 具有更高工作频率 从而具有了更快的计算速度 AT89S51 具有双工 UART 串行通道 AT89S51 内部集成看门狗计时器 不再需要像 89C51 那样外接看门狗计时器单 元电路 AT89S51 具有双数据指示器 AT89S51 具有电源关闭标识 AT89S51 具有全新的加密算法 这使得对于 89S51 的解密变为不可能 程序的 保密性大大加强 这样就可以有效的保护知识产权不被侵犯 在兼容性方面 AT89S51 向下完全兼容 51 全部字系列产品 比如 8051 89C51 等产品 也就是说不论教科书上采用的单片机是 8051 还是 89C51 还是 MCS 51 等等 在 89S51 上一样可以照常运行 这就是所谓的向下兼容 AT89S51 与 AT89C51 就如同 INTEL 的 P3 向 P4 升级一样 虽然都可以跑 Windows98 不过速度是不同的 总之 无论是比其他品牌同类产品相比 还是与同品牌产品相比都显示出了 AT89S51 优良的性能 更高的性价比 所以 AT89S51 芯片成为了本系统的首选 2 2 单片机的基本结构 AT89S51 单片机基本结构主要包括了以下主要部件 1 控制器 控制器是单片机的指挥控制部件 控制器的主要任务是识别指令 并根据指令 的性质控制单片机各功能部件 从而保证单片机各部分能自动而协调地工作 单片 机执行指令是在控制器的控制下进行的 首先从程序存储器中读出指令 送指令寄 西南科技大学本科生毕业论文 6 存器保存 然后送至指令译码器进行译码 译码结果送定时控制逻辑电路 由定时 控制逻辑产生各种定时信号和控制信号 再送到单片机的各个部件去进行相应的操 作 这就是执行一条指令的全过程 执行程序就是不断重复这一过程 控制器主要 包括程序计数器 程序地址寄存器 指令寄存器 IR 指令译码器 条件转移逻辑电 路及时序控制逻辑电路 2 存储器 AT89S51 单片机存储器采用的是哈佛结构 即程序存储器空间和数据存储器空间 截然分开 程序存储器和数据存储器各有自己的寻址方式 寻址空间和控制系统 这种 结构对于单片机面向控制的实际应用极为方便 有利 在 8051 8751 弹片击中 不仅在片 内集成了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器 而且还具有 极强的外存储器的扩展能力 寻址能力分别可达 64KB 寻址和操作简单方便 3 并行 I O 口 MCS 51 单片机共有 4 个双向的 8 位并行 I O 端口 Port 分别记作 P0 P3 共 有 32 根口线 各口的每一位均由锁存器 输出驱动器和输入缓冲器所组成 实际上 P0 P3 已被归入特殊功能寄存器之列 这四个口除了按字节寻址以外 还可以按位 寻址 由于它们在结构上有一些差异 故各口的性质和功能有一些差异 4 时钟电路与时序 时钟电路用于产生 MCS 51 单片机工作时所必需的时钟信号 MCS 51 单片机 本身就是一个复杂的同步时序电路 为保证同步工作方式的实现 MCS 51 单片机 应在唯一的时钟信号控制下 严格地按时序执行进行工作 而时序所研究的是指令 执行中各个信号的关系 2 3 本章小结 本章主要介绍了系统的整体构思方案 具体有几个模块组成 以及每个模块 的连接方法 核心芯片单片机的基本资料介绍 着重介绍了单片机的对比与选择 再选择了合适的单片机后还介绍了 AT89S51 单片机最小系统的架构与实验 西南科技大学本科生毕业论文 7 第 3 章 数字钟的硬件设计计 3 1 最小系统设计 单片机要正常运行 必须具备一定的硬件条件 其中最主要的就是三个基本条 件 1 电源正常 2 时钟正常 3 复位正常 AT89S51 的引脚如图 3 1 所 示 在 AT89S51 单片机的 40 个引脚中 电源引脚 2 根 晶振引脚 2 根 控制引脚 4 根 可编程输入输出引脚 32 根 图图 3 1 AT89S51 的最小系统的最小系统 1 工作电源 电源是单片机工作的动力源泉 对应的接线方法为 40 脚 VCC 电源引脚 工 作时接 5 电源 20 脚 GND 为接地线 2 时钟电路 时钟电路为单片机产生时序脉冲 单片机所有运算与控制过程都是在统一的时 西南科技大学本科生毕业论文 8 序脉冲的驱动下进行的 时钟电路就好比人的心脏一样重要 当采用内部时钟时 连接方法如图 2 1 所示 在晶振引脚 XTAL1 19 脚 和 XTAL2 18 脚 引脚之间接入一 个晶振 两个引脚对地分别再接入一个电容即可产生所需的时钟信号 电容的容量 一般在几十皮法 如 30PF 3 复位电路 在复位引脚 9 脚 持续出现 24 个振荡器脉冲周期 即 2 个机器周期 的高电平信号 将使单片机复位 如图 2 1 所示电容 C 和电阻 R 构成了单片机上电自动复位电路 复位后 单片机从 0000H 单元开始执行程序 并初始化一些专用寄存器为复位状态 值 受影响的专用寄存器如表 3 1 所示 表表 3 1 复位寄存器状态表复位寄存器状态表 寄存器状态寄存器状态 PC000HTC0N00H ACC00HTL000H PSW00HTH000H SP07HTL100H DPTR0000HTH100H P0 P3FFHSCON00H IPXXX00000HSBUF不确定 IEOXX00000HPCON0XXX0000H TMOD00H 4 控制引脚 EA 接法 EA VPP 31 脚 为内外程序存储器选择控制引脚 当 EA 为低电位时单片机从外 部程序存储器取指令 当 EA 接高电平时单片机从内部程序存储器取指令 AT89S51 单片机内部有 4KB 可反复擦写 1000 次以上的程序存储器 因此要把 EA 接 5V 高电平 让单片机运行内部的程序 这样就可以通过反复烧写来验证程序了 这就是 AT89S51 单片机最小化系统的连接 只要把编写好的程序烧写到单片机 内部 并接上 5V 电源就可以正常运行了 在 17 脚接上的发光二极管可以用来验证 系统是否正常 西南科技大学本科生毕业论文 9 3 2 数字钟的外围电路设计 3 2 1 时钟电路 1 单片机时钟 时钟是单片机的心脏 单片机各功能部件的运行都是以时钟频率为基准 有条 不紊的一拍一拍地工作 因此 时钟频率直接影响单片机的速度 时钟电路的质量 也直接影响单片机系统的稳定性 常用的时钟电路有两种方式 一种是内部时钟方 式 另一种为外部时钟方式 本文用的是内部时钟方式 电路设计如图 3 2 所示 图图 3 2 单片机时钟单片机时钟 AT89S51 单片机内部有一个用于构成振荡器的高增益反相放大器 该高增益反 向放大器的输入端为芯片引脚 XTAL1 输出端为引脚 XTAL2 这两个引脚跨接石 英晶体振荡器和微调电容 就构成一个稳定的自激振荡器 2 时钟芯片 采用带 RAM 的时钟芯片 DS1302 该芯片可以进行时分秒的计数 具有 100 年 日历 可编程接口 还具有报警功能和掉电保存功能 并且可以对其方便的进行程 序控制 DS1302 它通过串行方式与单片机进行数据传送 向单片机提供包括秒 分 时 日 月 年等在内的实时时间信息 并可对月末日期 闰年天数自动进行调整 还 拥有用于主电源和备份电源的双电源引脚 在主电源关闭的情况下 也能保持时钟 的连续运行 另外 它还能提供 31 字节的用于高速数据暂存的 RAM 有了这些特 点 DS1302 已在许多单片机系统中得到应用 西南科技大学本科生毕业论文 10 图图 3 3 DS1302 引脚排列图引脚排列图 DS1302 的引脚排列如图 3 3 所示 各引脚的功能见表 3 2 表表 3 2 DS1302 功能表功能表 引脚功能 X1 X232768HZ 晶振引脚端 RST复位端 I O数据输入 输出端 SCLK串行时终端 GND地 VCC2 VCC1主电源与后备电源引脚端 DS1302 时钟芯片内主要包括移位寄存器 控制逻辑电路 振荡器 实时时钟电 路以及用于高速暂存的 31 字节 RAM DS1302 与单片机系统的数据传送依靠 RST I O SCLK 三根端线即可完成 其工作过程可概括为 首先系统 RST 引脚驱 动至高电平 然后在作用于 SCLK 时钟脉冲的作用下 通过 I O 引脚向 DS1302 输 入地址 命令字节 随后再在 SCLK 时钟脉冲的配合下 从 I O 引脚写入或读出相应 的数据字节 因此 其与单片机之间的数据传送是十分容易实现的 DS1302 与单片 机电路相连如图 3 4 所示 西南科技大学本科生毕业论文 11 图图 3 4 DS1302 与单片机接口图与单片机接口图 3 2 2 LCD 显示电路 液晶显示模块具有体积小 功耗低 显示内容丰富等特点 现在字符型液晶显 示模块已经是单片机应用设计中最常用的信息显示器件了 1602B 可以显示 2 行 16 个字符 有 8 位数据总线 D0 D7 和 RS R W EN 三 个控制端口 工作电压为 5V 并且带有字符对比度调节和背光 该模块也可以只用 D4 D7 作为四位数据分两次传送 这样的话可以节省 MCU 的 I O 口资源 各引脚的功能见表 3 3 表表 3 3 LCD 引脚功能图引脚功能图 编号符号引脚说明编号符号引脚说明 1VSS电源地9D2双向数据口 2VDD电源正极10D3双向数据口 3VL对比度调节11D4双向数据口 4RS数据 命令选择12D5双向数据口 5R W读 写选择13D6双向数据口 6E模块使能端14D7双向数据口 7D0双向数据口15BLK背光源地 8D1双向数据口16BLA背光源正极 西南科技大学本科生毕业论文 12 从该模块的正面看 引脚排列从右向左为 15 脚 16 脚 然后才是 1 14 脚 VDD 电源正极 4 5 5 5V 通常使用 5V 电压 VL LCD 对比度调节端 电压调节范围为 0 5V 接正电源时对比度最弱 接 地电源时对比度最高 但对比度过高时会产生 鬼影 因此通常使用一个 10K 的电 位器来调整对比度 或者直接串接一个电阻到地 RS MCU 写入数据或者指令选择端 MCU 要写入指令时 使 RS 为低电平 MCU 要写入数据时 使 RS 为高电平 R W 读写控制端 R W 为高电平时 读取数据 R W 为低电平时 写入数据 E LCD 模块使能信号控制端 写数据时 需要下降沿触发模块 D0 D7 8 位数据总线 三态双向 如果 MCU 的 I O 口资源紧张的话 该模 块也可以只使用 4 位数据线 D4 D7 接口传送数据 本充电器就是采用 4 位数据传 送方式 BLA LED 背光正极 需要背光时 BLA 串接一个限流电阻接 VDD BLK 接 地 实测该模块的背光电流为 50mA 左右 BLK LED 背光地端 它与单片机的连接如图 3 5 所示 图图 3 5 LCD 与单片机接口与单片机接口 西南科技大学本科生毕业论文 13 3 2 3 语音录放电路 系统要求能够有闹钟 语音播报 按键报时等功能 由单片语音录放芯片来做 比较方便简单 ISD2500 芯片 可以录放时间 60 秒 可以满足本设计的要求 性能 良好所以选用 ISD2500 和 1400 语音电路一样 具有抗断电 音质好 使用方便等优点 它的 最大特点在于片内 E2PROM 容量为 480K 1400 系列为 128K 所以录放时间长 有 10 个地址输入端 1400 系列仅为 8 个 寻址能力可达 1024 位 最多能分 600 段 设有 OVF 溢出 端 便于多个器件级联 其封装如图 3 6 所示 图图 3 6 ISD 封装图封装图 系统要求能够有闹钟 语音播报 按键报时等功能 由单片语音录放芯片来做 比较方便简单 ISD2500 芯片 可以录放时间 60 秒 可以满足本设计的要求 但是 ISD2500 芯片的价格比较昂贵 在现有的条件下还不能实现 所以只作简单介绍以 便做相关扩展应用 本设计只用简单的语音模块 3 2 4 电源电路 电源电路包括变压器 桥式整流器 电容和稳压器 通过变压器变压 使得 220V 电压变为 12 V 在通过桥式整流 电容的滤波作用 稳压器的稳压作用 可 输出 5V 的稳定电压 如图 3 7 所示 VCCD P R XCLK EOM PD CE OVF Ana Out Ana In AGC Mic Ref Mic VCCA SP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A0 M0 A1 M1 A2 M2 A3 M3 A4 M4 A5 M5 A6 M6 A7 A8 A9 VSSD VSSA SP 28 27 26 25 24 23 22 21 20 19 18 17 16 15 ISD Aux In 2500 西南科技大学本科生毕业论文 14 图图 3 7 系统电源电路系统电源电路 在系统中要用到 2 个电源 单片机电源与 DS1302 时钟芯片电源所以有 2 路电 源 VCC 和 VCC1 3 2 5 相关控制电路 1 按键电路 按键电路如图 3 8 所示 按键的开关状态通过一定的电路转换为高 低电平状 态 按键闭合过程在相应的 I O 端口形成一个负脉冲 闭合和释放过程都要经过一 定的过程才能达到稳定 这一过程是处于高 低电平之间的一种不稳定状态 称为 抖动 抖动持续时间的常长短与开关的机械特性有关 一般在 5 10ms 之间 为了避 免 CPU 多次处理按键的一次闭合 应采用措施消除抖动 本文采用的是独立式按键 直接用 I O 口线构成单个按键电路 每个按键占用一条 I O 口线 每个按键的工作 状态不会产生互相影响 西南科技大学本科生毕业论文 15 图图 3 8 按键电路图按键电路图 P1 0 口 表示功能移位键 按键选择要调整的时十位 时个位 分十位或分个 位 P1 1 口 表示数字 键 按一下则对应的数字加 1 P1 2 口 表示数字 键 按一下则对应的数字减 1 P1 3 口 表示时间表的切换 程序默认为日常时间表 当按下该开关 使输入 为低电平时 表示当前执行的是考试时间表 再按键 使按键抬起 输入维高电平 时 表示当前执行的是日常作息时间表 2 复位电路 AT89S51 单片机的复位是由外部的复位电路来实现的 复位引脚 RST 通过一个 斯密特触发器与复位电路相连 斯密特触发器用来抑制噪声 在每个机器周期的 S5P2 斯密特触发器的输出电平由复位电路采样一次 然后才能得到内部复位操作 所需要的信号 上电复位 上电复位电路是 种简单的复位电路 只要在 RST 复位引脚接一个 电容到 VCC 接一个电阻到地就可以了 上电复位是指在给系统上电时 复位电路 通过电容加到 RST 复位引脚一个短暂的高电平信号 这个复位信号随着 VCC 对电 容的充电过程而回落 所以 RST 引脚复位的高电平维持时间取决于电容的充电时间 为了保证系统安全可靠的复位 RST 引脚的高电平信号必须维持足够长的时间 西南科技大学本科生毕业论文 16 图图 3 9 复位电路复位电路 如图 3 9 所示 上电自动复位是通过外部复位电路的电容充电来实现的 只要 Vcc 的上升时间不超过 1ms 就可以实现自动上电复位 3 3 本章小结 本章介绍了多功能数字钟系统的硬件模块组成 详细介绍了各个模块的组成及 功能 MCU 的组成和特点 专门的时钟芯片和单片机时钟 显示模块的构建与运用 语音芯片的选择 2 路电源的设计制作 基本上是完成了作为单片机所需的硬件结 构 同时也显示了对软件支持的强烈要求 西南科技大学本科生毕业论文 17 第 4 章 数字钟的软件设计 4 1 系统软件设计内容 本设计的软件程序包括主程序 中断子程序 闹钟设定子程序 时钟显示子程 序以及延时子程序等 在整个系统中 在单片机的 30H 31H 和 32H 中存储当前时间的小时 分钟和 秒 用 LCD 显示当前的时间 必须用到分字和合字 因此在 33H 34H 35H 36H 37H 和 38H 中存储当前时间的时十位 时个位 分十位 分个位 秒十位和秒个位 方便显示 本设计有由四个轻触按键组成的小键盘 这些按键可以任意改变当前的状态 按功能移位键一次 表示当前要校对小时的十位 按第二次 表示当前校对的是小 时的个位 按第三次 则表示校对的是分钟的十位 第四次 表示的校对的是分钟 的个位 按下数字 键和数字 键可在当前校对的数字上相应加上 1 或者减 去 1 系统软件采用 C 语言编写 时钟的最小计时单位是秒 但使用定时器的方式 1 最大的定时时间也只能达到 131ms 我们可把定时器的定时时间定为 50ms 这 样 计数溢出 20 次即可得到时钟的最小计时单位 秒 而计数 20 次可以用软件实 现 秒计时是采用中断方式进行溢出次数的累积 计满 20 次 即得到秒计时 从秒 到分 从分到时是通过软件累加并进行比较的方法来实现的 要求每满 1 秒 则 秒 单元中的内容加 1 秒 单元满 60 则 分 单元中的内容加 1 分 单元满 60 则 时 单元中的内容加 1 时 单元满 24 则将时 分 秒的内容 全部清零 实时时钟程序设计步骤 1 选择工作方式 计算初值 2 采用中断方式进行溢出次数累计 3 从秒 分 时的计时是通过累加和数值比较实现的 4 时钟显示缓冲区 时钟时间在方位数码管上进行显示 为此在内部 RAM 中要设置显示缓冲区 共 6 个地址单元 显示缓冲区从左到右依次存放时 分 秒数值 5 主程序 主要进行定时器 计数器的初始化编程 然后反复调用显示子程 序的方法等待中断的到来 流程如图 4 1 所示 西南科技大学本科生毕业论文 18 6 中断服务程序 进行计时操作 7 加 1 子程序 用于完成对时 分 秒的加操作 中断服务程序在秒 分 时加 1 时共三次调用加 1 子程序 包括 合字 加 1 并进行进制调整 分字 4 2 主程序 主程序主要由 main 组成通过对相关子程序的调用 实现了对时间的设置与修 改 闹钟的设置与修改 LCD 显示等主要功能 相关的调整是靠对功能键的判断来 实现的 如对 set 键的判断 对 up 键的判断 主程序流程框图如图 4 1 所示 主要 程序段如下 void main void d to b ds1302 write time 对 DS1302 写数据 initTimer TR0 1 ET0 1 EA 1 LCD init LCD write string 0 0 Wellcome to xnkd LCD write string 0 1 123456789 mysy while 1 if sethour timereg 4 if set 功能键判断 if fset if up 调用 1 键子程序 if down 调用 1 键子程序 if enter 西南科技大学本科生毕业论文 19 图图 4 1 主程序主程序 MAIN 流程框图流程框图 西南科技大学本科生毕业论文 20 4 3 时钟设置子程序 时钟的修改首先要按功能键并停止时间的输出显示 否则系统继续刷新时间则 无法修改 所以时间是不输出到 LCD 的 修改的部分以修改的为准 没有修改的通 过中断保护起来 等修改成功后继续显示 主要流程图如图 4 2 所示 小时设置程 序段如下 if keycou 5 设置小时 LCD write string 0 0 Hour 将现在时间保存 LCD set xy 5 0 对小时重新设置 LCD write char 0 timereg 4 10 0 x30 设置完成后显示修改后的小时部分 LCD write char 0 timereg 4 10 0 x30 在时间修改功能中要用到 1 个数字加减的问题 把它做成 1 个子程序 流程如 图 4 3 所示 通过判断功能键的状态也就是记录值来确定 主功能键 SET 是采用循 环的方式来实现的 当标识为相应的值时执行相应的操作 if keycou 5 小时加一 if timereg 4 23 timereg 4 else timereg 4 23 LCD set xy 5 0 LCD write char 0 timereg 4 10 0 x30 LCD write char 0 timereg 4 10 0 x30 西南科技大学本科生毕业论文 21 4 2 时钟设置功能子程序流程框图时钟设置功能子程序流程框图 西南科技大学本科生毕业论文 22 图图 4 3 加加 1 键修改子程序流程框图键修改子程序流程框图 西南科技大学本科生毕业论文 24 图图 4 4 时钟修改中断服务子程序流程框图时钟修改中断服务子程序流程框图 西南科技大学本科生毕业论文 25 4 4 中断子程序 MCS 51 系列单片机有 5 个中断源 中断分为 2 个中断优先级 即高优先级和 低优先级 每个中断源的优先级都可以由软件来设定 中断地址如表 4 1 所示 程 序中的中断流程框图如图 4 4 所示 表表 4 1 中断地址表中断地址表 五个中断源入口地址 外部中断 0 INT0 0003H T0 溢出中断000BH 外部中断 1 INT1 0013H T1 溢出中断001BH 串口中断0023H Function 外部中断 1 中断服务子程序 parameter Return Modify void Interrupt1 void interrupt 2 Int1Flag 1 Function 定时器 0 中断服务子程序 parameter Return Modify void InterruptTime0 void interrupt 1 TH0 0 x06 8ms 西南科技大学本科生毕业论文 26 TL0 0 xed Time0Count Function 定时器 1 中断服务子程序 parameter Return Modify 4 5 LCD 显示子程序 LCD 显示子程序可对 DS1302 的时间进行设置和读取 DS1302 内部的时间 连续的 读写操作 RAM 的应用 充电部分的应用 写保护 抗干扰等可以实现上述功能 在编写中应注意的是进制的转换 下面是 BCD 码到十进制数的转换函数 函数名 BCD to INT 参 数 无 功 能 用于将时间 BCD 码转换为十进制码 void BCD to INT uchar i for i 0 i 7 i bcd int timercur i 4 3 本章小结 本章介绍了本设计的软件设计 所有的功能在流程图里清晰的表现了出来 包 括主程序流程图 时钟及闹钟修改流程图 中断流程图等 并附有相关程序的主要 部分 在软件的设计中模块化设计很重要 显示很直观不会发生混乱现象 容易上 手 西南科技大学本科生毕业论文 27 第 5 章 调试与功能说明 5 1 硬件调试 在实际使用中 我们发现 DS1302 的工作情况不够稳定 主要表现在实时时间 的传送有时会出现误差 有时甚至整个芯片停止工作 我们对 DS1302 的工作电路 进行了分析 其与单片机系统的连接如图 2 所示 从图中可以看出 DS1302 的外部 电路十分简单 惟一外接的元件是 32768Hz 的晶振 通过实验我们发现 当外接晶 振电路振荡时 DS1302 计时正确 当外接晶振电路停振时 DS1302 计时停止 因 此 可能是 32768Hz 晶振是造成 DS1302 工作不稳定的主要原因 图图 5 1 DS1302 与单片机系统的连接图与单片机系统的连接图 DS1302 时钟的产生基于外接的晶体振荡器 振荡器的频率为 32768Hz 该晶振 通过引脚 X1 X2 直接连接至 DS1302 即 DS1302 是依靠外部晶振与其内部的电容 配合来产生时钟脉冲的 由于 DS1302 在芯片本身已经集成了 6pF 的电容 所以 为了获得稳定可靠的时钟 必须选用具有 6pF 负载电容的晶振 然而 许多人在选 用晶振时仅仅注意了晶振的额定频率值 而忽视了晶振的负载电容大小 甚至连许 多经销商也不能提供所售晶振的负载电容 所以即使在使用中选用了符合 32768Hz 的晶振 但如果该晶振的负载电容与 DS1302 提供的 6pF 不一致时 就会影响晶振 的起振或导致振荡频率的偏移 出现问题 西南科技大学本科生毕业论文 28 利用辅助电容实现负载匹配的方法来解决当所选的晶振负载电容不是 6pF 时 可以采用增加辅助电容的方法提高或降低 DS1302 振荡器的电容性负载 使之与晶 体所需的电容值匹配 如果已知晶体的负载电容为 CI 若 CI6pF 则可以在 晶体的一端增加一个串联电容 CS 以产生所需的负载电容 CI 即 1 CI 1 6pF 1 CS 通过计算即可得出应增加的辅助电容大小 辅助电容的接法如图 5 2 所示 图图 5 2 辅助电容连接图辅助电容连接图 对于晶体振荡器来说 其振荡频率与负载电容之间的关系是确定的 以本文讨 论的 DS1302 使用的 32768Hz 晶振为例 当它工作于所要求的负载电容时 能较准 确地产生 32768Hz 的频率 当它的负载电容小于 6pF 时 其振荡频率会正向偏移 当它的负载电容大于 6pF 时 其振荡频率就会负向偏移 因此 对于未知负载电容 的晶体应首先采用实验的方法 在其两端加入辅助电容使晶体起振 然后用频率计 测出振荡频率 若测得频率大于 32768Hz 说明负载电容偏小 若测得频率小于 32768Hz 说明负载电容偏大 对辅助电容逐步调整 最终使振荡频率尽可能接近 32768Hz 则此时晶体端所接负载电容的总和就是适合该晶体的负载电容 以上方法经多次使用 证明确实有效 它放宽了 DS1302 在使用中对晶振的条 件要求 增强了 DS1302 在工作中的稳定性 对 DS1302 更广泛地应用具有积极的意 义 西南科技大学本科生毕业论文 29 5 2 系统性能测试与功能说明 5 2 1 系统时钟误差分析 设系统中所选用的晶振的频率为 fosc 则机器周期 t0由式 5 1 所得 5 1 osc ft12 0 设定时器要求的中断频率为 k 计数器位数为 n 则定时计数器的初值 X 设置 如下 K n Xt 1 0 2 5 2 于是 而实验测得的数据显示 这个公式所得的结果并不可靠 1 0 2 tk n X 下表中的所有数据都是在计数器初始值严格按照原始公式给出的条件下测得 以 个人计算机机系统时钟为标准 从表 5 1 中的数据可知 严格按照原始公式得出 的计数初值是存在极大误差的 这个误差总使系统时间变慢 而且 系统时间的误 差值随着每秒中断次数的增多而增大 随计时总长的增长而增大 并且总是成比例 在误差允许的范围内 这就是说 系统的误差跟每秒中断次数和个人计算机标准 时长的乘积 即中断总次数 成正比 也就是说 每次中断计时的时间误差是一个 常数 误差来源分析 不考虑晶振等固件的误差 则系统机器周期可以由公式 1 准 确给出 因而系统误差不可能来自于硬件 而应该主要来自于软件方面 系统每次 调用定时中断程序的过程中 硬件并没有自动进入下一个定时周期 而是在调用中 断程序以后由软件置数来实现的 表表 5 1 系统时间校正测试数据系统时间校正测试数据 每秒定时中断次数 KPC 标准时长 min X系统时间误差 T S备注 160602000 59 5 9 1显示器无闪烁 1601202001 59 5 8 2显示器无闪烁 1601802002 59 5 7 3显示器无闪烁 1602402003 59 5 6 4显示器无闪烁 西南科技大学本科生毕业论文 30 1603002004 59 5 4 6显示器无闪烁 1603002104 59 5 9 1显示器无闪烁 1606002109 59 5 8 2显示器无闪烁 而在程序调用过程中 堆栈建立 参数传递等都是需要耗时的 而这些时间都 被无形中加到了定时长度中去 所以 使得每次定时长度都大于理论推导值 在宏 观上表现出来就是系统比理论计算出来的结果变慢了 这于表格 1 所得的结论恰好 一致 另外 由于系统每次调用中断处理程序所执行的操作都是相同的 也就是说 系统每次定时的时间误差应该是一个常数 这也恰好跟实验数据相吻合 由上面的 数据和分析可知 原始公式应该修改为 5 3 xX tk n 0 1 2 则由表格 5 1 可得相关的计算公式为 5 4 60 0 tKT t X 由表格 5 1 数据 实际要求 k 最小 而又不影响显示效果 才能使误差越小 故实 测中取 k 160 根据表 5 1 计算得 k 20 所用晶振频率为 11 0592 MHz 由表 5 1 的实验方法 可得参数优化后的计时测试数据见表 5 2 表表 5 2 参数优化后的计时测试数据参数优化后的计时测试数据 每秒定时中断次数PC 标准时长 min系统计时误差 T S备注 1001000 09 58 2显示器无闪烁 2001000 09 57 3显示器无闪烁 4001000 09 55 5显示器无闪烁 8001000 09 49 11显示器无闪烁 16001000 09 39 21显示器无闪烁 32001000 09 18 42显示器无闪烁 32002000 18 38 82显示器无闪烁 32003000 27 57 123显示器无闪烁 32006000 55 54 246显示器无闪烁 西南科技大学本科生毕业论文 31 320012001 51 46 494显示器无闪烁 320018002 47 38 742显示器无闪烁 320024003 43 31 989显示器无闪烁

温馨提示

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

评论

0/150

提交评论