㈠ MCS-51系列单片机的存储器可划分为几个空间其地址范围和容量是多少在使用上有什么不同
1)MCS-51单片机的存储器从物理结构上分为:片内和片外数据存储器,片内和片外程序存储器。
2)从逻辑上分别可划分为:片内统一寻址的64K程序存储器空间(0000H---FFFFH);64KB的片外数据存储器空间(0000H---FFFFH);256B的片内数据存储器空间(00H---FFH)。
㈡ MCS-51 单片机的存储器地址空间如何划分各地址空间的地址范围和容量如何
MCS-51 单片机的存储器地址空间,讲起来,要用几页.
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间.
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH).
其中00H到1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7.
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的.
对此区域,也可以使用字节地址,来读写.
20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH.
此区域,也可按照字节寻址,来读写.
30H-7FH,没有什么特色,只进行字节寻址.
80H-FFH,共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写.
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写).
对上述空间读写,需用MOV指令.
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB.
对片外RAM读写,需用MOVX指令.
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB.
其中0000~0FFFH,即4K,在片内,其它在片外.
(对于8031,这64K的ROM,都在片外.)
对ROM读出,需用MOVC指令.
㈢ 请问我想扩单片机片外存储器,存一些数据,怎么计算需要的容量呢和程序的行数有什么关系啊
片外存储器至少有两个概念,
一个是ram,用来存储数据;
一个是rom,用来存储代码。
和程序的行数有关的是rom。
不清楚你具体是要什么,
ram的话8k的可以用6264,8K-8bit
rom的话8k的就用2764,8K-8bit
以上的这两个都是并口的。。。
串口的。。。
如果你用来存储数据的话可以用24c08,
不过这个数据和前面的数据存储的概念不太一样。。。
不知道怎么跟你讲。。。
你应该能明白的哈?
--------------------------------------
对问题补充的回答:
很抱歉的告诉你,
24c08不能达到你的要求。。。
建议你再仔细看看单片机的程序运行过程。。。
你的显示方式是什么呢?
如果只是用12864这种单色液晶模块的话,
只要你不是显示了太多了logo,
89S52的代码空间应该能满足你的要求了,
没有必要再扩展的,
代价太高了,
如果真的是代码空间不足的话,
建议你更换单片机的选型,
选择rom空间大的单片机,
如stc的单片机。
㈣ 51单片机的程序大小问题
1、4K容量的程序Flash空间,肯定是无法装载烧写5K代码的。
2、HEX文件在编程器软件打开后,可以看到实际程序容量(机器码)大小。文件大小会稍大。
3、仿真可能是没有代码限制的。
4、解决方法:去掉STARTUP.A51文件。在编译选项中,改变优化代码等级为9。并选择Favor size。重新编译程序试试。完成项目要求前提下,节省一些code常量定义。
㈤ 51单片机程序空间大小
AT89C52的程序空间是8KB是确认无疑的,但指的是存放纯二进制的机器码,就是二进制数。而KeilC编译的HEX代码文件并不是纯二进制数,是以ASCII码格式存放的文件,而且其中还有一些编译信息,如地址、校验和等。所以,不能看HEX文件的大小来确定下载到单片机内的真正的程序空间大小,也就是说HEX文件的大小并不是真正下载的单片机的程序大小。而下载到单片机的代码空间大小要看Keilc编译时给出的代码数的提示,才是真正要下载到单片机内的代码空间。举个例子,下图是一个程序编译后的提示,真正的二进制代码是337个字节,而HEX文件却是1KB。这里还有一个误区,你看到的HEX文件的大小是操作系统给出的大小吧,它是取整KB的,就是说HEX文件不足1KB时,也显示是1KB。
再明确一点说吧,假如编译后的代码是750418,用纯二进制数(即BIN格式,有些汇编程序的编译器输出的就是BIN格式)的代码保存就是3个字节,而用HEX格式保存就是6个字节,因为要用6个ASCII码来表示。这来算来,HEX文件大小是BIN文件的二倍,加上一些地址信息,是大于二倍的。
好,回到你的问题来,你的HEX文件是19KB,你看一下编译后的代码大小提示,肯定是不会超过8KB的,否则编译时肯定会报错的。
㈥ 51 单片机可以写多少代码,可执行多少条指令
容量越大,可以装下的代码更多。有64K的,可以写很长的代码了。你写的代码都会执行的。也可以将hex文件转化为bin文件缩小一点体积。
㈦ MCS-51 单片机的存储器地址空间如何划分各地址空间的地址范围和容量如何
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。程序ROM
寻址范围:0000H ~ FFFFH 容量64KB
EA = 1,寻址内部ROM;EA = 0,寻址外部ROM
地址长度:16位
作用: 存放程序及程序运行时所需的常数
数据存储器片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。其中片内数据存储器分为两部分,地址从00H—7FH单元(共128个字节)为用户数据RAM,从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。