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

📄 24c04.c

📁 单片机通过一定的时序
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char

sbit scl=P3^0;
sbit sda=P3^1;

void delay()
{
	;;;
}
void delay1(uchar x)
{
	int k;
	for(k=250;k>0;k--)
		for(;x>0;x--);
}

void start()
{
	sda=1;
	scl=1;
	delay();
	sda=0;
	delay();
}

void stop()
{
	sda=0;
	scl=1;
	delay();
	sda=1;
	delay();
}

void init()
{
	scl=1;
	sda=1;
	delay();
}

void respond()
{
	uchar i;
	scl=1;
	delay();
	while((sda==1)&&(i<250))
	i++;
	scl=0;
	delay();
	sda=1;//
}

void write_byte(uchar date)
{
	uchar i,temp;
	temp=date;
	for(i=0;i<8;i++)
	{
		scl=0;
		delay();
		temp=temp<<1;
		sda=CY;
		delay();
		scl=1;
		delay();
	}
	scl=0;
	delay();
//	sda=1;
	delay();
}

uchar read_byte()
{
	uchar i,j,k;
//	scl=0;
//	delay();
//	sda=1;
	delay();
	for(i=0;i<8;i++)
	{
		scl=1;
		delay();
		j=sda;
		k=(k<<1)|j;
		scl=0;
		delay();
	}
	return k;

}

void write_date(uchar address,uchar date)
{
	start();
	write_byte(0xa0);
	respond();
	write_byte(address);
	respond();
	write_byte(date);
	respond();
	stop();
}

uchar read_date(uchar address)
{
	uchar k;
	start();
	write_byte(0xa0);
	respond();
	write_byte(address);
	respond();
	start();
	write_byte(0xa1);
	respond();
	k=read_byte();
	stop();
	return k;
}

void main()
{
	init();
	write_date(3,0x99);
	delay1(100);
	P0=read_date(3);
	while(1);
}

⌨️ 快捷键说明

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