MCS-51外扩程序存储器和数据存储器为什么可以有相同地址而不发生数据冲突?
读程序存储器和数据存储器采用不同的指令,程序存储器是movc,而数据存储器是movx,所以不会冲突.
这就是有关片内和片外的问题了。
读片内用Movc 片外用Movx。
很多时候地址范围也不相同!因为内部和外部存储器的容量不同
因为在51单片机中,有扩张RAM和ROM 的,当切换的时候是通过EA来识别的
当EA=1时候则是指向内部的ROM,相反.....则指向外部
1、读写“程序”存贮器,和读写“数据”存贮器,是采用不同的指令的。
2、不同的指令,会驱动不同的信号线,驱动前者时会让“程序”存贮器数据可读,驱动后者时会让“数据”存贮器可读可写。
3、补充:MCU根据“程序”还是“数据”存贮器指令译码,其“执行”则是驱动不同的PIN(管脚),从而由不同的管脚决定是哪块芯片可读写。
它们有不同的控制信号,读程序储存器用nPSEN, 不能写程序储存器,
读数据储存器用nRD, 写数据储存器用nWR.
我们是松翰(SONIX)一级单片机代理
深圳组创微电子有限公司顺德分公司
广东佛山顺德区容桂容奇美景大厦D405
TEL:0757-26109258
FAX:0757-26109258 郑生:13690634874
qq 625175602 email:sdysdy74839@sina.com
可为客户提供产品开发服务
同意 Great_Bug
在补充一下,SRAM,FLASH
两个的地址线和控制线是公用的,没沙说的
关键是控制信号。
还有 SRAM是正常工作的时候动作的,
他 的WR#,RD#,OE# 都没什么大变化,
WR#,直接连接
RD#,直接连接
OE#,reset反过来解,就是说不down程序了, 就让他动
FLASH的接发
WR#,和reset搞一下,目的就是让他down的时候动
RD#,和reset,PSEN搞一下,目的就是让他down的时候动
OE#,接GND也可
搞一下就是用门电路在外面搭,很便宜的。