1.芯片簡(jiǎn)介
DS1302 涓流充電計(jì)時(shí)芯片包含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和 31 字節(jié)的靜態(tài) RAM.通過(guò)簡(jiǎn)單的串行接口與微處理器通訊.這個(gè)實(shí)時(shí)時(shí)鐘/日歷提供年月日,時(shí)分秒信息.對(duì)于少于 31 天的月份月末會(huì)自動(dòng)調(diào)整,還有閏年校正.由于有一個(gè) AM/PM 指示器,時(shí)鐘可以工作在 12 小時(shí)制或者24小時(shí)制。

主要特點(diǎn)如下
- 實(shí)時(shí)時(shí)鐘計(jì)算年、月、日、時(shí)、分、秒、星 期,直到 2100 年,并有閏年調(diào)節(jié)功能 ,具有31 x 8 位 通用暫存 RAM。
- 2.0V 至 5.5V 寬電壓范圍操作 ,在2.0V時(shí)工作電流小于300nA 。
- 讀寫(xiě)時(shí)鐘或 RAM 數(shù)據(jù)時(shí)有單字節(jié)或多字節(jié)(脈沖串模式)數(shù)據(jù)傳送方式。引腳電平與 TTL 兼容 (VCC = 5V)。
2.DS1302引腳定義
使用同步串行通訊簡(jiǎn)化了 DS1302 與微處理器的接口。與時(shí)鐘/RAM 通訊只需要三根線: CE, I/O (數(shù)據(jù)線), and SCLK (串行時(shí)鐘). 數(shù)據(jù)輸出輸入時(shí)鐘/RAM 一次1字節(jié)或者在脈沖串中多達(dá) 31 字節(jié)。除了 DS1202 的基本計(jì)時(shí)功能以外, DS1302 有額外特點(diǎn)比如,雙管腳主電源和備用電源,可編程涓流充電器 VCC1,還附加 7 字節(jié)的暫存器。

3.DS18B20驅(qū)動(dòng)程序
(1)DS1302.h
#ifndef __DS1302_H__
#define __DS1302_H__
#include < reg52.h >
#include< intrins.h >
sbit SCK=P1^4;
sbit SDA=P1^5;
sbit RST=P1^6;
//復(fù)位腳
#define RST_CLR RST=0//電平置低
#define RST_SET RST=1//電平置高
//雙向數(shù)據(jù)
#define IO_CLR SDA=0//電平置低
#define IO_SET SDA=1//電平置高
#define IO_R SDA //電平讀取
//時(shí)鐘信號(hào)
#define SCK_CLR SCK=0//時(shí)鐘信號(hào)
#define SCK_SET SCK=1//電平置高
#define ds1302_sec_add 0x80 //秒數(shù)據(jù)地址
#define ds1302_min_add 0x82 //分?jǐn)?shù)據(jù)地址
#define ds1302_hr_add 0x84 //時(shí)數(shù)據(jù)地址
#define ds1302_date_add 0x86 //日數(shù)據(jù)地址
#define ds1302_month_add 0x88 //月數(shù)據(jù)地址
#define ds1302_day_add 0x8a //星期數(shù)據(jù)地址
#define ds1302_year_add 0x8c //年數(shù)據(jù)地址
#define ds1302_control_add 0x8e //控制數(shù)據(jù)地址
#define ds1302_charger_add 0x90
#define ds1302_clkburst_add 0xbe
extern unsigned char time_buf1[8];//空年月日時(shí)分秒周
extern unsigned char time_buf[8] ;//空年月日時(shí)分秒周
/*------------------------------------------------
向DS1302寫(xiě)入一字節(jié)數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Byte(unsigned char addr, unsigned char d);
/*------------------------------------------------
從DS1302讀出一字節(jié)數(shù)據(jù)
------------------------------------------------*/
unsigned char Ds1302_Read_Byte(unsigned char addr) ;
/*------------------------------------------------
向DS1302寫(xiě)入時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Time(void) ;
/*------------------------------------------------
從DS1302讀出時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Read_Time(void) ;
/*------------------------------------------------
DS1302初始化
------------------------------------------------*/
void Ds1302_Init(void);
#endif
(2)DS1302.c
#include "ds1302.h"
unsigned char time_buf1[8] = {20,9,3,13,18,51,00,6};//空年月日時(shí)分秒周
unsigned char time_buf[8] ; //空年月日時(shí)分秒周
/*------------------------------------------------
向DS1302寫(xiě)入一字節(jié)數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Byte(unsigned char addr, unsigned char d)
{
unsigned char i;
RST_SET;
//寫(xiě)入目標(biāo)地址:addr
addr = addr & 0xFE; //最低位置零
for (i = 0; i < 8; i ++)
{
if (addr & 0x01)
{
IO_SET;
}
else
{
IO_CLR;
}
SCK_SET;
SCK_CLR;
addr = addr > > 1;
}
//寫(xiě)入數(shù)據(jù):d
for (i = 0; i < 8; i ++)
{
if (d & 0x01)
{
IO_SET;
}
else
{
IO_CLR;
}
SCK_SET;
SCK_CLR;
d = d > > 1;
}
RST_CLR; //停止DS1302總線
}
/*------------------------------------------------
從DS1302讀出一字節(jié)數(shù)據(jù)
------------------------------------------------*/
unsigned char Ds1302_Read_Byte(unsigned char addr)
{
unsigned char i;
unsigned char temp;
RST_SET;
//寫(xiě)入目標(biāo)地址:addr
addr = addr | 0x01;//最低位置高
for (i = 0; i < 8; i ++)
{
if (addr & 0x01)
{
IO_SET;
}
else
{
IO_CLR;
}
SCK_SET;
SCK_CLR;
addr = addr > > 1;
}
//輸出數(shù)據(jù):temp
for (i = 0; i < 8; i ++)
{
temp = temp > > 1;
if (IO_R)
{
temp |= 0x80;
}
else
{
temp &= 0x7F;
}
SCK_SET;
SCK_CLR;
}
RST_CLR; //停止DS1302總線
return temp;
}
/*------------------------------------------------
向DS1302寫(xiě)入時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Time(void)
{
unsigned char i,tmp;
for(i=0;i< 8;i++)
{ //BCD處理
tmp=time_buf1[i]/10;
time_buf[i]=time_buf1[i]%10;
time_buf[i]=time_buf[i]+tmp*16;
}
Ds1302_Write_Byte(ds1302_control_add,0x00); //關(guān)閉寫(xiě)保護(hù)
Ds1302_Write_Byte(ds1302_sec_add,0x80); //暫停
//Ds1302_Write_Byte(ds1302_charger_add,0xa9); //涓流充電
Ds1302_Write_Byte(ds1302_year_add,time_buf[1]); //年
Ds1302_Write_Byte(ds1302_month_add,time_buf[2]); //月
Ds1302_Write_Byte(ds1302_date_add,time_buf[3]); //日
Ds1302_Write_Byte(ds1302_day_add,time_buf[7]); //周
Ds1302_Write_Byte(ds1302_hr_add,time_buf[4]); //時(shí)
Ds1302_Write_Byte(ds1302_min_add,time_buf[5]); //分
Ds1302_Write_Byte(ds1302_sec_add,time_buf[6]); //秒
Ds1302_Write_Byte(ds1302_day_add,time_buf[7]); //周
Ds1302_Write_Byte(ds1302_control_add,0x80); //打開(kāi)寫(xiě)保護(hù)
}
/*------------------------------------------------
從DS1302讀出時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Read_Time(void)
{
unsigned char i,tmp;
time_buf[1]=Ds1302_Read_Byte(ds1302_year_add); //年
time_buf[2]=Ds1302_Read_Byte(ds1302_month_add); //月
time_buf[3]=Ds1302_Read_Byte(ds1302_date_add); //日
time_buf[4]=Ds1302_Read_Byte(ds1302_hr_add); //時(shí)
time_buf[5]=Ds1302_Read_Byte(ds1302_min_add); //分
time_buf[6]=(Ds1302_Read_Byte(ds1302_sec_add))&0x7F;//秒
time_buf[7]=Ds1302_Read_Byte(ds1302_day_add); //周
for(i=0;i< 8;i++)
{ //BCD處理
tmp=time_buf[i]/16;
time_buf1[i]=time_buf[i]%16;
time_buf1[i]=time_buf1[i]+tmp*10;
}
}
/*------------------------------------------------
DS1302初始化
------------------------------------------------*/
void Ds1302_Init(void)
{
RST_CLR; //RST腳置低
SCK_CLR; //SCK腳置低
Ds1302_Write_Byte(ds1302_sec_add,0x00);
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
電壓
+關(guān)注
關(guān)注
45文章
5773瀏覽量
121843 -
微處理器
+關(guān)注
關(guān)注
11文章
2431瀏覽量
85850 -
計(jì)時(shí)芯片
+關(guān)注
關(guān)注
0文章
7瀏覽量
9008 -
DS1302芯片
+關(guān)注
關(guān)注
0文章
3瀏覽量
2236
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
DS1302涓流充電時(shí)鐘保持芯片的原理與應(yīng)用
DS1302涓流充電時(shí)鐘保持芯片的原理與應(yīng)用DS1302 是DALLAS 公司推出的涓流
發(fā)表于 12-12 16:36
涓流充電,帶31個(gè)字節(jié)RAM,時(shí)鐘芯片GM1302,兼容DS1302,數(shù)據(jù)手冊(cè)和參考源代碼
`涓流充電,帶31個(gè)字節(jié)RAM,時(shí)鐘芯片GM1302,兼容DS1302,數(shù)據(jù)手冊(cè)和參考源代碼`
發(fā)表于 12-10 14:03
DS1302基本介紹
)模式讀/寫(xiě)操作簡(jiǎn)單說(shuō)明寫(xiě)入數(shù)據(jù)讀取數(shù)據(jù)涓細(xì)電流充電充電原理圖充電控制字節(jié)代碼示例寫(xiě)保護(hù)開(kāi)關(guān)BCD碼和十進(jìn)制之間的轉(zhuǎn)換十進(jìn)制轉(zhuǎn)BCDBCD轉(zhuǎn)十進(jìn)制參考文獻(xiàn)DS1302基本介紹
發(fā)表于 01-17 06:21
DS1302的中文手冊(cè)
DS1302 涓流充電計(jì)時(shí)芯片包含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和 31 字節(jié)的靜態(tài) RAM.通過(guò)簡(jiǎn)單的串行接口與微處理器通訊.這個(gè)實(shí)時(shí)時(shí)鐘/日歷提供年
發(fā)表于 09-28 07:52
DS1302涓流充電時(shí)鐘保持芯片的原理與應(yīng)用
摘要:本文概括介紹了DS1302時(shí)鐘芯片的特點(diǎn)和基本組成,通過(guò)實(shí)例詳細(xì)說(shuō)明了有關(guān)功能的應(yīng)用軟件。關(guān)于DS1302各寄存器的詳細(xì)位控功能請(qǐng)參考DALLAS(達(dá)拉斯)公司的相應(yīng)產(chǎn)品資料。
發(fā)表于 07-17 23:54
?144次下載
關(guān)于DS1302典型應(yīng)用原理圖
DS1302是一款涓流充電時(shí)鐘芯片,DS1302與單片機(jī)的連接也僅需要3條線:CE引腳、SCLK串行時(shí)鐘 引腳、I/O串行數(shù)據(jù)引腳,Vcc2
發(fā)表于 10-18 10:43
?3.8w次閱讀
DS1302講解篇,DS1302全面解析
時(shí)鐘芯片DS1302 DS1302 是DALLAS 公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)
發(fā)表于 10-19 16:49
?4.2w次閱讀
DS1302涓流充電計(jì)時(shí)實(shí)時(shí)時(shí)鐘芯片的詳細(xì)原版數(shù)據(jù)手冊(cè)免費(fèi)下載
DS1302涓流充電計(jì)時(shí)芯片包含實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)的靜態(tài)RAM。它通過(guò)一個(gè)簡(jiǎn)單的串行接口與微處理器通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分鐘、小
發(fā)表于 09-28 15:16
?0次下載
DS1302涓流充電計(jì)時(shí)芯片的數(shù)據(jù)手冊(cè)免費(fèi)下載
DS1302 涓流充電計(jì)時(shí)芯片包含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)的靜態(tài)RAM.通過(guò)簡(jiǎn)單的串行接口與微處理器通訊。這個(gè)實(shí)時(shí)時(shí)鐘/日歷提供年月日
發(fā)表于 07-02 16:33
?9次下載
DS1302涓流充電計(jì)時(shí)芯片的數(shù)據(jù)手冊(cè)
DS1302涓流充電計(jì)時(shí)芯片包含一個(gè)RTC/日歷和31個(gè)字節(jié)的靜態(tài)RAM。它通過(guò)一個(gè)簡(jiǎn)單的串行接口與微處理器通信。RTC/日歷提供秒、分鐘、
發(fā)表于 08-08 08:00
?3次下載
DS1302涓流充電時(shí)鐘芯片的中文資料和源代碼免費(fèi)下載
DS1302 是DALLAS 公司推出的涓流充電時(shí)鐘芯片內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)靜態(tài)RAM可通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信
發(fā)表于 10-30 16:58
?18次下載
DS1302涓流充電計(jì)時(shí)芯片的中文數(shù)據(jù)手冊(cè)免費(fèi)下載
DS1302 涓流充電計(jì)時(shí)芯片包含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和 31 字節(jié)的靜態(tài) RAM.通過(guò)簡(jiǎn)單的串行接口與微處理器通訊。這個(gè)實(shí)時(shí)時(shí)鐘/日歷提供年
發(fā)表于 06-01 17:42
?22次下載
DS1302帶涓流充電的時(shí)鐘芯片技術(shù)手冊(cè)
DS1302涓流充電計(jì)時(shí)芯片包含實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM。它通過(guò)簡(jiǎn)單的串行接口與微處理器通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分、時(shí)、星期、
DS1302涓流充電計(jì)時(shí)芯片特征
評(píng)論