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
    +关注

    关注

    7

    文章

    1306

    浏览量

    113643
  • 51单片机
    +关注

    关注

    269

    文章

    5642

    浏览量

    120425

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

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

收藏 人收藏

    评论

    相关推荐

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

    `《微机原理与汇编语言》单片机小系统及扩展[hide][/hide]`
    发表于 04-05 12:56

    请问51单片机扩展IO及RAM,P0 P2口未用到的IO还可以当一般IO用吗?

    急,51单片机扩展IO及RAM后..P0 P2口未用到的IO还可以当一般IO用吗?扩展RAM为6
    发表于 10-15 09:01

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

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

    51单片机硬件结构是如何构成的

    51单片机硬件结构C51基础知识及其基本程序设计C51函数、数组、指针定义及应用单片机内部资源
    发表于 07-15 07:59

    51单片机扩展RAM6264实验的相关资料分享

    51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验:直接向RAM6
    发表于 11-18 08:01

    51单片机做一些简单的回顾

    51单片机:我觉得51的架构是分为:它的硬件结构+指令集:CPU,ROM,RAM,ROM,
    发表于 12-01 06:04

    采用51单片机扩展RAM和EPROM

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

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

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

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

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

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

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

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

    51 单片机RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内
    发表于 12-10 16:16 6436次阅读

    51单片机的片内RAM和片外RAM的区别

    51 单片机RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内
    发表于 01-06 09:27 3.2w次阅读

    如何使用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,一块是片外RAM。标准51的片内
    发表于 12-17 15:47 2041次阅读

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

    51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验:直接向RAM6
    发表于 11-11 12:36 19次下载
    <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实验