51单片机扩展外部RAM
不过今天主要的就是扩展外部的RAM,这个相对比较简单点,不想外部的ROM还要设置太多的编译器~~
单片机扩展外部RAM
一、扩展总线
1、简介(这种扩展是基于总线扩展的,所以,P0、P2口就已经不可以再做它用了)
1)数据总线宽度为8位,由P0口提供;
2)地址总线宽度为16位,可寻址范围2的16次,也就是64K。低8位A7~A0由P0口经地址锁存器提供,高8位A15~A8由P2口提供。由于P0口是数据、地址分时复用,所以P0口输出的低8位必须用地址锁存器进行锁存;
3)控制总线由RD、WR、PSEN、ALE和EA等信号组成,用于读/写控制、片外RAM选通、地址锁存控制和片内、片外RAM选择。
地址锁存器一般选用带三态输出缓冲输出的8D锁存器74LS373。
2、片外RAM的操作时序
进行RAM的扩展,其扩展方法较为简单容易,这是由单片机的优良扩展性能解决的。单片机的地址总线为16位,扩展的片外RAM的做大容量为64KB,地址为0000H~FFFFH。
1)由于51单片机采用不同的控制信号指令,尽管RAM和ROM地址是重叠的,也不会发送混乱。
2)51单片机对片内和片外ROM的访问使用相同的指令,两者的选择是由硬件实现的(就是不用咱们关心的,还有他们的存储也是硬件自动实现的,你只要连接好引线就哦了~~~剩下的就是写点指令控制控制了)
3)芯片选择现在多采用线选法,地址译码法用的渐少。ROM和RAM共享数据总线和地址总线。
二、RAM的扩展原理
外部RAM的扩展是由P2口提供高8位地址,P0口分时地址作为第八位地址线和8位双向数据线
外部RAM的读时序为(这个是不用关心的,只要能看懂就哦了~~你只要写出你想要的语句来,由于单片机P0口有A/D功能,所以只要连接好硬件,还有就是知道我之前在计算机语言栏目里写过的那篇文章(貌似是~C51的运算量)里面的那些绝对地址的访问啊~还有存储器类型~~)
外部RAM的读时序为:
这里稍微说说吧:
51单片机的CPU在访问片外RAM的一个机器周期中,信号ALE出现两次(正脉冲),RAM选通信号也两次有效,这说明在一个机器周期内,CPU两次访问片外RAM,也即在一个机器周期内可以处理两个字节的指令代码,所以在51单片机指令系统中有很多单周期双字节指令。
三、RAM的扩展方法
1、数据存储器
2、数据存储器扩展电路
好了~~
可以贴出程序来喽~~
程序也就那么一点~~
将就着看吧~~
~~
RAM_6264.c(本来想用那个指针访问的~~~~试了半天~~不对啊~~无语了~~)
//------------------------------------------------------------------------------
//这个程序主要是用来验证扩展RAM的~~
//扩展RAM主要的就是连接好电路~~具体的时序不用操心~~
//这里边主要用到了我的写的计算机语言那一篇文章的内容~~
#include"reg52.h"
#include"absacc.h"
//------------------------------------------------------------------------------
typedef
typedef
xdata uint x1 _at_ 0x0000;
//------------------------------------------------------------------------------
//main
void main()
{
}
51单片机扩展外部RA 相关文章:
- 51单片机—单片机扩展外部RAM—6264—08(11-25)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)