1、/24c16 读写驱动程序,/=-/*模块调用:读数据:read(unsigned int address)写数据:write(unsigned int address,unsigned char dd) dd 为要写的 数据字节 */-sbit sda=P30;sbit scl=P31;sbit a0=ACC0; /定义 ACC 的位,利用 ACC 操作速度最快sbit a1=ACC1;sbit a2=ACC2;sbit a3=ACC3;sbit a4=ACC4;sbit a5=ACC5;sbit a6=ACC6;sbit a7=ACC7;/-#pragma disablevoid s24(
2、void) /起始函数_nop_();scl=0; sda=1;scl=1;_nop_();sda=0;_nop_();_nop_();scl=0;_nop_();_nop_();sda=1;/-#pragma disablevoid p24(void) /停止函数sda=0;scl=1;_nop_();_nop_();sda=1;/-#pragma disableunsigned char rd24(void) /从 24c16 读一字节数据 ACC=0x00;sda=1;scl=1;a7=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a6=
3、sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a5=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a4=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a3=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a2=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl=1;a1=sda;_nop_();_nop_();_nop_();_nop_();scl=0;scl
4、=1;a0=sda;_nop_();_nop_();_nop_();_nop_();scl=0;sda=1;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0; / /24c16 的一位回答位。return(ACC);/-#pragma disablevoid wd24(unsigned char dd) /向 24c16 写一字节数据 sda=1;ACC=dd;sda=a7;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a6;scl=1;_nop_();_nop_();_nop_();_nop_();scl
5、=0;sda=a5;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a4;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a3;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a2;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a1;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;sda=a0;scl=1;_nop_();_nop_();_nop_();_nop_
6、();scl=0;sda=0;scl=1;/scl=0;(在下面程序中)/-#pragma disableunsigned char read(unsigned int address)unsigned char dd;s24(); /开始条件wd24(0xa0); /写器件地址(写命令)_nop_();_nop_();_nop_();_nop_(); scl=0; /接收器件地址确认信号wd24(address); / 写数据地址_nop_();_nop_();_nop_();_nop_();scl=0;s24(); /开始条件wd24(0xa1); /写器件地址(读命令)scl=0;dd=rd24(); /读 一字节p24(); /停止条件return(dd);/-#pragma disablevoid write(unsigned int address,unsigned char dd)s24(); /开始条件wd24(0xa0); /写器件地址;scl=0; wd24(address); /写数据地址scl=0;wd24(dd); /写 dd 数据scl=0;p24(); /停止条件;