ds1302Word文档格式.docx

上传人:b****7 文档编号:22931720 上传时间:2023-02-06 格式:DOCX 页数:18 大小:18.21KB
下载 相关 举报
ds1302Word文档格式.docx_第1页
第1页 / 共18页
ds1302Word文档格式.docx_第2页
第2页 / 共18页
ds1302Word文档格式.docx_第3页
第3页 / 共18页
ds1302Word文档格式.docx_第4页
第4页 / 共18页
ds1302Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

ds1302Word文档格式.docx

《ds1302Word文档格式.docx》由会员分享,可在线阅读,更多相关《ds1302Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

ds1302Word文档格式.docx

sbite="

^3;

/********************************************************************

*名称:

v_RTInputByte

*说明:

*功能:

往DS1302写入1Byte数据

*调用:

*输入:

ucDa写入的数据

*返回值:

***********************************************************************/

voidv_RTInputByte(unsignedcharucDa)

{

unsignedchari;

ACC=ucDa;

for(i="

8"

;

i>

0;

i--)

{

T_IO=ACC0;

/*相当于汇编中的RRC*/

T_CLK=1;

T_CLK=0;

ACC=ACC>

>

1;

}

}

ucharuc_RTOutputByte

从DS1302读取1Byte数据

ACC

unsignedcharuc_RTOutputByte(void)

1;

ACC7=T_IO;

return(ACC);

*

v_W1302

先写地址,后写命令/数据

往DS1302写入数据

v_RTInputByte()

ucAddr:

DS1302地址,ucDa:

要写的数据

voidv_W1302(unsignedcharucAddr,unsignedcharucDa)

 

T_RST=0;

T_RST=1;

v_RTInputByte(ucAddr);

/*地址,命令*/

v_RTInputByte(ucDa);

/*写1Byte数据*/

T_RST=0;

uc_R1302

先写地址,后读命令/数据

读取DS1302某地址的数据

v_RTInputByte(),uc_RTOutputByte()

DS1302地址

ucDa:

读取的数据

unsignedcharuc_R1302(unsignedcharucAddr)

unsignedcharucDa;

ucDa=uc_RTOutputByte();

/*读1Byte数据*/

return(ucDa);

v_BurstW1302T

先写地址,后写数据(时钟多字节方式)

往DS1302写入时钟数据(多字节方式)

pSecDa:

时钟数据地址格式为:

秒分时日月星期年控制

*8Byte(BCD码)1B1B1B1B1B1B1B1B

voidv_BurstW1302T(unsignedchar*pSecDa)

v_W1302(0x8e,0x00);

/*控制命令,WP="

0"

写操作?

*/

v_RTInputByte(0xbe);

/*0xbe:

时钟多字节写命令*/

for(i="

i>

i--)/*8Byte=7Byte时钟数据+1Byte控制*/

v_RTInputByte(*pSecDa);

/*写1Byte数据*/

pSecDa++;

v_BurstR1302T

先写地址,后读命令/数据(时钟多字节方式)

读取DS1302时钟数据

秒分时日月星期年

*7Byte(BCD码)1B1B1B1B1B1B1B

voidv_BurstR1302T(unsignedchar*pSecDa)

v_RTInputByte(0xbf);

/*0xbf:

时钟多字节读命令*/

i--)

*pSecDa=uc_RTOutputByte();

v_BurstW1302R

先写地址,后写数据(寄存器多字节方式)

往DS1302寄存器数写入数据(多字节方式)

pReDa:

寄存器数据地址

voidv_BurstW1302R(unsignedchar*pReDa)

v_RTInputByte(0xfe);

31"

i--)/*31Byte寄存器数据*/

v_RTInputByte(*pReDa);

pReDa++;

uc_BurstR1302R

先写地址,后读命令/数据(寄存器多字节方式)

读取DS1302寄存器数据

voidv_BurstR1302R(unsignedchar*pReDa)

v_RTInputByte(0xff);

i--)/*31Byte寄存器数据*/

*pReDa=uc_RTOutputByte();

v_Set1302

设置初始时间

v_W1302()

初始时间地址。

初始时间格式为:

voidv_Set1302(unsignedchar*pSecDa)

unsignedcharucAddr=0x80;

for(i=7;

i--)

v_W1302(ucAddr,*pSecDa);

/*秒分时日月星期年*/

ucAddr+=2;

v_W1302(0x8e,0x80);

1"

写保护?

v_Get1302

读取DS1302当前时间

uc_R1302()

ucCurtime:

保存当前时间地址。

当前时间格式为:

voidv_Get1302(unsignedchar 

ucCurtime[])

unsignedcharucAddr=0x81;

i<

7;

i++)

ucCurtime[i]=uc_R1302(ucAddr);

/*格式为:

秒分时日月

星期年*/

ucAddr+=2;

/********************************************************************************/

//lcd写命令使能

voidenable(void)

unsignedcharj,k;

rs="

rw="

_nop_();

e="

for(k="

10"

k>

k--)

for(j="

245"

j>

j--);

/**********************************************************************/

//lcd写数据使能

voidwriter(void)

}

/********************************************************************/

//初始化

voidstart(void)

mcuport2=0x01;

//

enable();

mcuport2=0x38;

mcuport2=0x0f;

mcuport2=0x06;

/*********************************************************************

延时40MS

*********************************************************************/

voiddelay40ms(void)

unsignedchari,j;

for(i="

40"

248"

unsignedchar 

key4x4()

unsignedchartemp;

unsignedcharkey,keydata;

keydata="

0xff"

while(keydata==0xff)

{

keydata="

mcuport1=0xff;

mcuport1=mcuport1&

0xef;

temp="

mcuport1"

temp"

&

0x0f;

if(temp!

=0x0f)

delay40ms();

switch(temp)

case0x0e:

key="

break;

case0x0d:

case0x0b:

2"

case0x07:

3"

key"

0xdf;

4"

5"

6"

7"

0xbf;

P3"

9"

11"

0x7f;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1