| 
在线时间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
 | 
 |