专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

stc单片机内部扩展RAM大小检测程序

作者:佚名   来源:本站原创   点击数:  更新时间:2010年12月11日   【字体:

/*晶振11.0592M

此程序会向stc内部扩展ram写入4ff个0xAB,然后再读出来发送到串口
如果读的是FF,表示已经没有扩展ram空间了.
你只需要打开串口调试助手,勾选16进制显示把所有的ab复制出来统计
数量即可算出你的stc芯片支持多大的内部扩展ram
下载地址:
http://www.51hei.com/ziliao/file/串口调试助手.rar

小技巧:把所有的ab复制出来保存为文本文件然后点右键查看文件大小
        再除以3便是我们要的结果

STC单片机的内部扩展RAM根据我的测试 从255 到 1024字节的芯片都有
*/
//     *************************************
//     *测试stc单片机内部扩展ram的大小 *
//     *          2010.11.29               *
//     *************************************

#include <at89x52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int



uchar i,n;
uchar xdata remotedata[0x4ff];         
uint k,dd,cc,head;                        
uint remdata;
uchar ch,huqin,head1,head2;



void delay_ms(unsigned int ms)
{
unsigned int i;
unsigned char j;
    for(i=0;i<ms;i++)
    {
        for(j=0;j<200;j++);
        for(j=0;j<102;j++);
    } 

}



   void init_serialcom( void ) 
   { 
       SCON = 0x50 ;  //SCON: serail mode 1, 8-bit UART, enable ucvr 
	   PCON |= 0x00 ; //SMOD=1; 
	   TL1 = 0xFF ;
	   TH1 = 0xFD ;   //Baud:9600 fosc=11.0592MHz 
	   TR1 = 1 ;     // timer 1 run 
	   TI=1; 
	   
	} 


//向串口发送一个字符 
	  void send_char_com( unsigned char ch) 
	  { 
	     SBUF=ch; 
	     while (TI== 0); 
		 TI= 0 ; 
	   } 
//初始化函数
clearmen()
{                         
IE=0x00;
IP=0x02;
TMOD=0x22;
PCON=0X00;
TH0=0xf3;
TL0=0xf3;
IT0=1;
EX0=1;
EA=1;
}


//主函数
void main()
{
//leds=0;
//duan=0;
//wei=0;
clearmen();                       //初始化
init_serialcom();


 for(dd=0;dd<0x4ff;dd++)
{
remotedata[dd]=0xab;   
}

 for(dd=0;dd<0x4ff;dd++)
{
send_char_com(remotedata[dd]); 
 delay_ms(2);
}


while(1)
{
;
}                       
}



//串口接收中断函数 
void serial () interrupt 4 using 3 
{ 
    if (RI) 
	   {  
		   RI = 0 ; 
		   ch=SBUF;
 		   P1_4=0;
		   P0=ch;
		}
} 

本程序源代码及其hex文件下载:http://www.51hei.com/f/stcxram.rar

关闭窗口

相关文章