173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机的片内和片外是什意思

htxw 2023-03-15 资讯中心 60 ℃

单片机中 什么是片内RAM和片外RAM,RAM就是数据存储器吗

51单片机有以下几个内存模块组成:

1】rom或者flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。

程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64k,所以很少有外扩

片外flash或者片外的rom了,flash或者rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;

2】ram有------内部ram的低128位(00-7f),对应c语言就是data,比如我定义一个变量,

data

unsigned

char

var

=

0;

那么,这个

var变量就是放在内部的低128位ram中

-------内部ram的高128位(80-ff),对应c语言就是idata,比如我定义一个变量,

idata

unsigned

char

var

=

0;

那么,这个

var变量就是放在内部的高128位ram中

-------特殊功能寄存器(sfr)(80-ff),对应c语言就是sfr比如我定义一个变量,

sfr

unsigned

char

var

=

0x90;

那么,这个

var变量就是放在内部的特殊功能寄存器中,这是你对var操作,相当于操作一个特殊的寄存器,但是小心,不能随便定义sfr变量,很危险

------外部ram

64k(0000-ffff)

外部的ram可以扩展到65536个,但是前256个算是一页,这一页比较特殊,是用

pdata来修饰的,当然,也可以用xdata来修饰。

除了第一页的256个以外的其他65280个空间,只能用xdata来修饰;

回过头来讨论pdata和xdata,这两个都能修饰外部ram的第一页,但是,pdata只能修饰第一页,即最前面的256个外部ram,那么,这最前面的256个到底用pdata还是xdata好的呢?

答案是pdata,因为xdata修饰的变量,用的是dptr寻址,pdata用的是r0和r1.dptr因为是16位的,所以可以覆盖整个的64k外部ram,r0和r1是8位,所以只能寻址最前面的256个,也就是外部ram的第一页,但是,用r0寻址,比dptr快一倍,代码也小的很多

楼主又疑惑了,好多地址是重复的,比如,我向80h地址写一个数值,单片机怎么知道读的是内部的高128位ram?还是sfr?还是外部64k的ram呢?

答案是用指令,如果是直接寻址,那么访问的就是sfr,如果是r0或者r1间接寻址,就是内部高128位ram,如果是dptr或者是r0,r1间接寻址,且配合的是movx指令,那么就是访问外部64kram中的第80h个地址。

概括一下来说,51的内存由以下组成:

1----程序存储器(包括片内flash或rom,也包括片外flash或rom,c语言用code定义)

2----内部低128位ram,c语言用data定义

3---内部高128位ram,c语言用idata定义

4---内部sfr,c语言用sfr定义

5---外部65536个ram(通常,很多单片机厂家不会给你扩展那么多的,一般来说扩展256个字节或者1024个字节就差不多了,最近宏晶的出了个扩展4096字节的。这65536字节的ram,前256个可以用pdata修饰,也可以用xdata修饰,超过256个之后的,只能用xdata修饰)

以上所说的只是针对51内核的单片机,其他内核的,像arm之类的,不是这种结构的。

单片机片内存储器和片外存储器的作用和概念

单片机片内存储器包括片内ROM和片内RAM,片内ROM用于存储程序代码,片内RAM包括寄存器和片内扩展RAM,比如STC的很多型号都有片内扩展EEPROM。

片外存储器包括片外ROM和片外RAM,片外ROM用户存储程序代码,片外RAM用于存储用户的可改写数据。

单片机中什么叫片内rom,片外rom,这个片内片外怎么理解

片内RAM:

Read Only Memory (a non volatile memory) --只读存储器(非易失存储器) 永久存储重覆使用的信息,比如数据表、电子显示器的字符等。和RAM不同,ROM的内容不能更改。在生产过程中使用可编程掩模。

片外RAM:

随机存储器(Random Access Memory)表示既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。我们通常购买或升级的内存条就是用作电脑的内存,内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。目前市场上常见的内存条有4M/条、8M/条、16M/条等。

单片机中,AD具体指什么?什么是片内AD,什么是片外AD?谢谢!

AD指模数转换器,就是将模拟信号转换成数字信号的装置

片内AD是说单片机内部有这个模数转换的功能,可以直接调用这个模块

片外AD是单独用了一块AD转换芯片,与单片机独立

请问单片机的片内存储器 片外存储器的内和外是相对于什么啊?

单片机的分为数据存储器和程序存储器。单片机内部的存储器称为片内存储器,片外扩展的存储器成为片外存储器。比如8031内部有数据存储器而没有程序存储器,所以它一般要外接一块程序存储芯片,内部的数据存储器叫做9031的片内存储器,外部扩展的存储芯片叫做片外存储器。

单片机的片内和片外是什意思的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机的片内和片外是什意思

<