邏輯分析儀是一種類似于示波器的波形測試設備,它可以監測硬件電路工作時的邏輯電平(高或低),并加以存儲,用圖形的方式直觀地表達出來,便于用戶檢測,分析電路設計(硬件設計和軟件設計) 中的錯誤,邏輯分析儀是設計中不可缺少的設備,通過它,可以迅速地定位錯誤,解決問題,達到事半功倍的效果。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相吻合。