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

上一文中扩展了单片机的程序存储器,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芯片属于高速信号,自己布板就省了,还是玩泥巴去了。。。

本文章来源网络,如果原作者不支持咱们转发,请联系删除,谢谢!

技术源于积累,成功来自执着返回搜狐,查看更多

责任编辑:

单片机c语言访问片外存储器,教你给51单片机扩展片外RAM相关推荐

  1. 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版

    原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...

  2. 51单片机的c语言外部扩展,教你给51单片机扩展片外RAM

    上一文中扩展了单片机的程序存储器,4KB存储空间提升到64KB.其实,4K的代码空间还凑合,但是51自带的256B数据存储空间使用起来还真紧张,其中留给用户的连128B都不到,所以不得不扩展片外RAM ...

  3. c语言52单片机液晶屏显示,[手把手教你学51单片机C语言教程]22 LCD12864液晶屏显示.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 [手把手教你学51单片机C语言教程]22 LCD ...

  4. 第11章 UART 串口通信(手把手教你学51单片机pdf部分)

    手把手教你学51单片机-C语言版.pdf  

  5. 手把手教你学51单片机——函数进阶与按键

    目录 写在前面 一.单片机最小系统解析 1.1电源 1.2晶振 1.3复位电路 二.C语言--函数 2.1函数的调用 2.2函数的形参和实参 三.按键 3.1独立按键 3.2独立按键控制led数码管显 ...

  6. 51单片机的c语言外部扩展,51单片机资源扩展:扩展片外RAM

    上一文中扩展了单片机的程序存储器,4KB存储空间提升到64KB.其实,4K的代码空间还凑合,但是51自带的256B数据存储空间使用起来还真紧张,其中留给用户的连128B都不到,所以不得不扩展片外RAM ...

  7. c语言T1中断程序编写步骤,用51单片机中断编写的4x4键盘程序

    当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章 用51单片机中断编写的4x4键盘程序 作者:未知   来源:山涧一溪流   点击数:-  更新时间:2014年06 ...

  8. 【手把手教你学51单片机】中断的优先级

    注:本文章转载自<手把手教你学习51单片机>!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小 ...

  9. 【手把手教你学习51单片机】74HC138 三八译码器的应用

    注:本文章转载自<手把手教你学习51单片机>!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小 ...

最新文章

  1. 关于acm的新手一些问题
  2. 散列表的设计与实现_python基础之字典与集合实现
  3. 【编译原理】关于NFA和DFA-集合定义的探索
  4. 怎么批量抠复杂的图_怎么用手机修图,抠图、拼图,证件照制作?
  5. Excel中去掉单元格中间的空格
  6. linux 中~$和/$的区别?
  7. Pytorch高阶API示范——DNN二分类模型
  8. Java:键盘输入一个小数,输出其整数部分
  9. 掀开图片显示介绍的css效果
  10. 推荐系统中稀疏特征 Embedding 的优化表示方法
  11. OpenStack安装流程(juno版)- 添加镜像服务(glance)
  12. 硬件安全模块- HSM
  13. 用正则表达式抓取网页图片
  14. 多模态算法在视频理解中的应用
  15. win10 6种截图方法 简介
  16. 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
  17. Android Settings 应用二 获取应用消耗的流量
  18. 移动商务,还是短信商务?
  19. 桌面移到D盘根目录下还原的办法
  20. 微信小程序监听服务器发送消息,微信小程序实时聊天WebSocket

热门文章

  1. 淡淡的心语 深深的祝福
  2. hdoj 悼念512汶川大地震遇难同胞——一定要记住我爱你 2186 (模拟)
  3. HDU2186 悼念512汶川大地震遇难同胞——一定要记住我爱你【水题】
  4. word表格怎么缩小上下间距_如何缩小word表格中的行距
  5. 史上最硬核的Linux命令大全,还不收藏? ❤️【通俗易懂,小白一看就会】
  6. r.java美发更改_JAVA基于MVC模式下的理发管理系统
  7. PDF.js预览文件
  8. HTML复习笔记<1>
  9. 西安高新区企业参观感想
  10. Handler 与 IdleHandler 浅析