完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
自己刚学i2c,用24c02c存储一个8位数据,然后读出来,灯亮表示正确读出数据,但就是灯不亮,里面有一些修改痕迹,求大神指出错误,指导一下
#include "config.h" #define LED1CON 0x00000400 #define SDA 1<<3 #define SCL 1<<2 void DelayNS(unsigned char dly)//US延时 { while(--dly) {} } void init() { IO0SET=SDA; DelayNS(5); IO0SET=SCL; DelayNS(5); IO0CLR=SDA; } void start(void) { IO0SET = SDA; DelayNS(1); IO0SET = SCL; DelayNS(5); IO0CLR=SDA; DelayNS(5); IO0CLR = SCL; DelayNS(2); } /* void Ask(bit temp) { IO0SET=SDA; IO0SET=SCL; DelayNS(4); IO0CLR=SCL; } */ void stop(void) { IO0CLR=SDA; IO0SET=SCL; DelayNS(5); IO0SET=SDA; DelayNS(5); // IO0CLR=SDA; // IO0CLR=SCL; } void Write(unsigned char i) { unsigned char j; for(j=0;j<8;j++) { if(i&0x80) {IO0SET=SDA;} else {IO0CLR=SDA;} DelayNS(1); IO0SET=SCL; i=i<<1; DelayNS(1); IO0CLR=SCL; DelayNS(1); } IO0CLR=SDA; DelayNS(2); IO0SET=SCL; DelayNS(3); IO0CLR=SCL; DelayNS(1); } unsigned char Read() { unsigned char k,t=0; for(k=0;k<8;k++) { t=t<<1; IO0SET=SDA; IO0SET=SCL; DelayNS(5); if(SDA==1) t=t|0x01; else t=t&0xfe; IO0CLR=SCL; DelayNS(5); } IO0CLR=SDA; return t; } /*发送完一个字节后检验设备的应答信号**************** int Check(void) { int F0; IO0SET=SDA; IO0SET=SCL; DelayNS(1); F0=SDA; DelayNS(1); IO0CLR=SCL; DelayNS(1); if(F0==1) return FALSE; else return TRUE; } ****************************/ /*向24c02写?入数据*/ void WriteTo2402( unsigned char DataAdd ,unsigned char Data) { start(); Write(0xa0); // while(!Check()); //Ask(); Write(DataAdd); // while(!Check()); //Ask(); Write(Data); // while(!Check()); // Ask(); stop(); } unsigned char ReadTo2402( unsigned char DataAdd) { unsigned char buf; start(); Write(0xa0); //while(!Check()); //Ask(); Write(DataAdd); // while(!Check()); //Ask(); start(); Write(0xa1); // while(!Check()); //Ask(); buf=Read(); //while(Ask()); stop(); return(buf); } int main(void) { unsigned char y; IO0DIR=SCL|SDA|LED1CON; init(); WriteTo2402(0xff,0XAA); y=ReadTo2402(0xff); if(y==0Xaa) { IO0CLR=LED1CON; } else { IO0SET=LED1CON; } }
|
|
相关推荐
1个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4607 浏览 3 评论
5890 浏览 1 评论
6164 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
7901 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1226 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:17 , Processed in 0.584766 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号