上一文中扩展了单片机的程序存储器,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芯片属于高速信号,自己布板就省了,还是玩泥巴去了。。
上一篇:单片机startup.a51文件内容的详解
下一篇:51单片机内存扩展:从片内ROM跳转到片外ROM
推荐阅读
史海拾趣
AZ Displays深知品质是企业生存的根本。因此,公司始终将质量控制放在首位,从原材料采购到生产工艺的每一个环节都进行严格把控。通过严格的质量管理体系和高效的供应链管理,AZ Displays的产品质量得到了客户的高度认可,逐渐在行业内建立了卓越的声誉。
面对全球化的市场竞争,Elpakco Inc公司积极实施全球化战略。公司先后在欧美、亚洲等地设立了分支机构,与当地企业开展合作,共同开拓市场。同时,公司还积极参加国际电子展会,展示公司的最新技术和产品,提升了公司的国际知名度和影响力。
作为一家有社会责任感的企业,DBS Microwave始终关注环境保护和可持续发展。公司积极采用环保材料和生产工艺,减少生产过程中的污染排放。同时,公司还积极参与社会公益活动,为当地社区的发展做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。
为了提供更好的物流服务,eBay推出了国际运送计划(eBay International Shipping)。该计划允许卖家将来自同一订单的多件物品合并在一个包裹中运送,从而减少了买家支付的运费。这一举措不仅提高了物流效率,也增加了买家的购买意愿。eBay还与其他物流公司合作,提供更快捷、更可靠的配送服务。
随着技术实力的不断提升,ARCOTRONICS公司开始将目光投向国际市场。公司制定了一系列国际化战略,积极参与国际电子展会,与全球各地的合作伙伴建立紧密的合作关系。通过不断拓展市场,ARCOTRONICS公司的产品逐渐在国际上获得了广泛的认可,公司也因此成为了全球电子行业的重要参与者。
Astron Wireless Technologies Inc公司注重企业文化的建设和发展。公司倡导创新、合作、共赢的企业文化,鼓励员工积极参与技术创新和业务拓展。同时,公司还注重员工的培训和发展,为员工提供广阔的职业发展空间和丰富的福利待遇。这种积极向上的企业文化使得公司能够吸引和留住一批优秀的人才,为公司的长远发展提供了有力保障。
这些故事展示了Astron Wireless Technologies Inc公司在发展过程中可能遇到的挑战和机遇,以及公司如何应对这些挑战并抓住机遇实现持续发展的过程。然而,需要强调的是,这些故事仅为虚构,不代表公司的真实发展历程。要了解公司的真实情况,建议查阅相关的新闻报道、行业分析报告或公司官方资料。
我主板的操作系统准备用WinCE 6.0,外接了一个GPRS模块,还有几个其他模块。怎么把外接模块的驱动加到WinCE中啊?是像XP中那样安装呢?还是必须在定制系统的时候就把驱动程序加入进去呢?如果是后者,定制过程中,怎么把驱动加进去啊?我现在的驱动 ...… 查看全部问答∨ |
我不是很理解: 1.平台的定制; 2.驱动程序的开发. 我很想知道, 对于OS开发, 比方说, 如果我要改其中的部分网络协议, 如IP协议中的一部分, 此时会用到platform builder吗? 如果有的话, 它起的是什么作用呢?… 查看全部问答∨ |
MAX2的BANK3引脚能不能直接接上拉电阻拉到5V?如果可以,需要特殊设置吗?我现在有2个脚,通过一上拉电阻拉到了5V,但是用万用表测,我没用这两个脚,但电阻另一端自动降到3.3V了,这是怎么回事?芯片烧了?… 查看全部问答∨ |
|
前些帖子介绍了人脸检测的一些相关的资料,下面这个帖子就具体步骤进行介绍: 要实现人脸检测必须从硬件和软件入手: 硬件方面: 1、在开始菜单中启动xilinx platform studio 11.1(因为本实验板附带的edk就是11版本的,大家可以到xilinx官网中 ...… 查看全部问答∨ |
|