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

📄 wxramb.c

📁 C8051F系列单片机外围电路功能模块程序
💻 C
字号:
//参考程序B://WXRAMB.C   程序对片内数据存储器(4K RAM)实现读/写操作,先在地址//0000---00FFH写入数据,再读出进行比较是否正确,若不正确蜂鸣器响一声
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
sbit BUZ = P3^5 ;                         // P3^5位管理蜂鸣器
unsigned char xdata *point;
void PORT_Init (void);
void sleep_ms(unsigned char count)       //延时
{
  unsigned char ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();			
    }	
}
void main (void)        //主程序
 {
	unsigned char WrData,RdData;
	unsigned int k;
   	WDTCN = 0xde;           /*无效看门狗*/
   	WDTCN = 0xad;
		PORT_Init();			/*初始化端口*/
	WrData=0x0;			        /*写入数据从0开始*/
    point=0x0000;			    /*地址指针从0000开始*/
	for(k=0;k<0x100;k++)		/*写16个数据*/
    {
		*point=WrData;		    /*写数据到片内数据存储器(4K RAM)*/
		point++;
	  	WrData++;
	}
	WrData=0x0;
	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)
{
XBR2    = 0x40;      /*使能交叉开关和弱上拉*/
EMI0CF |= 0x20;	/*只用片内数据存储器,ALE高/低脉宽占1个SYSCLK周期*/
EMI0TC |= 0x6c;/*地址建立/保持时间占0个SYSCLK周期/WR和/RD占12个SYSCLK周期*/
P3MDOUT |= 0x20;     /*使能P3.5推挽输出*/
}


⌨️ 快捷键说明

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