设计与开发

单片机 外部存储 单片机开发学习之片外程序和数据存储器

小编 2024-11-24 设计与开发 23 0

单片机开发学习之片外程序和数据存储器

单片机开发学习的内容并不算少,大家在初期除了系统学习之外,还需要通过反复实践来总结经验。同时还要注意细节学习,那今天通程创品就来给大家进行单片机开发知识分享之片外程序和数据存储器。

单片机开发

单片机与片外程序存储器、数据存储器或I/O接口之间进行数据交换时所产生的总线操作被称为总线周期(Bus Cycle)。单片机向外传输数据的总线周期是写总线周期,反之是读总线周期。在总线周期中,单片机总线引脚的状态将按照一定时间顺序发生特定的变化,这样的总线状态变化被称为总线时序。本节将分别介绍单片机进行片外程序和数据存储器(或I/O接口)访问时的总线时序。

1.片外程序存储器读总线时序

单片机会在以下两种情况下读片外扩展的程序存储器,并产生的片外程序存储器读总线周期。

(1)从片外程序存储器中读取指令

从片外程序存储器取指令时,首先16位程序指针PC的高8位PCH和低8位PCL分别由单片机的P2口和P0口输出,作为地址指向程序存储的某个存储单元,该存储单元中的数据就是单片机要读取的指令(指令的二进制代码)。由于P0口是地址和数据分时复用的总线,进入一个机器周期的S3状态后,P0口上的低8位地址将消失。为了在P0口上的地址消失后依然能够按照正确的地址访问存储器,必须在低8位地址消失前,通过地址锁存器将其锁存住。这里,地址锁存的时机是非常关键的,因为必须保证触发地址锁存器时,P0口上传送的是低8位地址,而由图5-11可知,利用ALE引脚上出现的下降沿信号触发地址锁存,恰好符合对锁存时机的要求。接下来,在S4状态的前半段,P0口将成为数据总线,P0口上的数据将被当作指令代码送入单片机内的指令寄存器,而且此段时间内,PSEN引脚为低电平,若PSEN引脚被连接到程序存储器的读选通引脚OE上,则PSEN的低电平可以使程序存储器输出被地址选中的存储单元中所存放的指令代码。

(2)从片外程序存储器中读取数据

单片机可以通过“MOVC A,@A+DPTR”和“MOVC A,@A+PC”两条指令读取程序存储器中存放的信息。当MOVC指令执行时,首先(A)+(DPTR)或(A)+(PC)的16位和的高8位和低8位作为地址的高8位(A15~A8)和低8位(A7~A0)分别由P2口和P0口输出。其中,P2口上的高8位地址保持不变,而P0口上的低8位地址将消失,并且之后成为传送数据的数据总线。为此,需要将单片机ALE引脚与地址锁存器的锁存触发引脚相连,用于控制锁存器在ALE下降沿时锁存住P0口上传送的低8位地址。最后,当与程序存储器OE引脚相连的PSEN引脚出现低电平时,程序存储器将被地址选中的存储单元中的字节数据送上数据总线P0口,而P0口上的数据最后被传送给累加器A。

需要特别注意的是:在读片外程序存储器的过程中,单片机的RD和WR引脚始终为高电平,因此与单片机相连的数据存储器既不输入也不输出数据,从而不可能出现片外程序存储器和数据存储器空间的地址冲突问题。

2.片外数据存储器总线时序

MCS-51单片机使用MOVX指令进行片外数据存储器的读和写操作。

(1)读总线时序

以累加器A为目的操作数的“MOVX A,@DPTR”和“MOVX A,@Ri”指令是片外数据存储器读指令,将产生片外数据存储器读总线周期时序。

(2)写总线时序

片外数据存储器写总线周期时序,该时序可以由以累加器A为源操作数的写存储器指令“MOVX@DPTR,A”和“MOVX A,@Ri”产生。在写总线周期中,当WR为低电平时,P0口已经由地址总线转换为数据总线,用于将累加器A中的数据送给片外数据存储器,而WR与存储器的WE引脚相连,能使片外数据存储器接收P0口上的数据。

对比以上可以发现,引脚PSEN、RD和WR不会同时为低电平。这保证了在一个同时扩展了片外程序存储器和数据存储器的单片机系统中,程序存储器读操作、数据存储器读操作和数据存储器写操作三者之间不会发生冲突。

以上就是通程创品今日分享的单片机开发学习的相关内容了,希望对大家有帮助,如果您还有其他疑问,欢迎一起探讨交流。

单片机外扩ram数据存储器

一个可随时存取数据的存储器,即可读(取)或写(存)的存储器,简称ram。 目前单片机中使用的ram属于静态ram 或SRAM,不同于计算机中使用的内存条。只要你把数据写进SRAM,不停电或者不清理,这个数据就会一直存储在那里。计算机使用动态ram,为了保存数据,需要不断更新脉冲。 因为单片机解决的信息量比电脑小很多,所以它带的ram也比较少,或完全没有。 事实上,ram只是一个临时存储数据的区域,除非图像处理需要存储大量数据。一般来说,对于执行简单任务的单片机来说,有这么多就足够了。如果不够,只能增加SRAM ,如英尚提供的大容量64M的EMI7064或小容量512K的SCLPSRAC1来扩展。支持2.7V~3.3V的SPI/QPI SRAM设备。该RAM可配置为1位输入和输出分离或4位I/O通用接口。设备本身会执行所有必要的刷新操作。 为将8位二进制数存储在ram模块中,自然也要像ROM一样用“地址”来标记其具体位置。如果一台单片机有1K(1024)ram,它的地址是从0000到1024,或者16个进制数的0000H到03FFH。可以看出,它的地址与ROM地址相同。

相关问答

单片机 访问 外部 程序 存储器 用什么指令-ZOL问答

对于汇编语言:如果访问的是外部程序存储器中存储的数据的话,用的是MOVC指令;如果访问的是外部程序存储器中的指令的话,这个好像不需要我们写代码,单片机会自己去...

还有外部存储器,这个 外部存储器 单片机 的什么地方啊,还用...

[最佳回答]一般来说,外部存储器是要用外接芯片的.但是近年来,出现了一些新型号的单片机,在其内部,就包含了少量的外部存储器.这样在一块小芯片里面,就包括了:...

80c51 单片机 的片内,片 外存储器 如何挑选-ZOL问答

片外存储器的选择:80C51单片机的EA’引脚为访问内部和外部程序存储器的选择端。程序存储器ROM:其内部容量4KB,指令可直接访问;当容量不足时,可扩展到片外ROM...

单片机 的产品特性中有提到“可选 外部存储 空间 ”,请问这是...

就是可以扩展的外存,一般单片机寻址空间相对于单片机内部自带的存储空间要大。当你做程序时,超过内部存储限制,那么就需要更大存储空间,也就是可以...

单片机外部 扩展RAM和ROM是时,P0口,P1口,P2口,P3口各起什么...

[最佳回答]不知道你说的是哪种单片机,如果是常用的51单片机的话,其P1口仅作为I/O,无第二功能;P3口作为I/O的同时,其第二功能是一些特殊功能,非扩展存储.P0口用...

51 单片机 存储空间不足加片 外存储 后程序烧录问题-ZOL问答

如果使用外部存储器,需要单独烧录,内部程序存储器可用可不用。不建议这样操作,原因是虽然可以多学一点知识,但这种知识(外扩程序存储器期)太小儿科了,将来一次...

单片机 怎么 存储 与调用 外部存储器 的数据?

[最佳回答]好像51单片机P0口与P2口是外部扩展用的,有一条指令:XBYTE可以直接读取外部数据,而无需关心时序等细节问题,具体细节也可查阅51单片机手册

单片机片外存储器 怎么选择_其他问答_系统粉

300K的数据对单片机本身要求来说有点大,但可以做外围电路,你可以选用外置flash做存储,容量绝对不是问题,但核心运算最好存在内部E方或flash中,这样...

我想问一个有关单片机的问题!当 单片机 系统需要外扩展 存储器 ...

[最佳回答]如果要用到MOVX或MOVC指令认问外部存储器,数据只能从P0口送出..因而只能用P0口当数据口...而在MOVX或MOVC的时候外部的锁存器会锁存地址..而访问的...

试写出AT89C-51 单片机 片内外Rom和RAM的地址空间-ZOL问答

但记住要先设置EA引脚才能访问外部存储器AT89C-51单片机的内部ROM主要存放固定的引导程序和部分可编程区,其基本地址范围为:OxOOO~OxFFF。外部RAM则可以通过...

猜你喜欢