在线时间0 小时
UID253413
注册时间2010-12-11
NXP金币0
该用户从未签到
新手上路

- 积分
- 186
- 最后登录
- 1970-1-1
|
飞思卡尔单片机Freescale MC9S12XEQ512与实时时钟芯片PCF8563 IIC通信:
这是我经过很长一段时间调试通过的代码,条理还是比较清楚的,就是有些繁琐,不过大家可以做成子函数,进行调用就简洁多了。
电路图如下:
电路图如下:


#include /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define uchar unsigned char
////////////////////////////////////////////////
//用来设置时钟芯片PCF8563的信息
void IIC_init() // IIC0 初始化
{
IIC0_IBFD=0x1d; // 总线频率为8M 设置时钟为总线频率 160 分频 8M/160=50 khz
IIC0_IBCR|=0x80;
}
void IIC_Start() // IIC0 起始条件
{
IIC0_IBCR|=0x30;
}
void IIC_Stop() // IIC0 停止条件
{
IIC0_IBCR&=0xdf; //
}
void delay00(unsigned long m) //延时
{
while(m--);
}
void send_data(uchar ch) // IIC0 发送程序
{
IIC0_IBSR_IBIF=1; //清除标志位
IIC0_IBDR=ch;
while(!(IIC0_IBSR_IBIF)); //等待响应
}
void wait_ack() // IIC0 应答等待程序
{
while(IIC0_IBSR_RXAK);
}
//-----------------------------------------------------
//延时1毫秒
void Dly_ms(int ms)
{
int ii,jj;
if (ms
|
|