⑴ 单片机中外接程序存储器和数据存储器公用16位地址线和8根数据线为什么不会起冲突
建议你阅读一下单片机关于选通地址、传递数据方面的叙述。
下面我简略的说一下大概过程,希望对你有所帮助。
第一,单片机采用三总线结构传递数据。地址总线、数据总线、控制总线。传递数据的过程是先寻址,再传递数据。即先送一个地址信息(由微处理器向总线写一个地址信息),由寄存器(也可能是程序存储器,也可能是数据存储器)根据这个地址,把微处理器要读取的数据写到总线上,微处理器再读取这个数据。整个过程由控制总线控制。所以每次读的数据是针对那个地址对应的寄存器操作的,不会发生混乱。写数据时一样,先寻址,再写数据,数据就写入刚才寻址时的地址对应的那个寄存器里去了。
第二、程序存储器、数据存储器有不同的选通信号,在一个指令周期里,是不同的时间选通的,所以不会混乱。
第三。选通的引脚不同。拿片外数据存储器来说,是P3的第6和第7引脚做选通信号,程序存储器是PSEN做选通信号,他们接在各自器件的选通引脚上,所以不会混乱。
第四,指令不同。拿汇编指令来说。MOV是程序存储器传递数据用,MOVX是数据存储器传递数据用(对片外而言)。
总之,记住三总线传递的方式,先寻址,再传数,由控制总线控制,这个模式,你就容易理解这个了。
单片机的p2和p0分别传递地址的高八位和低八位。同时p0还传递数据。在时序信号的ALE高电平期间,锁定地址信息。/PSEN是选通程序存储器的。在/PSEN低电平期间是向程序存储器传递程序代码,/WR和/RD是选通数据存储器的,即在/WR和/RD(p3的六脚和七脚)低电平期间把数据传递给数据寄存器。而/PSEN和/WR及/RD是在不同时间变为低电平的,没有重叠的部分。也就是说,当/WR及/RD变成低电平时,/PSEN已经恢复高电平了,由P0口传出的数据信息当然只会传到数据存储器里,因为程序存储器已经不再处于选通状态了!!从表面看,都是从p0口传出的,但因为选通器件的时间不同而不会发生混乱。当然我说的是片外程序存储器和数据存储器的的情况,其实对片内也一样,还是三总线的这种控制方式,使它们在不同的时间被选通,而不至于发生冲突。
看看单片机的一个电路图。你会发现p0既跟74LS373连,又跟8155或8255或键盘或数模转换器等等连。而8155或8255或键盘或数模转换器等等对单片机而言是当做数据存储器处理的。74LS373连的多半是程序存储器。那么p0送出的信号不是两者都接受了吗?注意看ALE接74LS373的G接口,锁存地址用,PSEN有时用有时不用。WR和RD接数据存储器的选通接口。因为WR和RD跟ALE的信号在时间上没有重叠部分,所以p0的信号不会被程序存储器和数据存储器同时收到。这是一个举例说明,具体情况要具体分析。
⑵ 在MCS-51单片机扩展系统中,片外程序储存器和片外数据储存器共处同一个地址空间,为什么不会发生总线冲突
访问片外ROM使用MOVC指令,对芯片的控制信号为#PSEN,而访问片外RAM使用的是MOVX指令,控制信号为#RD和#WR。二者的控制信号不同,就不会存在地址重叠的现象了。
⑶ 单片机片外Rom和片内Ram共用数据线为什么不冲突
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由(/RD)和(/WR)信号控制,而程序存储器由读选通信号(/PSEN)控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。
⑷ MCS-51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么
51的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。 程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空间转移到数据存储器空间。 实际上,当引脚EA接高电平时,8051的程序计数器PC执行片内ROM中的程序,当指令地址超过片内ROM地址时,就自动转向片外ROM中去取指令。当引脚EA接低电平(接地)时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从0000H开始编址。8051从片内程序存储器和片外程序存储器取指时的执行速度相同。 用P0口作地址/数据复用总线,用P2口的口线作高位地址线,最多可以扩展64KB的存储器。控制信号线包括:使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存;以PSEN信号作为扩展程序存储器的读选通信号;以EA信号作为内、外程序存储器的选择信号;以EA和作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,RD和WR信号分别自动有效。片外数据存储器RAM的读和写由8051的RD (P3.7)和WR(P3.6)信号控制,而片外程序存储器的输出允许(OE)由读选通PSEN信号控制。尽管片外数据存储器和片外程序存储器共处同一地址空间,但由于控制信号及使用的数据传送指令不同,故不会发生总线冲突。
⑸ MCS-51单片机扩展系统中,片外程序存储器和片外数据存储器共处同一个地址空间,为什么不会发生总线冲突
因为控制信号线的不同:外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。外扩RAM的读、写控制引脚分别与MCS-51的RD和WR引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51单片机的PSEN相连
访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间硬件上,控制信号不一样:片外程序存储器工作,要PSEN信号有效。
片外数据存储器工作,要RD或WR信号有效;软件上,寻址不一样,片外程序存储器工作,要用MOVC,片外数据存储器工作,要用MOVX;虽然地址都是0000H~FFFFH,不会发生冲突的。
(5)程序存储器与数据共用扩展阅读:
访问存储空间时,需要用到两个指针变量,为DPTR和PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位。
这是51单片机内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K 。
⑹ 在80C51扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突
不会发生冲突,因为两者的控制总线并没有共用。
⑺ 为什么MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突
编写代码后,不管是汇编还是C代码都会被编译器,编译为机器代码,机器代码中包括操作码和操作数。
而在读取程序存储器和读写数据存储器的内容
可以简单的说成是操作数.
如果在操作
程序存储器
和
读写数据存储器
的操作数相同.
而操作码不相同。这样就不会发生总线冲突了!
⑻ 单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突
组8个单元,复位后的寄存器是第0组。能被8整除的都可以进行位寻址。EA:片内外程序存储器片选端,ALE:地址锁存使用,PSEN:片外程序存储器读允许信号,1个机器周期是12个时钟周期,1个指令周期是1、2、4个机器周期。1/10US,P0-P3,口的不同之处在与:P0口没有上拉电阻,其余的都有上拉电阻,外电路不用加上拉电阻。在作为输入口时要向端口写1,防止读入的数据错误。
2、地址相同,但是,使用的指令不同,MOVC,MOVX。P3口的第二功能很丰富:串行口RX,TX、外部中断INT0,INT1、定时记数器T0,T1、读写WR,RD。一个是位地址,一个是字节地址,采用访问的指令不同,7C在位地址寻址区的2F中,PSW记录累加器A的状态,CY,AC,OV等,具体是第7位进位或者借位时,CY=1,反之为0,第3位进位或者借位时,AC=1反之为0,当运算结果不对时,OV=1。
3、那是程序的总入口地址,中断地址入口。说白了,就是即可以输入又可以输出的口叫双向口,P0-P3:复位时,为FFH。寻址方式:直接、间接、立即、寄存器、变址、位寻址。内部低128位寻址,和整个256字节寻址。
4、DA A的作用是紧跟着加法后面的指令,用与十进制调整。MOV A,80H,XCH A,90H,MOV 80H,A。算术运算利用CY,OV判断结果是否正确。如果CY=1,说明减数小,与此同时OV=1,说明正数减去负数得负数的情况。依次类推。
以上是部分内容回答。
由于时间关系先到此吧,后续再补上!
⑼ 单片机内程序存储器和数据存储器共处同意地址空间为什么不会发生总线冲突
错了,他们并非在同一地址空间上,它们只是各自单独的在单片机内部
ROM是程序存储器,用来存放程序文件的,在单片机运行过程中并没有数据的变化,无需经过总线。
RAM是数据存储器,用来存放数据的,这些存储单元的数据在硬件和软件的结合下是可以不断变化的,有时也会经过总线(数据传输过程中)。
所以他们并不会发生冲突
⑽ 51单片机的程序存储器(ROM)与数据存储器(RAM)是相互分工的,请问一般PC计算机程序与数据共用吗
这个问题我知道!呵呵你的问题好多呀还是俺来回答你吧1概念要明确ROM和RAM是计算机的半导体存储器,速度与CPU相匹配,CPU只能直接访问和执行半导体存储器中的程序和数据。叫内存。而硬盘不是半导体存储器,速度与CPU不匹配,CPU不能直接访问和执行半导体存储器中的程序和数据,只有先把硬盘的内容传递给内存,CPU间接通过内存访问和硬盘的程序和数据,因此硬盘叫外存。2ROM为只读存储器,写入的程序和数据不可再更改,存放的程序断电也不丢失。RAM是读写存储器,可读可写,用起来方便,价格低,被PC计算机广泛使用,即做内存条。缺点:断电程序、信息不能保留。ROM在PC计算机中,用来存放开机的引导程序和基本的驱动程序,叫做BIOS.3PC计算机的ROM和RAM的地址是统一编址的。访问是采用相同的指令去访问。单片机由于地址线的引脚数目少,分配的地址空间有限,故ROM和RAM的地址是分开编址的。为两个不同的逻辑空间,如一个程序存储器空间地址为0000H~FFFFH.一个片外数据存储器空间地址为0000H~FFFFH.访问时为了加以区分,采用不同的执行访问不同的存储器。呵呵给你介绍了半天该给加分了吧