历史上的今天
返回首页

历史上的今天

今天是:2024年09月10日(星期二)

正在发生

2020年09月10日 | 基于ARM和DS1307的实时时钟系统设计

2020-09-10 来源:elecfans

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

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

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


1、硬件设计

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

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

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

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

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

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芯片中并返回。

基于ARM和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秒的显示效果。

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

4、结束语

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

推荐阅读

史海拾趣

乐鑫(espressif)公司的发展小趣事

乐鑫科技自创立之初,就致力于物联网(IoT)领域的芯片设计和技术创新。公司凭借其独特的芯片设计能力和连接技术,成功开发了一系列具有竞争力的产品,为全球开发者提供了高效、可靠的物联网解决方案。乐鑫科技始终坚持以技术创新为核心,通过自主研发和持续投入,不断提升产品的性能和竞争力。

Extech公司的发展小趣事

随着制造业信息化的发展,企业对信息化解决方案的需求日益迫切。为了满足客户的需求,Extech公司在2003年相继推出了XTMES、XTPLM等产品,并在国内首次提出了“一体化解决方案”的概念。这一解决方案覆盖了制造业信息化的各个环节,为客户提供了全方位的信息化服务。通过这一解决方案的推出,Extech公司在制造业信息化领域进一步扩大了自己的市场份额。

赛微(Cellwise)公司的发展小趣事

在技术创新和产品研发的过程中,赛微高度重视知识产权的保护和管理。公司积极申请各类专利和软件著作权,加强知识产权保护力度。截至目前,赛微已经拥有国际/国内软件著作权98项,国际/国内专利166项,正在申请的国际/国内专利64项。这些知识产权的积累不仅提升了公司的核心竞争力,也为公司的长期发展奠定了坚实基础。

德国ACAM公司的发展小趣事

2014年,ACAM公司迎来了一个重要的里程碑事件——被奥地利微电子股份有限公司收购。这次收购极大地增强了ACAM公司在时间数字转换器(TDC)技术领域的实力。奥地利微电子在半导体行业有着深厚的积累和丰富的经验,与ACAM公司的技术优势相结合,进一步提升了ACAM公司在市场上的竞争力。

FCI / Amphenol公司的发展小趣事

Amphenol公司成立于1932年,最初由Arthur J. Schmitt和Gordon K. Klapmeier共同创办,专注于电磁线缆的制造。然而,随着技术的进步和市场需求的变化,Amphenol公司逐渐将重心转向电缆连接器的制造。凭借高品质的产品和服务,Amphenol公司的电缆连接器在市场上获得了广泛的认可,并逐渐发展成为全球最大的电缆连接器制造商之一。

Amplitronix LLC公司的发展小趣事

在快速发展的同时,Amplitronix LLC也积极承担社会责任,关注绿色环保。他们投入大量资源研发环保型电子产品,减少生产过程中的污染排放。同时,公司也积极参与公益活动,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

这些故事旨在展示Amplitronix LLC公司在不同阶段的发展过程和成就,但并非基于真实事件。实际的Amplitronix LLC公司的发展历程可能有所不同,这些故事仅为虚构示例,供您参考。

问答坊 | AI 解惑

基于DSP的高速实时语音识别系统的设计与实现

基于DSP的高速实时语音识别系统的设计与实现…

查看全部问答>

RS232串口usb局域网络控制温度湿度电压8路10位模拟信号转换模块(A/D转换)

本控制板具有8路10位(精度±1LSB)高速A/D转换通道,可同时对外部输入的8路模拟量(直流0-5V,也可定做其他输入方式)进行模数转换,转换后的结果(每通道转换后的结果为2字节数据)通过串口(也可以定做USB接口,局域网RJ45接口等)快速输出(默认波 ...…

查看全部问答>

相位和频率到底是什么关系

小弟最近做一个基于FPGA的DDS,但搞不懂相位和频率什么关系,有点还有相位控制字什么的,我以为只有一个频率控制字就行了呢,哪位大侠给解决下………

查看全部问答>

iimage使用问题

   最近项目中有使用到iimage组件,发现可以成功的在一个模块中使用。但是如果在另外一个模块中也使用,编译的时候便会报错。想问下高手们,如何在多个模块中使用iimage…

查看全部问答>

杭州公司借宝地招人

杭州公司招聘网络服务器、手机IM开发工程师 10名 (急) 要求: 1, 学历不限, 3年以上c++经验; 2, 有2网络开发经验,熟悉tcp/udp等协议多线程开发; 3, 有服务器端开发、IM系统开发、手机开发经验优先; 待遇面议(薪水8k起,有能力者 ...…

查看全部问答>

请教:谁知道会唱歌的圣诞贺卡的内部原理啊,谢谢了

拆了会唱歌的圣诞贺卡,发现里面的元器件很小,很好奇,电路板上连接了一个貌似喇叭的东东。 很想知道他的原理啊。…

查看全部问答>

Offset什么作用

Offset有什么功能?一般什么时候用到 谢谢!…

查看全部问答>

visual studio2005 调试WinCE6设备应用程序的问题

在Visual   Studio2005中开发一个应用程序,需要与WinCE6设备连接进行调试。 在网上看到可以通过在设备端运行conmanclient2,cMaccept,pc端运行“连接到设备” ,但是提示未安装activesync,安装以后,再运行,提示“设备未就绪“,我是 ...…

查看全部问答>

7805的电路怎么搭建啊

想问问,7805是不是为了稳压才采用,还是为了电压的转换。还有典型的7805的电路怎么搭建,请各位说说…

查看全部问答>

Keil C51 与 ARM 并存方法

  Keil C51 与 ARM 并存方法          很多朋友都在想,怎么让keil C51与ARM能够并存使用。有安装经验的朋友都知道,安好C51后再安ARm,C51不能正常工作;安好ARM后再安C51,ARM不能正常工作. 网上也 ...…

查看全部问答>