基于DS1307的多功能时钟系统设计方案

2018-01-27 20:51:37编辑:王磊 关键字:DS1307  LCD1602  DS18B20  AT89S52

AT89S52单片机为控制核心,通过实时时钟芯片DS1307和数字温度传感器DS18B20构成了一个多功能的数字时钟系统。详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。系统采用液晶LCD1602作为显示器,具有实时时间与日历显示、环境温度显示、按键调时、闹铃定时等功能。软件程序采用均采用C语言编写,便于移植与升级。

0 引言

目前家用的数字电子钟,多数只能显示小时、分钟等信息,功能单一,而且大都采用LED数码管作为显示器件,功耗大,不能令消费者满意。为此,笔者开发了一款多功的数字式电子钟,它可以显示年、月、日、小时、分钟等时间信息,同时可以显示环境的温度信息。还具有按键调时、设定闹铃等功能。时钟采用LCD作为显示器,界面友好,功耗低。

1 系统的硬件构成

系统以AT89S52单片机作为核心控制器件,外围主要有实时时钟芯片DS1307、温度传感器DS18B20等,均为串行通信器件,使得系统线路简单可靠性高。系统结构框图1所示。

图1 系统结构框图

1.1 单片机主控模块


系统采用AT89S52单片机作为控制核心。AT89S52单片机与MCS_51系列单片机产品兼容,采用了Flash存储器结构,可以在线下载程序,易于日后的升级。它主要负责各个模块的初始化工作;设置定时器、寄存器的初值;读取并处理时间、温度等信息;处理按键响应;控制液晶实时显示等。

硬件电路连接如图2所示。系统采用12M晶振;P0_Up为P0口上拉电阻,P0口为单片机与液晶显示器通信的数据端口;C_reset和R_reset组成系统上电复位电路;P1.0~P1.2为液晶显示器的控制信号端口;P1.3和P1.4为单片机与时钟芯片DS1307通信的端口; P1.5为闹铃的控制端口;P1.6为单片机与温度传感器DS18B20的通信端口;P2.4~P2.7为按键模块的接口。

1.2 实时时钟日历模块


系统采用DS1307实时时钟芯片。它是一款 总线接口的时钟日历芯片,片内含有8个特殊功能寄存器和56bit的SRAM,是一种低功耗的实时时钟芯片。

它的主要技术性能指标:具有秒、分、时、日、星期、月、年的计数功能,并且具有12小时制和24小时制的计数模式,可自动调整每月的天数,具有闰年调整的功能,具有自动掉电保护和上电复位的功能。同时它独立于CPU工作,不受CPU主晶振及其电容的影响,而且计时准确,月累计误差小于10秒。

电路连接如图3。CRY2为32.768kHz的晶振,为时钟芯片提供计时脉冲;Vbat为DS1307的备用电源,以便在没有主电源的情况下能够保存时间信息和一些重要的数据;两个电阻为 总线的上拉电阻。

1.3 温度传感器模块


系统采用DS18B20作为温度传感器。它是美国DSLLAS公司推出的单总线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易匹配处理器等优点。处理器与DS18B20通信只需要一根数据线即可,同时该数据线还可以向挂接的DS18B20供电。它可以直接将温度转化成串行数字信号处理,与模拟温度传感器相比,DS18B20省去了信号调理、A/D转换等前向通道处理电路,从而使得系统线路简单,成本低廉。

它的主要技术性能指标:

(1) 电压范围:+3.0~+5.5V(可用数据线供电)

(2) 测温范围:-55℃~+125℃

(3) 通过编程可实现9~12位的数字读数方式,测温分辨率可达0.0625℃

(4) 可自设定非易失性的报警上下限值。

电路连接如图4所示。其中DQ为数据输入/输出端口,R_Up 为数据线的上拉电阻,确保数据传输的可靠性。

1.4 闹铃模块

系统采用蜂鸣器作为闹铃输出。

电路连接如图5所示。电路中采用PNP管9012来控制蜂鸣器的开关,由图可以看出当Bell引脚为高电平时,PNP管截止,蜂鸣器不工作;当Bell引脚为低电平时,PNP管导通,蜂鸣器工作。其中R_Bell为限流电阻。

1.5 键盘模块


键盘模块设置了四个按键:Menu_A、Menu_B、Up、Reset。其中用Menu_A来控制菜单的主模式;用Menu_B来控制菜单的副模式;Up键用来修改时间信息;Reset键返回。

电路连接如图6所示。四个上拉电阻可以保证在没有按键输入时,进入单片机四个I/O口的按键状态均为高电平,防止干扰产生;当有按键按下时,相应的口线被拉低。软件上采用查询的方式,用定时器定时对按键状态进行扫描,确保系统的实时性。

1.6 液晶显示模块


系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个字符,具有8位数据总线D0-D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符对比度调节和背光设置。

管脚功能简介:

VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比度最高,可以用一个5K的电位器来调整对比度;

RS:数据或者指令选择端。处理器写入指令时,RS为低电平,写入数据时,RS为高电平

R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据

E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块

D0-D7:8位数据总线,三态双向

BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VCC

BLK: LED背光负极

2 系统的软件设计

系统的软件设计可以分为几个部分,首先是各个模块的底层驱动程序编写,而后是系统联机调试,编写上层系统程序。建议在编写和调试一个大的项目软件程序时,先编写各个子模块的驱动程序,保证每个模块都可以正常工作,做好备份工作,之后再来编写整机程序。本系统软件程序主要包括:液晶LCD1602的底层驱动模块、时钟芯片DS1307的底层驱动模块、传感器DS18B20的底层驱动模块、定时器0定时检查系统变量模块、定时器1按键扫描模块等。鉴于篇幅,这里不作一一介绍了。系统的软件流程图如图8。

几点说明:

1 DS1307 是基于 总线接口的时钟芯片,软件上完全与 总线完全兼容。

2 DS18B20 是One-wire总线接口的芯片,软件上对时序的要求特别高。

3 键盘处理模块,可以设定成边沿触发或者电平触发方式。

整个系统的软件设计均采用C语言开发,因此这些器件的底层程序均可以移植到其它系统中,这就是采用C语言开发的最大的优点。

3 总结

系统经组装、调试后,可以稳定运行,目前正在笔者寝室作为时钟日历。采用串行器件具有线路简单、体积小、价格低等优点。同时该系统稍加改造,就可以作为工业实时采集中的一个模块。系统软件设计均采用C语言编写,具有模块化的思想,可以方便的移植到其它的系统中。采用AT89S52单片机,方便系统升级。

关键字:DS1307  LCD1602  DS18B20  AT89S52

来源: 互联网 引用地址:http://www.eeworld.com.cn/mndz/article_2018012726925.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于DS1307的简易时钟显示程序分享
下一篇:反激开关MOSFET源极流出的电流精细剖析

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

DS1302时钟与LCD1602液晶显示

    DS1302是一个实时时钟芯片,它在实时显示时间中应用。它可以对年、月、日、周、时、分、秒进行计时。DS1302的引脚及原理图如下:    它与CPU的连接需要SCLK(7)、I/O(6)和RST(5)三个引脚,VCC2和VCC1分别为主电源和备份电源,X1和X2分别接外部振荡器。在于CPU的通信中I/O用来传输数据,RST作为复位信号,SCLK用来控制数据字节的读写。DS1302的读写时序如下:    程序中对芯片的操作主要是参考芯片的时序状态,时序中说明只要有对数据的操作RST就需要置1,在读数据的前8个时钟中在SCLK处于高电平的过程中会获取控制字信息
发表于 2018-06-25 21:56:15
DS1302时钟与LCD1602液晶显示

stm32+DS1302+TM1638驱动程序

number which has been pressed*params       : none*return       : the number of the key. 0-8.  "return 0" represents no key has been pressed.***********************************************************************************************/2.DS1302与STM322.1硬件连接   Vcc--
发表于 2018-06-25 21:52:54

STM32与DS1302的接口电路

(1)硬件 CLK---PA4,  DAT--- PA5, RST--- PA6(2)硬件初始化 CLK与RST均为输出,而DAT是开漏型的输出。因为在这种方式下,IO口的读仍然存在,因此是真正的双向IO模式。/*DSCK -PA4 DAT PA5 RST DAT*/#define ds1302Clk GPIO_Pin_4   //与时钟线相连的芯片的管脚#define ds1302Dat GPIO_Pin_5   //与数据线相连的芯片的管脚#define ds1302Rst GPIO_Pin_6   //与复位端相连的芯片的管脚/* PA 4,6,为输出*/ 
发表于 2018-06-25 21:52:13

一个完整的DS1302时钟在STM32上的应用实例

一个完整的DS1302时钟在STM32上的应用    /*DS1302时钟芯片*/  uint8_t read[] = {0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//读秒、分、时、日、月、周、年的寄存器地址   uint8_t write[] = {0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//写秒、分、时、日、月、周、年的寄存器地址  uint8_t start_time2[8]={0,0,10,5,5,6,18};//初始化时间:2018年5月5号10:00:00星期六   
发表于 2018-06-25 21:51:37

STM32与DS1302设计时钟芯片,超详细

DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES 复位(2)I/O 数据线(3)SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302 是由DS1202 改进而来增加了以下的特性:双电源
发表于 2018-06-25 21:50:57
STM32与DS1302设计时钟芯片,超详细

基于STM32的DS1302时钟芯片驱动

/************************************************************************************************************************** 函数 : DS1302.H* 功能 :  DS1302头文件* 参数 :  无* 返回 :  无* 依赖 :  底层读写函数* 最后修改时间 : * 说明 : DS1302采用GPIO模拟SPI的方式DS1302 LSB格式,上升沿写 下降沿读  BCD码存储* 参考
发表于 2018-06-25 21:49:52

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved