⑴ 8051单片机访问片外ROM与片外RAM的读写信号各是什么。
51单片机访问片外ROM(取指令代码、执行MOVC指令)时,/PSEN出现短暂的低电平;
51单片机访问片外RAM(执行MOVX指令)时,/WR或/RD出现短暂的低电平。
它们三条线,就是楼主问的读写控制信号。虽然访问片外存储器时,/EA 和 ALE 也起了作用,但是它们都不在回答本题的范围之内。
当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。当ALE是低电平时,P0口上的内容和锁存器输出一致。
(1)51单片机程序怎么访问ram扩展阅读:
PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。
1、内部ROM读取时,PSEN不动作;
2、外部ROM读取时,在每个机器周期会动作两次;
3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;
4、外接ROM时,与ROM的OE脚相接。
⑵ 传统51单片机是通过什么口访问内部扩展ram的
使用51单片机扩展RAM时,入股同时存在外部和内部扩展RAM,地址是重叠的。
也就是说如果我们假设:
单片机内部有1K的扩展RAM,同时外部IO口上接有2K的RAM,那么实际上外部的2K中前1K是不会被使用的,因为访问前1K的语句被执行到访问内部扩展RAM里了。(当然前提是初始化部分按照实际资源设置,而不是强制设定内部扩展RAM为0,设置部分参考一下keil里的startup文件),这中情况下单片机扩展RAM资源一共是2K而不是3K
这样就不难理解书上说的访问内部RAM和外部RAM用同一个方法了。
可以访问外部RAM的IO口就不说了,看看接口定义就知道了。
在汇编语言里使用MOVX来表示访问扩展RAM部分,C语言在定义的时候使用xdata关键字,其实是一回事。
51的外部访问地址空间是连续的,也就是说即使在IO口上挂接其他设备,这个设备也可以作为外部地址空间的一部分从而通过访问特定的地址来获取数据