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

📄 at45db041b.c

📁 编程环境:keilC51 AT45DB041B为常用很不错的EEPROM芯片 本源码已经经过05年的调试,运行正常
💻 C
字号:
/*************************************************************************************
* 编程人员:徐松亮 qq:5387603          email:5387603@qq.com
*************************************************************************************/
/*     AT45DB041B:
                 2.5--3.6V;SCK可达20MHz
                 2048页  264B/页  8页/块;
                 2个264B缓冲;
                 支持页,块擦除;
*/
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

//-----------------------------------读命令;
#define continuous_array_read_0 0x68
#define continuous_array_read_3 0xe8
#define main_memory_page_read_0 0x52
#define main_memory_page_read_3 0xd2
#define buffer1_read_0 0x54
#define buffer1_read_3 0xd4 
#define buffer2_read_0 0x56
#define buffer2_read_3 0xd6
#define status_register_read_0 0x57
#define status_register_read_3 0xd7
//------------------------------------写和檫命令
#define buffer1_write 0x84
#define buffer2_write 0x87
#define B1_to_main_page_program_erase 0x83
#define B2_to_main_page_program_erase 0x86
#define B1_to_main_page_program_without_erase 0x88
#define B2_to_main_page_program_without_erase 0x89
#define paga_erase 0x81
#define block_erase 0x50 
#define main_page_program_through_B1 0x82
#define main_page_program_through_B2 0x85
//------------------------------------其他命令
#define mian_to_B1_transfer 0x53
#define mian_to_B2_transfer 0x55
#define main_paga_to_buffer1_compare 0x60
#define main_paga_to_buffer2_compare 0x61
#define auto_page_rewrite_through_B1 0x58
#define auto_page_rewrite_through_B2 0x59

sbit AT45db041B_SI=P2^4;
sbit AT45db041B_SCK=P2^5; 
//sbit AT45db041B_nRESET=P0^0; 
sbit AT45db041B_nCS=P2^7; 
//sbit AT45db041B_nWP=P0^0; 
sbit AT45db041B_SO=P2^6;

delay(uint i)
{while(--i);}

void CSH(void)
{
  AT45db041B_SO=1;
  AT45db041B_nCS=1;
  AT45db041B_SCK=0;
  AT45db041B_nCS=0;
  delay(1);
}
void AT45041B_BYTE_WRITE(uchar d)
{
	uchar i=0,j=8;
	while(j--)
	     {
	     	 AT45db041B_SI=d&0x80;
	     	 d<<=1;
	     	 AT45db041B_SCK=1;delay(1);
	     	 AT45db041B_SCK=0;delay(1);
	     }
	 //AT45db041B_nCS=1;
	 delay(1);	 
}
uchar AT45041B_BYTE_READ ()
{
  uchar i=0,j=8;
 // AT45db041B_SCK=1;delay(1);
 // AT45db041B_SCK=0;delay(1);
  while(j--)
       {
       	i<<=1;
       	if(AT45db041B_SO)i=i|0x01;
       	AT45db041B_SCK=1;delay(1);
	    AT45db041B_SCK=0;delay(1);       	
       } 
  //AT45db041B_nCS=1;
  return(i);
  delay(1); 	
}

void main(void)
{
	CSH();
	AT45041B_BYTE_WRITE(buffer1_write);
		AT45041B_BYTE_WRITE(0x00);		//xxxx xxxx
	    AT45041B_BYTE_WRITE(0x00);		//xxxx xxxb
	    AT45041B_BYTE_WRITE(0x01);		//bbbb bbbb
	      AT45041B_BYTE_WRITE(0xfe);	//数据。。。
	      AT45041B_BYTE_WRITE(0xfc);
	      AT45041B_BYTE_WRITE(0xf8);
		  AT45041B_BYTE_WRITE(0xf0);
	AT45db041B_nCS=1;delay(10);
	
//	CSH();
//	AT45041B_BYTE_WRITE(status_register_read_0);
//	AT45db041B_SCK=1;delay(1);
//	AT45db041B_SCK=0;delay(1);
//	P0=AT45041B_BYTE_READ ();
while(1)
	{
	CSH();
	AT45041B_BYTE_WRITE(buffer1_read_0);
	  AT45041B_BYTE_WRITE(0x00);	   //xxxx xxxx
	  AT45041B_BYTE_WRITE(0x00);	   //xxxx xxxb
	  AT45041B_BYTE_WRITE(0x01);	   //bbbb bbbb
	  AT45041B_BYTE_WRITE(0x00);	   //xxxx xxxx
	    AT45db041B_SCK=1;delay(1);  AT45db041B_SCK=0;delay(1);
		P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
	    P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
	    P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
		P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
	AT45db041B_nCS=1;delay(10);
	}
//	while(1);

}

⌨️ 快捷键说明

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