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

📄 93c66de51chengdu.c

📁 用51单片机对93C66进行读写操作,简单使用的代码哦!
💻 C
字号:
#include<reg51.h>

#define uchar unsigned char

#define HIGH 1				/*定义高电平*/
#define LOW 0				/*定义低电平*/
#define READ_D 0X0C			/*读指令*/
#define WRITE_D 0X0a   			/*写指令*/
#define ERASE_D 0X0e			/*擦除指令*/
#define EN_D 0X09			/*擦写允许指令*/
#define EN_DR 0X80 

sbit cs=0x90;				/*cs接p1.0*/
sbit sk=0x91;				/*sk接p1.1*/
sbit din=0x92;				/*din接p1.2*/
sbit dot=0x93;				/*dot接p1.3*/

/**********延时函数**************/
void delay(uchar n)
{	
	uchar i;
	for(i=0;i<n;i++);
}

/**********时钟函数**************/
void clock(void)
{	
	sk=LOW;
	delay(1);
	sk=HIGH;
	delay(1);
}

/**********输入一个字节的数据到93C66**************/
void send(uchar l_data)
{	
	uchar i;
	for(i=0;i<8;i++)
	{
		din=(bit)(l_data&0x80);
		l_data << 1;
		clock();
	}
}

/**********从AT93C66接受一个字节的数据**************/
uchar recept(void)
{	
	uchar l_data=0;
	uchar j;
	clock();
	for(j=0;j<8;j++)
	{
		l_data*=2;
		if(dot)l_data++;
		clock();
		delay(2);
	 }
	 return(l_data);
}
/**********从93C66指定地址中读取数据**************/
uchar read(uchar address)
{	
	uchar data_1;
	cs=1;
	send(READ_D);		/*发送读指令*/
	send(address);		/*送地址*/
	data_1=recept();	/*接受数据*/
	cs=0;
	return(data_1);
}

/**********擦写允许操作**************/
void enable(void)
{	
	cs=1;
	send(EN_D);
	send(EN_DR);
	cs=0;
}

/**********擦除93c66中指定地址中的数据**************/
void erase(uchar address)
{	
	dot=1;
	cs=1;
	send(ERASE_D);		/*送擦除指令*/
	send(address);
	cs=0;
	delay(4);
	cs=1;
	while(!dot);		/*等待擦除完毕*/
	cs=0;
}

/**********将一个数据写入93C66指定的地址中**************/
void write(uchar data_2,uchar address)
{	
	enable();			/*擦写允许*/
	erase(address);		/*擦除数据*/
	cs=1;
	send(WRITE_D);		/*送写指令*/
	send(address);
	send(data_2);		/*送数据*/
	cs=0;
	delay(4);
	cs=1;
	delay(4);
	while(!dot);		/*等待写完*/
	cs=0;
}

void main(void)
{
 char temp;
	cs=1;
	din=1;
	delay(10);

 do{
	write(0x5,0x00);
	 temp=read(0x00);
	 if(temp!=5)
	  break;
	write(0x4,0x01);
	write(0x0,0x02);
	write(0x6,0x03);

	write(0x1,0x04);
	write(0x0,0x05);
	write(0xb,0x06);
	write(0x5,0x07);

	write(0x0,0x08);
	write(0x6,0x09);
	write(0x8,0x0a);
	write(0x0,0x0b);
}while(1);




	
}



⌨️ 快捷键说明

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