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

最新更新时间:2018-01-27来源: 互联网关键字: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 编辑:王磊 引用地址:基于DS1307的多功能时钟系统设计方案

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

推荐阅读最新更新时间:2023-10-12 21:04

DS18B20温度格式转换
#include stdio.h #include stdint.h /* DS18B20温度格式转换 */ uint8_t tempIntPart ; uint8_t tempDecPart ; float convertToFloat(int16_t temperature) { float temp; temp = (float)temperature; temp /= 16.0f; return temp; } void splitIntPart(int16_t temperature) { uint8_t i; if (temperature & 0x8000) temper
[单片机]
avr单片机DS18B20温度读取程序-母亲节的礼物
/*DS18B20读取温度字节程序 本函数花了我不少时间,主要问题是在51可以的情况下他却不行,知道今天才解决,原来是部分延时函数数值不对,造成的 所以虽然做过也未见得好用,切不可粗心大意,AVR内部8M晶振,20110508 天津第四项目部宿舍 */ #include iom16v.h #define uchar unsigned char #define uint unsigned int #define get_bit(a,b) a&(1 b) #define set_bit(a,b) a|=(1 b) #define clr_bit(a,b) a&=~(1 b) void delay600us() { uin
[单片机]
DS18B20单片机C51温度计实践
18B20温度计,正负温度显示。最大99摄氏度。用万能板手工焊接。调试成功,正常显示。共阳数码管由三极管驱动。 下面是C51程序,您一看就懂了: #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table ={ 0x14,0xf5,0x19,0x51, //0 1 2 3 0xf0,0x52,0x12,0x75, // 4 5 6 7 0x10,0x50,0x30,0x92, // 8 9 a b 0x1e,0x
[单片机]
基于单片机的DS18B20温度计设计
上图是Proteus仿真图,数码管为共阳数码管,反相器用74HC14,排阻用10K的,晶振用12MHZ的,电阻R1-R8用200欧的即可。但在实际制作时可以用三极管代替反相器,这样可以节约成本。但代替后无法用Proteus仿真出来,具体如何代替参照本人上篇博文:基于单片机的电子时钟设计,三极管用常用的9012或者9015即可,经本人实际验证效果非常好。 下图为原理图: 下图为PCB设计图 以下为实验源程序 #include reg52.h sbit DQ=P3^3; //定义DS18B20端口DQ sbit BEEP=P3^7 ; unsigned
[单片机]
DS18B20制作的温度测量模块
DS18B20制作的温度测量模块,这款能显示正负值的单片机DS18B20测温模块是由电子乐屋源创制作,单片机驱动数码管的端口设置成推挽工作方式,这样使用整个显示电路比较简单,数码管段驱动端省去了限流电阻,数码管亮度显示通过程序控制通断时间实现。只使用了6只元件:一只DS18B20数字温度传感器、一个USB插口、一片STC12C4052单片机、一个4位一体共阳数码管,一个10uf贴片复位电容、一个10k的贴片复位电阻。由于电路比较简单,这里直接给出PCB图,设计温度测量范围是:-9.9~99.9℃,下面是制作过程,文后附有源程序,源程序适合于STC1T单片机。下图是制作好的实物工作照片。 为了方便单片机
[单片机]
<font color='red'>DS18B20</font>制作的温度测量模块
基于TMS320LF2407A 和AT89S52 三相异步电机双闭环调速控制系统设计
摘 要: 针对某装备中三相交流异步电机调速的要求, 以 TMS320LF2407 A 和AT89S52 为核心采用磁场定向控制策略设计了一电流、转速双闭环调速控制系统, 给出了硬件原理框图、关键器件、设计思想和程序流程图。实验结果表明, 该控制系统具有动态响应快, 控制精度高, 实时显示, 数据存储, 抗干扰强等优点。 0  引 言     三相交流异步电机以其结构简单, 体积小, 重量轻,价格低, 维修方便等优点, 广泛应用于武器装备、给料系统、数控机床、柔性制造技术、各种自动化设备等领域,其转速控制系统性能的优劣直接决定了设备性能的发挥。随着高性能微处理器及新型电力电子器件的出现,使得应用全控型电力电子器件和空间矢量( SVP
[工业控制]
基于AT89S52控制的光谱数据采集系统的设计
概述 在光谱测量中,常用光电倍增管(PMT)和电荷耦合器件(CCD)作为光电转换器。在慢变化、高精度光谱测量中使用PMT;对于闪光灯、荧光和磷光等强度随时间变化时的光谱信号则采用CCD。PMT和CCD输出的信号形式是不同的:光电倍增管输出的是连续的模拟信号;CCD输出的是视频脉冲信号。由于输出信号的不同,相应的信号采集电路也不尽相同。本文所述的系统通过设定控制开关的不同状态,由单片机检测、判断和执行相应的操作,完成对不同形式输入信号的采集。采集到的光谱强度通过并口送入计算机进行处理、计算,并显示和打印出光谱曲线。 由于CCD像元几何尺寸小、精度高,有光积分时间和信号存储功能,因此,可以用来进行光谱测量。被测光
[单片机]
基于<font color='red'>AT89S52</font>控制的光谱数据采集系统的设计
基于AT89S52单片机的太阳能环境参数测试仪设计
   引 言   为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。    1 硬件电路设计   1.1 总体结构   该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过
[单片机]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved