《基于at89s51单片机的扩展时钟系统设计》由会员分享,可在线阅读,更多相关《基于at89s51单片机的扩展时钟系统设计(22页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 共 23 页基于 AT89S51 单片机的扩展时钟系统设计摘摘 要:要:随着人类科技文明的发展,人们对于时钟的要求在不断地提高,时钟已不仅仅被看成一种来显示时间的工具。在很多实际应用中它还需要能够实现更多其他的功能。时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。本文正式基于这种方向,以 AT89S51 单片机为核心,结合新型时钟芯片 DS12887,并利用液晶 LCD1602 显示数字时钟。关键字:关键字:AT89S51 单片机;时钟芯片 DS12887;液晶 LCD1602Abstract:With the development of the technolog
2、ical society,requirements for clock is constantly improving,the clock has not only been seen as a time to show tools.It also needs to be able to achieve more in many practical applications.Digital clock, multi-functional modern clock production has become the dominant design direction.In this paper,
3、 formally based on this direction,AT89S51 microcontroller as the core,Combined with the new clock chip DS12887,And LCD1602 LCD display digital clock。Key words: :AT89S51 microcontroller;Time clock DS12887;LCD1602第 2 页 共 23 页1 引言 数字时钟已经成为人们日常生活中必不可少的必需品,广泛应用于个人家庭以及办公室公共场所,给人们的生活、学习、工作、娱乐带来了极大地方便。由于数字集
4、成电路技术的发展和采用了新进的石英技术,是数字钟具有走时准确、性能稳定、携带方便等优点。它还用于计时、自动报时等各个领域。尽管目前市场上已有现成的数字集成电路芯片出售,价格便宜,使用也方便,但鉴于单片机的定时器功能也可以完成数字中电路的设计,因此进行数字钟的设计是必要的。在这里我将以学过的比较零散的电路知识有机的、系统的结合起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。文中详细论述了以 89S51 单片机位核心,应用新型时钟芯片 DS12887 的数字时钟设计原理以及使用的各种芯片的介绍,阐明了本实例所使用的设计方案、详细的电路图以及程序代码。2 总体设计 第 3 页
5、共 23 页本次设计的题目是单片机控制时钟芯片 DS12887 的时分秒定时系统设计,可以正常的显示年、月、日、时、分、秒。程序第一次运行后,初始化时间显示为00:00:00,即 6 位数码管显示为 00.00.00。通过键盘MON设定小时为 00,通过键盘LAST设定分钟为 34,通过键盘NEXT设定秒为 52,为 00:34:52.两分钟后即在 00.52 时关掉电源,等待 2 分钟后再打开电源,这时时间应为 00.36.52,本设计总体大致分为两部分:硬件部分、软件部分。硬件部分包括:89S51单片机、DS12887 时钟芯片、1602LCD 液晶显示器。主要由 89S51 单片机、实时
6、时钟芯片电路、液晶显示输出电路、键盘输入电路组成等几大部分组成。软件部分包括了主程序模块,DS12C887 模块,LCD1602 模块,按键控制模块。本设计是以89S51 单片机为核心,结合新型实时时钟芯片 DS12887,并利用液晶 LCD1602 显示的数字时钟。在液晶上显示、时、分、秒等信息。因为 DS12887 本身的特点,本设计还具有掉电后继续计时的功能。另外,它的计时周期为 24 小时,采用24 小时制的计时方式,显示满刻度为 23 时 59 分 59 秒,这也是 DS12887 的计时范围。本设计的数字时钟,可以通过按键来设置时间,也可以通过按键来设置闹钟的时间,不过与设置正常时
7、间相比,仅限于设置时、分、秒。每按一次按键,蜂鸣器就会发出很短的滴声,当达到设定的时间时,数字时钟会也发出第 4 页 共 23 页声音,来提醒使用者时间到了。以上是本设计的大致功能和简介。总设计如图1 所示图1 接线图3 系统硬件组成3.1 芯片的选择经多种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了 AT89S51 单片机芯片。AT89S51 是美国 ATMEL 公司生产的低功耗,高性能CMOS8 位单片机片内含 4K bytes 的可系统编程的 Flash 只读程序储存器。器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 80C51 指令系统及引脚。它
8、集 Flash 程序存储器既可在线编程也可用传统方法进行编程既通用 8 位微处理器于单片机芯片中,ATMEL 公司的功能强大,低价位 AT89S51 单片机可提供许多高性价比的应用场合, 可灵活应用于各种控制领域。3.2 AT89S51 单片机的硬件组成AT89S51 是一个低功耗,高性能 CMOS8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及89S51 引脚结构,芯片内集成了通用 8 位中央处理器和
9、 ISP Flash 存储单元,第 5 页 共 23 页AT89S51 在众多嵌入式控制应用系统中得到广泛应用。如图 2 所示(1)8 位微处理器(CPU) ;(2)数据存储器(128B RAM) ;(3)程序存储器(4KB Flash ROM) ;(4)4 个 8 位可编程并行 I/O 口;(5)1 个全双工的异步串行口;(6)2 个可编程的 16 位定时器/计数器;(7)1 个看门狗定时器;(8)中断系统具有 5 个中断源、5 个中断向量;(9)特殊功能寄存器(SFR)26 个。图 2 AT89S51 引脚图AT89S51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFal
10、sh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机。AT89S51 是一种带 K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89S51 是一种高效微控制器,AT89S1 是它的一种精简版本。AT89S51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.3
11、电源及时钟引脚3.3.1 电源引脚(1)VCC(40 脚):+5V 电源。(2)VSS(20 脚):数字地。3.3.2 时钟引脚 (1)XTAL1(19 脚):片内振荡器反相放大器和时钟发生器电路输入端。用片第 6 页 共 23 页内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号。(2)XTAL2(18 脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。3.3.3 并行 I/O 口(1)P0 口:8 位,漏极开路的双向 I/O 口当外扩存储器及 I/O 接口芯片时,P0 口作为低 8 位地址总线
12、及数据总线的分时复用端口。P0 口也可用作通用的 I/O 口,需加上拉电阻,这时为准双向口。作为通用 I/O输入,应先向端口写入 1。可驱动 8 个 LS 型 TTL 负载。(2)P1 口:8 位,准双向 I/O 口,具有内部上拉电阻。准双向 I/O 口,作为通用 I/O 输入时,应先向端口锁存器写 1。P1 口可驱动 4 个 LS 型 TTL 负载。P1.5/MOSI、P1.6/MISO 和 P1.7/SCK可用于对片内 Flash 存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。(3)P2 口:8 位,准双向 I/O 口,具有内部上拉电阻。当 AT89S51 扩展外部存储
13、器及 I/O 口时,P2 口作为高 8 位地址总线用,输出高8 位地址。P2 口也可作为普通的 I/O 口使用。当作为通用 I/O 输入时,应先向端口输出锁存器写 1。P2 口可驱动 4 个 LS 型 TTL 负载。(4)P3 口:8 位,准双向 I/O 口,具有内部上拉电阻。可作为通用的 I/O 口使用。作为通用 I/O 输入,应先向端口输出锁存器写入 1。可驱动 4 个 LS 型 TTL负载。P3 口还可提供第二功能。第二功能定义见图 3-3,应熟记。综上所述,P0 口可作为总线口,为双向口。作为通用的 I/O 口使用时,为准双向口,这时需加上拉电阻。P1 口、P2 口、P3 口均为准双向
14、口。P3 口如图3,第 7 页 共 23 页图 3 P3 口引脚图3.4 时钟芯片 DS12887DS12887 是美国 DALLAS 半导体公司最新推出的 8 位串行接口并自带 RAM 的实时日历时钟芯片,内部有 14 个时钟控制寄存器,包括 10 个时标寄存器,4个状态寄存器和 114 bit 作掉电保护用的低功耗 RAM。CPU 通过读 DS12887 的内部时标寄存器得到当前的时间和日历,也可通过选择二进制或 BCD 码初始化芯片的 10 个时标寄存器,其 4 个状态寄存器用来控制和指出 DS12887 的当前工作状态,114 bit 非易失性静态 RAM 可在掉电时保存一些重要数据。
15、 DS12887 功能强大,应用广泛。DS12887 引脚分布图和存储器分布图:第 8 页 共 23 页图 4 引脚分布图和存储器分布通过对寄存器 A、B、C、D 的编程可以控制 DS12887 的工作方式:寄存器 A当 UIP 位为 0 时指示更新在 244S 内不会发生;当 DV2DV1DV0 其为 010时,打开晶振,并允许时钟开始计时;RS3 RS2 RS1 RS0 用于选择周期中断或输出方波的频率,当其分别为 0111、1000、1001、1011、1100、1101、当其分别为 0111、1000、1001、1011、1100、1101、1110、1111 时,对应频率为512Hz
16、、256Hz、128Hz、64Hz、32Hz、16Hz、8Hz、4Hz、2Hz。SET 位为0时,每秒计数一次,置1后,更新转换被禁止;当 PIE、AIE、UIE位为1时,分别允许周期中断、报警中断和时钟数据更新结束中断,为0时,禁止中断产生;SQWE 位为1时,按以寄存器 A 中由 RS3 RS2 RS1 RS0选定的频率从 SQW 引脚输出方波,为0时,SQW 为低电平;当 DM 为1时选用二进制数据格式,反之为 BCD 数据格式;12/24位为1时,指定24小时时第 9 页 共 23 页间格式,否则为12小时时间格式;DSE 为1时允许夏时制发生。寄存器 C 的内容是周期中断标志位 PF、报警中断标志位 AF、更新结束中断标志位 UF 和中断请求标志位 IRQF,它们之间的关系为IRQF=PF*PIE+AF*AIE+UF*UIE,只要 IRQF 为1,/IRQ 引脚输出就保持低电平,读寄存器 C 将清除所有标志器 C 的内容是周期中断标志位 PF、报警中断标志位AF、更新结束中断标志位 UF 和中断请求标志位 IRQF,它们之间的关系为I