毕业设计(论文)基于51单片机的电子日历的设计_第1页
毕业设计(论文)基于51单片机的电子日历的设计_第2页
毕业设计(论文)基于51单片机的电子日历的设计_第3页
毕业设计(论文)基于51单片机的电子日历的设计_第4页
毕业设计(论文)基于51单片机的电子日历的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、 编号 淮安信息职业技术学院淮安信息职业技术学院毕毕业业论论文文题 目基于单片机的电子日历的设计学生姓名学 号院 系电子工程学院专 业应用电子技术班 级指导教师顾问教师二一二年六月摘 要i摘摘 要要电子万年历是实现对年、月、日、时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室、银行大厅等场所,是人们日常生活中的必需品 。本文通过对基于单片机实现万年历功能的电子日历的设计,介绍了 at89s52单片机的多功能电子万年历的硬件结构和软硬件的设计、使用方法。系统以 at89s52 单片机为主控制模块,以串行时钟日历芯片 ds1302 记录日历和时间,它可以对年、月、日、时、分、秒进

2、行计时,还具有闰年补偿、时间校准等多种功能。万年历采用直观的数字显示,可以在 lcd 上同时显示年、月、日、星期、时、分、秒。更有按键电路模块与之相结合,不仅能实现时钟日历显示的功能,并可进行调整,使用更便捷、直接。万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。关键词:万年历 单片机 at89s52 ds1302 淮安信息职业技术学院毕业设计论文ii目 录iii目目 录录摘摘 要要.i第一章第一章 绪论绪论.11.1 课题研究的意义.11.2 本课题主要的研究工作.11.3 本课题主要解决的内容.11.4 论文主要章节安排.21.5 本章小结.2第二

3、章第二章 方案论证方案论证.32.1 设计要求.32.2 单片机芯片的选择方案和论证.32.3 显示模块的选择方案和论证.32.4 时钟芯片的选择方案和论证.42.5 电路设计最终方案.4第三章第三章 系统的硬件设计与实现系统的硬件设计与实现.53.1 电路总体设计.53.2 主控模块的设计.53.2.1 at89s52 的内部结构及各引脚功能.53.2.2 单片机最小系统设计.73.3 时钟模块设计.73.4 显示模块设计.93.5 键盘模块.10第四章第四章 系统的软件设计系统的软件设计.114.1 主程序设计.114.2 万年历优化算法.124.3 阳历与星期的换算方法.134.4 万年

4、历工作的简易流程图.14第五章第五章 proteus 软件仿真软件仿真 .155.1 proteus isis 简介.155.2 proteus 运行流程.155.3 proteus 功能仿真.155.4 本章小结.18第六章第六章 测试与结果分析测试与结果分析.196.1 硬件测试.196.2 软件测试.196.3 测试结果分析与结论.19第七章第七章 总结与展望总结与展望.217.1 总结.21 淮安信息职业技术学院毕业设计论文iv7.2 展望.21致致 谢谢.23参考文献参考文献.25附录附录 1 系统电路图系统电路图.27附录附录 2 系统程序系统程序.28第一章 绪论1第一章第一章

5、绪论绪论1.1 课题研究的意义课题研究的意义万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历” 。而现在所使用的万年历,实际上就是记录一定时间范围内(比如 100 年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。随着微电子技术的高速发展,人类用于计时的工具也在不断发展更新,单片机技术的出现使得万年历有了新的发展方向。单片机以其体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技

6、术人员必须掌握的技术。目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的 4-5 倍以上。用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。本文采用单片机的万年历作为设计课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可调整、进行夜视等功能。所以,电子万年历作为课题设计很有价值。1

7、.2 本课题主要的研究工作本课题主要的研究工作本论文主要研究基于单片机的万年历设计。当程序执行后,lcd 显示年、月、日、时、分、秒和星期。设计共设置 4 个操作键:k1:选择修改键;k2:上调键;k3:下调键;k4:确定键。设计的主要内容有:1、了解单片机技术的发展现状,熟悉万年历个模块的工作原理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和 c 语言的编程规则,编写出相应模块的应用程序; 4、分别在各自的模块中调试出相应的功能,在 proteus 软件上进行仿真。1.3 本课题主要解决的内容本课题主要解决的内容本课题所研究的电子万年历

8、是单片机控制技术的一个具体应用,主要研究淮安信息职业技术学院毕业设计论文2内容包括以下几个方面:1、选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。2、根据选用的电子万年历芯片设计外围电路和单片机的接口电路。3、在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。4、根据设计的硬件电路,编写控制 at89s51 芯片的单片机程序。5、通过编程、编译、调试,把程序下载到 proteus 上运行,并实现本设计的功能。6、在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。7、软件设计时必须要有完善的思路,要做到程序简单,调试

9、方便。1.4 论文主要章节安排论文主要章节安排第一章:绪论是介绍了基于 stc89s52 单片机的万年历研究意义,重点阐述了本课题的研究内容和研究工作。第二章:主要介绍了设计要求和课题器件选择的论证方案。第三章:硬件基础中主要描述了万年历的各个模块的硬件设计方案,并结合各个元器件和相应的硬件原理图进行分析,最后展示为了实现研究目标所需要的全部硬件基础。第四章:软件基础主要罗列了实现万年历各个功能的 c 语言程序的流程图,并分别对其进行了解释和分析,最后把各个 c 语言子程序在巧妙结合在一起,共同控制整个系统,也就形成了实现研究目标所需要的所有软件基础。第五章:主要是对硬件和软件测试结果的分析以

10、及得出的相关结论。第六章:主要对 keil 软件、proteus 软件进行简单介绍,并给出了关于proteus 软件仿真调试万年历的过程。最后简要的介绍了硬件调试中的问题和解决办法。第七章:主要是对本次实验研究的总结,提出本次实验的不足之处以及相应的改进方法,以便后人继续深入研究。最后一部分是论文的附录,它为论文的内容做了补充、解释,以便阅读时条理更清晰。1.5 本章小结本章小结本章是论文的绪论部分,着重介绍了万年历的研究意义。然后介绍了本文所要解决的实际问题及意义,以及要电子万年历系统要实现的功能和方法。最后简单地描述了本论文的整体框架和论文章节的安排。 第二章 方案论证3第二章第二章 方案

11、论证方案论证2.12.1 设计要求设计要求在电子日历设计中需具备的基本功能。1能显示实时时钟、日历 2允许误差:10 秒/天; 3可以通过按键设置(调整)时钟; 4显示模式:数码管或液晶显示; 2.22.2 单片机芯片的选择方案和论证单片机芯片的选择方案和论证方案一: 采用 at89c51 芯片作为硬件核心,采用 flash rom,内部具有 4kb rom 存储空间,能于 3v 的超低压工作,而且与 mcs-51 系列单片机完全兼容,但是运用于电路设计中时由于不具备 isp 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要导入程序时,对芯片的多次拔插会对芯片造成

12、一定的损坏。方案二:采用 at89s52,片内 rom 全都采用 flash rom;能以 3v 的超底压工作;同时也与 mcs-51 系列单片机完全该芯片内部存储器为 8kb rom 存储空间,同样具有 89c51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要导入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。根据主功能模块的各项功能、使用便捷程度、单片存储、低功耗、等原因,选择采用 at89s52 作为主控制系统。2.32.3 显示模块的选择方案和论证显示模块的选择方案和论证方案一:采用 led 数码管动态扫描,led 数码管价格适

13、中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:采用 lcd 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形等,显示信息丰富。淮安信息职业技术学院毕业设计论文4由于需要显示年、月、日、星期、等,需要可大量显示文字和数字的显示模块。结合数码管和液晶显示的各项特点,此设计采用 lcd 液晶显示屏。2.4 时钟芯片的选择方案和论证时钟芯片的选

14、择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。方案二:采用 ds1302 时钟芯片实现时钟,ds1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。工作电压在 2.5v5.5v 范围内,2.5v 时耗电小于 300na。根据时钟芯片的性能、功耗和显示的准确度,设计采用 ds1302 时钟芯片。2.5 电路设计最终方案电路设计最

15、终方案本章主要介绍了系统要实现的功能和万年历系统硬件平台的选择,比较了主控模块,时钟模块,显示模块中不同器件的功能及优劣,最后确定了电路设计的整体方案: 采用 at89s52 作为主控制系统; ds1302 提供时钟;lcd 液晶显示屏作为显示模块。第三章 系统的硬件设计与实现5第三章第三章 系统的硬件设计与实现系统的硬件设计与实现3.1 电路总体设计电路总体设计在方案设计中,整个系统主要包括四个部分:主控制模块、显示模块、时钟模块和键盘部分。设计的总系统原理图如下图 3-1 所示。图 3-1 总系统原理图本电路是由 at89s52 单片机为控制核心,具有在线编程功能,低功耗,能在 3v 超低

16、压工作;ds1302 内部有一个 31*8 的用于临时性存放数据的 ram 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由 lcd 点阵液晶显示屏显示;键盘模块实现对万年历进行调节。3.2 主控模块的设计主控模块的设计at89s52 在设计中作为主控制模块使用,它是 40 引脚双列直插芯片,有四个 i/o 口 p0、p1、p2、p3,每一条 i/o 线都能独立地作输出或输入。3.2.1 at89s52at89s52 的内部结构及各引脚功能的内部结构及各引脚功能at89s52 单片机按功能分为 8 部分:cup,程序存储器,

17、数据存储器,时钟电路,串行口,并行 i/o 口,中断系统,定时/计数器。1.电源及时钟引脚vcc:接+5v 电源vss:接地xtal1 和 xtal2:时钟引脚,外接晶体引线端。当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。2.控制引脚rst/vpq:rst 是复位信号输入端,vpd 是备用电源输入端。当 rst 输入端保持 2 个机器周期以上高电平时,单片机完成复位初始化操作。显示模块ds1302 时钟模块主控模块 键盘模块淮安信息职业技术学院毕业设计论文6当主电源 vcc 发生故障而突然下降到一定低电压或断电时,第 2 功能 vpd将

18、为片内 ram 提供电源以保护片内 ram 中的信息不丢失。ale/prog:地址锁存允许信号输入端。在存取外存储器时,用于锁存低 8位地址信号。当单片机正常工作后,ale 端就周期性地以时钟振荡频率的 1/6 固定频率向外输出正脉冲信号。此引脚的第 2 功能 prog 是对片内带有 4k 字节eprom 的 8751 固外程序时,作为编程脉冲输入端。psen:程序存储器允许输出端。当片外程序存储器的读选通信号,低电平有效。cpu 从外部程序存储器取指令时,psen 信号会自动产生负脉冲,作为外部程序存储器的选通信号。ea/vpp:程序存储器地址允许输入端。当 ea 为高电平时,cpu 执行片

19、内程序存储器指令但当 pc 中的值超过 0fffh 时,将自动转向执行片外程序存储器指令;当 ea 为低电平时,cpu 只执行片外程序存储器指令。3.i/o 口引脚p0.0p0.7:p0 口 8 位双向 i/o 口;p1.0p1.7:p1 口 8 位准双向 i/o 口;p2.0p2.7:p2 口 8 位准双向 i/o 口;p3.0p3.7:p3 口 8 位准双向 i/o 口。4片外总线结构分为三部分:数据总线 data bus(db) ,地址总线 address bus (ab) ,控制总线 control bus(cb)。5.图 3-2 为 at89s52 的系统引脚图。图 3-2 at89

20、s52 系统引脚图第三章 系统的硬件设计与实现73.2.2 单片机最小系统设计单片机最小系统设计单片机的最小系统如图 3-3 所示。18 引脚和 19 引脚接时钟电路,xtal1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2 接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第 9 引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20 引脚为接地端,40 引脚为电源端。图 3-3 单片机最小系统3.3 时钟模块设计时钟模块设计实时时钟电路 ds1302 是 dallas 公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电

21、保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通 32.768khz 晶振。它是一种一种高性能、低功耗、带 ram 的实时时钟电路,可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 ram 数据。图 3-4 示出 ds1302 的引脚排列图。淮安信息职业技术学院毕业设计论文8图 3-4 ds1302 的引脚图其中 vcc1 为后备电源,vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302 由 vcc1 或 vcc2 两者中的较大者供电

22、。当 vcc2 大于vcc1+0.2v 时,vcc2 给 ds1302 供电。当 vcc2 小于 vcc1 时,ds1302 由 vcc1 供电。x1 和 x2 是振荡源,外接 32.768khz 晶振。rst 是复位/片选线,通过把 rst输入驱动置高电平来启动所有的数据传送。rst 输入有两种功能:首先,rst 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst 提供终止单字节或多字节数据的传送手段。当 rst 为高电平时,所有的数据传送被初始化,允许对 ds1302 进行操作。如果在传送过程中 rsts 置为低电平,则会终止此次数据传送,i/o 引脚变为高阻态。上电动行时,在

23、vcc 大于等于 2.5v 之前,rst 必须保持低电平。中有在 sclk 为低电平时,才能将 rst 置为高电平,i/o 为串行数据输入端(双向) 。sclk 始终是输入端。使用 ds1302 时可参考它的硬件接线图,如图 3-5 所示。vcc2x1x2gndrsti/oslckvcc1u1ds1302vcc12y1c12012p1header 2c220p1.2p1.1p1.032.768khz图 3-5 ds1302 的硬件接线图1.时钟芯片 ds1302 的工作原理:ds1302 在每次进行读、写程序前都必须初始化,先把 sclk 端置 “0” ,接着把 rst 端置“1” ,最后才给

24、予 sclk 脉冲;读/写时序如下图 4 所示。ds1302的控制字的位 7 必须置 1,若为 0 则不能把对 ds1302 进行读写数据。对于位6,若对程序进行读/写时 ram=1,对时间进行读/写时,ck=0,位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1;该位为 0 则表第三章 系统的硬件设计与实现9示进行的是写操作。控制字节总是从最低位开始输入/输出的。表.2 为 ds1302的日历、时间寄存器内容:“ch”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止,ds1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “wp”是写保护位,在任何

25、的对时钟和 ram 的写操作之前,wp 必须为 0。当“wp”为 1 时,写保护位防止对任一寄存器的写操作。2.ds1302 的控制字节:ds1302 控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 ds1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1 表示存取ram 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出3.数据输入输出(i/o)在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从低位即位 0 开始。同样,在

26、紧跟 8 位的控制指令字后的下一个 sclk脉冲的下降沿读出 ds1302 的数据,读出数据时从低位 0 位到高位 7。4.ds1302 的寄存器ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 ram 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;

27、另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为 feh(写)、ffh(读)。3.4 显示模块设计显示模块设计本设计中由于要对年、月、日、星期、时、分、秒、显示,选择液晶显示器 1602 字符型 lcd 通常有 14 条引脚线或 16 条引脚线的 lcd。它可以显示两行,每行 16 个字符,采用单+5v 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。它可以显示的字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,例如大写的英文字母“a”的代码是01000001b(41h) ,显示时模块把地址 41h

28、 中的点阵字符图形显示出来,我们就能看到字母“a” 。如图 3-6 即为 lcd 显示模块的接口线路,和附录一的连线一样,无需修改。 淮安信息职业技术学院毕业设计论文10图 3-6 lcd 液晶显示模块3.5 键盘模块键盘模块键盘模块用于调节、校准万年历的时间,更根据各个键盘的功能选择合适的键盘使用。按键功能自上而下依次为:1 选择修改项键、2 增大键、3 减小键、4 确定键.文中系统软件设计使用开关做键盘使用如下图 3-7 所示。图 3-7 开关第四章 系统的软件设计11第四章第四章 系统的软件设计系统的软件设计4.1 主程序设计主程序设计电子万年历的功能是在程序控制下实现的。首先系统初始化

29、,系统开始运行,当有设置键按下时进入修改时间模式,无按键按下时读取时间等数据送入液晶屏显示;在修改时间模式下设置时间完成后再送数据到液晶屏显示。该系统的软件设计方法按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。万年历的主程序流程图如图 4-1 所示。开始初始化读日期、时间写日期、时间显示子程序开关控制子程序时间修改子程序日期修改子程序显示结果返回图 4-1 主程序流程图淮安信息职业技术学院毕业设计论文124.2 万年历优化算法万年历优化算法阳历算法:阳历的算法比较简单,每十月的总的天数相对来说是固

30、定的。只有 2 月份,在闰年是 29 天,在非闰年是 28 天。每个月的日历排法主要是确定每个月第一天是星期几。我们知道 1901 年 1 月 1 日是星期二,星期的变化是 7 天一个周期,比如说要计算 1901 年 2 月 1 日是星期几,可以这样推算:从 1901 年 1 月1 日到 1901 年 2 月 1 日总共经过了 31 天(从表 1 可 看出),31 对 7 取模是3:i901 年 1 月 1 日是星期二,加三后,是星期五。因此 1901 年 2 月 1 日是星期五。同理,可以推算出从 19012100 年任何一天是星期几,如下表 4.1 所示。表 4.1 月份123456789

31、101112闰年312931303130313130313031非闰年312831303130313130313031下图 4-2 是阳历计算程序流程图。第四章 系统的软件设计13 图 4-2 阳历计算程序流程图4.3 阳历与星期的换算方法阳历与星期的换算方法在现行阳历中,历年的长度 365 天(平年)或者 366 天(闰年)都不是七的整数倍,所以日期与星期之间没有明显的对应关系。一般情况下,不看日历牌就无法知道某月某日是星期几。不过,它们之间还是有一定规律可循的,只要经过简单计算,或者查找表格,就可以知道与任何日期相对应的星期数。这里列出两种方法供读者选用。 (1)公式法:设 y 麦示公元年

32、数,d 表示从 1 月 1 日起算的日数。首先求出 1 月 0 日(即上一年 12 月 31 日)的星期序数,然后与日数 d 相加,其和用 7 除,余数就是答案。为了推导公式,我们想一想,第一年 1 月 0 日的星期序数与第二年 1 月 0 日的星期序数有什么关系?平年 365 天,等于 52 个星期零 1 天,所以第二年 1 月 0 日的星期序数比第一年的多 l,但这个 l 已包含在y 中了,因为第二年的年数 y 比第一年大 1;闰年 366 天,等于 52 个星期零二天,所以第二年 1 月 0 日的星期序数等于第一年(闰年)的星期序数加 2,除了 y中包含的 1 外,还需加修正值 1。根据

33、这些道理我们可以推得三个公式,将式中s 用 7 除,余数就表示星期几。从公元 1900 年 1 月 1 日到公元 2101 年 1 月 1 日之间这 201 年,可用公式:s y1900 + (y1901)/4 + d 方括号表示取商的整数部分,对于1900 年1904 年这五年方括号值为 0。这个公式是这样来的:1900 年 1 月 0 日(即 1899 年 12 月 31 日)是星期天。这年是平年,以后直到 2100 年前都是每隔4 年一闰,闰年多出的那一天,影响到下一年 1 月 0 日的星期序数,并不影响闰年本身,闰年产生的修正值应加到下一年上去,所以(y1901)/4中,计算时用 19

34、0l 而不是 1900。例:求 2000 年 12 月 31 日是星期几?2000 年是闰年,从 1 月 1 日算起,12 月 31 日是第 366 天,所以 d366。根据公式有:s20001900 +(20001901)/4+ 366100 +99/4+ 366l00 + 24 + 366490490 为 7 的整数倍,即余数为 0,所以 2000 年 12 月 31 日为星期日。(2)更普遍的公式为:sv1 +(y1/4(y1/100+(y1/400+ d对于这个公式,我们不妨这样考虑:阳历 400 年中有 97 个闰年,共 365x 淮安信息职业技术学院毕业设计论文14400 + 97

35、 146.097 天,146,09720,871 7,即正好是 7 的整数倍。这表明某年某月某日所对应的星期序数与四百年前同月同日所对应的星期序数完全相同。前边例中我们已算出公元 2001 年 1 月 0 日(即 2000 年 12 月 31 日)是星期日,那么,公元 1601 年、1201 年以及公元 1 年的 1 月 0 日都是星期日。假如每个历年都是 365 天的话,那么,由于公元 1 年 1 月 0 日是星期日,只要公式 sy1 + d 就可以了,但实际上闰年是 366 天,所以我们必须根据闰年的有关规定进行修正。 (y1)/4是四年一闺产生的修正值。如果只取这一个修正项,就会多修正以

36、至造成错误,这是因为,根据阳历的规定,逢百之年虽然能被 4 整除,却不一定是闰年,所以必须减去多修正的值,它等于(y1/100) 。如果逢百之年都是平年,只要这两个修正项也就可以了。可是,公元年数能被 400 整除的年(当然也一定能被 100 整除)仍是闰年,所以还必须加上(y1/400) 。这个修正项才行。方括号中之所以用 y1 而不用 y,是由于修正值是加到闰年的下一年上去,而不是加到闰年本身上。4.4 万年历工作的简易流程图万年历工作的简易流程图在万年里程序中,单片机的工作流程图如下图 4-3 所示。开始单片机读ds1302数据单片机送数据到lcd1602单片机判断按键单片机处理按键结束

37、图 4-3 单片机的简易工作流程图 第五章 proteus 软件仿真15 第五章第五章 proteusproteus 软件仿真软件仿真5.1 proteusproteus isisisis 简介简介proteus isis 是英国 labcenter 公司开发的电路分析与实物仿真软件。它运行于 windows 操作系统上,可以仿真、分析(spice)各种模拟器件和集成电路。该软件的特点是:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势,使用更方便快捷。(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232 动态仿真、i2 c 调试器

38、、spi 调试器、键盘和 lcd 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(3)目前支持的单片机类型有:arm7 系列、68000 系列、8051 系列、avr系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各种外围芯片,全力满足软件电路的需要。(4)支持大量的存储器和外围芯片。总之,该软件是一款集单片机和 spice 分析于一身的仿真软件,功能极其强大 ,可仿真 arm、51、avr、pic。5.2 proteusproteus 运行流程运行流程proteus isis 的工作界面是一种标准的 windows 界面,它包

39、括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。运行 proteus 程序后,进入软件的主界面。通过左侧工具栏中的 p(从库中选择元件命令)命令,在 pick devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。proteus isis 的工作界面可参考附录一。5.3 proteusproteus 功能仿真功能仿真proteus 仿真效果最后载入 hex 文件后可以进行模拟仿真,可以全速运行也可以使用运行按键单步调试运行,图 5-1 既为 pro

40、teus 仿真的运行按键。图 5-1 运行按键通电后 led 显示:淮安信息职业技术学院毕业设计论文16 图 5-2 时钟调节秒钟调节:图 5-3 时钟调节 分钟调节:图 5-4 时钟调节时钟调节:图 5-5 时钟调节星期调节:第五章 proteus 软件仿真17图 5-6 时钟调节日期调节:图 5-7 时钟调节月份调节:图 5-8 时钟调节年份调节:图 5-9 时钟调节点击确定键显示:淮安信息职业技术学院毕业设计论文18图 5-10 时钟调节5.4 本章小结本章小结本节介绍了 proteus 软件和 keil 软件,阐述了如何用 proteus 结合 keil软件仿真出电子万年历功能的过程并

41、给出了仿真系统的操作过程。最后简要的介绍了硬件调试中的问题和解决办法。第六章 测试与结果分析19第六章第六章 测试与结果分析测试与结果分析6.1 硬件测试硬件测试电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)lcd 液晶显示屏显示部分已经连在最小系统上,节省了不少时间和精力。(2)对万年历修改时间或日期时,有时 lcd

42、 液晶显示屏被屏蔽掉,造成不亮现象。解决:根据仪器的测试,发现电路的驱动能力不足,最后在 ds1302 时钟芯片的/cs、sclk、ret 端接入 5.1k 的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。6.2 软件测试软件测试电子万年历是多功能的数字型,可以看当前日期,时间。电子万年历功能很多,所以对于它的程序也较为复杂,在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的调试,最终完成了软件。在软件的调试过程中遇到的主要问题是:导入程序后,lcd 液晶显示屏显示亮度不好。解决:一遍旋转 10k 欧的滑动变阻器,一遍观看 lcd 显示屏,直到看到合适的

43、亮度为止。6.3 测试结果分析与结论测试结果分析与结论在测试中遇到 lcd 液晶显示屏为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏,滑动变阻器没有调好:查看编写的程序是否正确无误,对程序进行认真修改,根据硬件电路调整按键查看万年历能否达到各功能。经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。于此同时软件的编程方面也得到更多的提高,编程能力得到加强,所学的知识更加熟练牢固。淮安信息职业技术学院毕业设计论文20第七章 总结与展望21 第七章第七章 总结与展望总结与展望 7.1 总结总结至此,关于毕业设计的所有内容

44、就介绍完了,进行这次毕业设计一切都是从零开始,从最简单查资料、了解各个元件的功能起步,再确定设计方案、画流程图、编写程序到最后进行仿真,这次课题设计可以说成功完成。系统的硬件、软件设计合理,功能完备,运行稳定、可靠。在整个设计过程中,学到了许多扎实的知识。通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。最终较好的完成了设计,达到了预期的目的,完成最初的设想。但是由于时间和个人

45、能力的原因,整个系统看起来还是显得非常的简单,只实现了一些最基本的功能,还有许多不足和可以扩展的地方。例如实现公历和农历的转换、闹钟报时等,这些有待以后来弥补,还望各位老师予以指正和修改。本次设计的电子万年历也存在的不足的地方,有待于以后的改进。7.2 展望展望实验结果表明此万年历实现后具有读取方便、显示直观、功能多样、电路简洁、等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。本课题从理论到实际应用,用 at89s52 单片机与等一些电路的组合,成功的设计出了一个电子万年历。而且所设计的电子万年历设计也按当初要求的能够在 proteus 中进行仿真,并且能够很精确的显示年历。可以说

46、该电子万年历具有很高的实用价值。淮安信息职业技术学院毕业论文22致 谢23致致 谢谢经过二个多月的时间,毕业设计按照预期完成了。这次课程设计的制作,一切都是从零开始,从最简单的画流程图起步,到课程的设计、仿真,它的圆满完成,与我的单片机课程是离不开的。它凝聚了各位老师的心血!由于本人的知识水平有限,论文和设计中有遗漏和缺陷的地方恳请老师指正。在整个设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了设计,达到了预期的目的,完了最初的设想。首先,对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。其次,程序编写中,由于思路不清晰,会遇到很多的问题,经过静下心来思考,和同学讨论、向老师请教理清了思路,反而更得心应手。在此次设计中,要有一颗平常的心,不要想着走捷径,一步一脚印,更要有有持之以恒的精神。此次课程设计中我学到了很多很多重要的东西,它使我的能力得到了全方位的提高,对于专业技能有了更深刻的了解。感谢我的导师冯成龙老师给了我莫大的帮助,在他悉心的指导和严格的要求下,我的毕业论文顺利完成了。论文从选题到最终的完成,凝结着导师辛勤的汗水,他不辞劳苦的教导、严谨的作风使我终生受

温馨提示

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

评论

0/150

提交评论