基于ds12c887的实时时钟日历设计 论文Word文件下载.docx
- 文档编号:21142861
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:43
- 大小:4.69MB
基于ds12c887的实时时钟日历设计 论文Word文件下载.docx
《基于ds12c887的实时时钟日历设计 论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于ds12c887的实时时钟日历设计 论文Word文件下载.docx(43页珍藏版)》请在冰豆网上搜索。
DS12C887;
Nokia5110LCD;
DHT11
引言
数字时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
适用于家庭、公司、机关等众多场所。
为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子时钟、数字闹钟等等。
单片机在多功能高精度时钟中的应用已是非常普遍的,人们对高精度钟的功能及工作顺序都非常熟悉,但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过红外遥控器可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
本文提出了一种基于STC89C52RC单片机的时钟设计方案,本方案以STC89C52RC单片机作为主控核心,与时钟芯片DS12C887、红外遥控器、Nokis5110液晶显示、DHT11温湿度传感器等模块组成硬件系统。
在硬件系统中设有遥控和LCD显示器,根据使用者的需要可以随时对时间进行校准与设定等操作,综上所述此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
1系统总体设计
图1-1系统总体设计
1.1系统设计的主要内容和具体要求
1.1.1主要内容:
本次设计的题目是基于DS12C887的高精度时钟的设计,同时也使用了温湿度传感器DHT11,可以正常的显示年、月、日、时、分、秒以及温湿度。
本系统利用单片机实现具有计时、校时、显示温湿度等功能的数字时钟,是以单片机STC89C52为核心元件,同时采用Nokia5110液晶显示屏动态显示“时”、“分”、“秒”以及“温湿度”的现代计时装置。
与传统机械表相比,它具有走时精确、显示直观、能显示周围环境的温湿度等特点。
另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
本次设计可分为两部分:
硬件部分、软件部分。
硬件部分包括:
STC89C52单片机、DS12C887时钟芯片、Nokia5110液晶显示器、红外遥控器、蜂鸣器、温湿度传感器DHT11。
主要由STC89C52单片机、实时时钟芯片电路、液晶显示输出电路、红外遥控器控制电路、DHT11温湿度传感器电路、蜂鸣器电路等几大部分组成。
具体说来,系统智能控制部分由单片机及其相关的外围电路组成,外围电路包括复位电路、晶振电路、键盘设计、闹铃电路及电源电路。
利用单片机将复位电路、动态显示电路、电源电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。
软件部分主要包括了主程序模块、DS12C887模块、Nokia5110液晶模块、红外遥控器控制模块、DHT11温湿度模块、蜂鸣器模块。
1.1.2具体技术要求:
(1)在Nokia5110液晶上显示年、月、日、星期、时、分、秒以及温湿度,并且按秒实时更新显示。
(2)具有闹铃设定及到时报警功能,报警响起时按任意键可取消报警。
(3)能够通过红外遥控器随时调节各个参数。
(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输入。
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-5DS12C887与单片机的连接
2.3Nokia5110液晶显示屏
液晶显示器简称为LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特征实现显示信息的。
液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中得到日益广泛的应用。
液晶显示器按其功能可分为三类:
笔端式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。
前两种可以显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形。
下面是Nokia5110液晶引脚接口介绍:
图2-6Nokia5110液晶屏
Nokia5110液晶引脚说明:
第1脚:
RST为5110液晶外部复位输入端。
第2脚:
CE为芯片使能。
第3脚:
DC为数据/命令选择。
第4脚:
Din为串行数据输入端。
第5脚:
CLK为串行时钟输入端。
第6脚:
VCC为5110液晶的电源,可接3.3V-5.0V电源。
第7脚:
BL为5110背光电源,可接3.3V-5.0V电源。
第8脚:
GND为5110的地,接GND。
引脚说明如表2-2所示:
表2-2Nokia5110液晶引脚
编号
符号
引脚说明
1
RST
复位
2
CE
使能端
3
DC
数据/命令选择端
4
Din
串行数据输入
5
CLK
串行时钟
6
VCC
5110电源正极
7
BL
背光源正极
8
GND
电源负极
Nokia5110液晶与单片机的连接图如下:
图2-7Nokia5110液晶与单片机连接
2.4LM7805CV供电电路
由于当Vcc输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;
当Vcc输入小于+4.25V时,禁止用户对内部RAM进行读/写操作,此时用户不能正确获取芯片内的时间信息。
由此可以看出,DS12C887对电源要求较为严格,故本设计采用LM7805CV稳压电源芯片供电。
LM7805CV供电电路如图2-8所示。
图2-8LM7805CV供电电路
2.5红外遥控器电路
本设计采用红外遥控器控制电子钟,红外接收头与单片机的P3.3口相连,红外遥控器的功能有:
选择键、数值增大键、数值减小键和闹铃查看键。
在时间调节中,可按功能选择键,配合数值增大、减小功能键可分别对日期和时间进行调节。
在调节过程中,显示器光标会在对应调节项目上游走,分别是:
“秒、分、时、星期、日、月、年”。
在闹铃设置中,可按闹铃查看键,配合数值增大、减小功能键可对闹铃时间进行设置。
图2-9红外遥控器电路
2.6闹铃电路
随着闹铃时间的设定,当实时时间到达闹钟的时间时,DS12C887的SQW管脚会输出一组方波,如图2-10所示,当SQW输出一个高电平时,使三极管导通,喇叭会发出蜂鸣声;
当SQW输出为低电平时,三极管不导通喇叭不发声。
所以,整个闹钟输出为一组滴滴声。
闹铃电路如图2-11所示。
图2-10蜂鸣器驱动方波
图2-11蜂鸣器电路
2.7温湿度传感器DHT11电路
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。
产品为4针单排引脚封装,连接方便。
DHT11电路如图2-12所示。
图2-12DHT11电路
3系统软件程序设计
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制实现想要的结果。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。
模块程序设计法的主要优点是:
单个模块比起一个完整的程序易编写及调试;
模块可以共存,一个模块可以被多个任务在不同条件下调用;
模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,主要由主程序﹑DS12C887子程序、Nokia5110子程序、红外遥控器控制子程序、DHT11子程序、蜂鸣器子程序等构成。
3.1主程序运行说明及流程图
在这个设计中,STC89C52主要功能是存储程序、根据程序的内容对各个端口进行判断并做出相应的处理;
DS12C887主要的功能是控制年、月、日、星期、时、分、秒的变化及存储,以便让单片机读取;
DHT11的主要功能是测量周围环境的温湿度;
Nokia5110液晶主要的功能是将时间和温湿度的内容显示出来。
主程序主要实现了从DS12C887和DHT11读出数据并送到Nokia5110液晶中显示的功能,同时检测红外遥控器有没有按键按下,如果有键被按下,则执行按键处理子程序。
首先进行DS12C887时钟芯片和Nokia5110液晶屏的初始化函数,然后进行按键扫描,不断地检测按键是否按下,读取DS12C887时钟芯片和DHT11的数据,并且送到液晶显示器显示;
当数据发生变化时候,重新进行扫描写入。
主程序流程图如图3-1所示。
图3-1主程序流程图
3.2DS12C887使用说明及流程图
进入主程序后,DS12C887首先进行初始化设置,若并行口有数据,最后则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显示出来,重复进行。
这部分包括对DS12C887某个单元写、读DS12C887某个单元的内容和对DS12C887设定时间。
12C887的流程图如图3-2所示。
图3-2DS12C887操作流程图
3.3Nokia5110液晶操作说明及流程图
显示主要是通过从芯片中读入程序,分别对秒、分、时、星期、日、月、年进行显示,并且通过键盘的操作,对时间进行加减操作,使时间更新显示。
进入主函数后,执行完Nokia5110液晶屏的初始化函数,然后用LCD_write_english_string()函数,先显示固定的内容。
最后是读出DS12C887和DHT11的数据送到固定的位置显示。
Nokia5110的写命令操作和写数据操作分别用两个独立的函数来完成,函数内部唯一的区别就是液晶数据命令选择端的电平。
Nokia5110的流程图如图3-3所示。
Nokia5110初始化
读取DS12C887并显示
读取DHT11并显示
图3-3Nokia5110操作流程图
3.4红外遥控器控制说明
如果需要修改时间,则先输入你想要修改的数字,比如你想要修改时间的“分”,“分”此时显示为11,你想修改为20,则输入20,然后按下红外遥控器的“分”功能键,则你想要修改的数据成功修改为20。
以此类推,年、月、日、时、分、秒、闹钟的调节原理相同。
3.5DHT11温湿度传感器说明
主程序中调用读取DHT11数据的函数,然后送入Noki
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于ds12c887的实时时钟日历设计 论文 基于 ds12c887 实时 时钟日历 设计