/*晶振11.0592M
此程序會向stc內部擴展ram寫入4ff個0xAB,然后再讀出來發(fā)送到串口
如果讀的是FF,表示已經沒有擴展ram空間了.
你只需要打開串口調試助手,勾選16進制顯示把所有的ab復制出來統(tǒng)計
數(shù)量即可算出你的stc芯片支持多大的內部擴展ram
下載地址:
http://www.zg4o1577.cn/ziliao/file/串口調試助手.rar
小技巧:把所有的ab復制出來保存為文本文件然后點右鍵查看文件大小
再除以3便是我們要的結果
STC單片機的內部擴展RAM根據(jù)我的測試 從255 到 1024字節(jié)的芯片都有
*/
// *************************************
// *測試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; } //向串口發(fā)送一個字符 void send_char_com( unsigned char ch) { SBUF=ch; while (TI== 0); TI= 0 ; } //初始化函數(shù) clearmen() { IE=0x00; IP=0x02; TMOD=0x22; PCON=0X00; TH0=0xf3; TL0=0xf3; IT0=1; EX0=1; EA=1; } //主函數(shù) 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) { ; } } //串口接收中斷函數(shù) void serial () interrupt 4 using 3 { if (RI) { RI = 0 ; ch=SBUF; P1_4=0; P0=ch; } }
本程序源代碼及其hex文件下載:http://www.zg4o1577.cn/f/stcxram.rar