#include
#include
#define
#define
extern bit ISendStr(unsigned char ,unsigned char ,unsigned char *,unsigned char );
extern bit IRcvStr(unsigned char,unsigned char,unsigned char *,unsigned char);
extern void initialize_UART(void);
extern void s_send(unsigned char );
void
{
}
//main
main()
{
unsigned char p[7]={0x30,0x59,0x15,0x20,0x02,0x06,0x00};
//2000 年6 月20 日星期3 15 点 59 分30 秒<倒序>
unsigned char
unsigned i;
bit bp;
initialize_UART();
//写PCF8563各个时间寄存器
for(i=0;i<7;i++)
{
bp=ISendStr(PCF8563,SUBADDR+i,p+i,1);
}
while(1)
{
//读PCF8563各时钟寄存器
for(i=0;i<7;i++)
{ bp=IRcvStr(PCF8563,SUBADDR+i,q+i,1);
}
//屏蔽无效位
q[0]&=0x7F;//second
q[1]&=0x7F;//minute
q[2]&=0x3F;//hour
q[3]&=0x3F;//day
q[4]&=0x07;//week
q[5]&=0x1F;//month
q[6]&=0xFF;//year
//送显示器显示
for(i=7;i>0;i--)
{ s_send(q[i-1]);
}
DelayNS(200);
}
}
说明:使用这个程序,请包含我的上一篇文章中的文件,使用其提供的函数!
该程序主要完成了对8563(IIC接口的实时时钟)的寄存器读写。
设置初值后开始计时,并读回当前时间值,送回显示器利用串口调试助手显示结果!
上一篇:单片机串口中断发送的实现与特点
下一篇:单片机与单片机串行通讯+键盘扫描+数码管显示
推荐阅读最新更新时间:2024-03-16 14:47