




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号 淮安信息职业技术学院淮安信息职业技术学院 毕毕业业论论文文 多多 段段 定定 时时 控控 制制 在在 养养 鸡鸡 场场 的的 应应 用用 学生姓名 曹 慧 学 号 15077014 系 部 电子工程系 专 业 应用电子 班 级 150770 指导教师 刁志刚 顾问教师 二 一 年六月 摘摘 要要 当今科学技术快速发展 人们的生活变得多姿多彩 然而日常生活有很多 重复烦躁的事情需要我们去解决 为了提高我们的工作效率 因此我们设计一 个定时控制系统来自动完成这些工作 减少人们的负担 于是老师在单片机理 论课程学习的基础上 为我们安排了一个涉及 MCS 51 单片机多种资源应用及 具有综合功能的单片机定时控制系统设计 关键词关键词 显示时间 定时 复位电路 时钟电路 驱动 目目 录录 摘摘 要要 I 第一章第一章 绪论绪论 1 1 1 研究课题的背景 1 1 2 相关开发技术 2 第二章第二章 对系统要求的分析对系统要求的分析 3 2 1 多段定时控制在养鸡场应用的功能要求 3 2 2 多段定时控制在养鸡场应用的工作过程 4 第三章第三章 元器件的选择元器件的选择 5 3 1 型号选择 AT89S52 5 3 2 显示元器件的选择 5 第四章第四章 对多段定时控制器电路板的设计与分析对多段定时控制器电路板的设计与分析 7 4 1 多段定时控制器的电路结构 7 4 2 硬件电路设计 7 第五章第五章 程序设计程序设计 9 5 1 按键电路程序 9 5 2 时钟电路程序 9 第六章第六章 总结总结 11 致致 谢谢 12 参考文献参考文献 13 第一章 概述 1 11 1 设计背景设计背景 21 世纪是一个全新的时代 方方面面都离不开技术 生产效率决定着企业 的收益 养鸡场的产蛋量是收益的关键 能否降低成本 获得最大利润一直是养鸡 专业户关注的问题 本次课题结合实际 运用到实践中 决绝上述问题 可以 说是广大养鸡场期待已久的技术方案 1 21 2 设计要求设计要求 1 养鸡场内的照明设施应设定为三个时段亮起 2 无需人为控制养鸡场内的照明设施在设定好的时间内准时同时亮起 3 无需人为控制养鸡场内的照明设施在亮起一个设定好的时段后准时同时熄灭 4 有时间表对时间进行计时 1 31 3 设计意义设计意义 1 增加养鸡场产蛋量 2 降低管理成本 3 增长利润 创新型生产模式 第二章 系统硬件方案设计 2 12 1模块设计模块设计 1 单片机芯片选择方案和论证 方案一 采用 89C51 芯片作为硬件核心 采用 Flash ROM 内部具有 4KB ROM 存储空间 能于 3V 的超低压工作 而且与 MCS 51 系列单片机完全兼容 但是运用于电路设 计中时由于不具备 ISP 在线编程技术 当在对电路进行调试时 由于程序的错 误修改或对程序的新增功能需要烧入程序时 对芯片的多次拔插会对芯片造成 一定的损坏 方案二 采用 AT89S52 片内 ROM 全都采用 Flash ROM 能以 3V 的超底压工作 同时 也与 MCS 51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间 同样具 有 89C51 的功能 且具有在线编程可擦除技术 当在对电路进行调试时 由于 程序的错误修改或对程序的新增功能需要烧入程序时 不需要对芯片多次拔插 所以不会对芯片造成损坏 所以选择采用 AT89S52 作为主控制系统 2 显示模块选择方案和论证 方案一 采用 LED 数码管动态扫描 LED 数码管价格适中 对于显示数字最合适 而且 采用动态扫描法与单片机连接时 占用的单片机口线少 但所需数码管太多焊接 困难极易出错 所以不采用 LED 数码管作为显示 方案二 采用点阵式数码管显示 点阵式数码管是由八行八列的发光二极管组成 对于显示文字比较适合 如采用在显示数字显得太浪费 且价格也相对较高 所以 也不用此种作为显示 方案三 采用 LCD 液晶显示屏 液晶显示屏的显示功能强大 可显示大量文字 图形 显示 多样 清晰可见 但是价格昂贵 需要的接口线多 本设计所需显示较多且需要文 字 所以在此设计中采用 LCD 液晶显示屏 3 时钟芯片选择方案和论证 方案一 直接采用单片机定时计数器提供秒信号 使用程序实现年 月 日 星期 时 分 秒计数 采用此种方案虽然减少芯片的使用 节约成本 但是 实现 的时间误差较大 所以不采用此方案 方案二 采用 DS1302 时钟芯片实现时钟 DS1302 芯片是一种高性能的时钟芯片 可 自动对秒 分 时 日 周 月 年以及闰年补偿的年进行计数 而且精度高 位的 RAM 做为数据暂存区 工作电压 2 5V 5 5V 范围内 2 5V 时耗电小于 300nA 4 输入模块 它是整个系统中最简单的部分 根据功能要求 本系统共需五个按键 功能选 择键 功能加键 功能减键 确定键 定时开关键 2 22 2 电路设计最终方案决定电路设计最终方案决定 综上各方案所述 对此次作品的方案选定 采用 AT89S52 作为主控制系统 DS1302 提供时钟 四脚按键 两组共 8 只数码管作为显示 第三章 系统软件方案设计 3 13 1 程序流程框图程序流程框图 硬件制作完毕之后 接下来就是程序设计 本设计采用 C 语言 在主程序中 主要实现初始化 按键处理 时间采用动态显示方式 当有键按下时 进入按 键处理程序 流程图如下 开始 程序初始化 显示时间 结束 定时时 间到 显示是哪组 点亮照 明设施 Y N 参数设置 确定 选择 结束 第四章 主要单元电路设计 4 14 1 最小控制系统最小控制系统 AT89S52 单片机为 40 引脚双列直插芯片 有四个 I O 口 P0 P1 P2 P3 MCS 51 单片机共有 4 个 8 位的 I O 口 P0 P1 P2 P3 每一条 I O 线都能 独立地作输出或输入 单片机的最小系统如下图所示 18 引脚和 19 引脚接时钟电路 XTAL1 接外部 晶振和微调电容的一端 在片内它是振荡器倒相放大器的输入 XTAL2 接外部晶 振和微调电容的另一端 在片内它是振荡器倒相放大器的输出 第 9 引脚为复位 输入端 接上电容 电阻及开关后够上电复位电路 20 引脚为接地端 40 引脚为电 源端 如图 1 所示 图 1 主控制系统 4 24 2 复位电路复位电路 复位是由外部的复位电路来实现的 复位电路采用上电自动复位和按钮复 位两种方式 此电路系统采用的是上电与按钮复位电路 4 34 3 时钟电路时钟电路 图 2 示出 DS1302 的引脚排列 其中 Vcc1 为后备电源 Vcc2 为主电源 在主电源关闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 KHz 晶振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启 动所有的数据传送 RST 输入有两种功能 首先 RST 接通控制逻辑 允许地 址 命令序列送入移位寄存器 其次 RST 提供终止单字节或多字节数据的传 送手段 当 RST 为高电平时 所有的数据传送被初始化 允许对 DS1302 进行 操作 如果在传送过程中 RSTS 置为低电平 则会终止此次数据传送 I O 引 脚变为高阻态 上电动行时 在 Vcc 大于等于 2 5V 之前 RST 必须保持低电 平 中有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入 端 双向 SCLK 始终是输入端 图 2 时钟电路 4 44 4 显示电路显示电路 显示部分是时钟最为重要的部分 共需要 8 位 LED 显示器 采用动态显示 方式 由于端口的问题以及动态显示方式的优越性 在此设计的连接方式上采 用共阴级接法 显示器 LED 有段选和位选两个端口 首先说段选端 它由 LED 八个端口构成 通过对这八个端口输入的不同的二进制数据使得它的时间显示 也不同 从而可以得到我们所要的时间显示 由于单片机 I O 口不能直接驱动数码管子所以要用 PNP 三极管来驱动 管 动原理如下图 4 54 5 按键电路按键电路 它是整个系统中最简单的部分 根据功能要求 本系统共需五个按键 功 能选择键 功能加键 功能减键 确定键 定时开关键 按确定键将依次业显时间和各个定时时间 如果再按选择就可以选择要调 整的时间 时 分 秒 按加 减 键就可以调整时间或定时时间 调整完成 后按确定键就完成参数设定 调时间步骤如下 1 按确定键 数码管显示当前时间并定留不动 2 按选择键 数码管显示当前时间 并有两位闪烁 3 按增加键 就可以调整 长按就可以快整增加 调整定时间和调整时间方法一样 第五章 总体设计 5 15 1 电路设计框图电路设计框图 5 25 2 系统硬件概述系统硬件概述 本电路是由 AT89S52 单片机为控制核心 具有在线编程功能 低功耗 能 在 3V 超低压工作 时钟电路由 DS1302 提供 它是一种高性能 低功耗 带 RAM 的实时时钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具 有闰年补偿功能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一 个 31 8 的用于临时性存放数据的 RAM 寄存器 可产生年 月 日 周日 时 分 秒 具有使用寿命长 精度高和低功耗等特点 同时具有掉电自动保存功 能 5 35 3 画印刷电路板画印刷电路板 PCBPCB 图图 显示模块电路板如下 AT89C51 主控制模 块 DS1302 时钟模块 数码管显示模块 复位电路模块 键盘模块 主控制电路板如下 5 45 4 程序编译程序编译 由于程序太长 占用大量篇幅 这里仅此对时钟程序做一个编写 时钟电路程序 define H 0 define L 1 define uchar unsigned char uchar idata da 7 uchar idata ram 27 sbit ds clk P2 0 sbit rst P2 2 sbit ds dat P2 1 sbit ds clk P2 2 sbit rst P2 4 sbit ds dat P2 3 sbit a0 ACC 0 sbit a1 ACC 1 sbit a2 ACC 2 sbit a3 ACC 3 sbit a4 ACC 4 sbit a5 ACC 5 sbit a6 ACC 6 sbit a7 ACC 7 DS1302 命令及写数据 时钟上升沿输入数据 先送低位 void comm ds uchar dd ACC dd ds dat a0 ds clk 1 ds clk 0 ds dat a1 ds clk 1 ds clk 0 ds dat a2 ds clk 1 ds clk 0 ds dat a3 ds clk 1 ds clk 0 ds dat a4 ds clk 1 ds clk 0 ds dat a5 ds clk 1 ds clk 0 ds dat a6 ds clk 1 ds clk 0 ds dat a7 ds clk 1 ds clk 0 DS1302 读数据 时钟下降沿输出数据 先读高位 uchar read ds void 命令最后一位下降沿开始输出 ds dat 1 a0 ds dat ds clk 1 ds clk 0 a1 ds dat ds clk 1 ds clk 0 a2 ds dat ds clk 1 ds clk 0 a3 ds dat ds clk 1 ds clk 0 a4 ds dat ds clk 1 ds clk 0 a5 ds dat ds clk 1 ds clk 0 a6 ds dat ds clk 1 ds clk 0 a7 ds dat return ACC void write ds uchar ord uchar dd ds clk 0 rst L rst H comm ds ord comm ds dd rst L ds clk 0 void read fast uchar ord uchar m uchar dd 0 i ds clk 0 rst L rst H comm ds ord for i 0 i7 ram i dd ds clk 1 ds clk 0 换成 rst L ds clk 1 unsigned char zh BCD unsigned char Temp unsigned char dd dd Temp 16 10 Temp 16 return dd 第六章第六章 总总 结结 2009 年 10 月 我开始了我的毕业论文工作 时至今日 论文基本完成 从最初的茫然 到慢慢的进入状态 再到对思路逐渐的清晰 整个写作过程难 以用语言来表达 历经了几个月的奋战 紧张而又充实的毕业设计终于落下了 帷幕 回想这段日子的经历和感受 我感慨万千 在这次毕业设计的过程中 我拥有了无数难忘的回忆和收获 我不会忘记这难忘的几个月的时间 毕业论文的制作给了我难忘的回忆 在我徜徉书海查找资料的日子里 面对无数书本的罗列 最难忘的是每次找到 资料时的激动和兴奋 亲手设计电路图的时间里 记忆最深的是每一步小小思 路实现时那幸福的心情 为了论文我曾赶稿到深夜 但看着亲手打出的一字一 句 心里满满的只有喜悦毫无疲惫 这段旅程看似荆棘密布 实则蕴藏着无尽 的宝藏 我从资料的收集中 掌握了很多单片机的知识 让我对我所学过的知 识有所巩固和提高 并且让我对当今单片机的最新发展技术有所了解 在整个 过程中 我学到了新知识 增长了见识 在今后的日子里 我仍然要不断地充 实自己 争取在所学领域有所作为 脚踏实地 认真严谨 实事求是的学习态度 不怕困难 坚持不懈 吃苦 耐劳的精神是我在这次设计中最大的收益 我想这是一次意志的磨练 是对我 实际能力的一次提升 也会对我未来的学习和工作有很大的帮助 通过这次实训 我发现在现实设计中还需要注意很多的细节 包括程序设计 和硬件设计都要我们小心仔细 一个地方出错就可能会整个系统失效 在软件设 计时 还遇到了许多问题 毕竟想像和现实还是有很大的区别的 然而到了最后 这些问题都一一被解决了 我也在这次实践中学会了很多东西 总结出自已的 一套解决问题的方法 这让我觉得自已有了很大的收获 致致 谢谢 感谢我的导师刁志刚老师 他严谨细致 一丝不苟的作风一直是我工作 学习中的榜样 他循循善诱的教导和不拘一格的思路给予我无尽的启迪 感谢我的论文指导老师 在课题的讲解上十分的详细到位 在我完成论文 的过程中 刁教师都不断给予我细心的指导和不懈的支撑 在此 我还要感激在一同兴奋的度过研讨生生活的同学们 正是由于你们 的辅佐和支撑 我才能抑止一个一个的艰难和迷惑 直至本文的成功完成 在论文即将完成之际 我的心境无法宁静 从开端进入课题到论文的成功 完成 有几位可敬的师长 同窗 朋友给了我无言的帮助 在这里请接受我诚 挚的谢意 最后我还要感激培育我长大含辛茹苦的父母 谢谢你们 参考文献参考文献 1 单片机实用教程 徐江海 机械工业出版社 2006 12 附录附录 1 1 AT89S52AT89S52 芯片介绍芯片介绍 主要性能主要性能 与MCS 51单片机产品兼容 8K字节在系统可编程Flash存储器 1000次擦写周期 全静态操作 0Hz 33Hz 三级加密程序存储器 32个可编程I O口线 三个16位定时器 计数器 八个中断源 全双工UART串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 功能特性描述功能特性描述 AT89S52是一种低功耗 高性能CMOS8位微控制器 具有8K 在系统可编程 Flash 存储器 使用Atmel 公司高密度非易失性存储器技术制造 与工业80C51 产品指令和引脚完全兼容 片上Flash允许程序存储器在系统可编程 亦适于常 规编程器 在单芯片上 拥有灵巧的8 位CPU 和在系统可编程Flash 使得 AT89S52为众多嵌入式控制应用系统提供高灵活 超有效的解决方案 AT89S52 具有以下标准功能 8k字节Flash 256字节RAM 32 位I O 口线 看门狗定时 器 2 个数据指针 三个16 位定时器 计数器 一个6向量2级中断结构 全双 工串行口 片内晶振及时钟电路 另外 AT89S52 可降至0Hz 静态逻辑操作 支持2种软件 可选择节电模式 空闲模式下 CPU停止工作 允许RAM 定时器 计数器 串口 中断继续工作 掉电保护方式下 RAM内容被保存 振荡器被冻结 单片机一切工作停止 直到下一个中断或硬件复位为止 VCC 电源 GND 地 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 2分别作定时器 计数器2的外部计数输入 P1 0 T2 和时器 计数器2 的触发输入 P1 1 T2EX 具体如下表所示 在 flash 编程和校验时 P1 口接收低 8 位地址字节 引脚号 第二功能 P1 0 T2 定时器 计数器T2的外部计数输入 时钟输出 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 口 p2 输出缓冲器能驱 动4 个TTL 逻辑电平 对P3 端口写 1 时 内部上拉电阻把端口拉高 此时 可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原 因 将输出电流 IIL P3口亦作为AT89S52特殊功能 第二功能 使用 如下表所示 在 flash 编程和校验时 P3 口也接收一些控制信号 引脚号引脚号 第二功能第二功能 P3 0 RXD 串行输入 P3 1 TXD 串行输出 P3 2 INT0 外部中断0 P3 3 INT0 外部中断0 P3 4 T0 定时器0外部输入 P3 5 T1 定时器1外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器写选通 RST 复位输入 晶振工作时 RST脚持续2 个机器周期高电平将使单片机复位 看门狗计时完成后 RST 脚输出96 个晶振周期的高电平 特殊寄存器AUXR 地 址8EH 上的DISRTO位可以使此功能无效 DISRTO默认状态下 复位高电平有效 ALE PROG 地址锁存控制信号 ALE 是访问外部程序存储器时 锁存低8 位地 址的输出脉冲 在flash编程时 此引脚 PROG 也用作编程输入脉冲 在一般情况下 ALE 以晶振六分之一的固定频率输出脉冲 可用来作为外部定 时器或时钟使用 然而 特别强调 在每次访问外部数据存储器时 ALE脉冲将 会跳过 如果需要 通过将地址为8EH的SFR的第0位置 1 ALE操作将无效 这一位置 1 ALE 仅在执行MOVX 或MOVC指令时有效 否则 ALE 将被微弱拉 高 这个ALE 使能标志位 地址为8EH的SFR的第0位 的设置对微控制器处于外 部执行模式下无效 PSEN 外部程序存储器选通信号 PSEN 是外部程序存储器选通信号 当 AT89S52从外部程序存储器执行外部代码时 PSEN在每个机器周期被激活两 次 而在访问外部数据存储器时 PSEN将不被激活 EA VPP 访问外部程序存储器控制信号 为使能从0000H 到FFFFH的外部程序存 储器读取指令 EA必须接GND 为了执行内部程序指令 EA应该接VCC 在flash 编程期间 EA也接收12伏VPP电压 XTAL1 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2 振荡器反相放大器的输出端 特殊功能寄存器 并不是所有的地址都被定义了 片上没有定义的地址是不能用的 读这些 地址 一般将得到一个随机数据 写入的数据将会无效 用户不应该给这些未 定义的地址写入数据 1 由于这些寄存器在将来可能被赋予新的功能 复位 后 这些位都为 0 定时器 2 寄存器 寄存器T2CON 和T2MOD 包含定时器2 的控制位和状态位寄存器对RCAP2H和 RCAP2L是定时器2的捕捉 自动重载寄存器 中断寄存器 各中断允许位在 IE 寄存器中 六个中断源的两个优先级也可在 IE 中设置 双数据指针寄存器 为了更有利于访问内部和外部数据存储器 系统提供了两路16位数据指针 寄存器 位于SFR中82H 83H的DP0和位于84H 85 特殊寄存器AUXR1 中 DPS 0 选择 DP0 DPS 1 选择 DP1 用户应该在访问数据指针寄存器前先初 始化 DPS 至合理的值 掉电标志位 掉电标志位 掉电标志位 POF 位于特殊寄存器PCON的第四位 PCON 4 上电期间POF 置 1 POF可以软件控制使用与否 但不受复位影响 存储器结构存储器结构 MCS 51器件有单独的程序存储器和数据存储器 外部程序存储器和数据存 储器都可以64K寻址 程序存储器 程序存储器 如果EA引脚接地 程序读取只从外部存储器开始 对于 89S52 如果EA 接VCC 程序读写先从内部存储器 地址为 0000H 1FFFH 开始 接着从外部寻址 寻址地址为 2000H FFFFH 数据存储器 数据存储器 AT89S52 有256 字节片内数据存储器 高128 字节与特殊功能寄存器重叠 也就是说高128字节与特殊功能寄存器有相同的地址 而物理上是分开的 当一 条指令访问高于7FH 的地址时 寻址方式决定CPU 访问高128 字节RAM 还是特 殊功能寄存器空间 直接寻址方式访问特殊功能寄存器 SFR 例如 下面的直接寻址指令访问0A0H P2口 存储单元 MOV 0A0H data使用间接寻址方式访问高128 字节RAM 例如 下面的间接寻 址方式中 R0 内容为0A0H 访问的是地址0A0H的寄存器 而不是P2口 它的地 址也是0A0H MOV R0 data堆栈操作也是简介寻址方式 因此 高128字节数据RAM也可用 于堆栈空间 看门狗定时器看门狗定时器 WDT是一种需要软件控制的复位方式 WDT 由13位计数器和特殊功能寄存器 中的看门狗定时器复位存储器 WDTRST 构成 WDT 在默认情况下无法工作 为了激活WDT 户用必须往WDTRST 寄存器 地址 0A6H 中依次写入01EH 和 0E1H 当WDT激活后 晶振工作 WDT在每个机器周期都会增加 WDT计时周期依 赖于外部时钟频率 除了复位 硬件复位或WDT溢出复位 没有办法停止WDT工 作 当WDT溢出 它将驱动RSR引脚一个高个电平输出 WDTWDT的使用的使用 为了激活WDT 用户必须向WDTRST寄存器 地址为0A6H的SFR 依次写入 0E1H 和0E1H 当WDT激活后 用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出 当计数达到8191 1FFFH 时 13 位计数器将会溢出 这将会复位器件 晶振正 常工作 WDT激活后 每一个机器周期WDT 都会增加 为了复位WDT 用户必须 向WDTRST 写入01EH 和0E1H WDTRST 是只读寄存器 WDT 计数器不能读或写 当WDT 计数器溢出时 将给RST 引脚产生一个复位脉冲输出 这个复位脉冲持 续96个晶振周期 TOSC 其中TOSC 1 FOSC 为了很好地使用WDT 应该在一定 时间内周期性写入那部分代码 以避免WDT复位 掉电和空闲方式下的掉电和空闲方式下的 WDTWDT 在掉电模式下 晶振停止工作 这意味这WDT也停止了工作 在这种方式下 用户不必喂狗 有两种方式可以离开掉电模式 硬件复位或通过一个激活的外 部中断 通过硬件复位退出掉电模式后 用户就应该给WDT 喂狗 就如同通常 AT89S52 复位一样 通过中断退出掉电模式的情形有很大的不同 中断应持续拉低很长一段时 间 使得晶振稳定 当中断拉高后 执行中断服务程序 为了防止WDT在中断保 持低电平的时候复位器件 WDT 直到中断拉低后才开始工作 这就意味着WDT 应该在中断服务程序中复位 为了确保在离开掉电模式最初的几个状态WDT不被 溢出 最好在进入掉电模式前就复位WDT 在进入待机模式前 特殊寄存器AUXR 的WDIDLE位用来决定WDT是否继续计数 默认状态下 在待机模式下 WDIDLE 0 WDT继续计数 为了防止WDT在待机模式下复位AT89S52 用户应该 建立一个定时器 定时离开待机模式 喂狗 再重新进入待机模式 UARTUART 在AT89S52 中 UART 的操作与AT89C51 和AT89C52 一样 定时器定时器 0 0 和定时器和定时器1 1 在AT89S52 中 定时器0 和定时器1 的操作与AT89C51 和AT89C52 一样 定时器定时器 2 2 定时器2是一个16位定时 计数器 它既可以做定时器 又可以做事件计数器 其工作方式由特殊寄存器T2CON中的C T2位选择 如表2所示 定时器2有三种 工作模式 捕捉方式 自动重载 向下或向上计数 和波特率发生器 如表3 所示 工作模式由T2CON中的相关位选择 定时器2 有2 个8位寄存器 TH2和 TL2 在定时工作方式中 每个机器周期 TL2 寄存器都会加1 由于一个机器 周期由12 个晶振周期构成 因此 计数频率就是晶振频率的1 12 种方式下 每个机器周期的S5P2期间采样外部输入 一个机器周期采样到高电平 而下一 个周期采样到低电平 计数器将加1 在检测到跳变的这个周期的S3P1 期间 新的计数值出现在寄存器中 因为识别1 0的跳变需要2个机器周期 24个晶振 周期 所以 最大的计数频率不高于晶振频率的1 24 为了确保给定的电平在 改变前采样到一次 电平应该至少在一个完整的机器周期内保持不变 附录附录2 2 DS1302 简介简介 DS1302是美国 DALLAS 公司推出的一种高性能 低功耗的实时时钟芯片 附 加31字节静态 RAM 采用 SPI 三线接口与 CPU 进行同步通信 并可采用突发方 式一次传送多个字节的时钟信号和 RAM 数据 实时时钟可提供秒 分 时 日 星期 月和年 一个月小与31天时可以自动调整 且具有闰年补偿功能 工作 电压宽达2 5 5 5V 采用双电源供电 主电源和备用电源 可设置备用电源 充电方式 提供了对后背电源进行涓细电流充电的能力 DS1302的外部引脚分 配如图1所示及内部结构如图2所示 DS1302用于数据记录 特别是对某些具有 特殊意义的数据点的记录上 能实现数据与出现该数据的时间同时记录 因此 广泛应用于测量系统中 图1 DS1302的外部引脚分配 图2 DS1302的内部结构 各引脚的功能为 Vcc1 主电源 Vcc2 备份电源 当 Vcc2 Vcc1 0 2V 时 由 Vcc2向 DS1302供电 当 Vcc20 i 循环8次移位 SCLK 0 temp addr DIO bit temp 每次传输低字节 addr 1 右移一位 SCLK 1 发送数据 for i 8 i 0 i SCLK 0 temp dat DIO bit temp dat 1 SCLK 1 CE 0 数据读取子程序 unsigned char Read1302 unsigned char addr unsigned char i temp dat1 dat2 CE 0 SCLK 0 CE 1 发送地址 for i 8 i 0 i 循环8次移位 SCLK 0 temp addr DIO bit temp 每次传输低字节 addr 1 右移一位 SCLK 1 读取数据 for i 8 i 0 i ACC 7 DIO SCLK 1 ACC 1 SCLK 0 CE 0 dat1 ACC dat2 dat1 16 数据进制转换 dat1 dat1 16 十六进制转十进制 dat1 dat1 dat2 10 return dat1 初始化 DS1302 void Initial void Write1302 WRITE PROTECT 0X00 禁止写保护 Write1302 WRITE SECOND 0 x56 秒位初始化 Write1302 WRITE MINUTE 0 x34 分钟初始化 Write1302 WRITE HOUR 0 x12 小时初始化 Write1302 WRITE PROTECT 0 x80 允许写保护 附录附录3 3 课题程序清单课题程序清单 duan 0 0 duan 0 5 依次存放的是年月日 时分秒 开始时间存于 24c02 的 0 x10 0 x15 单元 关闭时间存于 0 x20 0 x25 单 include reg52 h include math h include intrins h include clock h include eeprom h define uchar unsigned char define uint unsigned int define M 100 define N 50 define D 130 define U 200 define ON 0 define OFF 1 sbit led cs P1 1 sbit clk P2 5 sbit dat P2 6 sbit key1 P0 7 sbit key2 P0 6 sbit key3 P0 5 sbit key4 P0 4 sbit key5 P0 3 sbit key cs P2 7 sbit jdq P1 5 0 9 a b c d e g p i d t s c u black 0 L p h uchar code led code 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xd8 0 x80 0 x90 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xbf 0 x7f 0 x8c 0 xf9 0 xa1 0 x87 0 x92 0 xc6 0 xa1 0 xff 0 xc0 0 xc7 0 x8c 0 x89 0 xbf 0 xa3 0 xa7 0 x87 0 x86 0 xb7 o c t E open close 30 31 32 uchar code led code 0 x03 0 x9f 0 x25 0 x0d 0 x99 0 x49 0 x41 0 x1b 0 x01 0 x09 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xbf 0 x7f 0 x8c 0 xf9 0 xa1 0 x87 0 x92 0 xc6 0 xa1 0 xff 0 xc0 0 xc7 0 x8c 0 x89 0 xbf 0 xc5 0 xe5 0 xe1 0 x61 0 xed o c t E open close 30 31 32 uchar code bit cs 0 xff 0 xff 0 xff 0 xef 0 xf7 0 xfb 0 xfd 0 xfe bit alte uchar i j uchar shift 3 next gene 8 uchar idata sec 05 ss key value char idata middle uchar idata duan 3 6 duan 用来存放设置的各工作时段 uchar idata addr uchar idata sec func void dis 1302 void display void scankey void dis time void Wx 164 uchar m uchar i for i 0 i 1 void delay uint nn while nn void dlms uchar nn while nn display void timer1 void interrupt 3 uchar tt if tt 30 tt 0 sec 05 sec 15 second void dlms 1302 uint nn while nn dis 1302 void dis 1302 void uchar i pp P0 0 xff for i 0 i 8 i switch i case 0 Wx 164 0 x7f break case 1 Wx 164 0 xbf break case 2 if shift 0 pp if ppD else if pp U pp 0 else Wx 164 0 xdf break case 3 if shift 0 pp if ppD else if pp U pp 0 else Wx 164 0 xef break case 4 if shift 1 pp if ppD else if pp U pp 0 else Wx 164 0 xf7 break case 5 if shift 1 pp if ppD else if pp U pp 0 else Wx 164 0 xfb break case 6 if shift 2 pp if ppD else if pp U pp 0 else Wx 164 0 xfd break case 7 if shift 2 pp if ppD else if pp U pp 0 else Wx 164 0 xfe break P0 led code gene i delay M P0 0 xff Wx 164 0 xff void display void uchar i P0 0 xff for i 0 i20 tt 0 sec 05 sec void key cl void if key value 2 shift if shift 2 shift 0 middle duan func shift next gene 2 shift 2 middle 10 gene 2 shift 3 middle 10 dlms 1302 50 else if key value 3 next 0 表示输入年月日 next 3 表示输入时分秒 if sec 05 5 sec 05 5 5 ss 25 sec 05 2 11 middle duan func shift next middle if shift 0 if next 0 if middle 99 middle 0 else if next 3 if middle 23 middle 0 if shift 1 if next 0 if middle 12 middle 1 else if next 3 if middle 59 middle 0 if shift 2 if next 0 if duan func 1 2 if middle 29 middle 1 else if duan func 1 4 duan func 1 6 duan func 1 9 duan func 1 11 if middle 30 middle 1 else if middle 31 middle 1 else if next 3 if middle 59 middle 0 duan func shift next middle gene 2 shift 2 middle 10 gene 2 shift 3 middle 10 for i 0 i5 sec 05 5 5 ss 25 sec 05 2 11 middle duan func shift next middle if shift 0 if next 0 if middle 0 middle 99 else if next 3 if middle 0 middle 23 if shift 1 if next 0 if middle 1 middle 12 else if next 3 if middle 0 middle 59 if shift 2 if next 0 if duan func 1 2 if middle 1 middle 29 else if duan func 1 4 duan func 1 6 duan func 1 9 duan func 1 11 if middle 1 middle 30 else if middle 1 middle 31 else if next 3 if middle 0 middle 59 duan func shift next middle gene 2 shift 2 middle 10 gene 2 shift 3 middle 10 for i 0 i ss i dis 1302 此句相当于防抖动 end if key value 4 gene 2 shift 2 duan func shift next 10 gene 2 shift 3 duan func shift next 10 dis 1302 void write 1302 v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年医师定期考核模拟试题附完整答案详解(名师系列)
- 2025年度百色平果市马头镇卫生院招聘编外卫生专业技术人员考前自测高频考点模拟试题含答案详解(新)
- 酒店礼仪电子培训
- 福建省梅列第一实验学校2026届九年级英语第一学期期末学业质量监测试题含解析
- 2026届云南省玉溪市化学九上期末预测试题含解析
- 2026届保定市重点中学九年级英语第一学期期末联考试题含解析
- 2026届北京市清华大附属中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 再生障碍性贫血护理新进展
- 互联网金融浅析
- 2026届北京四十四中学化学九年级第一学期期末调研模拟试题含解析
- 2025年芜湖市鸠江区医疗卫生事业单位公开招聘工作人员22名考试参考题库及答案解析
- 2025年康复医学老年康复护理常规操作规范考核试卷答案及解析
- 青春不越界+法制伴我行主题班会课件-2025-2026学年上学期
- 2025年高二上语文(统编版选择性必修上)第二单元检测(后附答案)
- 村干部笔试试题及答案
- 2025年中国兵器工业集团校园招聘考试题库及备考指南
- 小学二年级上册心理健康教案(适合北京教育出版社)
- 房产代持协议
- CNAS和CMA需要编制的表单
- 高档写字楼物业管理工作手册房地产2020
- 医院窗口服务礼仪培训PPT课件(最新)
评论
0/150
提交评论