1、摘要 本设计是基于 51 系列的单片机进行的实时日历和时钟显示设计,可以 显示年月日时分秒及周信息,具有可调整日期和时间功能。 在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备 。 实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89S52 单片机, LED 显示电路,以及调时按键电路等组成, 系统通过 LED 显示数据,所以具有人性化的操作和直观的显示效果 。 软件方面主要包括时钟程序、键盘程序,显示程序等。 本 系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结 构,使程序设计的逻辑关系更加简洁明了 , 以便更简单地实现
2、调整时间及日期显示功能。所有程序编写完成后,在 wave 软件中进行调试,确定没有问题后,在Proteus 软件中嵌入单片机内进行仿真。 关键词 : AT89S52; DS1302; LED 2 Abstract This design is based on 51 series monolithic integrated circuits of a real-time calendar and the clock shows the design, you can show how and when a week, has may adjust the date and time funct
3、ions. in the design for monolithic integrated circuits, and peripheral to expand the basic theories of knowledge was fairly comprehensive preparation. Real-time calendar and the clock shows the design in hardware and software design of hardware that is synchronized. the led display at89s52 monolithi
4、c integrated circuits, and when should the electrical circuits, the system through the led display data so be humanized operate and intuitive that effect. including the software application programs, the keyboard, the program, etc. This system to monolithic integrated circuits of the assembly langua
5、ge for easily developing software design, and changes, software design to use modular design, the programming logical relationship with more and more so as to realize the time and date display the functions. all procedures in writing after wave of debugging the software and make no question of the p
6、roteus software embedded monolithic integrated circuits. Key Words: AT89S52; DS1302; LED I 目录 1 概述 . 1 2 设计方案论证 . 2 2.1 功能要求 . 2 2.2 方案确定 . 2 2.2.1 单片机芯片的选择方案和论证 . 2 2.2.2 显示模块选择方案和论证 . 3 2.2.3 时钟芯片的选择方案和论证 . 3 2.2.4 电路设计最终方案确定 . 3 3 主控制器和外围器件 . 4 3.1AT89S52 单片机 . 4 3.2DS1302 时钟芯片 . 4 3.2.1DS1302 芯片
7、介绍 . 4 3.2.2DS1302 的应用 . 8 3.3 数码管 LED . 8 3.4 译码器 74HC138 . 9 3.5 锁存器 74LS244 . 9 4 硬件设计 . 10 4.1 电路设计框图 . 10 4.2 系统概述 . 10 4.3 电源设计 . 10 4.4 单片机的复位电路 . 11 4.5 单片机系统的晶振电路 . 11 4.6 主电路设计 . 12 5 软件设计 . 13 5.1 主程序设计 . 13 5.2 键盘 子程序设计 . 14 5.3 日历时钟子程序设计 . 16 II 5.4 显示子程序设计 . 18 6 系统调试 . 18 6.1 软件调试 . 1
8、8 6.2 硬件调试 . 19 7 结论 . 20 致谢 . 22 参考文献 . 23 附录 . 24 附录硬件电路图 . 24 附录主程序源代码 . 25 附录外文翻译原文 .错误 !未定义书签。 附录外文翻译译文 .错误 !未定义书签。 - 1 1 概述 在日新月 异的 21 世纪里,家 用 电 子产品得到了迅速发展 。 许多家电 设备都趋于人性化、 智能化 , 这些电器设备大部分都含有 CPU 控制器 或者是 单片机。 单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产
9、的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。 用单片机来控制的小型家电产品具有便携实用,操作简单的特点。 时钟,自从它发明的那天起,就成为人类的朋友,但随着 时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用 LED显
10、示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时 /计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典
11、型的时钟芯片有:DS1302, DS12887, X1203 等都可以满足高精度的要求。 本文设计的日历和时钟的显示广泛用于小型智能家用电子产品,如电子钟。利用单片机进行控制,实时时钟芯片 DS1302 进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。 电子 钟既可广泛应用于家庭 ,也可应用于银2 行、邮电、宾馆、 医院 、学校、企业、商店 等相关行业的大厅,以及单位会议室、门卫等场所。 因而,此设计具有相当重要的现实意义和实用价值。 2 设计方案论证 2.1 功能要求 1、能显示年、月、日、时、分、秒、星期 2、能对时间进行手动修正 3、采用 24 小时制 4、使用 LED 显
12、示时间参数 5、上电后,电子钟显示“ 2010 年 1 月 1日” “ 1时 1 分 1秒 星期 1” 对时,分,秒,日, 月, 年高位为 0 时 做 消隐 处理, 只显示单个数字以增强其可读性。 2.2 方案确定 2.2.1 单片机芯片的选择方案和论证 方案一 : 采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间 ,能于 3V 的超低压工作 ,而且与 MCS-51系列单片机完全兼容 ,但是运用于电路设计中时由于不具备 ISP 在线编程技术 , 当在对电路进行调试 时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造
13、成一定的损坏。 方案二 : 采用 AT89S52,片内 ROM 全都采用 Flash ROM;能以 3V的超底压工作;同时也与 MCS-51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间,同样具有89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 3 所以选择采用 AT89S52 作为主控制系统 . 2.2.2 显示模块选择方案和 论证 方案一: 采用 LED 液晶显示屏 ,液晶显示屏的显示功能强大 ,可显示大量文字 ,图形 ,显示多样 ,清晰可见 ,但是价格昂贵
14、,需要的接口线多 ,所以在此设计中不采用LED 液晶显示屏 。 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合 ,如采用在显示数字显得太浪费 ,且价格也相对较高 ,所以也不用此种作为显示 。 方案三: 采用 LED 数码管动态扫描 ,LED 数码管价格适中 ,对于显示数字最合适 ,而且采用动态扫描法与单片机连接时 ,占用的单片机口线少。 所以采用了 LED 数码管作为显示。 2.2.3 时钟芯片的选择方案和论证 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但
15、是,实现的时间误差较大。所以不采用此方案。 方案二: 采用 DS1302 时钟芯片实现时钟, DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高 ,位的 RAM做为数据暂存区,工作电压 2.5V 5.5V范围内, 2.5V时耗电小于 300nA. 2.2.4 电路设计最终方案确定 综上各方案所述 ,对此次作品的方案选定 : 以单片机 AT89S52 为主控制器,4 时间数据是通过时钟芯片 DS1302 来读取,并通过 LED 数码管显示出来,并用键盘来完成对当前时间的调整。 3 主控制器和外围器件 3.1AT89S52 单片机 AT
16、89S52 是一种低功耗、高性能 CMOS 8 位微控制器,使用 ATMEL 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。并具有以下标准功能: 8k字节 Flash, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内容被保存,振荡器被冻结,
17、单片机一切工作停止,直到下一个中断或硬件复位为止。 3.2DS1302 时钟 芯片 3.2.1DS1302 芯片介绍 低功耗时钟芯片 DS1302 可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。 DS1302 用于数据记录,特别是对某些具有特殊意义的数据点的 记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。 采用 DS1302 作为记录测控系统中的数据记录,其软硬件设计简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的
18、方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析 及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资5 源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用 DS1302 则能很好地解决这个问题。 DS1302 的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年
19、进行计数; 用于高速数据暂存的 31 8 位 RAM; 最少引脚的串行 I/O; 2.5 5.5V 电压工作范围; 2.5V 时耗电小于 300nA; 用于时钟或 RAM 数据读 /写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3 线接口; 可选的慢速充电(至 VCC1)的能力。 DS1302 时钟芯片包括实时时钟 /日历和 31 字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟 /日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24h 或带 AM(上午) /PM(下午)的 12h
20、格式。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送 多个字节的时钟信号或RAM 数据。 DS1302 有主电源 /后备电源双电源引脚: VCC1 在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份; VCC2 在双电源系统中提供主电源,在这种运用方式中, VCC1 连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 VCC1或 VCC2中较大者供电。当 VCC2大于 VCC1+0.2V 时,VCC2给 DS1302 供电;当 VCC2小于 VCC1时, DS1302 由 VCC1供电。 DS1302 数据操作原理 DS1302 在任何
21、数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8位指定 40 个寄存器中哪个被访问到。在开始 8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8加字节数,最大可达 248 字节数。 6 V c c 21X12X23GND4R ST5I/O6SC L K7V c c 18D S1302U3图 3-1 DS1302 管脚图 如果在传送过程中置 RST 为低电平,则会终止本次数据传送
22、,并且 I/O 引脚变为高阻态。上电运行时,在 VCC =2.5V 之前, RST 脚必须保 持低电平。只有在SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 的管脚图如图 3-1所示,表3-2 为各引脚的功能。 引脚号 引脚名称 功能 1 VCC2 主电源 2, 3 X1, X2 振荡源,外接 32768HZ 晶振 4 GND 地线 5 RST 复位 /片选线 6 I/O 串行数据输入 /输出端(双向) 7 SCLK 串行时钟 输入端 8 VCC1 后备电源 表 3-2 DS1302 引脚功能表 DS1302 的控制字如图 3-3所示。控制字节的最高有效位(位 7)必须是逻辑 1;如果它为逻辑 0,则不能把 数据写入到 DS1302 中。位 6如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。位 5 1( A4 A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1表示进行读操作。控制字节总是从最低位开始输入 /输出。