51单片机中程序存储器与数数据存储器地址一样如何存储信息
比如在某一地址单元中作为程序存储器其中需要存AAH而作为数据存储器单元要存DEH如何解决?比如有一个空水杯甲(存储地址),现有两种饮料,果汁A(程序代码),汽水B(RAM...
比如在某一地址单元中作为程序存储器其中需要存AAH而作为数据存储器单元要存DEH如何解决?
比如有一个空水杯甲(存储地址),现有两种饮料,果汁A(程序代码),汽水B(RAM数据)我们知道这水杯的特性是只能装一种饮料,现在问题是如何既在杯中装汽水又装果汁?烦请解释一下,谢谢! 展开
比如有一个空水杯甲(存储地址),现有两种饮料,果汁A(程序代码),汽水B(RAM数据)我们知道这水杯的特性是只能装一种饮料,现在问题是如何既在杯中装汽水又装果汁?烦请解释一下,谢谢! 展开
3个回答
展开全部
首先要搞清一个问题,对于51单片机扩展外部数据存储器时,才会有程序存储器和数据存储器的地址相同。其次是程序存储器在正常的工作时,是不能存储数据的,只有在编程状态下才可以写数据的,而正常工作时只能读出程序或数据,所以,才叫只读程序存储器ROM。搞清这两个问题后再解释你的问题:如果程序存储器在内部,那么单片机在取指令时自然就在内部读取,不会到外部读任何数据的,所以,与外部数据存储器无关系。如果是扩展外部程序存储器的情况下,单片机在读取指令时,(只能读不能写,即不能存储)是用PSEN(非)信号来读取ROM的。而要读/写外部数据存储器时,一是只有在执行MOVX指令时,才读/写外部数据存储器,在硬件上是用RD(非)信号读数据存储器的,用WR(非)信号写数据存储器的。因此,就算是两者的地址相同,但是读/写的信号是不同的,因此,就不会搞混的,单片机会自动区分是读什么存储器。
追问
你好,很感谢你的回复,至于“对于51单片机扩展外部数据存储器时,才会有程序存储器和数据存储器的地址相同”出至于何资料?据《新编MCS-51单片机应用设计》张毅刚(第三版)哈工出版 第十九页“数据存储器与程序存储器全部64K字节地址重叠”如果在烧入程序时FF00H单元已被填入AAH,在运行时作为数据存储器要对其写入DEH该如何解决?
追答
“数据存储器与程序存储器全部64K字节地址重叠”这确实不错,可你并没有再看教材是怎么继续讲述的,地址重叠那又是如何区别这两种存储区的?你后面的提问更是错误:如果在烧入程序时FF00H单元已被填入AAH,在运行时作为数据存储器要对其写入DEH该如何解决?解释:既然是烧入程序,那就是程序存储器,在运行就不可能再作为数据存储器去写入。如果是作为数据存储器的话,如果已经写入你要求的AAH,再想写入DEH的话,那就是新的数据DEH,原来的数据就没有了,不可能两个数据都保留的,这是电子,不是汽水,这是科学,不是游戏,你想怎样就怎样的。
快又稳
2024-10-28 广告
2024-10-28 广告
数据库服务器作为广州快又稳网络科技有限公司的核心基础设施之一,承载着公司海量数据的存储、处理与访问需求。我们采用高性能、高可用性的服务器架构,确保数据的安全性、完整性和快速响应能力。通过先进的数据库管理系统,优化查询效率,支持复杂业务场景下...
点击进入详情页
本回答由快又稳提供
展开全部
那就存呗。
程序存储器、数据存储器,是两个不同的存储芯片,即使地址号码相同,也没有任何关联。
程序存储器、数据存储器,是两个不同的存储芯片,即使地址号码相同,也没有任何关联。
追问
你好感谢回答,我之前也有类似的感觉,但查不到相关的资料说明,请问出至何处?
追答
程序存储器、数据存储器,是两个不同的存储芯片。
和单片机引脚 PSEN 相连的芯片,是程序存储器;
和单片机引脚 RD、WR 相连的芯片,是数据存储器。
你在书上,找找这几个引脚的功能说明,即可知道。
另外,对这两种存储器,读写的指令,也完全不同。
分别是 MOVC、MOVX。
51单片机的程序存储器、数据存储器,没有任何关联。
各自都有 0000~FFFFH 的地址范围。
----
两种存储器,是独立的,这称为哈佛结构。
51单片机的存储器,就是哈佛结构。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们的写入方法不同。读出指令不一样
程序存储器的AAH需要特殊方法才能写入。 读出用movc指令。
数据存储器单元的DEH用mov(内部存储器)或movx(外部扩展存储器)指令进行,可读可写。
程序存储器的AAH需要特殊方法才能写入。 读出用movc指令。
数据存储器单元的DEH用mov(内部存储器)或movx(外部扩展存储器)指令进行,可读可写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询