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

📄 test.c

📁 单片机89s52与E2pro通信源码数据保存10年
💻 C
字号:
#include <reg52.h>
#define uchar unsigned char
sbit sda=P3^7;
sbit scl=P3^6;
void delay()
{ ; ;}
void init()
{
	sda=1;
	scl=1;
}
void start()
{
	sda=1;
	delay();
	scl=1;
	delay();
	sda=0;
	delay();
}
void stop()
{
	sda=0;
	delay();	
	scl=1;
	delay();	
	sda=1;
	delay();	
}
void write_byte(uchar x)
{
	uchar i,temp;
	temp=x;
	for(i=0;i<8;i++)
	{
		temp=temp<<1;
		scl=0;
		delay();
		sda=CY;
		delay();
		scl=1;
		delay();
	}
	scl=0;
	delay();
	sda=1;
	delay();
	scl=1;
	delay();
	while((sda==1)&&(i<250))i++;//当两个为真才为真
	scl=0;
	delay();
}
void delay1(uchar x)
{
	uchar a,b;
	for(a=x;a>0;a--)
	 for(b=100;b>0;b--);
}
uchar read_byte(uchar address)
{
	uchar i,k;
	write_byte(0xa0);
	write_byte(address);
	start();
	write_byte(0xa1);
	sda=1;
	delay();
	for(i=0;i<8;i++)
	{
		scl=1;
		delay();	
		k=(k<<1)|sda;
		scl=0;
		delay();
	}
	return k;
}
void main()
{
	init();
	P1=0;
	start();
	write_byte(0xa0);
	write_byte(3);
	write_byte(0x01);
	stop();
	delay1(100);
	start();
	P0=read_byte(3);
	while(1);
}

⌨️ 快捷键说明

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