电子万年历设计.doc

上传人:滴答 文档编号:1279094 上传时间:2019-01-26 格式:DOC 页数:37 大小:980.50KB
下载 相关 举报
电子万年历设计.doc_第1页
第1页 / 共37页
电子万年历设计.doc_第2页
第2页 / 共37页
电子万年历设计.doc_第3页
第3页 / 共37页
电子万年历设计.doc_第4页
第4页 / 共37页
电子万年历设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、 1 电子万年历设计 摘 要: 随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活中。日历是人们不可或缺的日常用品。但一般日历都为纸制用品,使用不便,寿命不长。 电子万年历采用智能电子控制和显示技术,改善了纸制日历的 缺陷。本设计以 AT89S52单片机为核心,构成单片机控制电路,结合 DS1302时钟芯片和 24C02FLASH 存储器, 完成 时间的 自动调整 和掉电保护,全部信息用液晶显示。时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。 日历能 显示阳历和阴历年、月、日以及星期、时 、分、秒。在显示阴历月份时,能标明是否闰月。 关键词:

2、 电子万年历 52 系列单片机 时钟芯片 FLASH 存储器 液晶显示 The Design of Electronic Calendar Abstract: 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 goo

3、ds 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,

4、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 displa

5、y 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 1 引言 在日新月异的 21 世纪里,家 用 电 子产品得到了迅速发展 。 许多家电 设备都 趋于人性化、 智能化 , 这些电器设备大部分都含有 CPU 控制器 或者是 单片机。

6、单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。 用单片机来控制的小型家电产品具有便携实用,操作简单的特点。 本文设计的电子万年历属于小型智能家用 电子产品。利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。 电子2 万年历 既可广泛应用于家庭 ,也可应用于银行、邮电、宾馆、 医院 、学校、企业、商店 等相关行业的大厅,以及单位

7、会议室、门卫等场所。 因而,此设计具有相当重要的现实意义和实用价值。 2 系统概述 本设计以 AT89S52单片机为核心,构成单片机控制电路,结合 DS1302 时钟芯片和 24C02FLASH 存储器, 显示阳历年、月、日、星期、时、分、秒和阴历年、月、日,在显示阴历时间时,能标明是否闰月,同时 完成对 它们的 自动调 整 和掉电保护,全部信息用液晶显示。人机接口由三个按键来实现,用这三个按键对时间、日期可调,并可对闹铃开关进行设置。软件控制程序实现所有的功能。整机电路使用 +5V 稳压电源,可稳定工作。系统框图如图 2-1 所示, 其软硬件设计简单,时间记录准确,可广泛应用于长时间连续 显

8、示的 系统中。 图 2-1 系统框图 3 方案选择 由于电子万年历的种类比较多, 因此 方案选择在设计中是至关重要的。 正确地选择方案可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。 3.1 方案 1 基于 AT89S52 单片 机的电子万年历设计 不使用时钟芯片,而直接用 AT89S52 单片机来实现电子万年历设计。 AT89S52 是一种带 8K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS 8 位微处理器,俗称单片机。 单片机的 可擦除只读存储器可以反复擦 写 1000 余 次。由于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT8

9、9S52 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 若采用单片机计时, 利用它的一个 16 位定时器 /计数器每 50ms 产生一个中断信号,中断 20 次后产生一个秒信号,然后根据时 间进制关系依次向分、时、日、星期、月、年进位。这样就实现了直接用单片机来实现电子万年历设计。 用单片机来实现电子万年历设计,无须外接其他芯片,充分利用了单片机的资源。但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。 3.2 方案 2 基于 DS1302 的电子万年历设计 在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些人机接口 显示电路 软件控

10、制程序 电源电路 单片机控制电路 3 实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。过去多用并行接口的时钟芯片,如 MC146818,DS12887等。它们已能完全满足单片机系统对实时时钟 的要求,但是这些芯片与单片机接口复杂、占用地址 , 数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少, DS1302是一个综合性能较好且价格便宜的串行 接口实时时钟芯片。 利用单片机进行控制,采用 DS1302作为实时时钟芯片,其三线接口 SCLK、 I/O、/RST与单片机进行同步通信,外加掉电存储电路、显示电路、键盘

11、电路,即构成一个基本的电子万年历系统,若还要添加其他功能,在这基础上外扩电路即可。 由于在系统设计时,需要考虑以下几点因素:功 耗低、精确度高、软件编程较简单,芯片的体积小、芯片成本低等,而 DS1302芯片有上面所述的诸多优点,所以本设计采用方案 2。 4 系统硬件电路的设计 按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共 6 个模块组成,电路系统构成框图如图 4-1所示。主控芯片使用 52 系列 AT89S52 单片机,时钟芯片使用美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟芯片 DS1302,存储模块

12、采用 美国 ATMEL 公司 生产 的低功耗 CMOS 串行 EEPROM 存储芯片 AT24C02。 DS1302 作为主要计时芯片,可以做到计时准确。更重要的是, DS1302 可以在很小电流的后备 ( 2.5 5.5V 电源,在 2.5V 时耗电小于 300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。 图 4-1 电子万年历电路系统构成框图 4.1 系统核心部分 闪电存储型器件 AT89S52 4.1.1 AT89S52 具有下列主要性能 5: 8KB 可改编程序 Flash 存储器(可经 受 1000 次的写入 /擦除周期) 全静态工

13、作: 0Hz 24MHz 三级程序存储器保密 128 8 字节内部 RAM ( 89S52) 主控模块 DS1302 时钟电路 键扫描电路 液晶显示 存储电路 闹铃电路 4 32 条可编程 I/O 线 2个 16 位定时器 /计数器 6个中断源 可编程串行通道 片内时钟振荡器 4.1.2 AT89S52 的引脚及功能 AT89S52 单片机的管脚说明如图 4-2所示。 P 1.01P 1.12P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78R S T9P 3.0( R X D )10P 3.1( T X D )11P 3.2( I N T 0)12P 3.3( I N

14、T 1)13P 3.4( T 0 )14P 3.5( T 1 )15P 3.6( W R )16P 3.7( R D )17X T A L 218X T A L 119GND20P 2.0( A 8)21P 2.1( A 9)22P 2.2( A 10 )23P 2.3( A 11 )24P 2.4( A 12 )25P 2.5( A 13 )26P 2.6( A 14 )27P 2.7( A 15 )28P S E N29A L E / P R O G30E A / V P P31P 0.7( A D 7)32P 0.6( A D 6)33P 0.5( A D 5)34P 0.4( A D

15、4)35P 0.3( A D 3)36P 0.2( A D 2)37P 0.1( A D 1)38P 0.0( A D 0)39V C C40图 4-2 AT89S52 的 管脚 (1) 主要电源引脚 VCC 电源端 GND 接地端 (2) 外接晶体引脚 XTAL1和 XTAL2 XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。 (3) 控制或与

16、其它电源复用引脚 RST、 ALE/PROG、 /PSEN 和 /EA/VPP RST 复位输入端。 当振荡器运行时, 在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时, ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器, ALE 端仍以不变的频率(此频率为振荡器频率5 的 1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个 ALE 脉冲。在对 Flash存储器编程期间,该引脚还用于输入编程脉冲( /PROG) 6。 /PSEN 程序存储允许( /PS

17、EN)输出是外部程序存储器 的读选通信号。当AT89S52/LV52 由外部程序存储器取指令(或常数)时,每个机器周期两次 /PSEN 有效(既输出 2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的 /PSEN信号将不出现。 /EA/VPP 外部访问允许端。要使 CPU 只访问外部程序存储器(地址为 0000HFFFFH),则 /EA 端必须保持低电平(接到 GND 端)。当 /EA 端保持高电平(接 VSS 端)时, CPU 则执行内部程序存储器中的程序。 (4) 输入 /输出引脚 P0.0 P0.7、 P1.0 P1.7、 P2.0 P2.7 和 P3.0 P3.7 P0

18、端口( 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 的输

19、出缓冲器可驱动(吸收或输出电流方式) 4 个 TTL 输入。对端口写 1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P2 作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P3 端口( P3.0 P3.7) P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4个 TTL 门电流。当 P3 口写入 “1” 后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3 口将输出电流 , 这是由于上拉的缘故。 P3口也可作为 AT89S52 的一些特殊功能, 这些特殊功能见表 4-17。 表 4-1 P3 端口的特殊功

20、能 端口引脚 兼 用 功 能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 /INT0 (外部中断 0) P3.3 /INT1 (外部中断 1) P3.4 T0 ( 定时器 0 的外部输入) P3.5 T1 (定时器 1 的外部输入) 6 P3.6 /WR (外部数据存储器写选通) P3.7 /RD (外部数据存储器读选通) 4.2 DS1302时钟电路 4.2.1 DS1302 芯片介绍 低功耗时钟芯片 DS1302可以对年、月、日、时、分、秒进行计时 , 且具有闰年补偿等多种功能。 DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数

21、据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义 8。 采用 DS1302 作为记录测控系统中的数据记录,其软 硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能

22、记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资 源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用 DS1302则能很好地解决这个问题。 (1) DS1302 的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的 31 8 位 RAM; 最少引脚的串行 I/O; 2.5 5.5V 电压工作范围; 2.5V 时耗电小于 300nA; 用于时钟或 RAM 数据读 /写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3 线接口; 可选的慢速充电(至 VCC1)的能力

23、。 DS1302 时 钟芯片包括实时时钟 /日历和 31 字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟 /日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24h 或带 AM(上午) /PM(下午)的 12h 格式。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。 DS1302 有主电源 /后备电源双电源引脚: VCC1 在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份; VCC2在双电源系统中提供主电源, 在这种运用方式中,

24、VCC1 连接到7 备份电源,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 VCC1 或VCC2中较大者供电。当 VCC2大于 VCC1+0.2V 时, VCC2给 DS1302 供电;当 VCC2小于 VCC1时,DS1302 由 VCC1供电。 (2) DS1302 数据操作原理 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8位指定 40 个寄存器中哪个被访问到。在开始 8个时钟周期,把命 令字节装入移位寄存器之后,另外的时钟周期在读操作

25、时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8加 8,在多字节方式下为 8加字节数,最大可达248 字节数。 V c c 21X12X23GND4R S T5I /O6S C L K7V c c 18D S 13 02U3图 4-3 DS1302 管脚图 如果在传送过程中置 RST 为低电平,则会终止本次数据传送,并且 I/O 引脚变为高阻态。上电运行时,在 VCC =2.5V 之前, RST 脚必须保持低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 的管脚图如图 4-3 所示,内部结构图如图4-4所示,表 4-2为各引脚的功能。 电源控制

26、输入移位寄存器V C C 1V C C 2GNDI / OS C L KR S T命令与控制逻辑31 8R A M振荡器与分频器实时时钟D A T A B U SA D B U SX1 X23 2 . 7 6 8 k H z图 4-4 DS1302 内部结构图 表 4-2 DS1302 引脚功能表 电源 控制 输入移位寄存器 实时时钟 命令与控制逻辑 31 8RAM 振荡器与分频器 8 引脚号 引脚名称 功能 1 VCC2 主电源 2, 3 X1, X2 振荡源,外接 32768HZ 晶振 4 GND 地线 5 RST 复位 /片选线 6 I/O 串行数据输入 /输出端(双向) 7 SCLK

27、串行数据输入端 8 VCC1 后备电源 DS1302 的控制字如图 4-5所示。控制字节的最高有效位(位 7)必须是逻辑 1;如果它为逻辑 0,则不能把数据写入到 DS1302 中。位 6如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。位 5 1( A4 A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输入 /输出。 图 4-5 控制字节的含义 为了提高对 32 个地址的寻址能力(地址 /命令位 1 5逻辑 1),可以把时钟 /日历或 RAM 寄存器规定为多字节( burst)方式。位 6 规定时钟或

28、 RAM,而位 0 规定读或写。在时钟 /日历寄存器中的地址 9 31或 RAM寄存器中的地址 31不能存储数据。在多字节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8个寄存器。但是,当以多字节方式写 RAM 时, 为了传送数据不必写所有 31字节。不管是否写了全部 31 字节,所写的每一字节都将传送至 RAM。数据读写程序如图 4-6所示。 图 4-6 数据读写程序 DS1302 共有 12 个寄存器,其中有 7个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日历、时间寄存器及其控制字见表 4-3,其中奇数为读操作,偶数SCLKSCLK K I/O 5

29、0 0 0 70 0 0 1 30 0 0 50 0 0 70 0 0 20 0 0 10 0 0 0 2 40 0 0 60 0 0 00 0 0 40 0 0 60 0 0 R/C A2 A3 A0 A1 R/W A4 1 DATA I/O BYTE DATA I/O BYTE RST 7 6 5 4 3 2 1 0 1 RAM CK A4 A3 A2 A1 A0 RAM K 9 为写操作。 表 4-3 DS1302 的日历、时钟寄存器及其控制字 寄存器 名 命令字 取值 范围 各位内容 写操作 读操作 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 00-59 CH 10SEC

30、 SEC 分钟寄存器 82H 83H 00-59 0 10MIN MIN 小时 寄存器 84H 85H 01- 12 或 00-23 12/ 24 0 10 AP HR HR 日期 寄存器 86H 87H 01-28,29, 30,31 0 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 停止振荡,进入低功耗的备份方式。通常在对 DS

31、1302 进行写操作时(如进入时钟调整程序),停止振荡。当它为 0时,时钟将开始启动。 AM-PM/12-24小 时方式: 小 时寄存器的位 7 定义为 12 或 24小 时方式选择位。它为高电平时,选择 12小 时方式。在此方式下,位 5 是 AM/PM 位,此位是高电平时表示 PM,低电平表示 AM,在 24小 时方式下,位 5为第二个 10小 时位( 2023h)。 4.2.2 DS1302 的应用 实时时钟芯片 DS1302 采用串 行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用 32768Hz 晶振。要特别说明的是,备用电源BT1 可以用电池或超级电容

32、( 10 万 F以上)。虽然 DS1302 在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替( 100 F就可以保证 1小时的正常走时) 9。 DS1302 在第一次加电后,需进行初始化操作。初始化后就可以按正常方法调整时间及闹铃 。 DS1302 的时钟电路如图 4-3所示。 10 V c c 21X12X23GND4R S T5I / O6S C L K7V c c 18D S 13 02U332 76 8H zY1+ 5V3VB T 1P 3.2P 3.3P 3.4图 4-7 DS1302 时钟电

33、路 4.3 存储电路 4.3.1 AT24C02 管脚介绍 AT24C0210是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM,它是内含 2568 位存储空间,具有工作电压宽( 2.5 5.5V)、擦写次数多(大于 10000 次)、写入速度快(小于 10ms)等特点。 AT24C02 的 1、 2、 3脚是三条地址线,用于确定芯片的硬件地址。第 8 脚和第4 脚分别为正、负电源。第 5 脚 SDA 为串行数据输入 /输出,数据通过这条双向 I2C总线串行传送。第 6 脚 SCL 为串行时钟输入线。 SDA 和 SCL 都需要 和正电源间各接一个 4.7K的电阻上拉。 I2C总线

34、是一种用于 I2C 器件之间连接的二线制总线。它通过 SDA(串行数据线)及 SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、 LCD 驱动器还是键盘接口。 4.3.2 AT24C02 的特性 (1) I2C总线的基本结构 采用 I2C 总线标准的单片机或 I2C 器件,其内部不仅有 I2C 接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。 CPU 不仅能通过指令将某个功能 单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。 (2) 双向传输的接口特性 传统的单片机串行接口的发送和接收一般都各用一条线,而 I2C总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器 (也叫主器件 ),而当其从总线上接收信息时,又成为接收器 (也叫从器件 )。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。 I2C 总线的控制完全由挂接在总线上的主器件送出的地址和 数据决定。 总线上主和从 (即发送和接收 )的关系不是一成不变的,而是取决于此时数据传送

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 表格模板

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。