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

📄 14.c

📁 刚学时编的小程序
💻 C
字号:
#include<AT89X51.H>
#include<intrins.h>

#define uchar unsigned char
#define uint unsigned int 
#define addwr 0xa0
#define addrd 0xa1

sbit sda=P3^7;
sbit scl=P3^6;
sbit wp=P3^5;

void mdelay(uchar j)
{
	uint i;
	for(;j>0;j--)
	{
		for(i=0;i<125;i--)
		{;}
	}
}

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

void stop(void)
{
	sda=0;
	scl=1;
	_nop_();_nop_();_nop_();_nop_();
	sda=1;
	_nop_();_nop_();_nop_();_nop_();

}

void ack(void)
{
	sda=0;
	_nop_();_nop_();_nop_();_nop_();
	scl=1;
	_nop_();_nop_();_nop_();_nop_();
	scl=0;
}

void noack(void)
{
	sda=1;
	_nop_();_nop_();_nop_();_nop_();
	scl=1;
	_nop_();_nop_();_nop_();_nop_();
	scl=0;
}

void send(uchar Data)
{
	uchar bitcounter=8;
	uchar temp;
	do
	{
		temp=Data;
		scl=0;
		_nop_();_nop_();_nop_();_nop_();
		if((temp&0x80)==0x80)
		sda=1;
		else
		sda=0;
		scl=1;
		temp=Data<<1;
		Data=temp;
		bitcounter--;
	}while(bitcounter);
	scl=0;
}

uchar read(void)
{
	uchar temp=0;
	uchar temp1=0;
	uchar bitcounter=8;
	sda=1;
	do
	{
		scl=0;
		_nop_();_nop_();_nop_();_nop_();
		scl=1;
		_nop_();_nop_();_nop_();_nop_();
		if(sda)
		temp=temp|0x01;
		else
		temp=temp&0xfe;
		if(bitcounter-1)
		{
			temp1=temp<<1;
			temp=temp1;
		}
		bitcounter--;
	}while(bitcounter);
	return(temp);
}

void wrtorom(uchar Data[],uchar address,uchar num)
{
	uchar i;
	uchar *pData;
	pData=Data;
	for(i=0;i<num;i++)
	{
		start();
		send(0xa0);
		ack();
		send(address+i);
		ack();
		send(*(pData+i));
		ack();
		stop();
		mdelay(20);
	}
}

void rdfromrom(uchar Data[],uchar address,uchar num)
{
	uchar i;
	uchar *pData;
	pData=Data;
	for(i=0;i<num;i++)
	{
		start();
		send(0xa0);
		ack();
		send(address+i);
		ack();
		start();
		send(0xa1);
		ack();
		*(pData+i)=read();
		scl=0;
		noack();
		stop();
	}
}

void main()
{
	uchar number[4]={1,2,3,4};
	wp=1;
	wrtorom(number,4,4);
	mdelay(20);
	number[0]=0;
	number[1]=0;
	number[2]=0;
	number[3]=0;
	rdfromrom(number,4,4)	;
}






































































⌨️ 快捷键说明

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