0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机资源扩展:扩展片外RAM

h1654155971.7688 来源:未知 作者:胡薇 2018-05-23 11:48 次阅读

上一文中扩展了单片机的程序存储器,4KB存储空间提升到64KB。其实,4K的代码空间还凑合,但是51自带的256B数据存储空间使用起来还真紧张,其中留给用户的连128B都不到,所以不得不扩展片外RAM。扩展RAM方法和扩展ROM差不多,都是占用P0/P2口做地址线,同时P0用锁存器74373分时复用地址和数据信号

以前扩展RAM是用汇编语言访问存储器,好处是定位精准,指哪打哪,坏处就是:程序规模一大就有点难维护了,所以还得改用C实现。

对应于汇编语言用R1,R0/DPTR访问外部RAM,keil C扩展了存储类型,增加了如pdata(等同用movx @Rn访问方式)/xdata(等同于movx @DPTR访问方式)存储类型用于访问片外ram。同时,还提供了绝对地址访问的宏,如PBYTE/XBYTE,查看定义:

[cpp] view plain copy#define PBYTE((unsigned char volatile pdata*)0);

#define XBYTE((unsigned char volatile xdata*)0);

其实,也还是定义相应存储类型的指针~。

上仿真图和代码前,整理一下keil c提供访问绝对地址的方法:

1._at_定义变量:

变量类型 [存储类型] 变量名 _at_ 常数,指定变量存放在常数所指定的ram位置,注意bit型变量不能使用_at_指定位置;

2.绝对地址访问:

头文件absacc.h提供了绝对地址访问宏,用于字节/字寻址,如

val=XBYTE[0x0000];读片外ram 0x00处内存值

XBYTE[0x0200]=val;写片外ram 0x0200处内存值

扩展ram仿真图:

c语言版本:

最后看下程序运行后6264内部存储的数据:

后记:

本来想自己扩展ram的,可是ram芯片属于高速信号,自己布板就省了,还是玩泥巴去了。。。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114680
  • 51单片机
    +关注

    关注

    274

    文章

    5702

    浏览量

    123596

原文标题:教你给51单片机扩展片外RAM

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    资料下载:单片机RAM,串行的

    的STC8H8K信号采集版”介绍了通过并行接口扩展单片机内存的方法。在STC8H8K单片机运行在40MHz总线的情况下,完成片
    发表于 07-01 08:45

    采用51单片机扩展RAM和EPROM

    存储器扩展实验采用51单片机扩展RAM 6116和一
    发表于 01-17 07:20

    MCS-51单片机系统扩展技术

    1 MCS-51单片机系统扩展的基本概念2 程序存储器扩展技术3 数据存储器扩展4 输入/输出口扩展
    发表于 12-01 14:39 65次下载
    MCS-<b class='flag-5'>51</b><b class='flag-5'>单片机</b>系统<b class='flag-5'>扩展</b>技术

    MCS-51单片机的系统扩展技术

    MCS-51单片机的系统扩展技术:在MCS-51单片机的的内部虽已集成了很多资源,但这类
    发表于 09-20 18:22 22次下载

    单片机外部扩展资源与应用

    单片机外部扩展资源与应用,单片机学习资料,新手可以下载学习,适用于初学者
    发表于 07-15 17:21 6次下载

    《微机原理与汇编语言》单片机小系统及扩展

    《微机原理与汇编语言》单片机小系统及扩展
    发表于 12-14 15:07 0次下载

    单片机扩展外部ROM或RAM读写时序

    单片机扩展外部ROM或RAM读写时序,PPT介绍。
    发表于 12-12 21:36 9次下载

    单片机数据存储器扩展设计技巧简介pdf文档

    单片机数据存储器扩展设计技巧简介
    发表于 12-20 16:37 6次下载

    如何对51单片机进行外部扩展

    最近在项目中用到51单片机,因为某些条件限制,51单片机上程序不是很大,需要进行外部扩展
    的头像 发表于 11-07 17:16 1.5w次阅读

    如何正确的划分51单片机中的RAM

    51 单片机RAM 分为两个部分,一块是RAM,一块是
    发表于 12-10 16:16 7782次阅读

    如何使用51单片机扩展64K的RAM详细资料免费下载

    本文章将简要说明51单片机扩展ram的方法,为了避免以后再扩展ram,我一步到位的将
    发表于 07-23 17:37 9次下载
    如何使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>扩展</b>64K的<b class='flag-5'>RAM</b>详细资料免费下载

    如何对51单片机RAM不同的区域进行划分

    51单片机RAM分为两个部分,一块是RAM,一块是
    发表于 12-17 15:47 2414次阅读

    如何对单片机系统进行扩展和配置

    一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在
    发表于 03-19 15:20 1514次阅读
    如何对<b class='flag-5'>单片机</b>系统进行<b class='flag-5'>扩展</b>和配置

    AT89S51单片机的并行扩展技术学习课件免费下载

    AT89S51单片机内存储器和I/O资源还不能满足需要,需扩存储器芯片和I/O接口芯片,即单片机
    发表于 10-10 16:34 7次下载
    AT89S<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的并行<b class='flag-5'>扩展</b>技术学习课件免费下载

    51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验

    51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验:直接向RAM6
    发表于 11-11 12:36 27次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>Proteus仿真+Keil工程-实验6-<b class='flag-5'>单片机</b><b class='flag-5'>扩展</b><b class='flag-5'>RAM</b>6264实验