历史上的今天
返回首页

历史上的今天

今天是:2024年11月19日(星期二)

正在发生

2018年11月19日 | 教你给51单片机扩展片外RAM

2018-11-19 来源:eefocus

上一文中扩展了单片机的程序存储器,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语言版本:

2.jpg?imageView2/2/w/550

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

3.jpg?imageView2/2/w/550


后记:


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


推荐阅读

史海拾趣

Dresden Elektronik公司的发展小趣事

随着技术的不断进步,Dresden Elektronik公司不断加大对研发的投入,致力于推动技术的创新和突破。一次偶然的实验中,公司的研发团队发现了一种新的材料,能够显著提高电子元件的性能和稳定性。这一发现被迅速转化为产品,并成功推向市场,使公司的产品在竞争中脱颖而出。

Dean Technology公司的发展小趣事

在激烈的市场竞争中,Dean Technology公司始终保持对技术创新的追求。他们不断投入研发资金,引进先进技术和设备,提升产品的技术含量和附加值。同时,公司还注重与高校、科研机构的合作,共同开展科研项目,推动行业技术的进步。这些努力使得Dean Technology的高压二极管产品始终保持在行业的领先地位。

CYANLITE公司的发展小趣事

在XXXX年,CYANLITE公司迎来了一次重要的技术突破。他们成功研发出了一种新型的LED芯片,这种芯片具有更高的发光效率和更长的使用寿命。这一技术的突破使得CYANLITE公司的产品在市场上更具竞争力,公司也借此机会进一步扩大了市场份额。随着品牌知名度的提升,CYANLITE公司开始拓展国际市场,其产品逐渐出口到欧洲、北美等地区,公司的业绩也实现了快速增长。

DMS Electronic Components, Inc公司的发展小趣事

DMS深知品质对于企业的重要性,因此从一开始就建立了严格的质量管理体系。公司采用先进的生产设备和工艺,对每一个环节都进行严格把关,确保产品质量符合国际标准。DMS还积极参与国际认证,通过ISO9001、CE、UL等认证,进一步提升了品牌的国际竞争力。

国产公司的发展小趣事
在电路中加入适当的消振电容或电阻,以消除自激振荡。
Elpida Memory公司的发展小趣事

在成立初期,Elpida Memory凭借先进的技术和强大的研发实力,迅速在全球DRAM市场占据了一席之地。然而,随着市场竞争的加剧和技术的快速发展,Elpida Memory也面临着巨大的挑战。尤其是在2008年全球金融危机爆发后,DRAM市场需求大幅下降,产品价格暴跌,Elpida Memory的经营状况也陷入了困境。

问答坊 | AI 解惑

接地装置及其运行维护

电气设备的任何部分与大地(土壤)间作良好的电气连接称为接地。 接地是确保电气设备正常工作和安全防护的重要措施。电气设备接地通过接地装置实施。接地装置由接地体和接地线组成。与土壤直接接触的金属体称为接地体;连接电气设备与接地体之间的导 ...…

查看全部问答>

更改!我想原创,才发现没想法,于是就改行发现别人的想法

这是一个巧合,以前我从不把两个电池并联使用,从来都是串联!直到有一天,我看别人的文里面有个电路图,图里有两个电池,电池是准并联的,因为有两个二极管!电池并联的情况,如下图1              &n ...…

查看全部问答>

Power Architecture Study Notes

Capture 0 A big picturePPC function category:1. Interger (Fixed-point) Facility, using 32 GPRs(General Purpose Registers), each register have 32/64 bits for different mode. 2. Floating-point Facility, using 32 FPRs (Floating- ...…

查看全部问答>

wince5.0环境下对话框中显示图片问题

{                 TRACE(L\"CONINIT_MULTITHREADED ERR…

查看全部问答>

有哪位朋友用过讯飞公司的s3011语音芯片?请指教!

有哪位朋友开发嵌入式产品时用过讯飞公司的s3011语音芯片,本人在使用过程 中遇到不少问题,有哪位朋友有经验帮助咨询一下,谢谢了。…

查看全部问答>

招聘音频视频开发兼职开发

招聘兼职人员做视频音频软硬件开发,要求从事过此方面的工作,如做过MP3、MP4、电视机顶盒等的开发,有意者请将个人简历发送至邮箱nuaacom@163.com,符合我们意向的人员我们将与您联系,谢谢!…

查看全部问答>

写了个IIC键盘驱动有些错误,大牛们过来看看能否解决,同时功能上是否能实现!

附件里面我放了源代码,同时也将源代码帖到下面: /*IIC键盘程序:CPU是S3C2440,嵌入式操作系统是linux2.6.13,IIC键盘芯片是ZLG7290(周立功的片子);硬件中断连接方法, 将ZLG7290的INT按键中断引脚接GPF2(将GPF2配置成中断功能EINT2),当有按键按 ...…

查看全部问答>

急!!PXA270+uboot+wince5.0问题

想跟大侠们请教一个PXA270+uboot+wince5.0问题,现在uboot已经调试好了,uboot通过tftp下载NK.nb0到sdram中,运行NK时没有串口信息输出。经过“点灯法”发现程序能运行完src\\kenel\\oal\\startup.s,此后跳转到kernelstart(位于WINCEROOT\\Private\ ...…

查看全部问答>

UCGUI中文手册,打包共24个

今天在这里看到一个UCGUI的中文手册,是分开的,要下这个的朋友们可能真有点惨,我这正好有这个,打个包给大家分享…

查看全部问答>