欢迎来到天天文库
浏览记录
ID:37921703
大小:41.17 KB
页数:4页
时间:2019-06-02
《IIC总线通信模拟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机模拟IIC总线通信原理/**********************************************************/用单片机模拟IIC总线,在24C02C中存入0x00~0xff的数据。然后再从24C02C中,把刚才写入的数据依次读取出来,并用P1口的LED灯把读出的数据显示出来。/**********************************************************/#include#defineucharunsignedchar#defineuintunsignedi
2、ntsbitsda=P1^1;sbitscl=P1^0;voiddelay(){;;}voiddelay1(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidstart(){sda=1;scl=1;delay();sda=0;delay();scl=0;}voidstop(){sda=0;scl=1;delay();sda=1;delay();scl=0;}voidack(){uchari=0;scl=1;while((sda==1)&&(i<250))i++;scl=0;delay();}
3、voidinit(){sda=1;scl=1;}voidwrite_byte(uchardate){uchari,temp;temp=date;scl=0;delay();for(i=0;i<8;i++){temp=temp<<1;sda=CY;delay();scl=1;delay();scl=0;delay();}sda=1;}ucharread_byte(){uchari,j;scl=0;delay();sda=1;delay();for(i=0;i<8;i++){scl=1;delay();j=(j<<1)
4、sda;scl=0;delay()
5、;}returnj;}voidwrite_addr(ucharaddr,uchardate){start();write_byte(0xa0);ack();write_byte(addr);ack();write_byte(date);ack();stop();}ucharread_addr(ucharaddr){uchardate;start();write_byte(0xa0);ack();write_byte(addr);ack();start();write_byte(0xa1);ack();date=read_byte();stop();r
6、eturndate;}voidmain(){uinti;P3=0x00;for(i=0;i<=0xff;i++){write_addr(i,i);delay1(10);}delay1(100);for(i=0;i<=0xff;i++){P3=read_addr(i);delay1(100);}while(1);}
此文档下载收益归作者所有