关于单片机的地址总线和数据总线

发布时间:2024-07-30  

一般都是看地址总线来判断寻址能力,数据总线是宽度,寻址是按字的地址,也就是字节的首地址,如下图
4cdce243facf468464a5f7dca416f8d6_3036865-20240227101255350-2065527065.png

2. 单片机所说的8位,16位,32位指的是什么,是地址总线的长度还是数据总线
在单片机中,通常所说的"8位","16位","32位"指的是数据总线的宽度,即一次可以传输的数据位数。这决定了单片机一次可以处理的数据量大小。例如,一个"8位"单片机指的是其数据总线宽度为8位,可以一次传输8位的数据;而一个"16位"单片机指的是其数据总线宽度为16位,可以一次传输16位的数据,依此类推。地址总线的宽度则用来指定内存地址,与数据总线的宽度是不同的概念。一次性处理的数据总线的长度叫做字长。

3. 8位单片机的512KB地址和16位单片机的512KB地址有什么区别 (重点关注)
所谓的空间是寻址空间 8位单片机只能运行8位程序,32位的单片机只能运行32位的程序,64位的单片机只能运行64位程序
在这两种单片机中,"512KB地址"指的是单片机可以寻址的内存空间大小,。在8位单片机和16位单片机中,"512KB地址"指的都是512千字节的内存地址空间。只是16位单片机不能寻址到每个字节。

4. 数据总线的长度叫字长吗
是的,数据总线的宽度通常被称为"字长"。字长指的是一次可以传输的数据位数,也就是数据总线的宽度。根据不同的计算机架构和处理器,字长可以是8位、16位、32位、64位等不同的长度。字长的大小直接影响了计算机的数据处理能力和性能。

8051程序存储器和数据存储器
在8051单片机中,程序存储器和数据存储器是两种不同的存储器类型:

程序存储器:在8051单片机中,程序存储器通常指的是存储程序指令的存储器,也称为代码存储器或ROM(只读存储器)。程序存储器用于存储8051单片机的程序代码,包括指令和常量数据。在8051单片机中,程序存储器通常是内置的ROM,用于存储程序代码,而且通常不可修改。

数据存储器:数据存储器用于存储程序执行过程中产生的数据,包括变量、中间结果和用户数据。在8051单片机中,数据存储器通常指的是RAM(随机存储器),用于存储程序执行过程中的数据。8051单片机通常包含内置的RAM用于存储数据,而且RAM中的数据可以被程序读取、写入和修改。

总的来说,程序存储器用于存储程序代码,而数据存储器用于存储程序执行过程中的数据。在8051单片机中,程序存储器通常是ROM,数据存储器通常是RAM。这两种存储器在单片机的运行过程中起着不同的作用。

内存一个地址对应一个字节还是一个存储单元?(最困惑的问题)
https://www.zhihu.com/question/421675295
由于不同机器对于字长的定义不一致(可能是16bit,32bit或者其他),但是对于字节的长度都定义为8bit。所以实际上很少使用连续的字地址对字进行编码,通常会使用连续的字节地址对字节进行编码,使用该字的低位(或高位)的字节地址作为字地址

经典结构体字节计算题

先看下面定义的两个结构体:

struct { char a; short b; char c; }S1;

struct { char a; char b; short c; }S2;
分别用程序测试得出 sizeof(S1)=6 , sizeof(S2)=4。
注意: 为什么 仅仅改变了结构体成员的顺序,结果不一样?

解:

(1)首先找出成员变量中最大的字节,可见对于 S1 和 S2 最大是 short ,占 2 个字节;
(2)所以以后都已2个字节为准,也就是说最多只要2个字节,其他填充占位,注意下图一个格子表示一个字节;
(3)所以先画2个格子,以后看成员顺序,逐次增加,每次一2为增加基准
对于 S1 来说,顺序是 char->short->char :
c9346e15659db09da5864aba7262261e_3036865-20240227092931837-355447509.png

所以对于 S1 结构体大小为 2*3=6,至于为什么第二个 char,多的那个字节不丢到,就是遵循第三个原则,就是结构体大小结果要为成员中最大字节的整数倍。

S1=2*3=6
对于 S2 嘛,也画个图,但是顺序是 char->char->short:
64bace3ec6dae8fa45b7fb4bf36dea49_3036865-20240227092952864-290484158.png

S2=2*2=4

** 进一步证明了只能按字寻址
地址不是连续的,一般取字地址位字节地址的高位或者低位地址,看大端还是小端
02dbc795502c90b575ea164dee16ae13_3036865-20240227093517505-1998374665.png

实例
8051程序存储器和数据存储器大小怎么算的
在 8051 微控制器中,程序存储器和数据存储器的大小是固定的,不需要额外计算。以下是 8051 微控制器的存储器大小:

程序存储器(Code Memory):8051 微控制器的程序存储器大小为 4KB(4096 字节),可以存储程序的指令代码。

数据存储器(Data Memory):8051 微控制器的数据存储器分为两部分,分别是内部 RAM 和特殊功能寄存器(SFR)。内部 RAM 大小为 128 字节,用于存储程序运行时的数据;特殊功能寄存器用于控制各种功能和外设。

因此,8051 微控制器的程序存储器和数据存储器的大小是固定的,分别为 4KB 的程序存储器和 128 字节的数据存储器。
8051 微控制器的程序存储器大小为 4KB,这是因为 8051 微控制器使用的是 8位的存储单元(每个存储单元能够存储一个字节),并且程序存储器的地址总线宽度为 12 位。

计算程序存储器大小的方法如下:

8051 微控制器的地址总线宽度为 12 位,即能够寻址 $2^{12}$ 个地址。

每个地址可以访问一个字节的数据,因为 8051 是 8 位的微控制器。

因此,程序存储器的大小为 $2^{12}$ 字节,即 4KB($2^{12}$ 字节 = 4KB)。

这样,通过地址总线宽度和存储单元的位数,我们可以计算出 8051 微控制器的程序存储器大小为 4KB。
声明:本文为博主原创文章,转载请附上博文链接!

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>