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

📄 xram.c

📁 c8051F020 ADC0 用PCA完成16位的PWM 29F040 定时器的设置 外部静态存储器
💻 C
字号:
//------------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------------
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>

//------------------------------------------------------------------------------------
// Global CONSTANTS
//------------------------------------------------------------------------------------

sbit BUZ = P3^5;

unsigned char xdata *point;
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORT_Init (void);

/***************************************************************************************
函数名称:	void sleep_ms(WORD count)
功能描述:	延时
输入:		WORD count(所要延时的长度)
输出:		无
全局变量:	无
调用模块:	_nop_()
***************************************************************************************/
void sleep_ms(unsigned char count)
{
  unsigned char ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();			
    }	
}

//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void) {
	unsigned char k,WrData,RdData;
   	/*无效看门狗*/
   	WDTCN = 0xde;
   	WDTCN = 0xad;
	
	PORT_Init();			/*初始化端口*/
   	P6=0x00;
   	P5=0x00;
	WrData=0x01;			/*待写数据变量*/
    point=0x0000;			/*地址指针*/
	for(k=0;k<0x10;k++)		/*写十个数据*/
    {
		*point=WrData;		/*写数据到RAM*/
		point++;
	  	WrData++;
	}
	WrData=0x01;
	point=0x0000;
   	for(k=0;k<0x10;k++)		/*读出比较*/
    {
		RdData=*point;		/*读数据*/
	  	if(RdData!=WrData){	/*是否出错*/
			BUZ = 0;		/*蜂鸣器响*/
			sleep_ms(250);
			BUZ = 1;		/*蜂鸣器灭*/
		}
		_nop_();
	    WrData++;
		point++;
		_nop_();
	}
	_nop_();
}

/***************************************************************************************
函数名称:	void PORT_Init(void)
功能描述:	初始化I/O
输入:		无
输出:		无
全局变量:	XBR2,P74OUT,EMI0CF,EMI0TC,P3MDOUT
调用模块:
***************************************************************************************/
void PORT_Init (void)
{
   XBR2    = 0x40;      /*使能交叉开关和弱上拉*/
   P74OUT |= 0xff;      /*使能P4~P7推挽输出*/
   EMI0CF |= 0x2c;		/*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期*/
   EMI0TC |= 0x6c;		/*地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/
   P3MDOUT |= 0xdf;     /*使能P3.5推挽输出*/

}

⌨️ 快捷键说明

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