⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcf8563.c

📁 这是一个
💻 C
字号:
#include "P89C60X2.h"
#include "hicj6.h"

BYTE idata  rom_sed[9];

BYTE idata rom_rec[7];

BYTE idata j,k;

bit flag,flag1;

void delay(void) //延时子程序

{BYTE i;

for(i=0;i<6;i++);

}

void I_start(void) //发送I2C总线起始条件子程序

{sda=1;

;

scl=1;

delay();

sda=0;

delay();

scl=0;

;

}

void I_stop(void) //I2C总线停止条件子程序

{sda=0;

;

scl=1;

delay();

sda=1;

delay();

}

bit I_send(BYTE I_data) //字节数据传送子程序

{ BYTE i;

for(i=0;i<8;i++)

{//sda-(bit)(I_data&0x80);

I_data=I_data<<1;

scl=1;

delay();

scl=0;

}

;;

sda=1; ;; //ready for receiving ACK bit

scl=1; ;; //start receiving ack bit

flag=0;

if(sda==0)flag=0;

else flag=1; //return(~I_clock());

scl=0;

return(flag);

}

BYTE I_receive(void) //字节数据接收子程序

{ data BYTE i;

BYTE I_data=0;

sda=1;

for(i=0;i<8;i++)

{ I_data*=2;

;

scl=0;

delay();

scl=1; ;;

if(sda==1)I_data++;

;;

}

scl=0; ;;;

sda=0;

if(flag1==0){;;scl=1;delay();scl=0;} //not last receic_BYTE ACK

else{sda=1; ;;scl=1;delay();scl=0;flag1=0;} //the last receive_BYTE ~ACK

return(I_data);

}
             /*
main() //主程序

{data BYTE i;

rom_sed[0]=0x00; rom_sed[1]=0x00;

rom_sed[2]=0x00; rom_sed[3]=0x55;

rom_sed[4]=0x23; rom_sed[5]=0x31;

rom_sed[6]=0x06; rom_sed[7]=0x92;

rom_sed[8]=0x99;

for(i=0;i<255;i++)delay();

I_start();

if(~I_send(rom_sed[i]));

else;

}

I_stop();

}

else;

}

else;

start: I_start();

if(~I_send(0xa2)) //pcf_write address

{if(~I_send(0x02)) //pcf_status register address

{I_start();

if(~I_send(0xa3)) //write status register

{for(i=0;i<7;i++)

{if(i= =6)flag1=1;

else flag1=0;

rom_rec[i]=I_receive();

switch(i)

{case 1:rom_rec[i]=rom_rec[i]&0x7f;break;

ease2:

case3:rom_rec[i]=rom_rec[i]&0x3f;break;

case4:rom_rec[i]=rom_rec[i]&0x07;break;

case5:rom_rec[i]=rom_rec[i]&0x9f;brealk;default:break;

}

}

I_stop()

}

}

}

goto start;

}
           */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -