刚接触pcf2129
芯片,使用c8051f340
单片机与其进行SPI
通信,所编写的读写程序如下,但是不能使用网上也找不到相关资料,求大神指导指导,弄了好几天了,一点进度都没有。
/***********PCF2129的初始化************/
void Init_PCF2129()
{
NSS = 0;
SPISend(0x20); /*设置时钟PCF2129初始化控制寄存器命令*/
SPISend(0x00); /*EXT_TEST,NULL,STOP,TSF1,POR_OVER,12_24,MI,SI; 0001001*/
SPISend(0x04); /*MSF, WDTF, TSF2,AF, ,NULL, TSIE, AIE, NULL*/
SPISend(0xe0); /*PWRMIN7-5, BSTE, BF, BLF, BIE, BLIE*/
NSS = 1;
}
/********向PCF2129写一字节数据*********/
void SPISend(uchar date)
{
NSS = 0;
SPI0DAT = date;
while(!SPIF);//等待发送完数据
SPIF = 0;
_nop_();
NSS = 1;
}
/*******向PCF2129写入设置时间***********/
void set_
time(void)
{
NSS = 0;
SPISend(0x32); /*发送命令字00110010*/
SPISend(0x00); /*设置时钟PCF2129控制寄存器Timestp_ctl,初始时间0秒*/
SPISend(0x01); /*设置时钟PCF2129秒寄存器,初始时间0秒*/
SPISend(0x30); /*设置时钟PCF2129分钟寄存器,初始时间30分钟*/
SPISend(0x11); /*设置时钟PCF2129小时寄存器,初始时间11时*/
SPISend(0x26); /*设置时钟PCF2129日寄存器,初始时间26日*/
SPISend(0x04); /*设置时钟PCF2129星期寄存器,初始时间星期四*/
SPISend(0x04); /*设置时钟PCF2129月寄存器,初始时间4月*/
SPISend(0x13); /*设置时钟PCF2129年寄存器,初始时间13时*/
NSS = 1;
}
/*******从PCF2129读一个字节的BCD码*********/
uchar read_byte()
{
SPI0DAT=0;
NSS = 0;
while(!SPIF);//等待发送完数据
SPIF = 0;
NSS = 1;
_nop_();
_nop_();
_nop_();
_nop_();
return SPI0DAT;
}
一周热门 更多>