指导检查工作记录表.DOC

电子万年历设计与制作资料

收藏

压缩包内文档预览:
预览图
编号:6180869    类型:共享资源    大小:1.56MB    格式:ZIP    上传时间:2017-12-05 上传人:超****计 IP属地:浙江
3.6
积分
关 键 词:
电子 万年历 设计 制作 资料
资源描述:
电子万年历设计与制作资料,电子,万年历,设计,制作,资料
内容简介:
天津工程师范学院02 级学生毕业设计(论文)中期报告系别 高职部 班级 电气 042 学生姓名 王瑜 指导教师 李杰课题名称:电子万年历设计简述开题以来所做的具体工作、取得的进展及下一步主要工作:2007 学年(1)通过收集整理资料,认真阅读资料,对电子万年历设计有个整体的了解。然后设计方案,对所设计的方案进行分析论证,记下各方案的优缺点,选择比较可取的方案而且电路所用到的器件必须是性价比较高、在市场上比较容易买到的。方案选择完毕后,针对该方案看懂电路的原理,分析整个系统的流程并用框图表示出来,构造出大体框架。然后再分析每个模块电路的具体作用以及可能出现的问题。根据方案选择出元器件后,查找各器件的管脚图及其用法,根据公式计算所用到器件的型号及大小,列元件清单,购买器件。(2)第一阶段:根据上学期整理的资料开始焊接电路,构思整个系统的信号流程和布局工作。对各个模块进行编程,不断修改程序以达到预期要实现的功能。第二阶段:完成所有模块的编程及调试任务,接着统调,在统调的过程中注意电源的正负极以及各模块间的信号是否接好、是否共地、芯片是否装反等问题。(3)取得的进展各模块电路已基本实现,获得的指标与预期的差距不大。(4)下一步的主要工作 尽力解决统调过程中出现的问题,分析产生各种现象的原因。 记下调试过程中各个指标。 整理资料,准备着手写论文。 回想设计的整个过程,准备答辩。学生签字: 年 月 日指导教师的建议与要求:指导教师签字:年 月 日注:本表格同毕业设计(论文)一同装订成册,由所在单位归档保存。天津工程师范学院毕业设计(论文)任务书2007 年 5 月 18 日题 目(包括副标题) 电子万年历设计教师姓名 李杰 系 别 高职部 职 称 副教授学生姓名 王瑜 班 级 电气 042 学 号 29课题成果形式 论文 设计说明书 实物 软件 其它1毕业设计(论文)课题任务的内容和要求(如原始数据、技术要求、工作要求等):1、毕业设计的主要内容:1) 设计并制作电子万年历2) 完成相关的技术文档和毕业设计论文2、毕业设计的主要技术指标1) 显示阳历年、月、日、时、分、秒、星期及阴历年、月、日,能标明是否闰月2) 用液晶进行显示,用按键进行调整3) 实现闹铃功能3、毕业设计的基本要求:1) 完成电子系统的方案设计,技术调试,硬件实现2) 完成技术指标中的各项要求为优秀2毕业设计(论文)工作进度计划:周 次 工作内容第一周、第二周第三周,第四周第五周,第六周第七、八、九周第十、十一、十二周查找资料、设计电路方案论证、购买元件制作电路、程序设计系统制作、整体调试总结论文、准备答辩教研室(学科组)主任签字: 天津工程师范学院毕业设计(论文)前期检查表填表时间:2007 年 6 月 4 日专业班级 电气 042 学生姓名 王瑜 指导教师 李杰 职称 副教授课题名称 电子万年历设计是否属专业内容 属于结合实际程度 紧密结合实际先进性可行性 可行性强选题方面难易程度 适当规范程度 规范主要技术指标是否具体 具体工作量大小 适中图纸及实物要求具体程度 符合要求任务书填写参考文献填写规范程度 规范可行性 是必要性 是先进性 是开题报告或方案论证经济技术分析 是有何建议教研室主任签字: 系主任签字: 毕业设计(论文)开题报告电子万年历设计 系 别: 高职部 专 业: 电气技术 学生姓名: 王瑜 指导教师: 李杰 2007 年 6 月 4 日开题报告填写要求1开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一,应在指导教师指导下,由学生在毕业设计(论文)工作前期完成,经指导教师签署意见、专家组及系主任审查后生效;2开题报告必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,禁止打印在其它纸上后剪贴;3工程设计与软件开发类的开题报告应包括以下内容:(1)主要任务以及主要技术经济指标;(2)设计的国内外现状和发展趋势;(3)研究路线与关键技术;(4)实验条件;(5)进度计划;(6)参考文献等;4科研论文类的开题报告应包括以下内容:(1)研究的目的;(2)研究的国内外现状和发展趋势;(3)主要研究内容与关键问题;(4)拟采用的研究手段;(5)进度计划;(6)参考文献等;5开题报告的撰写应符合科技文献规范,且不少于 2000 字;参考文献应不少于 15 篇,包括科技期刊、教科书、专著等。 毕业设计(论文)开题报告课题题目 电子万年历设计课题类型 工程设计与软件开发类 课题来源 自拟成果形式 实物 同组同学 无开题报告内容(见附页)电子万年历设计主要包括:(1)主要任务、现状及发展趋势(2)系统设计的关键技术(3)选用器件型号及介绍(4)硬件设计原理及框图(5)软件设计原理及流程图(6)主要参考文献指导教师意见(课题难度是否适中、工作量是否饱满、进度安排是否合理、工作条件是否具备等)指导教师签名: 月 日 专家组及系里意见(选题是否适宜、各项内容是否达到毕业设计(论文)大纲要求、整改意见等)专 家 组 成 员签 字: 教学主任( 签 章): 月 日附页:开题报告一、研究的现状和发展趋势随着当今世界经济的快速发展和信息化时代的来临,各种各样的电子产品陆续出现在我们的生活中。而我所要设计的电子万年历就属其中。电子万年历广泛应用于家庭、银行、证券、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。我想通过这次毕业设计,实做出一个用途这么广泛的电子万年历。希望在此过程中,通过实践系统学习 51 单片机编程,深入了解做电子万年历所用的芯片DS1302 以及液晶显示、24C02FLASH 存储器等相关知识。二、研究的路线与关键技术电子万年历时钟主要完成对时间的年、月、日、时、分、秒、星期、闰年和阴历的自动调整,并具有闹铃功能。它主要用单片机来控制。 单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等,无不含有 CPU 控制器,即单片机。AT89S52 是一种带 8K 字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称单片机。在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。过去多用并行接口的时钟芯片,如MC146818,DS12887等。它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址, 数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302是一个综合性能较好且价格便宜的串行接口实时时钟芯片。低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。采用 DS1302 作为记录测控系统中的数据记录,其软硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用 DS1302 则能很好地解决这个问题。在掉电时,采用美国 ATMEL 公司生产的低功耗 CMOS 串行 EEPROM 存储芯片 AT24C02,对数据进行掉电保存。它内含 2568 位存储空间,具有工作电压宽(2.55.5V) 、擦写次数多(大于 10000 次) 、写入速度快(小于 10ms)等特点。本次设计预采用 HY-12864 液晶显示。HY-12864 是使用 HD61202 作为列驱动器,同时使用 HD61203 作为行驱动器的液晶模块。HD61202 是一种带有列驱动输出的液晶显示控制器,它可与行驱动器 HD61203 配合使用,组成液晶显示驱动控制系统。HD61202 的特点有内藏 6464=4096 位显示 RAM,RAM 中每位数据对应 LCD 屏上一个点的亮、暗状态;HD61202 是列驱动器,具有 64 路列驱动输出;读、写操作时序与 68 系列微处理器相符,因此它可直接与 68 系列微处理器接口相连;占空比为 1/32-1/64。争取实现的技术指标还有采用闹铃功能,此功能在人们日常生活中非常实用。三、实验条件:利用电子系的实验室四、进度计划:1.查找资料、设计电路2.方案论证、购买元件3.制作电路、程序设计4.系统制作、整体调试5.总结论文、准备答辩五、参考文献:1 李广弟 单片机基础 北京航空航天大学出版社 19962 孙涵芳 MCS-51/96 系列单片机原理及应用 北京航空航天大学出版社 19963 王福瑞 单片微机测控系统设计大全 北京航空航天大学出版社 19974 余永权 89 系列 FLASH 单片机原理与应用 电子工业出版社 20005 楼然苗、李光飞 51 系列单片机设计实例 北京航空航天出版社 20036 何立民 单片机高级教程-应用与设计 北京航空航天大学出版社 20007 蔡美琴 MCS-51 单片机系统及其应用 高等教育出版社 19928 李华 单片机原理与接口技术 清华大学出版社 19929 公茂法 单片机人机接口实例集 北京航空航天大学出版社 1998 10 刘光潭 中外集成电路简明速察手册 电子工业出版社 199111 王伟 高性能、低功耗带RAM实时时钟芯片DS1302(上) 电子世界(第一期) 1995 12 王伟 高性能、低功耗带 RAM 实时时钟芯片 DS1302(下) 电子世界(第四期) 199513 李宏,张家田 液晶显示器件应用技术 机械工业出版社 2004 14 刘利 液晶显示原理 电子工业出版社 2002 15 一九九九年产品目录(第一期) 武汉力源股份有限公司 1999天津工程师范学院毕业设计(论文)指导检查工作记录表系别 高职部 班级 电气 042 学生姓名 王瑜 指导教师李 杰课题名称 电子万年历设计时间 内容及指导记录2007 学年4.15-5.155.15-5.25布置毕业设计题目,讲解毕业设计要求,学生初步了解毕业设计任务根据毕业设计题目,查找相关资料方案选择,设计相关电路完成实际电路的制作,编写程序调试各单元电路的程序,并进行统调,完成论文写作指导教师签字:注:本表格同毕业设计(论文)一同装订成册,由所在单位归档保存。天津工程师范学院 2007 届毕业设计(论文)毕 业 设 计(论文)题 目 电子万年历设计 副标题 性 质: 毕业设计 毕业论文学生姓名 王瑜 班 级 042 系 别 高职部 专 业 电气技术 指导教师 李杰 评定成绩 优 良 中 及格 不及格天津工程师范学院 2007 届毕业设计(论文)电子万年历设计摘 要:随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活中。日历是人们不可或缺的日常用品。但一般日历都为纸制用品,使用不便,寿命不长。电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。本设计以 AT89S52 单片机为核心,构成单片机控制电路,结合 DS1302 时钟芯片和 24C02FLASH 存储器,完成时间的自动调整和掉电保护,全部信息用液晶显示。时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。在显示阴历月份时,能标明是否闰月。关键词:电子万年历 52 系列单片机时钟芯片FLASH 存储器液晶显示The Design of Electronic CalendarAbstract: With the rapid development of world economy and the forthcoming of information era, many kinds of mini-type intelligent domestic electric appliances appear in our life one after another. Calendars are necessary daily goods in peoples life. But they are generally paper goods with inconvenient use and short life. Electronic calendar adopts the technology of intelligent electronic control and display, and then improves the deficiency of paper calendars. The design adopts the core of AT89S52 single chip microcomputer, which constitutes controlling circuit, and integrates DS1302 clock chip and 24C02FLASH memory, which achieve self-adjusting of time and no power protecting. LCD displays all information. Time and date adjusting is carried out by three keys, which can also set the alarm clock. The calendar can display solar and lunar year, month, day, week, hour, minute, second. When displaying lunar months, leap month is showed. Keywords: electronic calendar 52 series single chip microcomputer clock chip flash memory LCD天津工程师范学院 2007 届毕业设计(论文)目 录1 引言 12 系统概述 13 方案选择 13.1 方案 1基于 AT89S52 单片机的电子万年历设计 13.2 方案 2基于 DS1302 的电子万年历设计 24 系统硬件电路的设计 24.1 系统核心部分-闪电存储型器件 AT89S52 34.2 DS1302 时钟电路 54.3 存储电路 94.4 液晶显示电路 114.5 键盘电路 154.6 闹铃电路 155 系统程序的设计 165.1 阳历程序的设计 165.2 时间调整程序的设计 165.3 阴历程序的设计 176 测试结果 207 结论 20参考文献 21致谢 22附录 1:电子万年历设计电路原理图 23附录 2:主程序 24天津工程师范学院 2007 届毕业设计(论文)11 引言在日新月异的 21 世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有 CPU 控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。本文设计的电子万年历属于小型智能家用电子产品。利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。2 系统概述本设计以 AT89S52 单片机为核心,构成单片机控制电路,结合 DS1302 时钟芯片和 24C02FLASH 存储器,显示阳历年、月、日、星期、时、分、秒和阴历年、月、日,在显示阴历时间时,能标明是否闰月,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示。人机接口由三个按键来实现,用这三个按键对时间、日期可调,并可对闹铃开关进行设置。软件控制程序实现所有的功能。整机电路使用+5V 稳压电源,可稳定工作。系统框图如图 2-1 所示,其软硬件设计简单,时间记录准确,可广泛应用于长时间连续显示的系统中。图 2-1 系统框图3 方案选择由于电子万年历的种类比较多,因此方案选择在设计中是至关重要的。正确地选择方案可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。3.1 方案 1基于 AT89S52 单片机的电子万年历设计不使用时钟芯片,而直接用 AT89S52 单片机来实现电子万年历设计。AT89S52 是一种带 8K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS 8 位微处理器,人机接口显示电路软件控制程序电源电路单片机控制电路天津工程师范学院 2007 届毕业设计(论文)2俗称单片机。单片机的可擦除只读存储器可以反复擦写 1000 余次。由于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89S52 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。若采用单片机计时,利用它的一个 16 位定时器/计数器每 50ms 产生一个中断信号,中断 20 次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。这样就实现了直接用单片机来实现电子万年历设计。用单片机来实现电子万年历设计,无须外接其他芯片,充分利用了单片机的资源。但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。3.2 方案 2基于 DS1302 的电子万年历设计在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。过去多用并行接口的时钟芯片,如MC146818,DS12887等。它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址, 数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302是一个综合性能较好且价格便宜的串行接口实时时钟芯片。利用单片机进行控制,采用DS1302作为实时时钟芯片,其三线接口SCLK、I/O、/RST与单片机进行同步通信,外加掉电存储电路、显示电路、键盘电路,即构成一个基本的电子万年历系统,若还要添加其他功能,在这基础上外扩电路即可。由于在系统设计时,需要考虑以下几点因素:功耗低、精确度高、软件编程较简单,芯片的体积小、芯片成本低等,而DS1302芯片有上面所述的诸多优点,所以本设计采用方案2。4 系统硬件电路的设计按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共 6 个模块组成,电路系统构成框图如图4-1 所示。主控芯片使用 52 系列 AT89S52 单片机,时钟芯片使用美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟芯片 DS1302,存储模块采用美国ATMEL 公司生产的低功耗 CMOS 串行 EEPROM 存储芯片 AT24C02。DS1302 作为主要计时芯片,可以做到计时准确。更重要的是,DS1302 可以在很小电流的后备 (2.55.5V 电源,在 2.5V 时耗电小于 300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。天津工程师范学院 2007 届毕业设计(论文)3(89S52)主控模块DS1302时钟电路键扫描电路液晶显示存储电路 闹铃电路图 4-1 电子万年历电路系统构成框图4.1 系统核心部分闪电存储型器件 AT89S524.1.1 AT89S52 具有下列主要性能 5: 8KB 可改编程序 Flash 存储器(可经受 1000 次的写入/擦除周期) 全静态工作:0Hz24MHz三级程序存储器保密1288 字节内部 RAM32 条可编程 I/O 线2 个 16 位定时器/计数器6 个中断源可编程串行通道片内时钟振荡器4.1.2 AT89S52 的引脚及功能AT89S52 单片机的管脚说明如图 4-2 所示。P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20 P2.0(A8) 21P2.1(A9) 22P2.2(A10) 23P2.3(A11) 24P2.4(A12) 25P2.5(A13) 26P2.6(A14) 27P2.7(A15) 28PSEN 29ALE/PROG 30EA/VPP 31P0.7(AD7) 32P0.6(AD6) 33P0.5(AD5) 34P0.4(AD4) 35P0.3(AD3) 36P0.2(AD2) 37P0.1(AD1) 38P0.0(AD0) 39VCC 40图 4-2 AT89S52 的管脚(1) 主要电源引脚天津工程师范学院 2007 届毕业设计(论文)4VCC 电源端GND 接地端(2) 外接晶体引脚 XTAL1 和 XTAL2XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。(3) 控制或与其它电源复用引脚 RST、ALE/PROG、/PSEN 和/EA/VPPRST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE 端仍以不变的频率(此频率为振荡器频率的 1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个 ALE 脉冲。在对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(/PROG) 6。/PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S52/LV52 由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN 有效(既输出 2 个脉冲) 。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP 外部访问允许端。要使 CPU 只访问外部程序存储器(地址为0000HFFFFH) ,则/EA 端必须保持低电平(接到 GND 端) 。当/EA 端保持高电平(接VSS 端)时,CPU 则执行内部程序存储器中的程序。(4) 输入/输出引脚 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和 P3.0P3.7P0 端口(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.0P2.7) P2 是一个带有内部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2 作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。天津工程师范学院 2007 届毕业设计(论文)5P3 端口(P3.0P3.7) P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流,这是由于上拉的缘故。P3 口也可作为 AT89S52 的一些特殊功能,这些特殊功能见表 4-17。表 4-1 P3 端口的特殊功能端口引脚 兼 用 功 能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断 0)P3.3 /INT1 (外部中断 1)P3.4 T0 ( 定时器 0 的外部输入)P3.5 T1 (定时器 1 的外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)4.2 DS1302 时钟电路4.2.1 DS1302 芯片介绍低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义 8。采用 DS1302 作为记录测控系统中的数据记录,其软硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用 DS1302 则能很好地解决这个问题。(1) DS1302 的性能特性实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;用于高速数据暂存的 318 位 RAM;天津工程师范学院 2007 届毕业设计(论文)6最少引脚的串行 I/O;2.55.5V 电压工作范围;2.5V 时耗电小于 300nA;用于时钟或 RAM 数据读/写的单字节或多字节(脉冲方式)数据传送方式;简单的 3 线接口;可选的慢速充电(至 VCC1)的能力。DS1302 时钟芯片包括实时时钟/日历和 31 字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24h 或带 AM(上午)/PM(下午)的 12h 格式。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302有主电源/后备电源双电源引脚:V CC1 在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;V CC2在双电源系统中提供主电源,在这种运用方式中,V CC1 连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302 由VCC1或 VCC2中较大者供电。当 VCC2大于 VCC1+0.2V 时,V CC2给 DS1302 供电;当 VCC2小于 VCC1时,DS1302 由 VCC1供电。(2) DS1302 数据操作原理DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8 位指定 40 个寄存器中哪个被访问到。在开始 8 个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。Vcc21X12X23GND4 RST 5I/O 6SCLK 7Vcc1 8DS1302U3图 4-3 DS1302 管脚图如果在传送过程中置 RST 为低电平,则会终止本次数据传送,并且 I/O 引脚变为高阻态。上电运行时,在 VCC =2.5V 之前,RST 脚必须保持低电平。只有在 SCLK为低电平时,才能将 RST 置为高电平。DS1302 的管脚图如图 4-3 所示,内部结构图如图 4-4 所示,表 4-2 为各引脚的功能。天津工程师范学院 2007 届毕业设计(论文)7 V C C 1V C C 2G N DI /OS C L KR S T -3 1 8R A M D A T A B U SA D B U SX 1 X 23 2 .7 6 8 k H z图 4-4 DS1302 内部结构图表 4-2 DS1302 引脚功能表引脚号 引脚名称 功能1 VCC2 主电源2,3 X1,X2 振荡源,外接 32768HZ 晶振4 GND 地线5 RST 复位/片选线6 I/O 串行数据输入/输出端(双向)7 SCLK 串行数据输入端8 VCC1 后备电源DS1302 的控制字如图 4-5 所示。控制字节的最高有效位(位 7)必须是逻辑1;如果它为逻辑 0,则不能把数据写入到 DS1302 中。位 6 如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。位 51(A4A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输入/输出。图 4-5 控制字节的含义为了提高对 32 个地址的寻址能力(地址/命令位 15逻辑 1) ,可以把时钟/日历或 RAM 寄存器规定为多字节(burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或写。在时钟/日历寄存器中的地址 931 或 RAM 寄存器中的地址 31 不能存储数电源控制输入移位寄存器实时时钟命令与控制逻辑 318RAM振荡器与分频器7 6 5 4 3 2 1 01RAMCKA4 A3 A2 A1 A0RAMK天津工程师范学院 2007 届毕业设计(论文)8据。在多字节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存器。但是,当以多字节方式写 RAM 时,为了传送数据不必写所有 31 字节。不管是否写了全部 31 字节,所写的每一字节都将传送至 RAM。数据读写程序如图 4-6 所示。图 4-6 数据读写程序DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日历、时间寄存器及其控制字见表 4-3,其中奇数为读操作,偶数为写操作。表 4-3 DS1302 的日历、时钟寄存器及其控制字命令字 各位内容寄存器名 写操作 读操作取值范围 7 6 5 4 3 2 1 0秒寄存器 80H 81H 00-59 CH 10SEC SEC分钟寄存器 82H 83H 00-59 0 10MIN MIN小时寄存器84H 85H01-12 或00-2312/24010APHR HR日期寄存器86H 87H01-28,29,30,310 0 10DATE DATE月份寄存器 88H 89H 01-12 0 0 0 IOM MONTH周日寄存器 8AH 8BH 01-07 0 0 0 0 0 DAY年份寄存器 8CH 8DH 00-99 10YEAR YEAR时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时,DS1302 停止振荡,进入低功耗的备份方式。通常在对 DS1302 进行写操作时(如进入时钟调整程序) ,停止振荡。当它为 0 时,时钟将开始启动。AM-PM/12-24小时方式:小时寄存器的位 7 定义为 12 或 24小时方式选择位。它为高电平时,选择 12小时方式。在此方式下,位 5 是 AM/PM 位,此位是高电平时表示 PM,低电平表示 AM,在 24小时方式下,位 5 为第二个 10小时位(2023h) 。SCLKSCLK KI/O5 0 0 0 7 0 0 0 1 3 0 0 0 5 0 0 0 7 0 0 0 2 0 0 0 1 0 0 0 0 2 4 0 0 0 6 0 0 0 0 0 0 0 4 0 0 0 6 0 0 0 R/CA2 A3A0 A1R/W A4 1DATA I/O BYTE DATA I/O BYTERST天津工程师范学院 2007 届毕业设计(论文)94.2.2 DS1302 的应用实时时钟芯片 DS1302 采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用 32768Hz 晶振。要特别说明的是,备用电源BT1 可以用电池或超级电容(10 万 F 以上) 。虽然 DS1302 在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。如果断电时间较短(几小时或几天) ,可以用漏电较小的普通电解电容代替(100F 就可以保证 1 小时的正常走时) 9。DS1302 在第一次加电后,需进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。DS1302 的时钟电路如图 4-3 所示。Vcc21X12X23GND4 RST 5I/O 6SCLK 7Vcc1 8DS1302U332768HzY1+5V3VBT1P3.2P3.3P3.4图 4-7 DS1302 时钟电路4.3 存储电路4.3.1 AT24C02 管脚介绍AT24C0210是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM,它是内含 2568 位存储空间,具有工作电压宽(2.55.5V) 、擦写次数多(大于 10000 次) 、写入速度快(小于 10ms)等特点。AT24C02 的 1、2、3 脚是三条地址线,用于确定芯片的硬件地址。第 8 脚和第4 脚分别为正、负电源。第 5 脚 SDA 为串行数据输入/输出,数据通过这条双向 I2C总线串行传送。第 6 脚 SCL 为串行时钟输入线。SDA 和 SCL 都需要和正电源间各接一个 4.7K 的电阻上拉。I2C 总线是一种用于 I2C 器件之间连接的二线制总线。它通过 SDA(串行数据线)及 SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD 驱动器还是键盘接口。4.3.2 AT24C02 的特性(1) I2C 总线的基本结构采用 I2C 总线标准的单片机或 I2C 器件,其内部不仅有 I2C 接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU 不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控天津工程师范学院 2007 届毕业设计(论文)10制。(2) 双向传输的接口特性传统的单片机串行接口的发送和接收一般都各用一条线,而 I2C 总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I 2C 总线的控制完全由挂接在总线上的主器件送出的地址和数据决定。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向。SDA 和 SCL 均为双向 I/O 线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能。I 2C 总线的数据传送速率在标准工作方式下为 100kbit/s,在快速方式下,最高传送速率可达 400kbit/s。(3) I2C 总线上的时钟信号在 I2C 总线上传送信息时的时钟同步信号是由挂接在 SCL 时钟线上的所有器件的逻辑“与”完成的。SCL 线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使 SCL 线一直保持低电平,使 SCL 线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响 SCL 线的状态,于是这些器件将进入高电平等待的状态。当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL 线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将 SCL 线拉成低电平。这样就在 SCL 线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。(4) 数据的传送在数据传送过程中,必须确认数据传送的开始和结束。当时钟线 SCL 为高电平时,数据线 SDA 由高电平跳变为低电平定义为“开始”信号;当 SCL 线为高电平时,SDA 线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。I2C 总线的数据传送格式是:在 I2C 总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前 7 位为地址码,第 8 位为方向位(R/W)。方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主天津工程师范学院 2007 届毕业设计(论文)11器件寻址的器件,其接收信息还是发送信息则由第 8 位(R/W)确定。在 I2C 总线上每次传送的数据字节数不限,但每一个字节必须为 8 位,而且每个传送的字节后面必须跟一个认可位(第 9 位) ,也叫应答位(ACK) 。每次都是先传最高位,通常从器件在接收到每个字节后都会做出响应,即释放 SCL 线返回高电平,准备接收下一个数据字节,主器件可继续传送。如果从器件正在处理一个实时事件而不能接收数据时(例如正在处理一个内部中断,在这个中断处理完之前就不能接收 I2C 总线上的数据字节) ,可以使时钟 SCL 线保持低电平,从器件必须使 SDA 保持高电平,此时主器件产生 1 个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放 SCL 线,主器件继续传送。当主器件发送完一个字节的数据后,接着发出对应于 SCL 线上的一个时钟(ACK)认可位,在此时钟内主器件释放 SDA 线,一个字节传送结束,而从器件的响应信号将 SDA 线拉成低电平,使 SDA 在该时钟的高电平期间为稳定的低电平。从器件的响应信号结束后,SDA 线返回高电平,进入下一个传送周期。(5) 总线竞争的仲裁总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争。I 2C 总线具有多主控能力,可以对发生在 SDA 线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时 SDA 总线电平不符的那个器件将自动关闭其输出级。总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用 I2C 总线上的信息进行仲裁,因此不会造成信息的丢失。24C02 与单片机的接口非常简单,如图 4-8 所示。A0,A1,A2 为器件地址线,WP 为写保护引脚,SCL,SDA 为二线串行接口,符合 I2C 总线协议。A 01A 12A 23G N D4 S D A 5S C L 6W P 7V C C 8U 2A T 2 4 C 0 2 + 5 VR 14 .7 KR 24 .7 KP 3 .1P 3 .0图 4-8 24C02 存储电路4.4 液晶显示电路天津工程师范学院 2007 届毕业设计(论文)12显示器部分是由 HD61202 液晶显示控制驱动器和 HY12864 液晶显示器组成的,下面我们对其分别进行介绍。4.4.1 液晶显示控制驱动器 HD61202 的特点HD61202 液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与 8 位微处理器相连,它可与 HD61203 配合对液晶屏进行行、列驱动。HD61202 是一种带有列驱动输出的液晶显示控制器,它可与行驱动器 HD61203 配合使用,组成液晶显示驱动控制系统 12。(1) 内藏 6464=4096 位显示 RAM,RAM 中每位数据对应 LCD 屏上一个点的亮、暗状态;(2) HD61202 是列驱动器,具有 64 路列驱动输出;(3) HD61202 读、写操作时序与 68 系列微处理器相符,因此它可直接与 68 系列微处理器接口相连;(4) HD61202 的占空比为 1/321/64。4.4.2 液晶显示控制驱动器 HD61202 的引脚功能HD61202 的引脚功能如下表 4-4 所示。表 4-4 HD61202 的引脚功能引脚符号 状态 引脚名称 功能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,使之不起作用。4.4.3 液晶显示控制驱动器 HD61202 的指令系统HD61202 的指令系统比较简单,总共只有七种。现分别介绍如下。 (1) 显示开/关指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 1 1 1 1 1/0天津工程师范学院 2007 届毕业设计(论文)13当 DBO=1 时,LCD 显示 RAM 中的内容;DBO=0 时,关闭显示。(2) 显示起始行(ROW)设置指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 1 显示起始行(0-63)该指令设置了对应液晶屏最上一行的显示 RAM 的行号,有规律的改变显示起始行,可以使 LCD 实现显示滚屏的效果。(3) 页(PAGE)置指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 0 1 1 1 页号(0-7)显示 RAM 共 64 行,分 8 页,每页 8 行。(4) 列地址(Y Address)设置指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 1 显示列地址(0-63)设置了页地址和列地址,就唯一确定了显示 RAM 中的一个单元,这样 MPU 就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。(5) 读状态指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0 BUSY 0 ON/OFF REST 0 0 0 0该指令用来查询 HD61202 的状态,各参量含义如下:BUSY:1-内部在工作 0-正常状态ON/OFF:1-显示关闭 0-显示打开REST: 1-复位状态 0-正常状态在 BUSY 和 REST 状态时,除读状态指令外,其它指令均不对 HD61202 产生作用。在对 HD61202 操作之前要查询 BUSY 状态,以确定是否可以对 HD61202 进行操作。(6) 写数据指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 写 数 据(7) 读数据指令R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1 读 显 示 数 据读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。天津工程师范学院 2007 届毕业设计(论文)144.4.4 HY-12864 的电路结构特点HY-12864 是使用 HD61202 作为列驱动器,同时使用 HD61203 作为行驱动器的液晶模块。由于 HD61203 不与 MPU 发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单,因此这就不做介绍了。下面主要介绍以下 HY-12864 这个模块的逻辑电路图。HY-12864 共有两片HD61202 和一片 HD61203,如下图 4-9 所示。图 4-9 HY-12864 的逻辑电路图在 HY-12864 中,两片 HD61202 的 ADC 均接高电平,RST 也接高电平,这样在使用 HY-12864 时就不必再考虑这两个引脚的作用。/CSA 跟 HD61202(1)的/CS1 相连;/CSB 跟 HD61202(2)的 CS1 相连,因此/CSA、/CSB 选通组合信号为/CSA,/CSB=01选通(1) ,/CSA,/CSB=10 选通(2) 。对于 HY-12864,只要供给 VDD、VSS 和 V0 即可,HD61202 和 HD61203 所需的电源将由模块内部电路在 VDD 和 V0、VSS 的作用下产生。4.4.5 HY-12864 的应用以下内容为以单片机 8031 为例机的接口电路,电路原理图如图 4-10 所示。控制电路为直接访问方式的接口电路。天津工程师范学院 2007 届毕业设计(论文)15图 4-10 8031 与液晶的接口电路根据以上电路原理图中液晶的各引脚与单片机的接法,可得本设计的液晶模块电路如图 4-11 所示。VSS 接地;数字电源 VDD 接5V;对比度控制电压 V0 接电位器,可通过调节电位器调整液晶亮度;数据、指令选择信号 RS 接单片机 P2.0 口;读写选择信号 R/W 接单片机 P2.1 口;单片机读、写选通信号/RD、/WR 通过与非门接液晶的读写使能信号 E;DB0DB7 分别接单片机的 P0.0P0.7 口;芯片 1、芯片2 的片选分别接单片机的 P2.2、P2.3 口;复位端 RST、背光正电源 LEDA 接5V;液晶驱动电压 VEE、背光负电源 LEDK 接地。VSS1VDD2V03RS4R/W5E6DB07DB18DB29DB310DB411DB512DB613DB714CS115CS216RST17VEE18LEDK19LEDA20LCMHY128X64+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.3P2.2R410KU4A74ALS00WRRD+5V图 4-11 液晶模块电路4.5 键盘电路本设计共采用按键 3 个,分别与单片机的 P1.7、P1.6、P1.5 口相连,分别对应光标移动,时间、日期调整,退出、闹铃开关键的功能。与单片机的接法可参照附录 1电子万年历设计电路原理图。天津工程师范学院 2007 届毕业设计(论文)164.6 闹铃电路当闹铃显示“关”时,闹铃不起作用;当闹铃显示“开”时,设定闹铃时间,闹铃时间只可设定时和分,当前时间不断与设定的闹铃时间比较,不相等时不产生任何现象,一旦相等,P3.5 输出一个高电平使三极管导通,从而使蜂鸣器工作,闹铃起作用。闹铃电路如图 4-12 所示。SPEAKERLS14.7KR3 8050Q1+5VT1图 4-12 闹铃电路5 系统程序的设计5.1 阳历程序的设计因为使用了时钟芯片 DS1302,阳历程序只需从 DS1302 各寄存器中读出年、周、月、日、 小时、分、秒等数据,再处理即可。在首次对 DS1302 进行操作之前,必须对它进行初始化,然后从 DS1302 中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见图 5-1 所示。 开 始初始化 DS13021302 开始振荡读 24C02从 1302 中读出年、周、月、日、小时、分、秒将 BCD 码高低位分离,送显示缓冲单元天津工程师范学院 2007 届毕业设计(论文)17图 5-1 阳历程序流程图5.2 时间调整程序设计调整时间用三个调整按钮,一个作为移位、控制用,一个作为加用,一个作为退出调整和闹铃开关用。分别定义为控制按钮、加按钮、退出按钮。在调整时间过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定的时间熄灭一次,例如间隔时间为 50ms。利用定时器计时,当达到 50ms 溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程序流程图如图 5-2 所示。天津工程师范学院 2007 届毕业设计(论文)18控制键有效,进入年调整程序等待按键程序加键有效年加 1控制键有效,进入月调整程序控制键有效,进入日调整程序控制键有效,进入星期调整程序控制键有效,进入时调整程序控制键有效,进入分调整程序等待按键程序加键有效月加 1等待按键程序加键有效日加 1等待按键程序加键有效星期加 1等待按键程序加键有效小时加 1等待按键程序加键有效分加 1控制键有效,跳出时间调整程序,进入主循环程序图 5-2 时间调整程序流程图5.3 阴历程序设计阴历程序的实现是要靠阳历日期来推算的。要根据阳历来推算阴历日期,首先要设计算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一个月不是 30 天就是 31 天(2 月除外,闰年 2 月为 29 天,平年 2 月为 28 天) 。天津工程师范学院 2007 届毕业设计(论文)19阴历一年有 12 个月或 13 个月(含闰月) ,一个月为 30 天或 29 天。如果把一个只有29 天的月称为小月,用 1 为标志,把 30 天的月称为大月,用 0 为标志,那么 12 位二进制就能表示一年 12 个月的大小。如果有闰月,则把闰月的月份作为一个字节的高 4 位,低 4 位表示闰月大小,大月为 0,小月为 1,这样一个字节就包括了所有闰月的信息。阴历春节和阳历元旦相差的天数也用一个字节表示。总共用 4 字节就可以存储一年中任何一天阳历和阴历的对应关系的有关数据,例如 2004 年的阴历和阳历对应关系如表 5-1 所示。表 5-1 2004 年的阴历和阳历对应关系表月份 1 2 3 4 5 6 7 8 9 10 11 12 闰 2 月大小 小 大 大 大 小 大 小 大 小 大 小 大 小二进制 1 0 0 0 1 0 1 0 1 0 1 0 1天数 29 30 30 30 29 30 29 30 29 30 29 30十六进制 4 2 5 2 212004 年的春节和元旦差 21 天,这样 2004 年的信息表示为:21,42H,52H,21H。其中表示 12 个月大小信息的字节,第 4 位和第 7 位不用,第1 个字节为十进制,其它的都为十六进制。按此方法,50 年的阳历和阴历对应关系表总共使用 200 字节。有了算法和数据以后,就可以设计软件了。先要根据当前阳历的日期,算出阳历为该年中的第几天。图 5-3 为计算阳历中任何一天在该年中为第几天的程序流程图。置阳历总天数为 0当前月为 1 月?总天数中加入该月天数月数加 1与当前月同?总天数中加入号数当前号数是总天数计算阳历天数结束,总天数中的数据为当前日期在阳历年中为第几天YNNY图 5-3 计算阳历天数程序流程图计算出当前阳历日期为该年中的第几天后,再减去阳历该年春节和元旦的日差,如果够减,则相减的结果就是阴历在该年中的总第几天了。根据该数据就可以推算天津工程师范学院 2007 届毕业设计(论文)20出具体的当前阴历日期;如果不够减,则表示当前阴历年为阳历年的前一年。这种情况下,根据实际,当前阴历日期会处于阴历 11 月或 12 月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历年为第几天的数据,其结果表示当前阴历日期离春节的天数。计算出的阳历天数为该年的第几天,存放在寄存器 R2 和 R3 中。计算出天数后,如果大于#FFH,则把#FFH 存放在 R2 中,余值存放在 R3 中。也就是说在用寄存器 R2 和 R3 表示的天数信息中,R2 充当主寄存器,数据先存满 R2,再存R3。在整个转换程序中,这里面的数据不能被覆盖。计算出阳历总天数后,就可以根据它来推算阴历日期。推算方法是,先用总天数减去春节和元旦的日差,如果结果为 1,则该天正好是春节(因为春节在元旦之后,在计算春节和元旦的日差时,假设元旦为 0 天,春节为 n 天,则日差为 n。而前面计算的阳历总天数是该天在该年中的第几天,是以元旦为 1 而得到的,与计算春节和元旦日差的这样方法相比,其数值少了 1,所以要在原来本应该以 0 作为该天就是春节的依据的基础上加 1,所以以 1 作为该天是春节的标志) ;如果结果小于1,则阴历应该是阳历的前一年;如果结果大于 1,说明阳历和阴历为同一年。再根据查表所得的该年的阴历的闰年和大小月的信息,就可以推算出该天的阴历日期了。图 5-4 为由总天数推算出阴历日期的程序流程图。程序入口R2 减 1 个月天数够减?下个月为闰月?减去闰月天数月加 1月份为当前正在减的月份的前一个月的最后一天月份为当前正在减的月份,号数为 R2中的值R2=0?R3=0?R2=R2+R3R3=0YYYYN NNN天津工程师范学院 2007 届毕业设计(论文)21图 5-4 推算阴历日期的程序流程图6 测试结果设计完成后,给系统上电,液晶显示屏显示结果如图 6-1 所示。天津工程师范学院通信 0202 班刘敏毕业设计SOLAR 2000
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:电子万年历设计与制作资料
链接地址:https://www.renrendoc.com/p-6180869.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!