只想用8563日历时钟芯片的定时器功能,请问对51单片机用C语言编程,SCL,SDA这两个引脚要用吗?怎么用?

只想用8563日历时钟芯片的定时器功能,请问对51单片机用C语言编程,SCL,SDA这两个引脚要用吗?怎么用?,第1张

您好! 程式如下,编译运行确认过没问题了:

#include<stdio.h>

void main()

{

int N, i, j

int *elements

int **diffTriangle

printf("Please input N:")

scanf("%d", &N)

/枣姿/ 动态申请一维数据内存来存储输入数据

elements = (int*)malloc(N*sizeof(int))

// 动态申请二维数据内存来存储间差数据

diffTriangle = (int**)malloc((N - 1)*sizeof(int*))

for (i = 0i <N - 1i++)

diffTriangle[i] = (int*)malloc((N - 1)*sizeof(int))

// 输入数据

printf("Please input %d numbers:", N)

for (i = 0i <Ni++)

scanf("%d", &elements[i])

// 计算间差

for (i = 0i <N - 1i++)

for (j = 0j <= ij++)

diffTriangle[i][j] = elements[i+1] - elements[i-j]

// 输出

for (i = 0i <N - 1i++)

{

for (j = 0j <= ij++)

printf("%d\t", diffTriangle[i][j])

printf("\n")

}

/凯宏/ 清空内存凳孙绝

free(elements)

for (i = 0i <N - 1i++)

free(diffTriangle[i])

free(diffTriangle)

}

不知道好了没有,我用12c5a60s2,控制没有问题!

我敬指调试的过程中,I2C的控制调试的时间较长,

1、一个可能是硬件冲突(IIc线是否接有其他设备,有时会产生干扰。)

2、IIC读取的速度过快。余稿宏

3、IIC的时序有问题。

你可以先调试IIC口,用示波器竖册看看!

程序太长,下面是我的写8563控制寄存器的命令子程序摘抄:

PUBLIC bool_t bRtContrl2Write(uint8 u8TimeReg)

{

vI2CInit()

vI2CStart()

if(!bI2CSendByte(PCF8563_ADDRESS_WRITE))

{

vDebug("PCF8563_ADDRESS_WRITE wrong. \n\r")

}

if(!bI2CSendByte((PCF8563_CONTROL2_ADDRESS)))

{

vDebug("PCF8563_SECOND_ADDRESS wrong. \n\r")

}

bTemp = bI2CSendByte(u8TimeReg)

vI2CStop()

return TRUE

}

实时时钟是一种计时器,就像一只正常行走的钟表。在电子技术中,实时时钟可以由一片硬件集成电路来伍姿完成,也可以由单片机+程序来完成。

PCF8563是飞利浦公司出品的一款低功耗CMOS 实时时钟/日历芯片,8只引租厅脚。给PCF8563连接一只频率为32768Hz的石英晶振和电源后,它能对年、月、日弊橘隐、时、分、秒进行准确的计时。时钟信息通过I2C 总线接口读取。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12267845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存