No.29368 作者:dingyuqi 邮件:dingyuqi@163.com ID:10786 登陆:16次 文章数:13篇 最后登陆IP:210.31.6.145 最后登陆:2003/5/14 3:46:14 注册:2003/4/1 23:21:37 财富:139 发帖时间:2003/5/9 23:09:43 发贴者IP:210.31.6.145 标题:dingyuqi:[求助]请教一个24c01读写问题 摘要:No.29368[求助]请教一个24c01读写问题 做毕业设计使用到读写24c01,编了一个读写程序,编译执行起来没问题,就是有一个毛病,怎么该也改不了,请大家帮忙看看,是哪儿出毛病了。谢谢!!! 我是按{1,2,3,4}的顺序写的,但是我执行后最后读出来的是:{4,1,2,3} 不明白为什么会这样,请高手指教 源程序如下: #include <reg51.h> sbit SCL=P0^6; sbit SDA=P0^7; #define WriteDeviceAddress 0xa0 #define ReadDviceAddress 0xa1 void Write24c02(unsigned char*,unsigned char,unsigned char); void Read24c02(unsigned char*,unsigned char,unsigned char); void DelayMs(unsigned char); void NoAck(); main() { unsigned char data_buffer[8]={1,2,3,4,5,6,7,8}; unsigned char data_receive[8]={0,0,0,0,0,0,0,0}; unsigned char i,j; unsigned char *ptr; ptr=data_buffer; Write24c02(ptr,10,4); ptr=data_receive; Read24c02(ptr,10,4); } /***************************************************************************/ void Start() { SDA=1; SCL=1; SDA=0; SCL=0; } /***************************************************************************/ void Stop() { SCL=0; SDA=0; SCL=1; SDA=1; } /***************************************************************************/ void Ack() { SDA=0; SCL=1; SCL=0; SDA=1; } /***************************************************************************/ void NoAck() { SDA=1; SCL=1; SCL=0; } /***************************************************************************/ bit TestAck() { bit ErrorBit; SDA=1; SCL=1; ErrorBit=SDA; SCL=0; return(ErrorBit); } /*********************************** ......
>>返回讨论的主题
|