数字万年历设计_第1页
数字万年历设计_第2页
数字万年历设计_第3页
数字万年历设计_第4页
数字万年历设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、江西理工大学应用科学学院江西理工大学应用科学学院微机控制系统课程设计报告微机控制系统课程设计报告 题题 目:目: 数字万年历设计 姓姓 名:名: 曹振林曹振林 学学 号:号: 专业班级:专业班级: 电气电气 113 班班 指导教师:指导教师: 完成时间:完成时间: 2022 年年 06 月月 27 日日设计报告综合测试平时总评格式10 分内容10 分图表5 分功能测试35 分辩论20 分考勤20 分指导教师签名:word.摘要在电子技术迅速开展的今天,尤其是随大规模集成电路出现,给人类生活带来了根本性的改变。特别是单片机领域中的应用产品已经走进了大局部人的家庭。电子万年历的出现给人们的生活带来

2、的诸多方便。本设计首先描述系统总体模块工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为根底,单片机技术为核心。本系统以单片机的进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。单片机具有体积小,本钱低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。本文研究的万年历系统就是利用单片机上述的优点,采用目前市场性价比比拟高的 STC89C52 单片机控制、以 DS1302 时钟芯片计时、以

3、LCD1602 液晶屏显示,系统主要有单片机控制电路,时钟电路,显示电路及校正电路四个模块组成。本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及工作过程。系统程序采用 C 语言编写,用 protel 2000 画出电路图,经 keil 软件进行调试后在仿真软件中进行仿真测试,可以显示年、月、日、星期、时、分、秒,并具有校准功能和与即时时间同步的功能。此万年历具有读取方便、显示直观、功能多样、电路设计新颖、功能强大、结构简单等优点,符合电子仪器仪表的开展趋势,具有广阔的市场应用前景。关键词:关键词:电子万年历 51 系列单片机时钟芯片FLASH 存储器液晶显示word.目 录摘要摘要

4、.11、绪论、绪论 .31.1 设计任务.31.2 设计要求 .31.3 设计意义 .32、设计方案介绍、设计方案介绍 .42.1 用户板设计步骤及过程.42.2 芯片工作原理.42.2.1 P89V51RB2 单片机概述.42.2.2 P89V51RB2 单片机的特性.52.2.3 时钟电路 DS1302.63、程序设计、程序设计.83.1 程序流程图.83.1.1 系统总流程图.83.1.2 时钟程序流程图.93.1.3 显示程序流程图.104、硬件设计、硬件设计.114.1 显示电路的设计.114.2 晶振电路设计.114.3 时钟电路.124.4 系统程序的设计.124.5 时间调整程

5、序设计.135、调试总结及改良、调试总结及改良.13致谢致谢.13参考文献参考文献.14附录附录.15附录一 元器件清单.15附录二 硬件原理图.16附录三 源程序.17word.1、绪论多功能数字万年历已成为人们日常生活中必不可少的物品, 广泛用于个人家庭以及车站、码头、医院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的 方便。随着技术的开展,人们已不再满足于钟表原先简单的报时功能,希望出现一些别的功能,诸如日历的显示、闹钟的应用等,以带来更大的方便,而所有这些,又都是以 数字化的电子时钟为根底的。因此,研究实用电子时钟及其开展应用,有着非常现实的 意义,具有很大的实用价值。由

6、于数字集成电路技术的开展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点它还用于计时、自动报时及自动控制等各个领域。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格廉价,使用 灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路 技术的开展,特别是 MOS 集成电路技术的开展,使电子钟具有体积小、携带方便,但是这里介绍的实用电子钟可以满足使用者的一些特殊要求,输出方式灵活、功耗低、对时准确、性能稳定、维护方便等优点。多功能数字万年历是一个时间控制系统,既能作为 一般的时间显示器,同时可以根据需要扩展其功能1.1 设计任务通过对此题的设计,进一步

7、熟悉单片机控制系统,并了解系统设计的一般规律。用P89V51RB2设计一个数字万年历,实现时间的显示功能。1.2 设计要求(1) 用DS1302或HT1380设计一个数字万年历。(2) 通过一个四位数码管显示年月日小时分钟的循环显示。(3) 可通过按键设置时间。(4) 写出详细的设计报告 含操作说明 ,给出全部电路和源程序。1.3 设计意义 1 、在学习了 单片机原理与应用 和 微型级数机控制技术实用教程 课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的经验让学生接触专用时钟芯片 DS1302,并会用DS1302芯片开发时钟模块,应用到其他系统中去。熟

8、悉 WAVE软件调试程序和仿真 .;2 、通过实验提高对单片机的认识;3 、通过实验提高焊接、布局、电路检查能力;4 、通过实验提高软件调试能力;5 、进一步熟悉和掌握单片机的结构及工作原理;6 、通过课程设计,掌握以单 片机核心的电路设计的根本方法和技术,了解表关电路参数的计算方法;7 、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术;8 、通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下根底。word.2、设计方案介绍2.1 用户板设计步骤及过程按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键盘

9、接口模块共4个模块组成,电路系统构成框图如图 2.1所示。主控芯片使用51系列P89V51RB2单片机,时钟芯片使用美国 DALLAs公司推出的一种高性能、低功耗、带 RAM的实时时钟DSl302。采用DSl302作为主要计时芯片,可以做到计时准确。更重要的是,DSl302可以在很小电流的后备电源 (2.55.5v电源,在2.5v时耗电小于300 nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源根本不耗电。 显示模块采用普通的共阳 LED数码管,键输入采用查询法实现调整功能。 图 2.1 电子万年历电路系统构成框图2.2 芯片工作原理 P89V51RB2 单

10、片机概述P89V51RB2 是一款增强型 80C51 微控制器,包含 16kB 的 Flash 程序存储器和1024 个字节的数据 RAM。P89V51RB2控制模块设置键是否按下?系统初始化键扫描电路DS1302时钟电路word.图 2.2 P89V51RB2 最小系统电路图P89V51RB2 的典型特性是他的 X2 方式选项。利用该特性,用户可以将编写的应用程序以传统的 80C51 时钟频率每个机器周期包含 12 个时钟或 X2 方式每个机器周期包含 6 个时钟的时钟频率运行,选择 X2 方式可在相同时钟频率下获得 2倍的执行速度,这样还可以极大地降低电磁干扰EMI。Flash 程序存储器

11、支持并行编程和串行在系统编程ISP。并行编程方式提供了高速的分组编程页编程方式,可节省编程本钱和上市时间。ISP 编程方式不需要专用烧录器、所需外围电路简单、可靠性强,近年来得到了广泛的应用。目前,许多新型的单片机均具有此功能。P89V51RB2 也可以采用在应用中编程IAP,允许随时对 Flash 程序存储器重新配置,即使是应用程序正在运行也不例外。2.2.2 P89V51RB2 单片机的特性* 80C51 核心处理单元;* 5V 的工作电压,操作频率为 040MHZ;* 具有 ISP在系统编程和 IAP在应用中编程功能;* 通过软件或 ISP 选择支持 12 时钟默认或 6 时钟的工作模式

12、; * SPI串行外围接口和增强型 UART;* PCA可编程计数器阵列 ,具有 PWM 和捕获/比拟功能; * 4 个 8 位 I/O 口,含有 3 个高电流 P1 口每个 I/O 口的电流为 16mA ;* 3 个 16 位定时器/计数器;* 可编程看门狗定时器WDT ;* 8 个中断源,4 个中断优先级;* 2 个 DPTR 存放器;* 低 EMI 方式ALE 禁能 ;* 兼容 TTL 和 COMS 逻辑电平;* 低电检测及低功耗模式。word. 时钟电路 DS13021DS1302 的性能特性 * 实时时钟,可对秒、分、小时、日、周、月以及带闰年补偿的年进行计数; * 用于高速数据暂存

13、的 318 位 RAM; * 最少引脚的串行 I/o; * 2.55.5V 电压工作范围; * 2.5V 时耗电小于 300 nA; * 用于时钟或 RAM 数据读/写的单字节或多字节(脉冲方式)数据传送方式; * 简单的 3 线接口; * 可选的慢速充电(至 Vcc1)的能力。D51302 时钟芯片包括实时时钟/日历和 3l 字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/ 日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月利月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24H 或带 AM(上午)/PM(下午)的 12H 格式。采用三线

14、接口与 cPu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。Dsl302有主电源/后备电源双电源引脚:Vcc1 在单电源与电他供电的系统中提供低电源,并提供低功率的电池备份;Vcc2 在双电源系统中提供主电源,在这种运用方式中,Vcc1 连接到备份电,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由 Vcc1 或 vcc2 中较大者供电。当 vcc2 大于 Vcc1 十 0.2v 时,vcc2v 给 DSl302 供电;当 vcc2 小于 Vcc1 时,DSl302 由 Vcc1 供电。2 DSl302 数据操作原理Dsl 302 在任何数据传送时必

15、须先初始化,把 RsT 脚置为高电平,然后把 8 位地址和命令字装入移位存放器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8 位指定 40 个存放器中哪个将被访问到。在开始 8 个时钟周期,把命令字节装入移位存放器之后,另外的时钟周期在读操作时输出数据,在写操作时写人数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。如果在传送过程中置 RsT 脚为低电平,那么会终止本次数据传送,并且 I/O 引脚变为高阻态。上电运行时,在 Vcc2.5 V 之前 ,RsT 脚必须保持低电平。只有在 scLK 为低电平时,才能将 R

16、sT 置为高电平。D 引 302 的引脚及内部结构图如图2.3 所示,表 2.1 为各引脚的功能。表 2.1 DS1302 引脚功能引脚号引脚号引脚名称引脚名称功功 能能1VCC2主电源2、3X1,X2振荡源,外接 32768KHZ 晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端双向7SCLK串行数据输入端8VCC1后备电源word.图 2.3 DS1302 引脚及内部结构DSl302 的控制字如图 2.4 所示。控制字节的最高有效位(位 7)必须是逻辑 1;如果它为 0,那么不能把数据写入到 DSl302 中。位 6 如果为 0,那么表示存取日历时钟数据;为 1 表示存取

17、RAM 数据。位 51(A4 一 A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输入/输出。为了提高对 32 个地址的寻址能力(地址/命令位 15逻辑 1),可以把时钟/日历或 RAM 存放器规定为多字节(burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或写。在时钟/日历存放器中的地址 931 或 RAM 存放器中的地址 31 不能存储数据。在多字节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8个存放器。但是,当以多字节方式写 RAM 时,为了传送数据不必写有 31 字节。小管

18、是否写了全部 31 字节,所写的每一字节都将传送至 RAM。图 2.4 DS1302 的控制字DSl302 共有 12 个存放器,其中有 7 个存放器与日历、时钟相关,存放的数据位为 BCD 码形式。其 H 历、时间存放器及其控制字见表 3.2,其中奇数为读操作,偶数为写操作。时钟暂停:秒存放器的位 7 定义位时钟暂停位。当它为 1 时,DS1302 停止振荡,进入低功耗的备份方式.通常在对 Dsl302 进行写操作时(如进入时钟调整程序),停word.止振荡。当它为 0 时,时钟将开始启动。 AMPM/1224小时方式:小时存放器的位 7 定义为 12 或 24小时方式选择位。它为高电平时,

19、选择 12小时方式。在此方式下,位 5 是 AM/PM 位,此位是高电平时表示 PM,低电平表示 AM。在 24小时方式下,位 5 为第二个 10小时位(20 一 23h)。表 2.2 内部存放器地址和内容Dsl302 的品振选用 32.768kH z,电容推荐值为 6PF,因为振荡频率较低,也可以不接电容.对计时精度影响不大。3、程序的设计3.1 程序流程图3.1.1 系统总流程图系统总流程图如图 4.1 所示,流程图分析:首先系统初始化,系统开始运行,当有设置键按下时进入功能设置模式,无按键按下时读取时间数据送入LCD1602 液晶屏显示,在功能设置模式下设置时间完成后再送数据到LCD16

20、02液晶屏显示。word.图 3.1 主程序流程图3.1.2 时钟程序流程图图 4.2 时钟程序流程图word.时钟流程图如图 4.2 所示。流程图分析: DS1302 开始计时时,首先进行初始化,当有中断信号时,读取时钟芯片的数据送入液晶屏显示,这是假设有设置键按下时,进行时间修改,完成后将数据送入时钟芯片;假设没有设置键按下时,那么直接送入 EPROM,送入液晶屏显示。3.1.3 显示程序流程图图 4.3 显示程序流程图显示程序流程图如图 4.3.流程图分析:首先对 1602 显示屏进行初始化,然后检查忙信号,假设 BF=0,那么获得显示 RAM 地址,写入相应的数据显示;假设 BF=1,

21、那么代表模块在进行内部操作,不接受任何外部指令和数据,直到BF=0 为止。word.4、硬件的设计4.1 显示电路的设计显示局部采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。图 4.1 显示电路4.2 晶振电路设计晶振电路用于产生单片机工作所需要的时钟信号,单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。通常在引脚 Xl 和 X2 跨接石英晶体和两个补偿电容构成自激振荡器。在许可范围内,C1,C2 的值越低越好,C 值偏大虽有利于振荡器的稳定,但会增加起振的时间,应使 C2 大于 C1 值,这样可使上电时,加快晶振起振。图 4

22、.2 晶振电路word.4.3 时钟电路图 4.3 时钟电路4.4 系统程序的设计因为使用了时钟芯片 DSl302,阳历程序只需从 DSl302 各存放器中读出年、周、月、日、小时、分、秒等数据,再处理即可。在首次对 DSl302 进行操作之前,必须对它进行初始化,然后从 Dsl302 中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见下列图所示。图 4.4 阳历程序流程图开始初始化 DS1302DS1302 开始振荡从 DS1302 中读出时间读出数据都为 BCD 码,将其上下位别离,送显示缓冲单元word.4.5 时间调整程序设计调整时间用 2 个调整按钮,1 个作为移位、控制用

23、,另外 1 个作为加和减用,分别定义为控制按钮、加按钮。在调整时间过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比方说 50ms。利用定时器计时,当到达 50ms 溢出时,就送给该位熄灭符,在下一次溢出时。再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进人下一位调整闪烁程序。5、调试总结及改良1DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位 MSB(D7)必须为逻辑 1,如果 D7=0,那么禁止写 DS1302,即写保护;D6=

24、0,指定时钟数据,D6=1,指定 RAM 数据;D5D1 指定输入或输出的特定存放器;最低位 LSB(D0)为逻辑 0,指定写操作(输入),D0=1,指定读操作(输出)。在 DS1302 的时钟日历或 RAM 进行数据传送时,DS1302 必须首先发送命令字节。假设进行单字节传送,8 位命令字节传送结束之后,在下 2 个 SCLK 周期的上升沿输入数据字节,或在下 8 个 SCLK 周期的下降沿输出数据字节。DS1302 与 RAM 相关的存放器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;再一

25、类为突发方式下的 RAM 存放器,在此方式下可一次性读、写所有的 RAM 的 31 个字节。2在仿真头调试时候,我发现在 LED 显示板上能够正常显示数字,但是秒位不能记数,检查 DS1302 的连接没有错,接触也良好,说明了这片 DS1302 不能记数,然后换掉 DS1302 后此时不但可以正常显示数字,而且可以正常记数,说明刚刚那片是坏的。32M晶振的调试,在调试晶振的时候发现,在没有给电路同电的时候,晶振两端输出波形是个不稳定的正弦波,而通电后也是个正弦波,但是中间一个引脚接地时候,波形比拟稳定,接示波器时间长了,发现 DS1302 很发烫时间很短内温度到达很高,但是不接示波器,时间长点

26、也不会出现发烫现象。我认为是示波器引脚上的电和电路板上的电相通的原因。致谢本文能得以完成,在此我要感谢我的指导老师王琪。是他用他的课余时间为我们讲解这次设计的原理以及帮我们找相关的器件,在实物完成后不厌其烦得为我们进行调试和指导;还要感谢我们的专业课老师,是他们教会了我有关 PCB 的制作,单片机相关知识;此外,还要感谢老师,是他用他的课余时间帮我制版,给了我不少帮助;同时还要感谢我的同学,给我的论文提出意见,帮我拍出了实验效果图。这里我要再一次由衷的感谢,感谢那些给予我帮助的人。word.参考文献1 赵亮,侯国锐. 单片机 C 语言编程与实例 人民邮电出版社2003.92 潘永雄等. 新编单

27、片机原理与应用 西安电子科技大学出版社2007.23吴金戌 8051 单片机实践与应用 清华大学出版社4刘勇 数字电路 电子工业出版社5谭浩强 C 语言程序设计 清华大学出版社6顶峰 单片微型计算机与接口技术 科学出版社7张齐 单片机应用系统设计技术 电子工业出版社8王静霞 单片机应用技术 C 语言版 电子工业出版社9李朝青 单片机原理及接口技术主编 北京航空航天大学出版社10魏小康 protel 99se 电路设计与制版入门与提高 (人民邮电出版社) word.附录附录一 元器件清单序号序号名称与规格名称与规格数量数量序号序号名称与规格名称与规格数量数量1电容 30pF26时钟模块 DS13

28、0212晶振 32.768KHz17驱动器 ULN280313电阻 47088PNP44电阻 50019发光二极管红15按钮开关410四位共阳数码管1word.附录二 硬件原理图word.附录三 源程序#include#include #define uchar unsigned char#define uint unsigned intuchar second,minute,hour,day,month,year,week;uchar time5;uchar code table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0

29、x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;uchar code wei=0 xf7,0 xfb,0 xfd,0 xfe;uchar a,b,temp;sbit s0=P00;sbit s1=P01;sbit s2=P02;sbit s3=P03;sbit led=P27;sbit SCLK=P34;sbit IO=P35;sbit RST=P36;bit setflag;uchar readdata(uchar addr) uchar i,j,k; RST=0; SCLK=0; RST=1; for(i=0 x01,j=0;j8;j+) if(addr&a

30、mp;i)IO=1;elseIO=0;SCLK=1;i=i1;SCLK=0; k=0; for(i=0;i=1;SCLK=0;if(IO)k|=0 x80;SCLK=1; RST=0; /!保证 ds1302 完整的数据读取,直接这样写: REST=0; CLK=1;此处也可以正常显示 SCLK=0; _nop_(); SCLK=1; return(k); /*函数功能:ds1302 数据写入*入口参数:8 位地址,8 位数据*返 回: 无*/ void writedata(uchar addr,uchar dat) uchar i,j; RST=0; SCLK=0; RST=1; for(i

31、=0 x01,j=0;j8;j+) if(addr&i)IO=1;elseIO=0;SCLK=1;i=i1;SCLK=0; for(i=0 x01,j=0;j8;j+)word. if(dat&i)IO=1;elseIO=0;SCLK=0;SCLK=1;i=i1; RST=0; SCLK=1;/*函数功能:ds1302 初始化*入口参数:无*返 回: 无*/ void Init1302()writedata(0 x8e,0 x00); /控制写入 WP=0writedata(0 x90,0 x00);writedata(0 x80,(0/10)4)|(0%10); /秒writ

32、edata(0 x82,(14/10)4)|(14%10); /分writedata(0 x84,(7/10)4)|(7%10); /时writedata(0 x86,(7/10)4)|(7%10); /日writedata(0 x88,(7/10)4)|(7%10); /月writedata(0 x8a,(4/10)4)|(4%10); /星期writedata(0 x8c,(10/10)4)*10+(time0&0 x0f);minute=(time1&0 x70)4)*10+(time1&0 x0f);hour=(time2&0 x30)4)*10+(time2&0 x0f);day=(time3&0 x30)4)*10+(time3&0 x0f);month=(time4&0 x10)4)*10+(time4&0 x0f);year=(time6&0

温馨提示

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

评论

0/150

提交评论