基于DS12C887实时日历时钟设计.docx
- 文档编号:11290947
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:42
- 大小:665.34KB
基于DS12C887实时日历时钟设计.docx
《基于DS12C887实时日历时钟设计.docx》由会员分享,可在线阅读,更多相关《基于DS12C887实时日历时钟设计.docx(42页珍藏版)》请在冰豆网上搜索。
基于DS12C887实时日历时钟设计
课程设计(论文)说明书
题目:
基于DS12C887实时日历时钟设计
院(系):
专业:
学生姓名:
学号:
指导教师:
职称:
2011年12月12日
摘要
在日新月异的21世纪里,家用电子产品得到了迅速发展。
许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。
单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。
本文设计的电子万年历属于小型智能家用电子产品。
利用单片机进行控制,实时时钟芯片DS12C887时钟芯片进行记时及掉电存储,外加键盘电路和显示电路,可实现时间的调整和显示。
电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。
因而,此设计具有相当重要的现实意义和实用价值。
关键词:
单片机;DS12C887;智能
Abstract
Intherapidlychanging21stcentury,homeelectronicsproductshavebeendevelopedrapidly.Manyhouseholdapplianceshavetendedtobehumane,intelligent,mostofwhichcontainingCPUcontrollerormicrocontroller.Inrecentyears,Microcontrollerhasbeentherapiddevelopmentandlarge-scalepromotionwithitshighreliability,highcost,lowvoltage,lowpowerconsumptionandaseriesofadvantages.Ithasbeenwidelyusedinindustrialcontrolsystems,communicationsequipment,everydayconsumerproductsandtoys.
Thepaperpresentsthedesignofelectroniccalendarbelongstoasmallintelligenthouseholdelectronics.Usingsingle-chipmicrocomputercontrol,real-timeclockchipsDS12C887fortimingandkeepingmemory,plusoffkeyboardcircuitanddisplaycircuit,itcanrealizethetimeofadjustmentanddisplay.Itisnotonlywidelyusedinhouseholdelectroniccalendar,butalsobeusedinbanking,telecommunications,hotels,hospitals,schools,businesses,shops,hallsandotherrelatedindustries,theunitconferenceroom,conciergeandotherplaces.Thus,thisdesignhasveryimportantpracticalsignificanceandpracticalvalue.
Keywords:
Microcontroller;DS12C887;intelligent
引言
数字时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
适用于家庭、公司、机关等众多场所。
为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子时钟、数字闹钟等等。
单片机在多功能高精度时钟中的应用已是非常普遍的,人们对高精度钟的功能及工作顺序都非常熟悉,但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
本文提出了一种基于STC89C52RC单片机的时钟设计方案,本方案以STC89C52RC单片机作为主控核心,与时钟芯片DS12C887、独立按键、1602LCD显示等模块组成硬件系统。
在硬件系统中设有独立按键和LCD显示器,根据使用者的需要可以随时对时间进行校准与设定等操作,综上所述此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
1系统总体设计
图1-1
1.1系统设计的主要内容和具体要求
1.1.1主要内容:
本次设计的题目是基于DS12C887的高精度时钟的设计,可以正常的显示年、月、日、时、分、秒。
本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机STC89C52为核心元件,同时采用1602液晶显示屏动态显示“时”、“分”、“秒”的现代计时装置。
与传统机械表相比,它具有走时精确,显示直观等特点。
另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
本次设计可分为两部分:
硬件部分、软件部分。
硬件部分包括:
STC89C52单片机、DS12C887时钟芯片、1602LCD液晶显示器。
主要由STC89C52单片机、实时时钟芯片电路、液晶显示输出电路、键盘输入电路等几大部分组成。
具体说来,系统智能控制部分由单片机及其相关的外围电路组成,外围电路包括复位电路、晶振电路、键盘设计、闹铃电路及电源电路。
利用单片机将复位电路、动态显示电路、电源电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。
软件部分主要包括了主程序模块,DS12C887模块,LCD1602模块,键盘控制模块。
1.1.2具体技术要求:
(1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。
(2)具有闹铃设定及到时报警功能,报警响起时按任意键可取消报警。
(3)能够通过按键随时调节各个参数,按键可设计4个有效键,分别为功能选择键、数值增大键、数字减小键和闹铃查看键。
(4)每次有键按下时,蜂鸣器都以短“滴”声报警。
(5)利用DS12C887自身掉电可继续走时的特性,设计实现断电时间不停、再次上电时间仍然准确显示在液晶上的功能。
1.2方案论证
时钟电路有各种各样的,在不同的要求和条件下有着各自的优势,本设计的题目是高精度时钟的设计,根据设计要求时钟显示正常的年、月、日、星期、时、分、秒。
要想实现上述功能,所以设计要从电路设计的性价比、显示时间的精确以及稳定性为前提。
本设计是要将硬件系统和软件系统有机的结合在一起,方可实现我们设计任务中的各项要求。
1.2.1方案1——基于STC89C52单片机的电子万年历设计
不使用时钟芯片,而直接用STC89C52单片机来实现电子万年历设计。
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
若采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。
这样就实现了直接用单片机来实现电子万年历设计。
用单片机来实现电子万年历设计,无须外接其他芯片,充分利用了单片机的资源。
但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。
1.2.2方案2——基于DS12C887的电子万年历设计
在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。
过去多用并行接口的时钟芯片,如MC146818,DS12887等。
它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址,数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS12C887是一个综合性能较好且价格便宜的串行接口实时时钟芯片。
利用单片机进行控制,采用DS12C887作为实时时钟芯片,并与单片机进行同步通信,外加显示电路、键盘电路、闹铃电路,即构成一个基本的电子万年历系统。
若还要添加其他功能,在这基础上外扩电路即可。
由于在系统设计时,需要考虑以下几点因素:
功耗低、精确度高、软件编程较简单,芯片的体积小、芯片成本低等,而DS12C887芯片有上面所述的诸多优点,所以本设计采用方案2。
2系统硬件电路设计
按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、供电模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如图2-1所示。
图2-1实时日历时钟电路系统构成框图
2.1单片机控制电路
单片机控制系统包括STC89C52单片机以及它的外围电路(晶振电路和复位电路)。
2.1.1STC89C52的引脚及功能:
单片机STC89C52的管脚说明如图2-2所示:
图2-2STC89C52的管脚
(1)主要电源引脚
VCC电源端
②GND接地端
(2)外接晶体引脚XTAL1和XTAL2
XTAL1接外部晶体的一个引脚。
在单片机内部,它是构成片内振荡器的反相放大器的输入端。
当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。
②XTAL2接外部晶体的另一个引脚。
在单片机内部,它是上述振荡器的反相放大器的输出端。
采用外部振荡器时,此引脚应悬浮不连接。
(3)控制或与其它电源复用引脚RST、ALE//PROG、/PSEN和/EA/VPP
RST复位输入端。
当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。
②ALE//PROG当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是:
每当访问外部数据存储器时,将跳过一个ALE脉冲。
在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。
③/PSEN程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。
当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。
但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
④/EA/VPP外部访问允许端。
要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则/EA端必须保持低电平(接到GND端)。
当/EA端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。
(4)输入/输出引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.7
P0端口(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的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
④P3端口(P3.0~P3.7)P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为STC89C52的一些特殊功能,这些特殊功能见表2-1:
端口引脚
兼用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
表2-1P3端口的特殊功能
2.1.2复位电路
单片机复位的条件是当单片机振荡器工作时,RST引脚上出现持续两个机器周期的高电平,从而实现复位操作,使单片机回复到初始状态。
上电时,考虑到振荡器有一定的起振时间,RST引脚上高电平必须持续10ms以上才能保证有效复位。
STC89C52的复位是由外部的复位电路来实现的:
图2-3
2.1.3晶振电路
晶振的作用是为系统提供基本的时钟信号。
晶振电路中接在晶振旁的两个电容,叫负载电容。
一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C2、C3可在30pF时振荡器有较高的频率稳定性。
图2-4
2.2DS12C887时钟电路
本次设计采用实时时钟芯片是DS12C887,这种实时时钟芯片具备年、月、日、星期、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。
2.2.1器件介绍
DS12C887是美国Dallas半导体公司推出的并行接口实时时钟\日历芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与计算机常用的时钟芯片MC146818和DS12887管脚兼容,可直接替换。
采用DS12C887芯片设计的时钟电路无需任何外围电路和器件,并且有良好的微机接口。
DS12C887芯片内有微功耗,外围接口简单,精度高,工作稳定可靠等优点,广泛各种需要较高精度的实时时钟系统中。
DS12C887主要功能介绍:
(1)内含一个锂电池,断电后运行十年以上不丢失数据;
(2)计秒、分、时、天、星期、日、月、年、并有闰年补偿功能;
(3)二进制数码或BCD码表示时间,日历和定闹;
(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能;
(5)Motorola和Intel总线时序选择;
(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能;
(7)可编程方波信号输出;
(8)中断信号输出(IRQ)和总线兼容、定闹中断、周期性中断、时钟更新周期、结束中断可分别由软件屏蔽,也可分别进行测试;
2.2.2DS12C887与单片机的连接
DS12C887是一款纯数字式的芯片,只要它与电片机的I/O口直接相连就可以操作。
操作DS12C887时钟芯片共需要13条信号线,分别是并行数据地址复用线AD0~AD7、CS、AS、R/W、DS和IRQ。
然后将RESET引脚固定接高电平,再将DS12C887芯片的VCC和GND引脚正确连接即可。
DS12C887的管脚如图2-5所示。
图2-5
2.31602液晶显示屏
液晶显示器简称为LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特征实现显示信息的。
液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中得到日益广泛的应用。
液晶显示器按其功能可分为三类:
笔端式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前两种可以显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形。
下面是1602字符型LCD引脚接口介绍:
图2-61602字符型LCD显示器正反面
1602字符型LCD引脚说明:
第1脚:
VSS为电源地,接GND。
第2脚:
VDD接5V正电源。
第3脚:
VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
EN端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
BLA背光电源正极(+5V)输入引脚。
第16脚:
BLK背光电源负极,接GND。
引脚说明如表2-2所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据口
2
VDD
电源正极
10
D3
数据口
3
VO
液晶显示器对比度调整端
11
D4
数据口
4
RS
数据/命令选择端(H/L)
12
D5
数据口
5
R/W
读/写选择端(H/L)
13
D6
数据口
6
E
使能信号
14
D7
数据口
7
D0
数据口
15
BLA
背光源正极
8
D1
数据口
16
BLK
背光源负极
表2-21602字符型LCD引脚
1602字符型LCD与单片机的连接接口说明如下:
(1)液晶1、2端为电源;15、16端为背光电源;15脚接一个10欧电阻用于限流。
(2)液晶3端为液晶对比度调节端,通过一个10K电位器接地来调节液晶显示对比度。
首次使用时,在液晶的上电状态下,调节至液晶上面一行显示出黑色小格为止。
(3)液晶4端为向液晶控制器写数据/写命令选择端,接单片机的P2.5口。
(4)液晶5端为读/写选择端只向其写入命令和显示数据。
(5)液晶6端为使能信号,是操作时必须的信号,接单片机的P2.6口。
图2-7
2.4USB供电电路
由于当Vcc输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;当Vcc输入小于+4.25V时,禁止用户对内部RAM进行读/写操作,此时用户不能正确获取芯片内的时间信息。
故本设计采用USB接口外加+5V充电器供电。
图2-8
2.5键盘电路
本设计共采用按键4个,分别与单片机的P2.4、P2.3、P2.2、P2.1口相连,分别是功能选择键、数值增大键、数值减小键和闹铃查看键。
在时间调节中,可按功能选择键,配合数值增大、减小功能键可分别对日期和时间进行调节。
在调节过程中,显示器光标会在对应调节项目上游走,分别是:
“秒、分、时、星期、日、月、年”。
在闹铃设置中,可按闹铃查看键,配合数值增大、减小功能键可对闹铃时间进行设置。
图2-9
2.6闹铃电路
随着闹铃时间的设定,当实时时间到达闹钟的时间时,P2.0会输出一组方波,如图2-10所示,当P2.0输出一个高电平时,使三极管导通,喇叭会发出蜂鸣声,当P2.0输出为低电平时,三极管不导通喇叭不发声。
所以,整个闹钟输出为一组滴滴声。
闹铃电路如图2-11所示。
图2-10
图2-11
3系统软件程序设计
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制实现想要的结果。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。
模块程序设计法的主要优点是:
单个模块比起一个完整的程序易编写及调试;模块可以共存,一个模块可以被多个任务在不同条件下调用;模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,主要由主程序﹑DS12C887子程序、LCD1602子程序及键盘控制子程序构成。
3.1主程序运行说明及流程图
在这个设计中,STC89C52主要功能是存储程序、根据程序的内容对各个端口进行判断并做出相应的处理;DS12C887主要的功能是控制年、月、日、星期、时、分、秒的变化及存储,以便让单片机读取;LCD1602主要的功能是将时间内容显示出来。
主程序主要实现了从DS12C887各时间单元中读出数据并送到LCD1602中显示的功能,同时检测有没有按键按下,如果有键被按下,则执行按键处理子程序。
首先进行DS12C887时钟芯片和LCD1602的初始化函数,然后进行按键扫描,不断地检测按键是否按下,读取DS12C887时钟芯片的数据,并且送到液晶显示器显示;当数据发生变化时候,重新进行扫描写入。
主程序流程图如图3-1所示。
图3-1主程序流程图
3.2DS12C887使用说明及流程图
进入主程序后,DS12C887首先进行初始化设置,若串行口有数据,最后则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显示出来,重复进行。
这部分包括对DS12C887某个单元写、读DS12C887某个单元的内容和对DS12C887设定时间。
DS12C887的流程图如图3-2所示。
图3-2DS12C887的流程图
3.31602操作说明及流程图
显示主要是通过从芯片中读入程序,分别对秒、分、时、星期、日、月、年进行显示,并且通过键盘的操作,对时间进行加减操作,使时间更新显示。
进入主函数后,执行完1602LCD的初始化函数,然后用write_com(0x80)指令,命令先将数据指针定位在第一行第一个字处,然后写入第一行要显示的数据,在每个字之间简短的延时;在第二行重新定位数据指针write_com(0x80+0x40),将数据指针定位在第二行,然后再将第二行所要显示的数据写入,继而显示。
1602LCD的写命令操作和写数据操作分别用两个独立的函数来完成,函数内部唯一的区别就是液晶数据命令选择端的电平。
写命令函数解释如下:
voidwrite_com(ucharcom)//向液晶写入命令
{
rs=0;//选择写命令模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS12C887 实时 日历 时钟 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)