哪位大神帮我看一下程序
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit scl=P0^0;
sbit sda=P0^1;
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=200;b>0;b--);
}
void start()
{
sda=1;
delay(6);
scl=1;
delay(6);
sda=0;
delay(6);
}
void stop()
{
sda=0;
delay(6);
scl=1;
delay(6);
sda=1;
delay(6);
}
void ack()
{
uchar i;
scl=1;
delay(6);
while((sda==1)&(i<250))i++;
delay(6);
scl=0;
delay(6);
}
void write_i2c_byte(uchar date)
{
uchar temp,u;
temp=date;
for(u=0;u<8;u++)
{
temp=temp<<1;
scl=0;
delay(6);
sda=CY;
delay(6);
scl=1;
delay(6);
}
scl=0;
delay(6);
sda=1;
delay(6);
}
void writer_PCF8574()
{
start();
write_i2c_byte(0x4e);
ack();
write_i2c_byte(0x00);
ack();
stop();
}
void main()
{
sda=1;
delay(6);
scl=1;
delay(6);
writer_PCF8574();
while(1);
}
|