单片机模拟IIC总线与EEPROM进行数据通信

来源:本站
导读:目前正在解读《单片机模拟IIC总线与EEPROM进行数据通信》的相关信息,《单片机模拟IIC总线与EEPROM进行数据通信》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机模拟IIC总线与EEPROM进行数据通信》的详细说明。
简介:本文给大家分享了一个单片机模拟IIC总线与EEPROM进行数据通信代码。

#include#define uchar unsigned charsbit sda=P2^0;sbit scl=P2^1;uchar a;void delay(){ ;; }void start()  //开始信号{  sda=1; delay(); scl=1; delay(); sda=0; delay();}void stop()   //停止{ sda=0; delay(); scl=1; delay(); sda=1; delay();}void respons()  //应答{ uchar i; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay();}void init(){ sda=1; delay(); scl=1; delay();}void write_byte(uchar date){ uchar i,temp; temp=date; for(i=0;i<8;i++) {  temp=temp<<1;  scl=0;     delay();  sda=CY;  delay();  scl=1;  delay(); // scl=0;     //   delay(); } scl=0; delay(); sda=1; delay();}uchar read_byte(){ uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) {  scl=1;  delay();   k=(k<<1)|sda;  scl=0;  delay();  } return k;}void delay1(uchar x){ uchar a,b; for(a=x;a>0;a--)  for(b=100;b>0;b--);}void write_add(uchar address,uchar date){ start(); write_byte(0xa0); respons(); write_byte(address); respons(); write_byte(date); respons(); stop();}uchar read_add(uchar address){ uchar date; start(); write_byte(0xa0); respons(); write_byte(address); respons(); start(); write_byte(0xa1); respons(); date=read_byte(); stop(); return date;}void main(){ init(); write_add(23,0xaa); delay1(100); P1=read_add(23); while(1);}

提醒:《单片机模拟IIC总线与EEPROM进行数据通信》最后刷新时间 2024-03-14 01:01:28,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机模拟IIC总线与EEPROM进行数据通信》该内容的真实性请自行鉴别。