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

📄 memext.c

📁 51单片机扩展64K以上数据存储区的源码。 已经过测试
💻 C
字号:
#include <reg52.h>
#include <absacc.h>
#include "memext.h"

sbit MEM_CE = P1^4;

#define TEST_BASE              0x00


void delay(unsigned int n)
{
   unsigned int i;
   for(i = 0;i<n;i++);
}

uchar Read_Byte(uint address,uchar page)
{
   uchar c; 
        //////num always < 8
   page &= MAX_PAGE_MASK;           /////pages always less than 16
   
   EA = 0;                             ////disable the interrupt

   c = P1 &	MEM_P1_HIGH;
   P1 = c | (page & MEM_P1_LOW); 
     
   MEM_CE = 0;
   //delay(100);
   c  =  XBYTE[address];
   //delay(100);
   MEM_CE = 1; 
	
   P1 &= MEM_P1_HIGH;
   EA = 1  ;
   return c;

}

void page_input(uint address,uchar page,uchar num,uchar *pXfer_Buf)
{
   uchar c,c1; 
   num &= MAX_NUM_MASK;        //////num always < 8
   page &= MAX_PAGE_MASK;           /////pages always less than 16
   
   EA = 0;                             ////disable the interrupt
 ////  P1 = page;
   	////only change the 4LSB of P1
  /// MEM_CE = 0;
   c = P1 &	MEM_P1_HIGH;
   P1 = c | (page & MEM_P1_LOW); 
   
  
   for(c1 = 0;c1 < num; c1++)
   {
    MEM_CE = 0;
	  pXfer_Buf[c1] =  XBYTE[address+c1];
	   MEM_CE = 1; 
	 // delay(300);
   }
  
///   MEM_CE = 1; 	
   P1 &= MEM_P1_HIGH;
   EA = 1  ;

}

void main(void)
{
	char c1,c3;
	//char c2[1];
	uint i,j;

	TMOD = 0x20;
	TH1 =0xfd;
	SCON = 0x50;
	TR1 = 1;

	while(1)
	{
	for(j=0;j<6;j++)
	{
	   for(i = 0; i<0xff;i++)
	  {
	   ///   page_input(TEST_BASE + i,j,1,c2);
           c3 = Read_Byte(TEST_BASE+i,j);
	       delay(10000);
	      // P1 = ~c1;
		   c1 = TEST_BASE+i;
		  SBUF = c1;
		  while(TI == 0);TI = 0;

	////  SBUF = c2[0];
          SBUF = c3;
		  while(TI == 0);
		  TI = 0;

	   }
	  /// while(1);
	  SBUF = 0xff;
	  while(TI == 0);TI = 0; 	  SBUF = 0xff;
	  while(TI == 0);TI = 0;		  SBUF = 0xff;
	  while(TI == 0);TI = 0;		  SBUF = 0xff;
	  while(TI == 0);TI = 0;	  SBUF = 0xff;
	  while(TI == 0);TI = 0;
        
	  delay(65535); delay(65535); delay(65535);
	  /// P1 = ~c1; delay(65535); delay(65535);
	} ///delay(65535); delay(65535);delay(65535); delay(65535);delay(65535); delay(65535);


	   
	}
}

⌨️ 快捷键说明

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