/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目 的: 建立PCF8563操作库
目标系统: 基于AVR单片机
应用软件: ICCAVR
版 本: Version 1.0
圆版时间: 2005-06-25
开发人员: SEE
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
*********************************************************************/
/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:
----------------------------------------------------------------------
实验内容:
初始化、设置时间、获取时间,使用PA口的LED指示获取的时间数据,观测是否正确写入。
----------------------------------------------------------------------
硬件连接:
将“PCF8563.SCL”引针与“MCU.SCL” 引针使用跳线帽短接;
将“PCF8563.SDA”引针与“MCU.SDA” 引针使用跳线帽短接。
----------------------------------------------------------------------
注意事项:
(1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读“使用必读”及相关资料。
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>
#define WR_DADR 0xA2
#define RD_DADR 0xA3
#include "D:\ICC_H\PCF8563.H"
#define DISP_DDR DDRA
#define DISP_PORT PORTA
/*--------------------------------------------------------------------
函数全称:PCF8563
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void errDisp() //错误显示
{
DISP_PORT = 0XAA;
delay50ms(2);
DISP_PORT = 0X00;
delay50ms(2);
DISP_PORT = 0X55;
delay50ms(2);
DISP_PORT = 0X00;
delay50ms(2);
}
/*--------------------------------------------------------------------
函数全称:PCF8563
函数功能:
注意事项:
提示说明:假设系统时钟为16M,则TWI波特率=CLK/(16+2*(TWBR)*4)=400K
输 入:
返 回:
--------------------------------------------------------------------*/
void twi_init() //TWI(I2C)初始化
{
TWBR = 0X03; //设置TWI波特率
TWSR &= 0XFC; //设置TWI预分频 为 1
}
/*--------------------------------------------------------------------
函数全称:PCF8563
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void main()
{
uint8 time[3]={0,1,2};
DISP_DDR = 0XFF;
twi_init();
PCF8563_init();
PCF8563_setTime(9,32,7);
while(1)
{
PCF8563_getTime(time);
DISP_PORT = time[0];
}
}