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

📄 is62lv1024test.c

📁 有价值的电子书
💻 C
字号:
/***************************************************************
功能:实现外部存储器IS62LV1024的数据读写操作,采用非复用地址方式,
	 128K分块操作(BANK0:0-64K,BANK1:64-128K)
作者:ZDP
时间:2005-11-30
版本:V1.0
***************************************************************/
#include <c8051f020.h>              // SFR declarations
#include <intrins.h>

#define SYSCLK       22118400       // SYSCLK frequency in Hz
#define CEON		P4|=0x1;		// 片选允许
#define CEOFF		P4&=~0x1;		// 片选禁止
#define BANK1		P4|=0x2;		// 选择BANK1:64-128K
#define BANK0		P4&=~0x2;		// 选择BANK0:0-64K
void SYSCLK_Init (void);
void PORT_Init(void);

void main (void) {

	unsigned int i;
	unsigned char j;
   	unsigned char xdata  *Point1;

   	WDTCN = 0xde;			
   	WDTCN = 0xad;			//关闭WDT

   	PORT_Init();
   	SYSCLK_Init ();			

	CEON;					//片选使能
	BANK0;					// 选择BANK0:0-64K
   	Point1=0x0000;
							//从0X0000-0XFFFF写数据
   	for(i=0;i<0xFFFE;i++)
   	{
     	j=i%0x100;
	 	*Point1=j;			//写数据至外部RAM
		if(j!=*Point1)		//读外部RAM数据与刚写入数据比较
		{
			while(1);		//读出数据出错
		}
	 	Point1++;
	 }
	_nop_();
	CEON;					//片选使能
	BANK1;					// 选择BANK1:64K-128K
   	Point1=0x0000;
							//从0X0000-0XFFFF写数据
   	for(i=0;i<0xFFFE;i++)
   	{
     	j=i%0x100;
	 	*Point1=j;			//写数据至外部RAM
		if(j!=*Point1)		//读外部RAM数据与刚写入数据比较
		{
			while(1);		//读出数据出错
		}
	 	Point1++;
	 }
	_nop_();
  	while (1);
}
//-----------------------------------------------------------------------------
// 系统时钟配置
//-----------------------------------------------------------------------------
void SYSCLK_Init (void)
{
   int i;                              // delay counter

   OSCXCN = 0x76;                      // start external oscillator with
                                       // 22.1184MHz crystal

   for (i=0; i < 256; i++) ;           // XTLVLD blanking interval (>1ms)

   while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle

   OSCICN = 0x88;                      // select external oscillator as SYSCLK
				                       // source and enable missing clock
                                       // detector
}
//-----------------------------------------------------------------------------
// I/O配置
//-----------------------------------------------------------------------------
void PORT_Init()
{
   XBR2    = 0x40;                     // 交叉开关使能
   EMI0TC  = 0x75;                     //地址建立和保持时间为1SYSCLK,WR、RD保持时间为14SYSCLK
//   EMI0CF  =0x37;           		   //EMIF端口接到P4-P7,选择非复用方式,工作模式为不带块选择(低于4K在内部,高于4K在外部)。
   EMI0CF  =0x3f;           		   //EMIF端口接到P4-P7,选择非复用方式,工作模式为全外部RAM。
   P74OUT  = 0x3f;					   //P7为开漏输出,P6、5、P4的高4位为推挽输出

}


⌨️ 快捷键说明

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