预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

08300720452张阳 实验1地址译码 实验目的 通过本实验掌握MCS-51系列单片机的存储器系统,并掌握外部存储器的扩展技术,明白外部程序存储器和外部数据存储器的工作周期。 实验内容 利用A2区的A0-A15,B_RD,B_WR和A3区的74LS138设计译码电路,并用示波器观测选通脉冲并测量宽度。 1.利用MOVX指令,产生地址为2003H的外部数据空间地址选通信号(需要读写控制信号参与)。 2.利用MOVC指令,产生地址为2003H的外部程序空间地址选通信号,并用示波器观测。(无需读写控制信号参与)。 使用MOVX指令访问外部数据存储器,读控制信号参与。 执行程序如下: ORG0000H ;伪指令,指定程序从0000H开始存放 AJMPMAIN ;跳转指令,程序跳转到MAIN处 ORG0100H ;伪指令,指定以下程序从0100H开始存放 MAIN: MOVDPTR,#2003H ;DPTR提供16位地址 LOOP: MOVXA,@DPTR ;2003H单元内容送入A中 NOP ;Delay NOP NOP NOP AJMPLOOP ;继续循环 END 利用MOVX指令,写控制信号参与 执行程序如下: ORG0000H ;伪指令,指定程序从0000H开始存放 AJMPMAIN ;跳转指令,程序跳转到MAIN处 ORG0100H ;伪指令,指定以下程序从0100H开始存放 MAIN: MOVDPTR,#2003H ;DPTR提供16位地址 LOOP: MOVX@DPTR,A ;A中内容送入2003H单元 NOP ;Delay NOP NOP NOP AJMPLOOP ;继续循环 END 利用MOVC指令,无需读写控制信号参与 执行程序如下: ORG0000H ;伪指令,指定程序从0000H开始存放 LJMPMAIN ;跳转指令,程序跳转到MAIN处 ORG0100H ;伪指令,指定以下程序从0100H开始存放 MAIN: MOVDPTR,#2003H ;DPTR提供16位地址 LOOP: MOVA,#0000H;给A赋值0 MOVCA,@A+DPTR ;2003H单元内容送入A中 NOP ;Delay NOP NOP NOP AJMPMAIN ;继续循环 END 利用MOVC指令,无需读写控制信号参与。使用对外部程序存储器进行选通。 实验记录 指令选通脉冲宽度(ns)周期宽度(us)MOVX(read)5368.700MOVX(write)5408.700MOVC5409.800晶振周期为12MHz 实验数据分析 在分析实验所得数据之前,我们应该先了解一下指令操作及硬件执行的计数方法,比如在MOVX读操作时序图中(下图),P、S的含义是什么。 所谓时序,是指在执行指令过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的相互关系。 1.拍节:振荡脉冲的周期(晶振周期)定义为拍节(用“P”表示)。 2.状态:振荡脉冲经过两分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态(用“S”来表示)。这样,一个状态包含两个拍节,前半周期为拍节1(P1),后半周期为拍节2(P2)。 3.机器周期:规定一个机器周期为6个状态,相当于12个拍节,即12个振荡脉冲的周期,可分别用S1~S6来表示状态,S1P1、S1P2、S2P1、S2P2……S6P2来表示拍节。 4.指令周期:执行一条指令所需要的时间称之为指令周期,指令周期以机器周期的数目来表示。 (以上摘自课件) 因此,P的频率为12M,S的频率为6M,工作周期频率为1M。 MOVX读操作 由于读信号和地址选通信号同时参与,要选择持续时间最短及重叠,考虑: 1.DPL持续时间:就是锁存器的持续时间为ALE两个下降沿的间隔,即第一个工作周期的S5P2到第二个工作周期的S5P1,共12个拍节; 2.DPH持续时间:与DPL一致; 3.RD信号持续时间:低电平有效,故为第二个工作周期的S1P1到S3P2,共6个拍节。 所以脉冲宽度应为6个拍节,6÷12MHz=500ns,与实验测得536ns接近。 查书附表得,指令MOVX占2个机器周期,NOP为1个,AJMP为2个,共计8个机器周期,一个循环需要8÷1MHz=8us。 MOVX写操作 外部数据存储器的写周期时序图如下, 分析与MOVX读操作一样,脉冲宽度应为写信号的6个拍节,500ns,而总周期为8个机器周期,8us。 MOVC操作 外部程序存储器访问时序图如下, 执行MOVC时除了地址信号没有读写信号参与,于是只需要考虑PCL和PCH的持续时间即可得到脉冲宽度: 1.PCL持续时间:两个ALE下降沿间隔,