电子万年历系统_第1页
电子万年历系统_第2页
电子万年历系统_第3页
电子万年历系统_第4页
电子万年历系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

常州信息职业技术学院电子与电气工程学院 毕业设计论文 常州信息职业技术学院 学生毕业设计 论文 报告 系 别 电子与电气学院 专 业 应用电子 班 号 应电 094 学 生 姓 名 黄 天 学 生 学 号 0906043415 设计 论文 题目 电子万年历系统 指 导 教 师 张 素 琴 设 计 地 点 常州信息职业技术学院 起 迄 日 期 2011 9 8 至 2011 11 8 常州信息职业技术学院电子与电气工程学院 毕业设计论文 毕毕业业设设计计 论论文文 任任务务书书 业专业专 应用电子应用电子 班级班级 应电应电 094 姓名姓名 梁天梁天 一 课题名称 电子万年历系统 二 主要技术指标 显示年 月 日 时 分等日历信息 日期和时间均可以调整 数据传送采用 I2C 总线方式 选择数码管及按键完成输入 输出功能 三 工作内容和要求 以 51 系列单片机位基础 利用单片机和其他数字集成芯片来 共同实现万年历功能 通过阅读和学习相关资料 设计万年历并进行需求分析 利 用单片机及各种芯片完成硬件系统的设计 四 主要参考文献 1 李广弟 朱月秀 单片机基础 M 北京 北京航空 航天大学出版社 2001 8 36 85 2 吴金戌 沈庆阳 8051 单片机实践与应用 M 北京 清华大出 版社 2003 12 26 38 3 楼然苗 李光飞 MCS 51 系列单片机设计实例 M 北京 北京航天航空大学出版社 2001 3 75 83 4 王伟 高性能 低功耗带RAM实时时钟芯片DS1302 上 M 电子世界 第一期 1995 26 35 5 刘利 液晶显示原理 M 上海 电子工业出版社 2002 5 52 70 学 生 签名 年 月 日 指 导 教师 签名 年 月 日 教研室主任 签名 年 月 日 系 主 任 签名 年 月 日 常州信息职业技术学院电子与电气工程学院 毕业设计论文 毕业设计 论文 开题报告毕业设计 论文 开题报告 设计 论文 题设计 论文 题 目目 电子万年历系统 一 选题的背景和意义 年历 是指一年的月份 星期 日期 节气等印刷品 人们习惯把 单张年历 月历 日历 都划入了广义的年历范畴内 以前的年历发展成现代电子万年历 他一开始是采用数字电路实现的 电路复杂 精确度差 每天都要调时 由于数字集成电 路的发展和石英晶体震荡器的广泛使用 使得其电路越来越简单 精度也越来越高 现代 的电子万年历一般采用集成芯片和软件结合实现 电路简单 制作方便 给人们的生活带 来了极大的便利 它已经成为我们生活中不可缺少的家居用品 二 课题研究的主要内容 本设计以AT89S52单片机为核心 构成单片机控制电路 用液晶显 示阳历年 月 日 星期 时 分 秒和阴历年 月 日 人机接口由三个按键来实现 用这三个按键对时间 日期可调 并可对闹铃开关进行设置 软件控制程序实现所有的功 能 整机电路使用 5V稳压电源 可稳定工作 其软硬件设计简单 时间记录准确 可广泛 应用于长时间连续显示的系统中 三 主要研究 设计 方法论述 1 自己课后查找相关书籍 2 通过网上搜寻相关资料 3 不会的向同学和老师进行咨询 4 通过指导老师的专业指导 常州信息职业技术学院电子与电气工程学院 毕业设计论文 四 设计 论文 进度安排 时间 迄止日期 工 作 内 容 2011 9 8 2011 9 15主要的任务是完成开题报告 2011 9 16 2011 9 30主要的任务是完成总体方案设计 2011 10 1 2011 10 8主要的任务是要完成硬件的设计 2011 10 9 2011 10 20主要的任务是要完成软件的设计 2011 10 21 2011 10 30主要完成的是系统的调试 测试 论文的修改和定稿 2011 11 1 2011 11 8修改 定稿和准备答辩 五 指导教师意见 指导教师签名 年 月 日 六 系部意见 系主任签名 年 月 日 常州信息职业技术学院电子与电气工程学院 毕业设计论文 电子万年历系统的设计电子万年历系统的设计 目录目录 摘要摘要 AbstractAbstract 第第 1 1 章章 前言前言 1 第第 2 2 章章 项目设计整体方案项目设计整体方案 2 第第 3 3 章章 万年历硬件系统设计与实现万年历硬件系统设计与实现 3 3 1 万年历硬件系统设计 3 3 1 1 AT89S52 单片机介绍 3 3 1 2 日历生成芯片 DS1302 5 3 1 3 AT24C02 存储电路 9 3 1 4 液晶显示器的选择 11 3 1 5 按键与闹铃设计 13 3 2 万年历系统硬件总结 13 第第 4 章章 万年历软件设计与实现万年历软件设计与实现 15 4 1 万年历系统日历程序设计 15 4 1 1 万年历系统阳历系统设计 15 4 1 2 万年历系统阴历系统设计 16 4 2 万年历系统时间调整程序设计 17 第第 5 章章 结束语结束语 19 参考文献参考文献 答谢词答谢词 常州信息职业技术学院电子与电气工程学院 毕业设计论文 摘摘 要要 年历 是指一年的月份 星期 日期 节气等印刷品 人们习惯把单张年 历 月历 日历 都划入了广义的年历范畴内 几十年来 年历的发展见证了 科技的发展和时代的变迁 年历工艺的进步显示了科技的发展和人民生活水平 的提高 随着科技的发展 以前的年历发展成现代电子万年历 他一开始是采用数 字电路实现的 电路复杂 精确度差 每天都要调时 由于数字集成电路的发 展和石英晶体震荡器的广泛使用 使得其电路越来越简单 精度也越来越高 现代的电子万年历一般采用集成芯片和软件结合实现 电路简单 制作方便 给人们的生活带来了极大的便利 它已经成为我们生活中不可缺少的家居用品 本设计以AT89S52单片机为核心 构成单片机控制电路 用液晶显示阳历年 月 日 星期 时 分 秒和阴历年 月 日 人机接口由三个按键来实现 用这三个按键对时间 日期可调 并可对闹铃开关进行设置 软件控制程序实 现所有的功能 整机电路使用 5V稳压电源 可稳定工作 其软硬件设计简单 时间记录准确 可广泛应用于长时间连续显示的系统中 关键词 关键词 年历 AT89S52单片机 数字集成电路 单片机控制电路 液晶 常州信息职业技术学院电子与电气工程学院 毕业设计论文 ABSTRACTABSTRACT Calendar it is to point to a year of the months and weeks date such as solar prints People used to a single calendar calendar calendar all of the generalized delimit calendar terms For decades the development of the calendar witness to the development of science and technology and the changes of The Times Calendar the technological progress shows the development of science and technology and the improvement of people s living standard With the development of science and technology the previous calendar developed into a modern electronic calendar he began with a digital circuit is the implementation complex circuit the accuracy is poor everyday want to adjust due to the development of the digital integrated circuit and quartz crystal oscillator the extensive use of making it more and more simple circuit more and more is also high precision modern electronic calendar generally USES integrated chips and software combines realization circuit is simple make convenient to the life of people to a great convenience it has become us to live in the household articles for use of indispensable This design with AT89S52 SCM as the core constitute a single chip microcomputer control circuit with liquid crystal display YangLiNian month day week when minutes and seconds and celebrated on the fifteenth day month day The man machine interface by three button to realize with the three keys to time date adjustable and can be used for alarm switch Settings Software control program realization all functions The circuit use 5 V voltage stabilizer steady job The software and hardware design simple time to record accurate and can be widely used in long time continuous display of the system Keywords Calendar AT89S52 SCM digital integrated circuit single chip 常州信息职业技术学院电子与电气工程学院 毕业设计论文 microcomputer control circuit liquid crystal 常州信息职业技术学院电子与电气工程学院 毕业设计论文 1 第 1 章 前言 在日新月异的 21 世纪里 家用电子产品得到了迅速发展 许多家电设备都 趋于人性化 智能化 这些电器设备大部分都含有 CPU 控制器或者是单片机 单片机以其高可靠性 高性价比 低电压 低功耗等一系列优点 近几年得到 迅猛发展和大范围推广 广泛应用于工业控制系统 通讯设备 日常消费类产 品和玩具等 并且已经深入到工业生产的各个环节以及人民生活的各个方面 如车间流水线控制 自动化系统等 智能型家用电器 冰箱 空调 彩电 等 用单片机来控制的小型家电产品具有便携实用 操作简单的特点 本文设计的电子万年历属于小型智能家用电子产品 利用单片机进行控制 实时时钟芯片进行记时 外加掉电存储电路和显示电路 可实现时间的调整和 显示 电子万年历既可广泛应用于家庭 也可应用于银行 邮电 宾馆 医院 学校 企业 商店等相关行业的大厅 以及单位会议室 门卫等场所 因而 此设计具有相当重要的现实意义和实用价值 常州信息职业技术学院电子与电气工程学院 毕业设计论文 2 第 2 章 项目设计整体方案 以 AT89S52 单片机为核心 构成单片机控制电路 用液晶显示阳历年 月 日 星期 时 分 秒和阴历年 月 日 人机接口由三个按键来实现 用这 三个按键对时间 日期可调 并可对闹铃开关进行设置 软件控制程序实现所 有的功能 图 2 1 整体设计框图 人机接口 显示电路 软件控制程序 电源电路 单片机控制电路 常州信息职业技术学院电子与电气工程学院 毕业设计论文 3 第第 3 3 章章 万年历硬件系统设计与实现万年历硬件系统设计与实现 3 13 1 万年历硬件系统设计万年历硬件系统设计 3 3 1 1 1 1 AT89S52AT89S52 单片机介绍 AT89S52 具有下列主要性能 8KB 可改编程序 Flash 存储器 可经受 1000 次的写入 擦除周期 全静态工作 0Hz 24MHz 三级程序存储器保密 128 8 字节内部 RAM 32 条可编程 I O 线 2 个 16 位定时器 计数器 6 个中断源 可编程串行通道 片内时钟振荡器 AT89S52 单片机的管脚说明如图 3 1 所示 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P3 6 WR 16 P3 7 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 P2 7 A15 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 AD7 32 P0 6 AD6 33 P0 5 AD5 34 P0 4 AD4 35 P0 3 AD3 36 P0 2 AD2 37 P0 1 AD1 38 P0 0 AD0 39 VCC 40 图 3 1AT89S52 单片机管脚说明 常州信息职业技术学院电子与电气工程学院 毕业设计论文 4 1 主要电源引脚 VCC 电源端 GND 接地端 2 外接晶体引脚 XTAL1 和 XTAL2 XTAL1 接外部晶体的一个引脚 在单片机内部 它是构成片内振荡器的 反相放大器的输入端 当采用外部振荡器时 该引脚接收振荡器的信号 既把 此信号直接接到内部时钟发生器的输入端 XTAL2 接外部晶体的另一个引脚 在单片机内部 它是上述振荡器的反 相放大器的输出端 采用外部振荡器时 此引脚应悬浮不连接 3 控制或与其它电源复用引脚 RST ALE PROG PSEN 和 EA VPP RST 复位输入端 当振荡器运行时 在该引脚上出现两个机器周期的 高电平将使单片机复位 ALE PROG 当访问外部存储器时 ALE 地址锁存允许 的输出用于锁 存地址的低位字节 即使不访问外部存储器 ALE 端仍以不变的频率 此频率 为振荡器频率的 1 6 周期性地出现正脉冲信号 因此 它可用作对外输出的 时钟 或用于定时目的 然而要注意的是 每当访问外部数据存储器时 将跳 过一个 ALE 脉冲 在对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG PSEN 程序存储允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89S52 LV52 由外部程序存储器取指令 或常数 时 每个机器周期两次 PSEN 有效 既输出 2 个脉冲 但在此期间内 每当访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 外部访问允许端 要使 CPU 只访问外部程序存储器 地址为 0000H FFFFH 则 EA 端必须保持低电平 接到 GND 端 当 EA 端保持高电平 接 VSS 端 时 CPU 则执行内部程序存储器中的程序 4 输入 输出引脚 P0 0 P0 7 P1 0 P1 7 P2 0 P2 7 和 P3 0 P3 7 P0 端口 P0 0 P0 7 P0 是一个 8 位漏极开路型双向 I O 端口 作 为输出口用时 每位能以吸收电流的方式驱动 8 个 TTL 输入 对端口写 1 时 又可作高阻抗输入端用 P1 端口 P1 0 P1 7 P1 是一个带有内部上拉电阻的 8 位双向 I O 端 口 P1 的输出缓冲器可驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写 1 时 通过内部的上拉电阻把端口拉到高电位 这时可用作输入口 作输入口 时 因为有内部的上拉电阻 那些被外部信号拉低的引脚会输出一个电流 P2 端口 P2 0 P2 7 P2 是一个带有内部上拉电阻的 8 位双向 I O 端 口 P2 的输出缓冲器可驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写 1 时 通过内部的上拉电阻把端口拉到高电位 这时可用作输入口 P2 作输入 口使用时 因为有内部的上拉电阻 那些被外部信号拉低的引脚会输出一个电 流 P3 端口 P3 0 P3 7 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于外部下拉为低电平 P3 口将输出电流 这是由于 上拉的缘故 常州信息职业技术学院电子与电气工程学院 毕业设计论文 5 P3 口也可作为 AT89S52 的一些特殊功能 这些特殊功能见图 3 2 端口引脚 兼 用 功 能 P3 0RXD 串行输入口 P3 1TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4T0 定时器 0 的外部输入 P3 5T1 定时器 1 的外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 图 3 2 AT89S52 的特殊功能 3 1 23 1 2 日历生成芯片 DS1302DS1302 采用 DS1302 作为记录测控系统中的数据记录 其软硬件设计简单 时间记 录准确 既避免了连续记录的大工作量 又避免了定时记录的盲目性 给连续 长时间的测量 控制系统的正常运行及检查都来了很大的方便 可广泛应用于 长时间连续的测控系统中 在测量控制系统中 特别是长时间无人职守的测控 系统中 经常需要记录某些具有特殊意义的数据及其出现的时间 记录及分析 这些特殊意义的数据 对测控系统的性能分析及正常运行具有重要的意义 传 统的数据记录方式是隔时采样或定时采样 没有具体的时间记录 因此只能记 录数据而无法准确记录其出现的时间 若采用单片机计时 一方面需要采用计 数器 占用硬件资源 另一方面需要设置中断 查询等 同样耗费单片机的资 源 而且某些测控系统可能不允许 而在系统中采用 DS1302 则能很好地解决这 个问题 1 DS1302 的性能特性 实时时钟 可对秒 分 时 日 周 月以及带闰年补偿的年进行计数 用于高速数据暂存的 31 8 位 RAM 最少引脚的串行 I O 2 5 5 5V 电压工作范围 常州信息职业技术学院电子与电气工程学院 毕业设计论文 6 2 5V 时耗电小于 300nA 用于时钟或 RAM 数据读 写的单字节或多字节 脉冲方式 数据传送方式 简单的 3 线接口 可选的慢速充电 至 VCC1 的能力 DS1302 时钟芯片包括实时时钟 日历和 31 字节的静态 RAM 它经过一个简 单的串行接口与微处理器通信 实时时钟 日历提供秒 分 时 日 周 月和 年等信息 对于小于 31 天的月和月末的日期自动进行调整 还包括闰年校正的 功能 时钟的运行可以采用 24h 或带 AM 上午 PM 下午 的 12h 格式 采 用三线接口与 CPU 进行同步通信 并可采用突发方式一次传送多个字节的时钟 信号或 RAM 数据 DS1302 有主电源 后备电源双电源引脚 VCC1 在单电源与电池 供电的系统中提供低电源 并提供低功率的电池备份 VCC2在双电源系统中提 供主电源 在这种运用方式中 VCC1 连接到备份电源 以便在没有主电源的情 况下能保存时间信息以及数据 DS1302 由 VCC1或 VCC2中较大者供电 当 VCC2大 于 VCC1 0 2V 时 VCC2给 DS1302 供电 当 VCC2小于 VCC1时 DS1302 由 VCC1供电 2 DS1302 数据操作原理 DS1302 在任何数据传送时必须先初始化 把 RST 脚置为高电平 然后把 8 位地址和命令字装入移位寄存器 数据在 SCLK 的上升沿被输入 无论是读周期 还是写周期 开始 8 位指定 40 个寄存器中哪个被访问到 在开始 8 个时钟周期 把命令字节装入移位寄存器之后 另外的时钟周期在读操作时输出数据 在写 操作时写入数据 时钟脉冲的个数在单字节方式下为 8 加 8 在多字节方式下 为 8 加字节数 最大可达 248 字节数 如果在传送过程中置 RST 为低电平 则会终止本次数据传送 并且 I O 引 脚变为高阻态 上电运行时 在 VCC 2 5V 之前 RST 脚必须保持低电平 只 有在 SCLK 为低电平时 才能将 RST 置为高电平 DS1302 的管脚图如图 3 3 所 示 DS1302 的各个引脚功能如图 3 4 所示 常州信息职业技术学院电子与电气工程学院 毕业设计论文 7 Vcc2 1 X1 2 X2 3 GND 4 RST 5 I O 6 SCLK 7 Vcc1 8 DS1302U3 图 3 3 DS1302 的管脚图 引脚号引脚名称功能 1VCC2主电源 2 3X1 X2振荡源 外接 32768HZ 晶 振 4GND地线 5RST复位 片选线 6I O串行数据输入 输出端 双 向 7SCLK串行数据输入端 8VCC1后备电源 图 3 4 DS1302 的各个引脚功能 DS1302 共有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 其日历 时间寄存器及其控制字见图 3 5 其中奇数为读 操作 偶数为写操作 常州信息职业技术学院电子与电气工程学院 毕业设计论文 8 命令字各位内容寄存器 名写操作读操作 取值 范围76543210 秒寄存器80H81H00 59CH10SECSEC 分钟寄存 器 82H83H00 59010MINMIN 小时 寄存器 84H85H 01 12 或 00 23 12 24 0 10 AP HRHR 日期 寄存器 86H87H 01 28 29 30 31 0010DATEDATE 月份寄存 器 88H89H01 12000IOMMONTH 周日寄存 器 8AH8BH01 0700000DAY 年份寄存 器 8CH8DH00 9910YEARYEAR 图 3 5 DS1302 的日历 时钟寄存器及其控制字 时钟暂停 秒寄存器的位 7 定义位时钟暂停位 当它为 1 时 DS1302 停止 振荡 进入低功耗的备份方式 通常在对 DS1302 进行写操作时 如进入时钟调 整程序 停止振荡 当它为 0 时 时钟将开始启动 AM PM 12 24 小 时方式 小 时寄存器的位 7 定义为 12 或 24 小 时方式 选择位 它为高电平时 选择 12 小 时方式 在此方式下 位 5 是 AM PM 位 此位是高电平时表示 PM 低电平表示 AM 在 24 小 时方式下 位 5 为第二个 10 小 时位 20 23h 常州信息职业技术学院电子与电气工程学院 毕业设计论文 9 实时时钟芯片 DS1302 采用串行数据传输 可为掉电保护电源提供可编程的 充电功能 也可以关闭充电功能 芯片采用 32768Hz 晶振 要特别说明的是 备用电源 BT1 可以用电池或超级电容 10 万 F 以上 虽然 DS1302 在主电源 掉电后耗电很小 但如果要长时间保证时钟正常 最好选用小型充电电池 如 果断电时间较短 几小时或几天 可以用漏电较小的普通电解电容代替 100 F 就可以保证 1 小时的正常走时 DS1302 在第一次加电后 需进行初 始化操作 初始化后就可以按正常方法调整时间及闹铃 DS1302 的时钟电路如 图 3 6 所示 Vcc2 1 X1 2 X2 3 GND 4 RST 5 I O 6 SCLK 7 Vcc1 8 DS1302U3 32768Hz Y1 5V 3V BT1 P3 2 P3 3 P3 4 图 3 6 DS1302 时钟电路 3 1 3 AT24C02 存储电路 1 AT24C02 管脚介绍 AT24C02 是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM 它是内含 256 8 位存储空间 具有工作电压宽 2 5 5 5V 擦写次数多 大于 10000 次 写 入速度快 小于 10ms 等特点 AT24C02 的 1 2 3 脚是三条地址线 用于确定芯片的硬件地址 第 8 脚 和第 4 脚分别为正 负电源 第 5 脚 SDA 为串行数据输入 输出 数据通过这条 双向 I2C 总线串行传送 第 6 脚 SCL 为串行时钟输入线 SDA 和 SCL 都需要和正 电源间各接一个 4 7K 的电阻上拉 I2C 总线是一种用于 I2C 器件之间连接的二线制总线 它通过 SDA 串行数据线 及 SCL 串行时钟线 两根线在连到总线上的器件之间传送信息 并根据地址识别每个器件 不管是单片机 存储器 LCD 驱动器还是键盘接口 2 AT24C02 的特性 I2C 总线的基本结构 采用 I2C 总线标准的单片机或 I2C 器件 其内部不仅有 I2C 接口电路 而且 将内部各单元电路按功能划分为若干相对独立的模块 通过软件寻址实现片选 常州信息职业技术学院电子与电气工程学院 毕业设计论文 10 减少了器件片选线的连接 CPU 不仅能通过指令将某个功能单元电路挂靠或摘 离总线 还可对该单元的工作状况进行检测 从而实现对硬件系统的既简单又 灵活的扩展与控制 双向传输的接口特性 传统的单片机串行接口的发送和接收一般都各用一条线 而 I2C 总线则根 据器件的功能通过软件程序使其可工作于发送或接收方式 当某个器件向总线 上发送信息时 它就是发送器 而当其从总线上接收信息时 又成为接收器 主器件用于启动总线上传送数据并产生时钟以开放传送的器件 此时任何被寻 址的器件均被认为是从器件 I2C 总线的控制完全由挂接在总线上的主器件送出 的地址和数据决定 总线上发送和接收的关系不是一成不变的 而是取决于此时数据传送的方 向 SDA 和 SCL 均为双向 I O 线 通过上拉电阻接正电源 当总线空闲时 两 根线都是高电平 连接总线的器件的输出级必须是集电极或漏极开路 以具有 线 与 功能 I2C 总线上的时钟信号 在 I2C 总线上传送信息时的时钟同步信号是由挂接在 SCL 时钟线上的所有 器件的逻辑 与 完成的 SCL 线上由高电平到低电平的跳变将影响到这些器 件 一旦某个器件的时钟信号下跳为低电平 将使 SCL 线一直保持低电平 使 SCL 线上的所有器件开始低电平期 此时 低电平周期短的器件的时钟由低至 高的跳变并不能影响 SCL 线的状态 于是这些器件将进入高电平等待的状态 当所有器件的时钟信号都上跳为高电平时 低电平期结束 SCL 线被释放 返回高电平 即所有的器件都同时开始它们的高电平期 其后 第一个结束高 电平期的器件又将 SCL 线拉成低电平 这样就在 SCL 线上产生一个同步时钟 可见 时钟低电平时间由时钟低电平期最长的器件确定 而时钟高电平时间由 时钟高电平期最短的器件确定 数据的传送 在数据传送过程中 必须确认数据传送的开始和结束 当时钟线 SCL 为高电平 时 数据线 SDA 由高电平跳变为低电平定义为 开始 信号 当 SCL 线为高电 平时 SDA 线发生低电平到高电平的跳变为 结束 信号 开始和结束信号都 是由主器件产生 在开始信号以后 总线即被认为处于忙状态 在结束信号以 后的一段时间内 总线被认为是空闲的 I2C 总线的数据传送格式是 在 I2C 总线开始信号后 送出的第一个字节数 据是用来选择从器件地址的 其中前 7 位为地址码 第 8 位为方向位 R W 方 向位为 0 表示发送 即主器件把信息写到所选择的从器件 方向位为 1 常州信息职业技术学院电子与电气工程学院 毕业设计论文 11 表示主器件将从从器件读信息 开始信号后 系统中的各个器件将自己的地址 和主器件送到总线上的地址进行比较 如果与主器件发送到总线上的地址一致 则该器件即为被主器件寻址的器件 其接收信息还是发送信息则由第 8 位 R W 确定 在 I2C 总线上每次传送的数据字节数不限 但每一个字节必须为 8 位 而且 每个传送的字节后面必须跟一个认可位 第 9 位 也叫应答位 ACK 每次都 是先传最高位 通常从器件在接收到每个字节后都会做出响应 即释放 SCL 线 返回高电平 准备接收下一个数据字节 主器件可继续传送 如果从器件正在 处理一个实时事件而不能接收数据时 例如正在处理一个内部中断 在这个中 断处理完之前就不能接收 I2C 总线上的数据字节 可以使时钟 SCL 线保持低电 平 从器件必须使 SDA 保持高电平 此时主器件产生 1 个结束信号 使传送异 常结束 迫使主器件处于等待状态 当从器件处理完毕时将释放 SCL 线 主器 件继续传送 当主器件发送完一个字节的数据后 接着发出对应于 SCL 线上的一个时钟 ACK 认可位 在此时钟内主器件释放 SDA 线 一个字节传送结束 而从器件 的响应信号将 SDA 线拉成低电平 使 SDA 在该时钟的高电平期间为稳定的低电 平 从器件的响应信号结束后 SDA 线返回高电平 进入下一个传送周期 AT24C02 的存储电路如图 3 7 A0 1 A1 2 A2 3 GND 4 SDA 5 SCL 6 WP 7 VCC 8 U2 AT24C02 5V R1 4 7K R2 4 7K P3 1 P3 0 图 3 7 24C02 存储电路 3 1 4液晶显示器的选择 显示器部分是由 HD61202 液晶显示控制驱动器和 HY12864 液晶显示器组 成的 HD61202 液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制 常州信息职业技术学院电子与电气工程学院 毕业设计论文 12 器 它可直接与 8 位微处理器相连 它可与 HD61203 配合对液晶屏进行行 列 驱动 HD61202 是一种带有列驱动输出的液晶显示控制器 它可与行驱动器 HD61203 配合使用 组成液晶显示驱动控制系统 1 内藏 64 64 4096 位显示 RAM RAM 中每位数据对应 LCD 屏上一个 点的亮 暗状态 2 HD61202 是列驱动器 具有 64 路列驱动输出 3 HD61202 读 写操作时序与 68 系列微处理器相符 因此它可直接 与 68 系列微处理器接口相连 4 HD61202 的占空比为 1 32 1 64 5 HD61202 的引脚功能如图 3 6 引脚符号状态引脚名称功能 CS1 CS2 CS3输入芯片片选端 CS1 和 CS2 低电平选通 CS3 高电 平选通 E输入读写使能信号 在 E 下降沿 数据被锁存 写 入 HD61202 在 E 高电平期间 数据 被读出 R W输入读写选择信号R W 1 为读选通 R W 0 为写选通 RS输入 数据 指令选 择信号 RS 1 为数据操作 RS 0 为写指令或读状态 DB0 DB7三态数据总线 RST输入复位信号 复位信号有效时 关闭液晶显示 使显示起始行为 0 RST 可跟 MPU 相连 由 MPU 控制 也可直接接 VDD 使之不起作用 图 3 6 HD61202 的引脚功能 在 HY 12864 中 两片 HD61202 的 ADC 均接高电平 RST 也接高电平 这样 在使用 HY 12864 时就不必再考虑这两个引脚的作用 对于 HY 12864 只要供 给 VDD VSS 和 V0 即可 HD61202 和 HD61203 所需的电源将由模块内部电路在 VDD 和 V0 VSS 的作用下产生 常州信息职业技术学院电子与电气工程学院 毕业设计论文 13 液晶模块电路如图 3 7 所示 VSS 接地 数字电源 VDD 接 5V 对比度控 制电压 V0 接电位器 可通过调节电位器调整液晶亮度 数据 指令选择信号 RS 接单片机 P2 0 口 读写选择信号 R W 接单片机 P2 1 口 单片机读 写选通 信号 RD WR 通过与非门接液晶的读写使能信号 E DB0 DB7 分别接单片机的 P0 0 P0 7 口 芯片 1 芯片 2 的片选分别接单片机的 P2 2 P2 3 口 复位端 RST 背光正电源 LEDA 接 5V 液晶驱动电压 VEE 背光负电源 LEDK 接地 VSS 1 VDD 2 V0 3 RS 4 R W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 CS1 15 CS2 16 RST 17 VEE 18 LEDK 19 LEDA 20 LCM HY128X64 5V P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 3 P2 2 R4 10K U4A 74ALS00 WR RD 5V 图 3 7 液晶模块电路 3 1 53 1 5 按键与闹铃设计 采用按键 3 个 分别与单片机的 P1 7 P1 6 P1 5 口相连 分别对应光标 移动 时间 日期调整 退出 闹铃开关键的功能 当闹铃显示 关 时 闹铃不起作用 当闹铃显示 开 时 设定闹铃时 间 闹铃时间只可设定时和分 当前时间不断与设定的闹铃时间比较 不相等 时不产生任何现象 一旦相等 P3 5 输出一个高电平使三极管导通 从而使蜂 鸣器工作 闹铃起作用 闹铃电路如图 3 8 所示 常州信息职业技术学院电子与电气工程学院 毕业设计论文 14 SPEAKER LS1 4 7K R3 8050 Q1 5V T1 图 3 8 闹铃电路 3 23 2万年历系统硬件部分总结万年历系统硬件部分总结 通过 AT89S52 单片机 日历生成芯片 DS1302 的 AT24C02 存电路的设 计 液晶显示电路的设计 按键与闹铃电路设计介绍 将各个部分进行整合 最终得到万年历系统硬件部分 万年历系统设计原理图如图 3 9 常州信息职业技术学院电子与电气工程学院 毕业设计论文 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 5 T1 15 P3 6 WR 16 P3 7 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 P2 7 A15 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 AD7 32 P0 6 AD6 33 P0 5 AD5 34 P0 4 AD4 35 P0 3 AD3 36 P0 2 AD2 37 P0 1 AD1 38 P0 0 AD0 39 VCC 40 U1 AT89C51 Vcc2 1 X1 2 X2 3 GND 4 RST 5 I O 6 SCLK 7 Vcc1 8 U3 DS1302 Y1 12MHz A0 1 A1 2 A2 3 GND 4 SDA 5 SCL 6 WP 7 VCC 8 U2AT24C02 C1 22P C2 22P Y1 32768Hz VSS 1 VDD 2 V0 3 RS 4 R W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 CS1 15 CS2 16 RST 17 VEE 18 LEDK 19 LEDA 20 LCM HY128X64 5V 5V 5V 5V DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 RS RS RW RW CE CS2 CS1 CS1 CS2 BT1 3V R1 4 7K R2 4 7K S1S2S3 LS1 SPEAKER R4 10K U4A 74ALS00 WR WR RD RD CE 5V R3 4 7K Q1 8050 5V T1 T1 C3 10U 5V 图 3 9 万年历系统设计原理图 常州信息职业技术学院电子与电气工程学院 毕业设计论文 16 第第 4 4 章章 万年历软件设计与实现万年历软件设计与实现 4 1 万年历系统日历程序设计万年历系统日历程序设计 4 1 14 1 1 万年历系统阳历系统设计万年历系统阳历系统设计 因为使用了时钟芯片 DS1302 阳历程序只需从 DS1302 各寄存器中读出年 周 月 日 小 时 分 秒等数据 再处理即可 在首次对 DS1302 进行操 作之前 必须对它进行初始化 然后从 DS1302 中读出数据 再经过处理后 送 给显示缓冲单元 阳历程序流程图见图 4 1 所示 图 4 1 阳历程序流程图 开 始 初始化 DS1302 1302 开始振荡 读 24C02 从 1302 中读出年 周 月 日 小 时 分 秒 将 BCD 码高低位分离 送显示缓冲单元 常州信息职业技术学院电子与电气工程学院 毕业设计论文 17 4 1 24 1 2 万年历系统阴历系统设计万年历系统阴历系统设计 先要根据当前阳历的日期 算出阳历为该年中的第几天 图 4 2 为计算阳 历中任何一天在该年中为第几天的程序流程图 置阳历总天数为 0 当前月为 1 月 总天数中加入该月天数 月数加 1 与当前月同 总天数中加入号数 当前号数是总天数 计算阳历天数结束 总天数中的数 据为当前日期在阳历年中为第几天 YN N Y 图 4 2 计算阳历天数程序流程图 计算出当前阳历日期为该年中的第几天后 再减去阳历该年春节和元旦的 日差 如果够减 则相减的结果就是阴历在该年中的总第几天了 根据该数据 就可以推算出具体的当前阴历日期 如果不够减 则表示当前阴历年为阳历年 的前一年 当前阴历日期会处于阴历 11 月或 12 月 此时春节和元旦的日差减 去前面计算出的当前阳历日期在阳历年为第几天的数据 其结果表示当前阴历 日期离春节的天数 计算出的阳历天数为该年的第几天 存放在寄存器 R2 和 R3 中 也就是说在用寄存器 R2 和 R3 表示的天数信息中 R2 充当主寄存器 数 据先存满 R2 再存 R3 在整个转换程序中 这里面的数据不能被覆盖 计算出阳历总天数后 先用总天数减去春节和元旦的日差 如果结果为 1 则该天正好是春节 因为春节在元旦之后 在计算春节和元旦的日差时 假 设元旦为 0 天 春节为 n 天 则日差为 n 而前面计算的阳历总天数是该天在 该年中的第几天 是以元旦为 1 而得到的 与计算春节和元旦日差的这样方法 相比 其数值少了 1 所以要在原来本应该以 0 作为该天就是春节的依据的基 常州信息职业技术学院电子与电气工程学院 毕业设计论文 18 础上加 1 所以以 1 作为该天是春节的标志 如果结果小于 1 则阴历应该是 阳历的前一年 如果结果大于 1 说明阳历和阴历为同一年 再根据查表所得 的该年的阴历的闰年和大小月的信息 就可以推算出该天的阴历日期了 4 2 万年历系统时间调整程序设计万年历系统时间调整程序设计 调整时间用三个调整按钮 一个作为移位 控制用 一个作为加用 一个 作为退出调整和闹铃开关用 分别定义为控制按钮 加按钮 退出按钮 在调 整时间过程中 要调整的位与别的位应该有区别 所以增加了闪烁功能 即调 整的位一直在闪烁 直到调整下一位 闪烁原理就是 让要调整的一位每隔一 定的时间熄灭一次 例如间隔时间为 50ms 利用定时器计时 当达到 50ms 溢 出时 就送给该位熄灭符 在下一次溢出时 再送正常显示的值 不断

温馨提示

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

评论

0/150

提交评论