
一、实验目的
1.用EEPROM 27C扩展51单片机ROM(27C为外ROM)。
2.用proteus设计、仿真基于ATC51单片机ROM的扩展实验。
3.借助proteus VSM的虚拟逻辑分析仪,观测单片机访问外ROM(即27C)时地址、数据和控制总线的信号状态。
二、电路设计
1.从PROTEUS库中选取元件
①ATC51.BUS:总线式的单片机;
②RES:电阻;
③7SEG-BCD- GRN:带BCD译码七段绿光数码管;
④CAP、CAP-ELEC:电容、电解电容;
⑤CRYSTAL:晶振;
⑥74LS373:8D锁存器;
⑦27C:EEPROM存储器。
2.放置元器件
3.放置电源和地
4.连线
5.元器件属性设置
6.电气检测
三、源程序设计、生成目标代码文件
1.流程图
2.源程序设计
(1)通过菜单“source→Build All”编译汇编源程序,生成目标代码文件。若编译失败,可对程序进行修改调试直至汇编成功。
(1)加载单片机目标代码文件
对ATC51单片机先右击后左击,打开其属性编辑窗口,在“Program File”栏中添加目标代码文件27.HEX;在“Clock Frequency”栏中输入晶振频率为120HZ。
(2)加载27C目标代码文件
对27先右击后左击,打开其属性编辑窗口,在映像文件“Image File”栏中输入外ROM程序的目标代码文件P27.HEX。
四、PROTEUS仿真
1.加载目标代码文件
2.仿真
单击按钮,启动仿真。启动仿真后,因单片机的脚接电源,从单片机内ROM地址0H开始执行指令LJMP 1000H。因内ROM的最大地址为0FFFH,而外ROM 27C的地址从0H到1FFFH,当指令地址大于0FFFH时就自动转到外ROM中去执行程序,所以执行LJMP 1000H是跳转到外ROM 27C的地址1000H处执行外ROM 27C中的程序。它是令数码管不断循环显示0、1、…、F的程序,都在外ROM 27C中执行。
若要观察外ROM 27C中程序的机器代码,可在启动仿真后单击仿真暂停按钮,再通过菜单“DEBUGMemory Contents-U3”,则弹出显示外ROM 27C机器代码的存储器内容(Memory Contents)窗口。
五、思考题:
1.采用 74LS138译码器,画出扩展8片6116的接口图。
2.8255分别有几种工作方式,其特点是什么?
