datasheet

基于ARM和DS1307的实时时钟系统设计

2018-01-27来源: 互联网 关键字:时钟系统  DS1307  arm

介绍了一个简单的可调实时时钟系统的设计。设计中采用了Atmel32位的ARM微处理器作为控制驱动器件,实现了对DS1307实时时钟芯片的时间信息采样和液晶显示,并通过键盘来调节时间信息。通过实际的测试,该模块得到稳定的运行。

实时日历时钟在测控系统和智能显示中得到了广泛的应用。通过软件编程和CPU中断构造软时钟是一种较为常用的方法,时钟计时无需外围硬件支持,但是此种方法的弊端是计时精度会受到CPU主晶振、起振电容以及掉电的影响,而导致计时精度不高。因此采用硬件设计实时时钟是一种更为可靠的方式。

DS1307是I2C接口的8引脚实时时钟芯片,片内含有8个特殊功能寄存器和56bit的SRAM。它是一款按BCD码存取、低功耗的时钟/日历芯片,已被应用到人造板尺寸检测以及电控单元中。


1、硬件设计


设计的可调实时时钟系统原理框图如图1所示。采用了Atmel32位ARMRISC处理器中的一员,即AT91SAM7S256微处理器来驱动DS1307时钟芯片和液晶模块,并接收键盘中断来实现时间可调的功能。


1.1 芯片与单片机的接口与连线


若要驱动DS1307芯片,一种方式是使用I2C总线虚拟技术,另一种是采用带I2C接口的单片机。AT91SAM7S256微处理器外围电路中具有两线接口(TWI),它与I2C接口相互兼容,很适合典型的处理器应用,因此系统中采用了此接口实现芯片与CPU的通信。

DS1307使用到了32768Hz的晶振,BAT1为电池电源。I2C总线内部是双向传输电路,端口输出为开漏结构,因此接入了上拉电阻。SQW/OUT端是方波输出端,通常情况下该引脚接到能产生电平变化中断请求的输入口。


1.2 液晶显示电路


与传统的数码管相比,液晶显示具有功耗低、体积小、显示内容丰富、人机交互性好等优点。设计中使用到了的LM256160点阵液晶显示模块。利用该模块灵活的接口方式和简单方便的操作指令,可为用户提供良好的日期、时间显示和调节界面。


1.3 按键调节电路


为实现时间的可调,系统中设计了键盘输入电路。键盘包括调节模式进入键、“0~9”的数字输入键、清除键以及确认键。用户按下调节模式进入键便可以开始进行时间的设置和调节,如输入“20150920151000”代表设置时间为2015年9月20日15时10分0秒,再按下确认键便将数据信息写入到DS1307芯片中进行计数。


2、软件设计


系统的软件设计主要包括了主程序、DS1307驱动模块,液晶驱动模块、键盘中断处理模块四大部分,程序流程如图3所示。主程序中首先完成外设时钟的使能、I/O口的使能、TWI口的使能以及液晶的初始化。初始化工作完成后,处理器通过TWI接口读取DS1307中的时钟信息,数据通过液晶进行显示。当接收到外部按键中断请求时,处理器进行相应的键值中断响应,将设置好的数据写入到DS1307芯片中并返回。


DS1307在TWI总线上是从器件,地址(SLA)固定为“11010000”,时钟信息(年、月、日、星期、时、分、秒)分别放在地址为06H~00H的时间相关寄存器中。芯片的读写主要使用到了TWI口低层驱动函数中的intAT91F_TWI_ReadByte(constAT91PS_TWIpTwi,intmode,inTInt_address,char觹data2read,intnb)和intAT91F_TWI_WriteByte(constAT91PS_TWIpTwi,intmode,inTInt_address,char觹data2send,intnb)。读写函数使用到了四个入口参数,constAT91PS_TWIpTwi是设置TWI口的基地址,intmode为主机模式,inTInt_address为器件寄存器的地址,char觹data2read是待写入数据或待读取存放的地址,intnb为写入或读取的字节数。需要注意一点是,数据是以BCD码存取的,因此在读取或写入之前需要十进制到BCD码的相互转换处理。


3、运行结果


系统的运行效果以液晶屏显示效果为准,如图4与图5所示。图4为设置时钟信息界面,设置完毕按回车键时钟开始计时,并跳转到运行显示界面。图5为设置好初始时间为2015年9月20日15时10分0秒后,时钟运行了15分38秒的显示效果。


4、结束语


设计的可调实时时钟系统避免了系统掉电与晶振电路的影响,芯片的驱动通过采用ARM系列微处理器中TWI接口并调用相关的低层驱动程序,减少了采用总线虚拟技术的程序量。经过实际的调试,系统得到了预期的结果。该实时时钟可用于系统主界面的日期与时间显示,并为以时间为单位的事务处理提供时间基准。

关键字:时钟系统  DS1307  arm

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

上一篇:单片机与串行时钟DS1307的接口设计
下一篇:基于DS1307的简易时钟显示程序分享

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

推荐阅读

STM32时钟源时钟系统配置

;    RCC_PLLConfig;08、打开PLL              RCC_PLLCmd(ENABLE);09、等待PLL工作   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)10、设置系统时钟        RCC_SYSCLKConfig;11、判断是否PLL是系统时钟
发表于 2018-10-13

STM32的时钟系统RCC详细整理

:    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);设置系统时钟:    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);判断 PLL 是否是系统时钟:        while(RCC_GetSYSCLKSource() != 0x08);1、使用库函数进行时钟系统初始化配置void RCC_config()//如果外部晶振为8M,PLLCLK=SYSCLK=72M,HCLK=72M
发表于 2018-08-13
STM32的时钟系统RCC详细整理

MSP430G2553时钟系统配置

振荡器(需要焊上晶振) 对于时钟系统的配置,一共用到四个寄存器:DCOCTL-DCO控制寄存器、BCSCTL1-基本时钟控制寄存器1、BCSCTL2-基本时钟控制寄存器2、BCSCTL3-基本时钟控制寄存器3。DCOCTL-DCODCOxDCO频率选择控制1MODxDCO频率校正选择,通常令MODx=0一般不用管这个寄存器,在配置DCO时和BCSCTL2配合使用。注意:在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1.5MHz之间。2、BCSCTL1-基本时钟控制寄存器1:XT2OFF    不用管,因为MSP430G2553内部
发表于 2018-07-11

STM32时钟系统与时钟启动顺序详解

概念基础:STM32时钟系统基本一致,不同系列之间有细微差别。此文档主要针对STM32F446的时钟系统进行介绍。1. 时钟树概述为何不是采用一个系统时钟?如51 因为STM32本身非常复杂,外设非常多,但是并非所有外设都需要系统时钟这么高的频率,比如看门狗和RTC只需要几十K的时钟即可。同一个电路,时钟越快,功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般采用多时钟源的方法来解决这些问题。主要时钟源: 5个最主要的时钟源: 高速时钟源:HSI、HSE、PLL 低速时钟源:LSI、LSE 其中PLL实际又分为3个时钟源:主PLL、I2S部分专用PLLI2S、SAI
发表于 2018-06-26
STM32时钟系统与时钟启动顺序详解

stm32l0xx时钟系统详解与代码配置

时钟是嵌入式系统的脉搏,对嵌入式系统至关重要。处理器内核在时钟驱动下完成状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。stm32l0xx系列低功耗新增MSI内部多频率可选时钟源,代码配置方面基于HAL库,与f系列相比存在一定的区别,本文以datasheet中的时钟树图为基础对时钟系统进行学习总结。时钟树如下图1所示:1、LSI RC,低速内部时钟(RC振荡器),是看门狗(WatchdogLS)的唯一时钟来源,可以作为实时时钟RTC和主时钟输出(MCO)的时钟源。2、LSE OSC,外部低速时钟(晶振),输入输出引脚接OSC32_IN、OCS32_OUT可以作为实时时钟RTC
发表于 2018-06-18

学习STM32F429时钟系统笔记

1.为什么 STM32 要有多个时钟源呢?因为首先 STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及 RTC 只需要几十 k 的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的 MCU 一般都是采取多时钟源的方法来解决这些问题。2.哪几种重要的时钟源?在stm32f429,HSI、HSE、LSI、LSE、PLL五个重要时钟源,其中 PLL实际是分为三个时钟源,分别为主 PLL 和 I2S 部分专用 PLLI2S 和 SAI 部分专用 PLLSAI。①、LSI 是低速内部时钟,RC 振荡器,频率为 32kHz 左右。供独立看门狗和自动唤醒单元
发表于 2018-06-03

小广播

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