/*晶振11.0592M
此程序會向stc內部擴展ram寫入4ff個0xAB,然后再讀出來發送到串口
如果讀的是FF,表示已經沒有擴展ram空間了.
你只需要打開串口調試助手,勾選16進制顯示把所有的ab復制出來統計
數量即可算出你的stc芯片支持多大的內部擴展ram
下載地址:
http://m.izizhuan.cn/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://m.izizhuan.cn/f/stcxram.rar
