您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 用EPROM单片机ROM实验扩展
试验四用EPROM扩展单片机ROM实验实验项目名称:用EPROM扩展单片机ROM实验实验项目性质:普通所属课程名称:实验计划学时:2学时一.实验目的1.用EPROM27C64扩展AT89C51单片机ROM(27C64为外ROM)。2.用PROTEUS设计,仿真AT89C51单片机ROM的扩展实验。3.借助PROTEUSVSM的虚拟逻辑分析仪,观测单片机访问外ROM(即27C64)时地址,数据和控制总线的信号状态。二.PROTEUS电路设计27C64扩展ROM电路原理图如图4-1所示,(注意:本原理图中的复位电路和振荡电路均未画)。整个设计都在ISIS平台中进行。1.从PROTEUS库中选取元器件①AT89C51.BUS:总线式的单片机;②RES:电阻;③7SEG-BCD-GRN:带BCD译码七段绿光数码管;④CAP,CAP-ELEC:电容,点解电容;⑤CRYSTAL:晶振;⑥74LS373:八D锁存器;⑦27C64:EPROM存储器。图4-127C64扩展外ROM电路原理图2.放置元器件,放置电源和地,连线,元器件属性设置,电气检测所有操作都是在ISIS中进行。它们都与第3.1节相似,故不详述。但要注意总线标注要匹配,标注方法参看第3.4.2节,3.6.2节,EA脚接正电源。4.1.3源程序设计,生成目标代码文件1.源程序设计经ROM扩展后的单片机系统,其程序存储器ROM分内ROM(单片机)和外ROM(27C64)两部分。本实验AT89C51内ROM为4KB,地址从0H到0FFFH;外ROM27C64为8KB,地址从0H到1FFFH。所以程序设计也要分别设计单片机内ROM源程序和外ROM27C64源程序;分别生成目标代码文件;分别写入单片机内ROM和外ROM27C64中。图4-2源程序添加结果通过菜单“Source→Add/RemoveSourceFiles...”新建两个源程序文件:2764.ASM和P2764.ASM,如图4-2所示。通过菜单“Source→2764.ASM”,“Source→P2764.ASM”,分别打开各自的源程序文件,且分别使用编辑器SRCEDIT设计程序。现举一简单例子如下:(1)单片机源程序设计ORG0LJMP1000H;END(2)外存储器源程序设计ORG1000H;数码管循环显示0,1,…FMOVR2,#0MOVA,R2STAR:MOVP1,A;1个机器周期INCR2;1个机器周期MOVA,R2;1个机器周期ANLA,#0FH;1个机器周期SJMPSTAR;2个机器周期END每个源程序编好后,都单击按钮保存源程序文件。2.生成目标代码文件通过菜单“Source→BuildALL”编译源程序,生成目标代码文件2764.HEX,P2764.HEX。若编译失败,对程序修改调试直至编译成功。四.POTEUS仿真1.加载目标代码文件(1)加载目标代码文件对AT89C51单片机先右后左击,打开其属性编辑窗口,在“ProgramFile”栏中添加目标代码文件2764.HEX;在“ClockFrequency”栏中输入晶振频率为120Hz。(2)加载27C64目标代码文件对27C64先右后左击,打开27C64的属性编辑对话框,在映像文件“ImageFile”栏中输入外ROM程序的目标代码文件P2764.HEX,如图4-3所示。图4-3添加外ROM代码2.加载目标代码文件单击按钮,启动仿真,仿真运行片段如图4-4所示。从单片机源程序和外ROM27C64源程序可看出,启动仿真后,因单片机的EA脚接电源,从单片机内ROM地址0H开始执行指令LJMP1000H。因内ROM的最大地址为0FFFH,而外ROM27C64的地址从0H到1FFFH,当指令地址大于0FFFH时就自动转到外ROM中去执行程序。所以,执行LJMP1000H是跳到外ROM27C64的地址1000H处执行外ROM27C64中的程序。它是令数码管不断循环显示0,1…F的程序,都在外ROM27C64中执行,这正反应了“扩展单片机ROM实验”的意义。图4-4用EPROM扩展单片机ROM实验的仿真片段若要观察外ROM27C64中程序的机器代码,可在启动仿真后单击仿真暂停按钮。再通过菜单“DEBUG→MemoryContents-U2”,则弹出显示外ROM27C64机器代码的存储器内容窗口,如图4-5所示。从中可查看地址1000H-100AH外存储器中数据为7A,00,EA,F5,90,0A,EA,54,0F,80,F8。它们正好是外ROM源程序的目标代码。图4-5观察外ROM27C64中程序的机器代码
本文标题:用EPROM单片机ROM实验扩展
链接地址:https://www.777doc.com/doc-2140075 .html