⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24c02.c

📁 24c02 代码
💻 C
字号:
//送出去,返回来。点亮灯。

#include<reg51.h>
#define uchar unsigned char
sbit sda=P1^1;
sbit scl=P1^0;
uchar k;
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();
	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) ;   //把sda中的数据放最低位中去,循环8次
	  scl=0;
	  delay();
	}
	return k;
 }

/* void write_add(uchar address,uchar date)  //写入指定地址
 {
 	start();
    write_byte(0xa0);
	respons();
	write_byte(address);
	respons();

	//start();
    write_byte(date);  //读器件地址
    respons();
	stop();
 }*/
/* uchar read_add(uchar address)
{    uchar date;
 	start();
    write_byte(0xa0);
	respons();
	write_byte(address);
	respons();
    write_byte(0xa1);  //读器件地址
    respons();
	date=read_byte();
	stop();
	return date;
 }*/
 void delay1(uchar x)
{
	uchar a,b;
	for(a=x;a>0;a--)
	 for(b=100;b>0;b--);
}



  void main()
  {
    init();
	start();
    write_byte(0xa0);
	respons();
	write_byte(3); //读器件地址
	respons();
    write_byte(0xf0);
    respons();
	stop();

   // write_add(23,0x00);
	delay1(100);

	start();
    write_byte(0xa0);
	respons();
	write_byte(3);
	respons();
    start();
    write_byte(0xa1);  //读器件地址
    respons();
	P3=read_byte();
	stop();



	while(1);

  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -