51单片机外部存储器的使用.docx
- 文档编号:6084841
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:10
- 大小:1.95MB
51单片机外部存储器的使用.docx
《51单片机外部存储器的使用.docx》由会员分享,可在线阅读,更多相关《51单片机外部存储器的使用.docx(10页珍藏版)》请在冰豆网上搜索。
51单片机外部存储器的使用
纠结了这么久,现在总算有点儿头绪了,先把它整理到这里先,有几点还是j经常被弄糊涂:
地址和数据,地址/数据复用,地址的计算,总线的概念,执行指令跟脉冲的关系,哎呀呀,看来计算机组成和原理不看不行啊,得找个时间瞧瞧,过把瘾了解了解。
。
。
使用ALE信号作为低8位地址的锁存控制信号。
以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM的读操作。
由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
当访问外部存储器时,ALE作为锁存扩展地址的低8位字节的控制信号。
当访问外部数据存储器时,ALE以十二分之一振荡频率输出正脉冲,同时这个引脚也是EPROM编程时的编程脉冲输入端。
]
当非访问外部数据存储器时,ALE以六分之一振荡频率固定输出正脉冲,8051一个机器周期=6个状态周期=12个振荡周期,若采用6MHz的晶体振荡器,则ALE会发出1MHz的固定的正脉冲。
因此它可以用来做外部时钟或定时。
如果我们把这个功能应用与实际,可能给我们的设计带来简化,降低生产成本。
ALE脚是在使用MOVX、MOVC指令时才会变成有效(这些指令都使用到外部RAM或ROM的地址。
这些指令都有一个特点:
地址和数据分时出现在P0口)。
使用C写程序时,要使用它有效,可用访问内部RAM地址的方法。
如:
uVariable=*((char*)0x12C),把0x12C地址的内容给uVariable变量。
这个过程有效的脚为ALE、RD。
这个信号线的信号生成是MCU硬件电路实现的,不可以人工控制。
在某些内置TOM的MCU里,可以关闭ALE信号输出,以降低EMI。
ALE/PROG(30脚):
以系统时钟fosc的1/6的频率,周期性输出方波脉冲。
1系统扩展时,作为外部存储器低八位地址的锁存信号;
2可为系统提供一个频率为fosc/6的方波信号;
EPROM型单片机编程时编程输入脉冲(第二功能)
PSEN(29脚):
外部程序程序存储器的选通输出信号。
当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲,作为外部程序存储器ROM的选通信号;
访问外部数据存储器RAM时,此信号无效。
关于出栈和进栈
关于外部数据存储器:
WR:
外部数据存储器写信号
RD:
外部数据存储器读信号
怎么来扩展存储器呢?
首先必须知道的是总线结构扩展系统:
先看看怎么扩展外部程序存储器的扩展:
锁存地址芯片74ls273(低8位地址不能保持一个机器周期,所以要用到锁存器,而高8为能保持一个机器周期):
瞧瞧简单的扩展外部ROM的电路图(PSEN在一个机器周期内产生两次负脉冲,作为外部程序存储器ROM的选通信号,访问外部数据存储器RAM时,此信号无效):
访问外部ROM的时序图(P0口呢在一个机器周期内时,首先在第一次ALE下降沿送P0的地址(有74ls373锁存能保持一个机器周期),在第二次ALE下降沿锁存数据,而高8位地址在P2口,能保持一个机器周期,所以不用锁存器):
想想PSEN就是在B时间段拉低的,故就能把数据给送出去了(O(∩_∩)O哈哈哈~,真NB,谁设计的啊,赞一个,嗯,了解硬件内部结构很重要,所以不要仅仅局限于软件的编程,更需要在有硬件思维的基础上编程)
两片构成64KROM的方法:
多片扩展跟多的ROM呢,没错就是用到了译码器:
懂了扩展ROM,扩展RAM也是一样的;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 外部 存储器 使用