存储器是单片机的又一个重要组成部分,图给出了一种存储容量为256个单元的存储器结构示意图。其中每个存储单元对应一个地址,256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。
早期,片内存储器,还是片外存储器,确实是根据:他们是不是 在同一块 集成电路芯片上,来区分的。数据存储器的传送指令,也有区别:片内传送,使用MOV,涉及片外了,就要用MOVX指令。
但是,科技发展了,有些单片机芯片,在同一块芯片上,还集成了少量的“片外存储器”,针对这些存储单元 *** 作,就必须使用MOVX指令。这样看来,片内,还是片外,区分的方法应该是使用什么指令,而不是他们是否分离成两块芯片。
片内是单片机内部的,片外是单片机外部的,也就是其他芯片的,不过现在的有些单片机的片外RAM也整合到单片机内部了,但名字还是叫片外
所有运行的程序都需要从外存储器调入内存中才能被cpu处理 而内存中的程序和数据在没有点的情况下不能保存,只有保存到外存储器中 内存储器相当与我们说的内存,外存储器想当于我们所说的硬盘, 总之,外存储器是存储程序和数据的 ,而内存知识在程序运行是暂时存放程序和数据
程序存储器通过(/EA) /Vpp引脚选择。若(/EA) =0,则允许使用片内ROM;若 (/EA)=1则允许使用片外ROM。
数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。
单片机的存储器的按功能分为RAM和ROM,RAM常用作寄存器和数据存储器,ROM都用作程序存储器,片内和片外没什么差别,往往是片内不够用,片外扩充,当然,单片机的特殊寄存器(用作运算或设置单片机功能)一定在片内,而且也是不能扩充的。
标准mcs-51单片机内部都有内部数据存储器,容量128~256bytes;部分型号有程序存储器(分为PROM、EPROM和EEPROM三种),容量为4~8kBytes;由于内数据存储器很小,运行较复杂一点的程序时一般需要扩展外部数据存储器,也就是增加一片RAM芯片,最初使用HM6116,后来用6264.若仅仅扩展一片RAM,可以直接用多余引脚来控制,不需要其他芯片,缺点是编程麻烦点。
经过30年的科技进步,目前的mcs-51兼容芯片功能有了很大的增强,除了内部数据存储器没有变化外,芯片内部大都都集成了较大容量的FLASH ROM,部分信号还集成了2~12kBytes的扩展存储器,其中扩展存储器需要按照外部数据存储器访问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)