📄 时钟芯片ds1302iii.htm
字号:
uc_RTOutputByte(void) <BR>{ <BR>uchar i;<BR>for(i=8; i>0;
i--)<BR>{<BR>ACC = ACC >>1; /*相当于汇编中的 RRC */<BR>ACC7 =
T_IO;<BR>T_CLK = 1;<BR>T_CLK = 0;<BR>} <BR>return(ACC);
<BR>}<BR>/********************************************************************
<BR>*<BR>* 名称: v_W1302<BR>* 说明: 先写地址,后写命令/数据<BR>* 功能:
往DS1302写入数据<BR>* 调用: v_RTInputByte() <BR>* 输入: ucAddr: DS1302地址,
ucDa: 要写的数据<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_W1302(uchar ucAddr, uchar ucDa)<BR>{<BR>T_RST = 0;<BR>T_CLK =
0;<BR>T_RST = 1;<BR>v_RTInputByte(ucAddr); /* 地址,命令
*/<BR>v_RTInputByte(ucDa); /* 写1Byte数据*/<BR>T_CLK = 1;<BR>T_RST
=0;<BR>}
<BR>/********************************************************************
<BR>*<BR>* 名称: uc_R1302<BR>* 说明: 先写地址,后读命令/数据<BR>* 功能:
读取DS1302某地址的数据<BR>* 调用: v_RTInputByte() , uc_RTOutputByte()<BR>* 输入:
ucAddr: DS1302地址<BR>* 返回值: ucDa
:读取的数据<BR>***********************************************************************/<BR>uchar
uc_R1302(uchar ucAddr)<BR>{<BR>uchar ucDa;<BR>T_RST = 0;<BR>T_CLK =
0;<BR>T_RST = 1;<BR>v_RTInputByte(ucAddr); /* 地址,命令 */<BR>ucDa =
uc_RTOutputByte(); /* 读1Byte数据 */<BR>T_CLK = 1;<BR>T_RST
=0;<BR>return(ucDa);<BR>}<BR>/********************************************************************
<BR>*<BR>* 名称: v_BurstW1302T<BR>* 说明: 先写地址,后写数据(时钟多字节方式)<BR>* 功能:
往DS1302写入时钟数据(多字节方式)<BR>* 调用: v_RTInputByte() <BR>* 输入: pSecDa:
时钟数据地址 格式为: 秒 分 时 日 月 星期 年 控制<BR>* 8Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B
1B<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_BurstW1302T(uchar *pSecDa)<BR>{<BR>uchar i;<BR>v_W1302(0x8e,0x00);
/* 控制命令,WP=0,写操作?*/<BR>T_RST = 0;<BR>T_CLK = 0;<BR>T_RST =
1;<BR>v_RTInputByte(0xbe); /* 0xbe:时钟多字节写命令 */<BR>for
(i=8;i>0;i--) /*8Byte = 7Byte 时钟数据 1Byte
控制*/<BR>{<BR>v_RTInputByte(*pSecDa);/* 写1Byte数据*/<BR>pSecDa
;<BR>}<BR>T_CLK = 1;<BR>T_RST =0;<BR>}
<BR>/********************************************************************
<BR>*<BR>* 名称: v_BurstR1302T<BR>* 说明: 先写地址,后读命令/数据(时钟多字节方式)<BR>* 功能:
读取DS1302时钟数据<BR>* 调用: v_RTInputByte() , uc_RTOutputByte()<BR>* 输入:
pSecDa: 时钟数据地址 格式为: 秒 分 时 日 月 星期 年 <BR>* 7Byte (BCD码) 1B 1B 1B 1B 1B
1B 1B<BR>* 返回值: ucDa
:读取的数据<BR>***********************************************************************/<BR>void
v_BurstR1302T(uchar *pSecDa)<BR>{<BR>uchar i;<BR>T_RST = 0;<BR>T_CLK
= 0;<BR>T_RST = 1;<BR>v_RTInputByte(0xbf); /* 0xbf:时钟多字节读命令
*/<BR>for (i=8; i>0; i--) <BR>{<BR>*pSecDa = uc_RTOutputByte();
/* 读1Byte数据 */<BR>pSecDa ;<BR>}<BR>T_CLK = 1;<BR>T_RST
=0;<BR>}<BR>/********************************************************************
<BR>*<BR>* 名称: v_BurstW1302R<BR>* 说明: 先写地址,后写数据(寄存器多字节方式)<BR>* 功能:
往DS1302寄存器数写入数据(多字节方式)<BR>* 调用: v_RTInputByte() <BR>* 输入: pReDa:
寄存器数据地址<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_BurstW1302R(uchar *pReDa)<BR>{<BR>uchar i;<BR>v_W1302(0x8e,0x00);
/* 控制命令,WP=0,写操作?*/<BR>T_RST = 0;<BR>T_CLK = 0;<BR>T_RST =
1;<BR>v_RTInputByte(0xfe); /* 0xbe:时钟多字节写命令 */<BR>for
(i=31;i>0;i--) /*31Byte 寄存器数据 */<BR>{<BR>v_RTInputByte(*pReDa);
/* 写1Byte数据*/<BR>pReDa ;<BR>}<BR>T_CLK = 1;<BR>T_RST =0;<BR>}
<BR>/********************************************************************
<BR>*<BR>* 名称: uc_BurstR1302R<BR>* 说明: 先写地址,后读命令/数据(寄存器多字节方式)<BR>*
功能: 读取DS1302寄存器数据<BR>* 调用: v_RTInputByte() , uc_RTOutputByte()<BR>*
输入: pReDa: 寄存器数据地址<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_BurstR1302R(uchar *pReDa)<BR>{<BR>uchar i;<BR>T_RST = 0;<BR>T_CLK
= 0;<BR>T_RST = 1;<BR>v_RTInputByte(0xff); /* 0xbf:时钟多字节读命令
*/<BR>for (i=31; i>0; i--) /*31Byte 寄存器数据 */<BR>{<BR>*pReDa =
uc_RTOutputByte(); /* 读1Byte数据 */<BR>pReDa ;<BR>}<BR>T_CLK =
1;<BR>T_RST
=0;<BR>}<BR>/********************************************************************
<BR>*<BR>* 名称: v_Set1302<BR>* 说明: <BR>* 功能: 设置初始时间<BR>* 调用:
v_W1302() <BR>* 输入: pSecDa: 初始时间地址。初始时间格式为: 秒 分 时 日 月 星期 年 <BR>*
7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_Set1302(uchar *pSecDa) <BR>{<BR>uchar i;<BR>uchar ucAddr = 0x80;
<BR>v_W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/<BR>for(i
=7;i>0;i--)<BR>{ <BR>v_W1302(ucAddr,*pSecDa); /* 秒 分 时 日 月 星期 年
*/ <BR>pSecDa ;<BR>ucAddr =2;<BR>}<BR>v_W1302(0x8e,0x80); /*
控制命令,WP=1,写保护?*/<BR>}<BR>/********************************************************************
<BR>*<BR>* 名称: v_Get1302<BR>* 说明: <BR>* 功能: 读取DS1302当前时间<BR>* 调用:
uc_R1302() <BR>* 输入: ucCurtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年
<BR>* 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B<BR>* 返回值:
无<BR>***********************************************************************/<BR>void
v_Get1302(uchar ucCurtime[]) <BR>{<BR>uchar i;<BR>uchar ucAddr =
0x81;<BR>for (i=0;i<7;i )<BR>{<BR>ucCurtime[i] =
uc_R1302(ucAddr);/*格式为: 秒 分 时 日 月 <BR>星期 年 */<BR>ucAddr =
2;<BR>}<BR>} <BR><BR><BR><BR><SPAN
class=style4>--------------------------------------------------------------------------------------</SPAN><BR> <IMG
src="时钟芯片DS1302III.files/none.gif" border=0><IMG
src="时钟芯片DS1302III.files/i8.gif"
border=0> (浏览:122)<B>内容</B><BR> <IMG
src="时钟芯片DS1302III.files/none.gif" border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
href="http://www.icwin.net/ShowArtitle.asp?art_id=4742&cat_id=2">实时时钟芯片DS1302的C51程序列子</A>
2005-10-3 22:23:59<BR> <IMG src="时钟芯片DS1302III.files/none.gif"
border=0><IMG src="时钟芯片DS1302III.files/title.gif" border=0> <A
href="http://www.icwin.net/ShowArtitle.asp?art_id=6886&cat_id=33">实时时钟芯片DS1302的C51程序列子</A>
2005-12-27 22:56:05<BR></TD>
<FORM name=form1>
<TR>
<TD align=right colSpan=2>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center
border=0>
<TBODY>
<TR>
<TD align=middle width="1%"> </TD></TR></FORM></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=6 width="100%" align=center
bgColor=#bdc0c8 border=0>
<TBODY>
<TR>
<TD borderColor=#666666 bgColor=#ffffff><FONT
color=red>查看:2006-4-5 11:06:50</FONT></TD>
<TD align=middle bgColor=#ffffff><INPUT class=button onclick="" type=button value=复制>
<INPUT class=button onclick=javascript:window.print() type=button value=打印>
<INPUT class=button onclick=javascript:history.go(-1) type=button value=返回>
<INPUT class=button onclick="window.close();return false;" type=button value=关闭 name=close2>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD width=1 background=时钟芯片DS1302III.files/xu.gif height=190></TD>
<TD vAlign=top align=left width=204 background="">
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR>
<TD width=204><IMG src="时钟芯片DS1302III.files/left_top2.gif"
useMap=#Map border=0><MAP name=Map><AREA title=留言本 shape=RECT
coords=61,11,87,24 href="http://www.icwin.net/connect.asp"><AREA
title="ICWIN 论坛" shape=RECT target=_blank coords=134,11,160,24
href="http://www.icwin.net/bbs/default.asp"></MAP></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=196 align=right border=0>
<TBODY>
<TR>
<TD align=middle background="" height=24><STRONG>文 章 查
找</STRONG></TD></TR>
<FORM name=form2 action=cs.asp?cat_id=33 method=post>
<TR>
<TD align=middle height=28><INPUT type=radio CHECKED
value=m_Artkeyword name=select> <FONT color=#0000ff>关键字</FONT>
<INPUT type=radio value=m_ArtTitle name=select><FONT
color=#ff00ff>标题</FONT> <INPUT type=radio value=m_ArtContent
name=select> <FONT color=#ff7f50>内容</FONT> </TD></TR>
<TR>
<TD align=middle height=28><INPUT class=lanyu onfocus=this.select();
maxLength=1000 size=15 name=keyword> <INPUT class=button type=submit value=搜索 name=search></TD></TR></FORM></TR>
<TR>
<TD align=middle background="" height=24><STRONG></STRONG></TD></TR>
<TR>
<TD> <IMG height=17 src="时钟芯片DS1302III.files/none.gif" width=8
border=0><IMG src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[74系列器件] (839)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=5590&cat_id=33">
74系列器件 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[串口示例] (835)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=5936&cat_id=33">
串口示例 </A><BR> <IMG height=17 src="时钟芯片DS1302III.files/none.gif"
width=8 border=0><IMG src="时钟芯片DS1302III.files/title.gif"
border=0> <A title="[LCD(液晶)应用》大全] (704)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=7745&cat_id=33">
LCD(液晶)应用》大全 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[电容知识大全(新手必看)] (694)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=7613&cat_id=33">
电容知识大全(新手必看) </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[C51中断处理过程] (578)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=5575&cat_id=33">
C51中断处理过程 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[单片机C51串口中断接收和发送测试例程] (533)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=5549&cat_id=33">
单片机C51串口中断接收... </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[RS232技术详解(1)] (513)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=7230&cat_id=33">
RS232技术详解(1) </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[硬件工程师基础知识] (501)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=7646&cat_id=33">
硬件工程师基础知识 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[基于中断的串口驱动及显示程序] (490)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=5569&cat_id=33">
基于中断的串口驱动及显示程序 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
title="[小型快速电路板制作方法] (490)"
href="http://www.icwin.net/ShowArtitle.ASP?art_id=7555&cat_id=33">
小型快速电路板制作方法 </A><BR> <IMG height=17
src="时钟芯片DS1302III.files/none.gif" width=8 border=0><IMG
src="时钟芯片DS1302III.files/title.gif" border=0> <A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -