永发信息网

51 向24C02读写数据错误

答案:2  悬赏:0  手机版
解决时间 2021-04-13 01:20
write_byte(0xaf); } // P2=0xfe; scl=0; } if(dat&0x80) sda=1; else sda=0; sbit wp =P1^2;x--) for(y=110;y>0; } _nop_(); sda=1; dat=read_byte(); stop(); return dat; } } / write_byte(dat); stop(); } ********************************* 写单字节 *********************************/ void write_byte(uchar dat) { uchar i; for(i=0;/ while(sda); /i<8;i++) { _nop_(); sda=1; delay_us();********************************* stop信号 *********************************/ void stop(void) { delay_us(); sda=0; } void delay(uint z) { uint x; dat<<=1,temp)#include scl=1; void delay_us(void) { _nop_(); } return dat; delay_us(); scl=1; delay_us(); scl=1; delay_us();0; #include< sbit sda=P1^0; void main(void) { uchar temp=0x05,num; while(1) { write_IIC(5; scl=0;intrins; uchar read_byte(void) { uchar i,dat; for(i=0; write_byte(0xae); scl=0; sda=0; delay_us(); scl=0; scl=1; /_nop_(); dat<<=1;i<8;i++) { delay_us(); } delay_us(); uchar read_IIC(uchar add) { uchar dat; start(),y; delay(50); num=read_IIC(5);y--); } void start(void) { delay_us(); sbit scl=P1^1; for(x=z;x> delay_us(); scl=1; delay_us(); sda=1; delay_us(); void write_IIC(uchar add,uchar dat) { start(); write_byte(0xae); write_byte(add); delay_us(); scl=1; delay_us(); sda=1; write_byte(add); start(); delay_us(); if(sda) dat|=0x01.h> #define uchar unsigned char #define uint unsigned int _nop_();_nop_(); _nop_()
最佳答案
if(cack()==1)
{
iic_write(addr);iic_write(dat);
for(i=0;i SCL=0;NOP();
}


UCHAR cack(void)
{
UINT ACK我给个程序给你 这只是写一字节
#include {
if((dat&0x80)==0x80)
{
SDA=1;
SDA=1;=1;
NOP();
}
SDA=1;
}
return dat;
}
SDA=0;NOP();
}


UCHAR iic_read(void)
{
UCHAR i;


SCL=1;delay5ms();
SCL=1;NOP();
for(i=0;

SCL=0;NOP();
}
*/b>0;b--)
for(a=152;a>
start();iic_write(0xa0);
if(cack()==1)
{
iic_write(addr);8;
}
else
{
ACK=1;
SDA=1;delay5ms();
SCL=0;reg52;stop();
dat=iic_read();NOP();nack();
}
else
{
stop();
TI=0;
}
SCL=1;
dat<,dat;
delay5ms();
if(SDA==1)
{
dat++;NOP();
SCL=1;delay5ms();iic_write(0xa0);
}

/
}
else
{
stop();
}
delay5ms();
}


UCHAR read_24c02(UCHAR addr)
{
UCHAR dat;
sbit SCL=P3^4;*-----------串口调试--------------*/
return dat;
}
NOP();
SCL=1;delay5ms();SCL=0;
SCL=0;NOP();
}

*------向24C02写一字节数据-----*/

#define UCHAR unsigned char
#define UINT unsigned int
#define NOP() {_nop_();_nop_();_nop_();_nop_();}

UCHAR A;*-------AT24C02数据写入----------*/
void write_24c02(UCHAR addr,UCHAR dat)
{
start();i<8;i++)
{
SCL=0;
}

/<
}
else
{
SDA=0;NOP();
TL1=TH1=0xfd;
SDA=0;delay5ms();
TR1=1;
}


SDA=1;NOP();
SCL=1;ACK=0;NOP();
if(SDA==1)
{
NOP();
void iic_write(UCHAR dat)
{
UCHAR i;NOP();a--);
}


void start(void)
{
SDA=1;NOP();
sbit SDA=P3^5;
}


void IO_INT(void)
{
SCON=0x40;
TMOD=0x20;
PCON=0x00;
SCL=1;delay5ms();
}

/.h>
#include
全部回答
  • 1楼网友:北方的南先生
  • 2021-04-12 23:29
我给个程序给你 这只是写一字节 #include #include #define uchar unsigned char #define uint unsigned int #define nop() {_nop_();_nop_();_nop_();_nop_();} uchar a; sbit scl=p3^4; sbit sda=p3^5; void delay5ms(void) { uchar a,b; for(b=15;b>0;b--) for(a=152;a>0;a--); } void start(void) { sda=1;nop(); scl=1;delay5ms(); sda=0;delay5ms(); scl=0;nop(); } void stop(void) { sda=0;nop(); scl=1;delay5ms(); sda=1;delay5ms(); } delay5ms(); } else { stop(); void start(void) { sda=1; } delay5ms()我给个程序给你 这只是写一字节 #include nop();nop(); scl=1;*-----------非应答信号--------*/ ti=0;nop(); } /=1;8; } else { sda=0;nop();*------向24c02写一字节数据-----*nop(); /nop(); #include scl=1;reg52; void io_int(void) { scon=0x40;delay5ms(); scl=1,0x55); } / tl1=th1=0xfd;i if(sda==1) { dat++;_nop_();0;i for(b=15;_nop_(); if(cack()==1) { iic_write(addr); #define uchar unsigned char #define uint unsigned int #define nop() {_nop_(); while(1);a>delay5ms();stop();nop();nop();delay5ms();nop(); } / uchar cack(void) { uint ack; start(); dat scl=0; } _nop_(); } */ scl=0;stop(); scl=1; sda=1;intrins.h> void write_24c02(uchar addr; scl=0; scl=0; void nack(void) { sda=1;nop();} uchar a;*-------at24c02数据写入----------*/nop(); } sda=1;*-----------终止信号-----------*/b--) for(a=152; } scl=1; } /nop(); sda=1;delay5ms(),dat; } / for(i=0; } else { stop();*--------从24c02读一字节数据-----*/ } sda=0;a--); tr1=1; sbit sda=p3^5; sbuf=read_24c02(0xa1); } else { ack=1;nop();delay5ms(); void delay5ms(void) { uchar a; void main(void) { io_int();nop(); sda=1; scl=1; dat=iic_read();delay5ms(); sda=0; sbit scl=p3^4;nop(); } / void iic_write(uchar dat) { uchar i; iic_write(dat);*---------at24c02数据读出---------*/,uchar dat) { start(); scl=1; cack(); pcon=0x00; if(cack()==1) { iic_write(addr); / scl=1;*-----------串口调试--------------*/ uchar iic_read(void) { uchar i; uchar read_24c02(uchar addr) { uchar dat;*----------启动iic--------------*/
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯