逻辑分析仪是一种类似于示波器的波形测试设备,它可以监测硬件电路工作时的逻辑电平(高或低),并加以存储,用图形的方式直观地表达出来,便于用户检测,分析电路设计(硬件设计和软件设计) 中的错误,逻辑分析仪是设计中不可缺少的设备,通过它,可以迅速地定位错误,解决问题,达到事半功倍的效果。E2000/L逻辑分析仪可以同时采样40路波形,并且每路采样深度为32K,采样速度可达20MHz,可以外接16路,以观察分析用户板上电路工作情况。更有强大事件触发功能,用户可以指定在何种条件下,对电路进行采样分析,并且可以指定,在事件发生前/中/后三种位置上采样,以便精确地捕捉到事件发生时电路工作的状态。为软硬件设计提供强有力的帮助。
通过下面的程序,我们用逻辑分析仪观察一个写周期及一个串行口数据的发送。为了叙述方便,我们在前几条语句后加上了该条指令的地址及机器码。
|
ORG 0 MOV DPTR, #1234h MOV A, #56h MOVX @DPTR, A NOP MOV TMOD,#020H MOV TH1,#0F3H MOV TL1,#0F3H ANL PCON,#07FH MOV SCON,#50H SETB TR1
MOV A, #055H MOV SBUF, A Wait: JNB TI, Wait SJMP $
END |
; 0000 90 12 34 ; 0003 74 56 ; 0005 F0 ; 在这行设第一个断点 ; TIMER1: 方式 2 (8 位重载) ; 2400BPS @ 12MHz
; 清 SMOD 位
; 发送 55H
; 在这行设第二个断点
|
在第五行及第十七行设置两个断点
首先设置采样频率20M,全速执行到第一个断点,这时逻辑分析仪采样到为前三条指令的执行波形,下页我们会结合波形详细说明。接下来我们来采样串行口发送出的数据波形,我们在程序中设置的波特率为2400,每一个数据位的长度应为:1000000000us/2400 = 416.667us 串行口的发送数据的格式为一个起始位0,8个数据位(低位在前,高位在后),一个停止位1,共十位。我们在程序中发送了55H,因此串行口数据为:0,1,0,1,0,1,0,1,0,1 我们设置采样频率为1M,选择逻辑分析仪A组由外部J3引入,将J3第0位测试钩(红色)钩在仿真头第11脚 (TXD引脚)上,全速执行到第二个断点。请看下页波形:
上图显示的是 MOVX @DPTR,A 的执行波形。
这条指令的地址为0005,机器码为F0。图中AH,AL,P0分别为高位地址,低位地址,P0口。
在ALE 的上升沿后P0口输出地址05,ALE下降沿,地址被锁存。
然后,PSEN变低,开始读指令,稍后机器码F0被读出。
接下来读入的0006单元00 为MCS51 CPU 取的下一条指令,被丢弃。
CPU 送出要访问单元地址 1234H,接着送出A的内容56H,并输出写信号
将M0,M1分别移至WR信号上升/下降沿。此时dM:显示的为WR的宽度为500ns
上图显示的是串行输出脚上的输出波形。
可以看出输出的串口数据为: 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 最后一个停止位1未输出完是因为MCS51 CPU在开始发送停止位后就置位TI的原故. 移动M0,M1可测出一个数据位的宽度为dM: 416us,并与理论数据416.667us相吻合。