51单片机之感悟篇一(RAM和ROM).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机之感悟篇一(RAM和ROM) 已有 3924 次阅读2014-7-5 19:48 |个人分类: 51系列| 单片机 2014年6月21日第一次更新 想来学习51 单片机也有一年多了,我想我也能算基本入门了吧。 但对于RAM和ROM的感觉,一直模模糊糊,像明白又不是很明白,想请教别人,自己又问不出个所以然,就像吃个苍蝇一样难受。最近在看 嵌入式系统的时候,那灵感来了,犹如黄河之水破提而下,那就一个爽啊。好了,废话太多了,说太多了。 众所周知,51内部的存储器分为数据存储器RAM和程序存储器ROM。以AT89c51为例,其中有128字节随机存储器(又称数据储存器RAM)和4K字节的只读存储器(又称程序存储器ROM)。 先说说这个4K字节的程序存储器或者说只读存储器,我们写的程序经过编译器编译成机器码都是存在这个区域,所以称为程序存储器;但单片机上电执行的时候,此区域内的数据只能读取而不能写入,他的只读存储器的名称从这而来。89c51的ROM采用的是FPEROM(Flash Programmable and Erasable Read Only Memory),具体工艺我也不太清楚,号称可以擦写1000次,也就是说你每天写30次,一个多月就报废了。 在说说128字节的随机存储器或者说数据存储器,程序运行过程中,一些中间变量存储在这个地方,也能从这个地方获取需要运算的值,所以称之为随机存储器,也称为数据存储器。个人觉得相当于计算机的内存,掉电丢失。 看看MSC-51指令就知道,所有的数据移动指令都是对RAM区操作的,就是因为无法改变ROM。 51内部的存储器在物理上可分为4个区域:片内ROM,片外ROM,片内RAM和片外RAM。从逻辑上可分为三个区域,64KB片内外统一编址的程序存储器(ROM),128字节或256字节的片内数据存储器(RAM),64KB片外数据存储器(RAM)。 对应的keil编译器关键字为: data : 片内数据存储器(RAM)低128字节(51系列片内只有128字节,52系列有256字节) bdata: 可位寻址的片内RAM 以上两种类型可以快速的存取数据,常用来放临时性的传递变量或使用频率较高的变量。 idata : 片内数据存储器(RAM)256字节 xdata: 片外数据存储器64KB pdata: 片外数据存储器低256字节 code: 64KB程序存储器(如果变量定义在这个空间,后面就不能修改了,如果有语句改变它的值,编译器就会报错。) 此外,C51还有三种存储模式(这是在开发环境里面设置的):SMALL, COMPACT, LARGE SMALL模式下,如果不做特别说明,参数及局部变量默认为data型,放在片内RAM128字节内,访问迅速。由于内部的RAM有限,如果变量过多,会导致频繁的使用寄存器,而使代码变的冗长。此时栈也在片内的RAM,栈长很关键,因为栈长依赖于不同函数的嵌套层数。 COMPACT:不做特别说明,参数及局部变量默认为pdata,栈空间在内部RAM。 LARGE:参数及局部变量默认为xdata,使用DPTR来寻址。访问效率低,此外这种数据指针不能对称操作。 全局变量会根据定义的类型或者存储的模式分配在相应的存储区内,有固定的地址,如果全局变量过多则会导致占用太多内存,处理速度变慢。 内核诸如51/ARM/90/PIC/AVR.....有好多种的,何况内核从来不分类,因为每一家常都可以改内核,你应该问的是架构!!只有懂架构才能用什么片子都驾轻就熟. 我详细的说一下吧. HARVARD(哈佛)架构:ROM(程序空间)与RAM(数据空间)分开,便于程序与数据的同时访问,减少程序运行时访问的瓶颈,提高数据吞吐. PRINCETON( 普林斯顿)架构:采用通用计算机广泛使用的ROMRAM合二为一的方式,就是众所周知的冯诺依曼结构,程序指令存储地址和数据指令存储地址指向同一存储器不同位置,因此程序指令和数据的宽度相同. 举例说明:以 英特尔为例:MCS-51用的是哈佛架构,而后及产品16位的MCS-96就是普林斯顿架构. ARM公司卖的内核几乎多是哈佛架构的. 我是专业的导师不会蒙你的,我同样也是呆猫一号贴吧的吧主,有问题可以留言啊.欢迎电子产业的新血液 你可以 结合数字逻辑电路的最基础知识(与门/非门), 然后学习 ARM 的内核. 实际上所谓内核就是用 不同的逻辑电路处理不同的电平请求, 之后输出设计好的电平状态. 之所以单片机能工作,就是这种电平转换电路起的作用. 一群具有特定电平转换电路的晶体管组合到一起就能完成对不同电平的响应. 其实指令就是这种电平的转换, 只是我们称之为指令...,对于单片机内核来说,指令就是把一组特定的电平

文档评论(0)

我思故我在 + 关注
实名认证
文档贡献者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档