📄 24c16.c
字号:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit SCL=P1^1;
sbit SDA=P1^2;
void dly (unsigned char CNT)
{unsigned char i;
while (CNT--!=0)
for (i=100;i!=0;i--);
}
void wait(void)
{
unsigned char i=50;
for(i=0;i<8;i++);
}
void start_bit(void)
{
SCL=1;wait();
SDA=0;wait();
SCL=0;wait();
}
void stop_bit(void)
{
SDA=0;wait();
SCL=1;wait();
SDA=1;wait();
SCL=0;wait();
}
void write_8bit(uchar ch)
{
uchar i=8;
for(i=0;i<8;i++)
{if(ch & 0x80)
SDA=1;
else
SDA=0;
ch=(ch<<1);
SCL = 1;
wait();
SCL=0;
wait();
}
SDA=1;
wait();
SCL = 1 ;
wait();
SCL=0;
wait();
}
uchar rd8bit()
{uchar i=8,j;
for(i=0;i<8;i++)
{
j<<=1;
SCL=1;wait();
if(SDA)
j |= 1;
SCL=0;
wait();
}
SDA=1;
wait();
return(j);
}
void write24c16(uint address,uchar ddata)
{
start_bit();
write_8bit(0xA0);
write_8bit(address);
write_8bit(ddata);
stop_bit();
}
uchar read24c16(uint address)
{
uchar rdata;
start_bit();
write_8bit(0xA0);
write_8bit(address);
start_bit();
write_8bit(0xA1);
rdata=rd8bit();
stop_bit();
return(rdata);
}
//----------------------------------
void main(void)
{
uchar i,ad1=10,dt1=78;
P1=0xff;
write24c16(ad1,dt1);
dly(100);
i=read24c16(ad1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -