sbitP10P10ucharg8563_Store4时间交换区全局变量声明ucharcodec8563_Store40x000x590x070x01写入时间初值:星期一075900内部函数,延时1voidDelayP101_
op_P100_
op__
op_根据晶振频率制定延时时间内部函数,I2C开始voidStartEA0SDA1SCL1Delay
fSDA0DelaySCL0内部函数,I2C结束voidStopSDA0SCL0DelaySCL1DelaySDA1DelayEA1内部函数,输出ACK每个字节传输完成,输出ack0结束读书据,ack1voidWriteACKucharackSDAackDelaySCL1DelaySCL0内部函数,等待ACKvoidWaitACKucharerrtime20SDA1Delay读ACKSCL1DelaywhileSDAerrtimeiferrtimeStopSCL0Delay
f内部函数输出数据字节入口B数据voidwritebyteucharwdataucharifori0i8iifwdata0x80SDA1elseSDA0wdata1SCL1DelaySCL0WaitACKI2C器件或通讯出错,将会退出I2C通讯内部函数输入数据出口BucharReadbyteucharibytedataSDA1fori0i8iSCL1bytedata1bytedataSDASCL0Delayretur
bytedata输出数据pcf8563voidwriteDataucharaddressucharmdataStartwritebyte0xa2写命令
fwritebyteaddress写地址writebytemdata写数据Stop输入数据pcf8563ucharReadDataucharaddress单字节ucharrdataStartwritebyte0xa2写命令writebyteaddress写地址Startwritebyte0xa3读命令rdataReadbyteWriteACK1Stopretur
rdatavoidReadData1ucharaddressucharcou
tucharbuff多字节uchariStartwritebyte0xa2写命令writebyteaddress写地址Startwritebyte0xa3读命令fori0icou
tibuffiReadbyteificou
t1WriteACK0WriteACK1Stop
内部函数读入时间到内部缓冲区voidP8563_Readuchartime7ReadData10x020x07timer