原创 15

2007-11-21 21:05 2467 3 3 分类: MCU/ 嵌入式
摘自“中原孔海洋”
尽管近年单片机内部的存储器容量越来越大,但是单片机的开发过程中还是经常需要用到存储器的扩展。存储器的扩展主要包括程序存储器的扩展、数据存储器的扩展等等。由于扩展程序存储器不方便仿真,而且单片机扩展程序存储器和数据存储器并没有太多区别,所以此处我们将以一个扩展数据存储器的例子来进行说明。
 
例.使用AT89C51单片机扩展一片外部数据存储器,存储器选用静态RAM芯片6264。并写程序将扩展的6264从0到FF单元分别写入0到FF的内容,即每一个单元写入的内容都是它在存储器内部的地址。 
此例程序十分简单,只是为了仿真证明我们的外部数据存储器扩展正确。程序源文件如下图(采用汇编语言): 

点击看大图
将源文件编辑完毕以后,就可以进行编译、链接并生成相应的源代码,以备接下来的仿真使用。 
下面我们来绘制电路图。由于扩展存储器的连线较多,而且又十分适合使用总线方式来连接电路,所以此例电路图中我们将大量使用总线。如果你对总线连接方式还不是太熟悉,请回头看一下前面的内容;或者参阅相关参考文献。最后绘制好的电路图如下图所示: 

绘制好电路图以后,我们就可以将前面生成的源代码装入单片机进行仿真了。 
首先,我们像前面的例子一样点击仿真按钮,系统开始全速运行。但我们看不到任何的现象和效果。 
接着,我们来点击暂停按钮,系统暂时停下来了。事实上,由于单片机运行速度很快,而且我们的程序内容又很少,所以,当我们此时按下暂停按钮的时候,系统代码早已经运行结束(也就是到了源文件中的“ljmp $”一句,循环等待呢)。所以,下面我们进行相应查看时,看到的结果可以认为是程序运行结束时的结果。要查看结果,只需点击“Debug”菜单下的“Memory Contents-U3”子菜单,这时系统将弹出“Memory Contents-U3”窗口,如下图所示: 

从图中我们可以清楚地看到RAM存储器中的内容,可以看到,我们成功地将相应的数据写入到了RAM中,扩展外部数据存储器获得了成功。 

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /6 下一条