关键词不能为空

当前您在: 主页 > 英语 >

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
1970-01-01 08:00
tags:

-

2021年1月23日发(作者:3127)
51
单片机
ds1302
程序



void v_RTInputByte(uchar ucDa)

{

uchar i;
ACC = ucDa;
for(i=8; i>0; i--)
{
T_IO = ACC0;


















//
相当于汇编中的

RRC

T_CLK = 1;
T_CLK = 0;
ACC = ACC >> 1;

}

}
/***************** ************************************************** *

*
*
名称
: uchar uc_RTOutputByte
*
说明
:

*
功能
:

DS1302
读取
1Byte
数据

*
调用
:

*
输入
:

*
返回值
: ACC
***************************** ******************************************/
uchar uc_RTOutputByte(void)

{

uchar i;
for(i=8; i>0; i--)
{
ACC = ACC >>1;





















//
相当于汇编中的

RRC

ACC7 = T_IO;
T_CLK = 1;
T_CLK = 0;
}

return(ACC);

}
/****** ************************************************** ************

*
*
名称
: v_W1302
*
说明
:
先写地址,后写命令
/
数据

*
功能
:

DS1302
写入数据

*
调用
: v_RTInputByte()

*
输入
: ucAddr: DS1302
地址
, ucDa:
要写的数据

*
返回值
:


*** ************************************************** ******************/
void v_W1302(uchar ucAddr, uchar ucDa)
{
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_RTInputByte(ucAddr);



















//
地址,命令


v_RTInputByte(ucDa);





















//

1Byte
数据

T_CLK = 1;
T_RST =0;
}

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

*
*
名称
: uc_R1302
*
说明
:
先写地址,后读命令
/
数据

*
功能
:
读取
DS1302
某地址的数据

*
调用
: v_RTInputByte() , uc_RTOutputByte()
*
输入
: ucAddr: DS1302
地址

*
返回值
: ucDa :
读取的数据

************* ************************************************** ********/
uchar uc_R1302(uchar ucAddr)
{
uchar ucDa;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_RTInputByte(ucAddr);



















//
地址,命令


ucDa = uc_RTOutputByte();
















//

1Byte
数据


T_CLK = 1;
T_RST =0;
return(ucDa);
}
/******* ************************************************** ***********

*
*
名称
: v_BurstW1302T
*
说明
:
先写地址,后写数据
(
时钟多字节方式
)
*
功能
:

DS1302
写入时钟数据
(
多字节方式
)
*
调用
: v_RTInputByte()

*
输入
: pSecDa:
时钟数据地址

格式为
:










星期



控制

* 8Byte (BCD

) 1B 1B 1B 1B 1B 1B 1B 1B
*
返回值
:


********************************************** *************************/
void v_BurstW1302T(uchar *pSecDa)
{
uchar i;
v_W1302(0x8e,0x00);

















//
控制命令
,WP=0,
写操作
?
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_RTInputByte(0xbe);
















//0xbe:
时钟多字节写命令


for (i=8;i>0;i--)





















//8Byte = 7Byte
时钟数据

+ 1Byte



{
v_RTInputByte(*pSecDa);












//

1Byte
数据

pSecDa++;
}
T_CLK = 1;
T_RST =0;
}

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

*
*
名称
: v_BurstR1302T
*
说明
:
先写地址,后读命令
/
数据
(
时钟多字节方式
)
*
功能
:
读取
DS1302
时钟数据

*
调用
: v_RTInputByte() , uc_RTOutputByte()
*
输入
: pSecDa:
时钟数据地址

格式为
:










星期




* 7Byte (BCD

) 1B 1B 1B 1B 1B 1B 1B
*
返回值
: ucDa :
读取的数据

**** ************************************************** *****************/
void v_BurstR1302T(uchar *pSecDa)
{
uchar i;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_RTInputByte(0xbf);



















//0xbf:
时钟多字节读命令


for (i=8; i>0; i--)

{
*pSecDa = uc_RTOutputByte();











//

1Byte
数据


pSecDa++;
}
T_CLK = 1;

-


-


-


-


-


-


-


-



本文更新与1970-01-01 08:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/553627.html
    上一篇:没有了
    下一篇:没有了

的相关文章