视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
单片机内存扩展-SRAM扩展(62256)-C语言
2025-09-30 23:29:00 责编:小OO
文档
关于内存扩展,SRAM

62256-32K字节.地址A0 – 14

硬件连接如下图

KEIL中可以直接定义,指明xdata

UCHAR xdata Cache_SRam[3000] = {0x00}; //缓存,预留3K字节

调用此数组的时候系统会自动进行地址分配P36,P37脚也会自动产生相应的读写控制信号,因此只要在定义的时候指明XDATA,后面使用就和使用普通DATA区的内存一样使用.

经测试KEIL会默认从0X0000开始分配地址.

如下:

UCHAR xdata Cache_SRam[3000] = {0x00}; //缓存,预留3K字节

UCHAR xdata *SRAM_ADD1 = 0X00; //指定0X00地址

Cache_SRam[0] = 0X77;

); //数据低位

Cache_SRam[0]

send_char_com(

); //数据高位

*SRAM_ADD1

send_char_com(

串口调试助手,接收到的 Cache_SRam[0 ]与 *SRAM_ADD1 数据一致.

如下图:

//● int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。

再测试如下代码:

/****************/

UCHAR xdata Cache_SRam[3000] = {0x00}; //缓存,预留3K字节

UCHAR xdata *SRAM_ADD1 = 0X00;

UCHAR xdata SRAM_DATA2 = 0X66;

UCHAR xdata SRAM_DATA3 = 0X66;

UCHAR xdata SRAM_DATA4 = 0X66;

UCHAR xdata SRAM_DATA5 = 0X66;

UCHAR xdata SRAM_DATA6 = 0X66;

/****************/

); //Cache_SRam数组的第一个数据

Cache_SRam[0]

send_char_com(

); //SRAM_ADD1指针地址所指向的数据

*SRAM_ADD1

send_char_com(

); //变量SRAM_DATA2的值

SRAM_DATA2

send_char_com(

); //Cache_SRam数组的首地址

send_char_com(

Cache_SRam

send_char_com( Cache_SRam + 2999 ); //Cache_SRam数组的尾地址

//指针SRAM_ADD1的值,即地址

);

send_char_com(

SRAM_ADD1

); //SRAM_DATA2的地址

send_char_com(

&SRAM_DATA2

); //SRAM_DATA3的地址

send_char_com(

&SRAM_DATA3

); //SRAM_DATA6的地址

&SRAM_DATA6

send_char_com(

TEST

send_char_com(0xee); //for

send_char_com(0xee);

send_char_com(0xee);

测试结果如下:

表明KEIL会自动分配XDATA区域的内存地址,有规律的递增.下载本文

显示全文
专题