基于单片机C8051F060的时钟芯片SD2405应用设计
2016-05-17中煤科工集团重庆研究院有限公司郭洪祥
中煤科工集团重庆研究院有限公司 郭洪祥
基于单片机C8051F060的时钟芯片SD2405应用设计
中煤科工集团重庆研究院有限公司 郭洪祥
【摘要】本文介绍了时钟芯片SD2405的外部结构、内部数据寄存器定义以及寄存器的读写时序,同时给出了与单片机C8051F060硬件连接的设计方案及C语言程序设计。
【关键词】SD2405;C8051F060
0 引言
随着电子技术的发展,越来越多的便携设备得到了广泛的应用。时间参数作为常用参数成为手持设备必不可少的参数之一。SD2405是一种具有内置晶振、支持IIC串行接口的高精度实时时钟芯片,单片机可使用该接口通过5位地址寻址来读写片内32字节寄存器的数据。本文介绍了以单片机C8051F060为核心的SD2405应用设计,并给出了C语言程序。
1 SD2405芯片介绍
SD2405内置晶振,该芯片可保证时钟精度为±5ppm(在25℃下),即年误差小于2.5 分钟;芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的偏差(分辨力3ppm),内置的一次性工业级电池或充电电池可保证在外部掉电情况下时钟使用寿命为 5~8年时间;内部具备电源切换电路,当芯片检测到主电源VDD掉到电池 电压以下,芯片会自动转为由备电电池供电。内部实时时钟数据寄存器(00H~06H)是7字节的存储器,它分别以BCD码方式存贮秒、分、时、星期、日、月、年的数据。SD2405内部结构如图1所示[1]:
图1 TOP249Y内部结构图
2 SD2405芯片操作
(1)开始条件
当SCL处于高电平时,SDA由高电平变成低电平时构成一个开始条件,对SD2405AP的所有操作均必须由开始条件开始。
(2)停止条件
当SCL处于高电平时,SDA由低电平变成高电平时构成一个停止条件,此时SD2405AP的所有操作均停止,系统进入待机状态。
(3)数据/指令传输格式
当CPU发出开始条件与实时时钟建立连接后,CPU首先通过SDA总线连续输出7位器件地址和1位读/写指令来唤醒SD2405AP。
(4)器件代码
高7位BIT7~BIT1称“器件代码”,它代表实时时钟的器件地址,固定为“0110010”;BIT0为读/写位,“1”为读操作,“0”为写操作。
(5)SD2405AP数据传输的写模式
先送7位器件地址(0110010),第8位送入写命令(“0”),第9位是SD2405AP的响应位(ACK),SD2405AP进入写状态;接下来一个字节,高3位是传输模式(写状态时,传输模式定义为”000”),低5位确定SD2405AP的内部地址(00H~1FH),第9位是SD2405AP的响应位;开始写数据,每写完1个字节的数据之后,都经过1位的响应信号才能写下1字节的数据;如果要结束写数据过程,则在ACK后送出停止命令即可。
(6)从指定的内部地址中读取数据
发出开始命令后再送7位器件地址(0110010),第8位送入读命令(“1”),第9位是SD2405AP的响应位(ACK),SD2405AP进入读状态;开始读数据,每读完1个字节的数据之后,CPU都要送出1位的响应信号(ACK,低电平)才能读下1字节的数据;如果想要结束读数据过程,则CPU要送出1位的响应信号(ACK_,高电平),ACK_后送出停止命令即可。
3 电路设计
3.1硬件电路设计
硬件设计采用C8051F060芯片作为上位机,其引脚P2.0、P2.1、P2.1分别与SD2405的中断引脚、时序引脚、数据引脚相连。同时为了保证SD2405的SCL、SDA能产生可靠的高电平,在其引脚上施加了1K上拉电阻。硬件连接图如图2所示[2]。
图2 电路原理图
3.2软件设计
由于SD2405内部寄存器中的数值是以BCD码的形式存放的,因此,在读取其内部寄存器种的数值后,需经过BCD码转十进制后才能显示出来[3]。设置bcd[0]~bcd[7]八个数组,分别用以存放秒、分、时、星期、日、月、年的数据,其转换程序如下:
同样,当需要进行时间参数调整时需要将由键盘输入的十进制数转化为BCD码的形式写进SD2405的相应内部寄存器中,其转换程序如下:
4 性能测试
根据以上设计方法,笔者对实验电路进行了性能测试。实测结果表明,该电路能够实现对SD2405时间芯片的内部存储器的数据进行正确的读写操作,能够正确的实现将BCD码和十进制数字之间的互换,并通过显示屏将其正确的显示。
5 结束语
通过以上实验表明该电路具有良好的可靠性和稳定性,体积小、成本低,较好的达到了设计,适用于各种电子设备对时间参数的显示,并且该产品已在实际生产中得到了大量的应用。
参考文献
[1]内置晶振.充电电池、IIC串行接口的高精度实时时钟IC-SD2405AP Ver1.1[EB].http://www.docin.com/p-103714398.html.
[2]张培仁,孙力.基于C语言C8051F系列微控制器原理与应用[M].北京:清华大学出版社,2007.
[3]张迎新,雷文,姚静波.C8051F系列SOC单片机原理及应用[M].北京:国防工业出版社,2005.
Application design of clock chip SD2405 based on C8051F060
GUO Hong-xiang
(Chongqing Research Institute of China Coal Technology &Engineering Group Corp,Chongqing 400037 China)
Abstract:This article describes the structure of the clock chip SD2405,the internal data registers and register read and write the definition of timing,and gives the design of the hardware connected with the microcontroller C8051F060 and C language programming
Key words:SD2405;C8051F060