工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

逻辑分析仪

作者:dolphin 时间:2016-09-29

逻辑分析仪

;2FH ,4FH 时间件轴的位置 ,4BH 单触发字 ,4AH 触发位置 ,48H页数 47H 3级


;20H.2 单字还是3级 20H.3 三级有效
SCL EQU P3.6
SDA EQU P3.7
ORG 00H
AJMP MAIN
ORG 03H
AJMP INT0EA
ORG 0BH
AJMP TR0EA
ORG 1BH
INC P1
RETI
ORG 23H
AJMP ESEA
MAIN: MOV P2,#08H
MOV P1,#00H
;MOV 50H,#0ADH
; MOV 51H,#055H
; MOV 52H,#0AAH
; MOV 53H,#0AAH
; MOV 54H,#10010101B
; MOV 55H,#10101010B
; MOV 56H,#01010011B
; MOV 57H,#00001111B
; MOV 58H,#11111111B
; MOV 6EH,#11111111B
;MOV 6FH,#10101010B
; ACALL WIRTE
MOV 23H,#0A0H
MOV 4AH,#00H
ACALL READ
MOV R2,#00H
MOV 2FH,#00H
MOV 4FH,#1H
MOV 48H,#50H
MOV SCON,#90H
MOV TMOD,#22H
MOV TH0,#(255-120)
MOV TL0,#(255-120)
MOV TH1,#(255-10)
MOV TL1,#(255-10)
SETB EA
SETB ES
CLR ET0
CLR ET1
SETB IT0
SETB TR0
SETB TR1
SETB PT1
L0: MOV 4CH,#05H
DEL3: ACALL DELAY
DJNZ 4CH,DEL3
CPL P3.4
SJMP L0
;------------------------
INT0EA: MOV A,P0
JNB 20H.0,INT01
MOV @R1,P0
INC R1
CJNE R1,#70H,INT0OVER
CLR EX0
CLR 20H.0
SETB TB8
MOV SBUF,#12H ;发送成功指令
ACALL WIRTE
RETI
;----------------
INT01: MOV A,P0
JNB 20H.2,INT02
ANL A,#3H
MOV 50H,51H
MOV 51H,52H
MOV 52H,A
MOV A,50H
MOV 24H,#7H
CJNE A,34H,INT1
CLR 24H.0
INT1: MOV A,51H
CJNE A,35H ,INT2
CLR 24H.1
INT2: MOV A,52H
CJNE A,36H ,INT3
CLR 24H.2
INT3: MOV A,24H
JNZ INT04
SETB 20H.0
MOV R1,#52H
MOV 4FH,#4H
INT04: RETI


;MOV @R1,P0
;INC R1
;MOV A,R1
;CLR C
;SUBB A,#71H
;CJNE A,#4AH,INT02
;MOV R1,#70H
INT02: CJNE A,4BH,INT0OVER
;MOV 49H,R1 ;保存触发前数据
;MOV A,4AH
;ADD A,#50H
;MOV R1,A ;R1-4AH开始采集
;MOV @R1,4BH
;INC R1
MOV 50H,4BH
MOV R1,#51H
MOV 4FH,#2H
SETB 20H.0
INT0OVER: RETI
;----------------------------------------------------------------------采集数据处理
DO: MOV R1,#50H
MOV @R1,70H
;-------------------------------------
ESEA: JBC RI,ESNEXT
CLR TI
RETI
ESNEXT: MOV R7,SBUF
JB RB8,ZHIL ;跳到指令
;------------------------
JB 20H.1,PP2
MOV @R1,SBUF
RETI
PP2: MOV P2,SBUF
RETI
;---------------
ZHIL: CJNE R7,#80H,ES1
MOV A,47H
ANL A,#0C0H
CLR 20H.2
JZ ESN
SETB 20H.2
ESN: MOV 36H,47H
ANL 36H,#3H
MOV A,47H
RR A
RR A
ANL A,#3H ;34H,35H,36H 3级
MOV 35H,A
MOV A,47H
SWAP A
ANL A,#3H
MOV 34H,A
MOV R1,#34H
SETB EX0
CLR 20H.0 ;RUN
CLR ET0
CLR ET1
MOV P1,#00H
ANL P2,#0FH
;--------------------
ES1: CJNE R7,#40H,ES2
CLR EX0
CLR 20H.0 ;STOP
CLR ET1
CLR ET0
MOV P1,#00H
ANL P2,#0FH
ES2: CJNE R7,#0C0H,ES3
JB ET0,ES3 ;显示
CLR EX0
MOV 2FH,#00H
MOV R0,48H
MOV P1,#00H
ANL P2,#0FH
ACALL READ
SETB ET1
SETB ET0
ES3: CJNE R7,#01H,ES4
DEC 4FH
ANL 4FH,#0FH
MOV A,48H ;显示时间轴的数据
ADD A,4FH
MOV R1,A
DEC R1
CLR TB8
MOV SBUF,@R1
ES4: CJNE R7,#81H,ES9
ANL 4FH,#0FH
INC 4FH
MOV A,48H
ADD A,4FH
MOV R1,A
DEC R1
CLR TB8
MOV SBUF,@R1
ES9: CJNE R7,#50H,ES10
MOV 48H,#50H
ES10: CJNE R7,#60H,ES5
MOV 48H,#60H
ES5: CJNE R7,#4BH,ES6
MOV R1,#4BH ;单触发字
CLR 20H.1
ES6: CJNE R7,#0A0H,ES7
SETB 20H.1 ;到p2口
ES7: CJNE R7,#4AH,ES8
CLR 20H.1
MOV R1,#4AH
ES8: CJNE R7,#33H,ES11
CLR 20H.1
MOV R1,#47H
ES11: RETI
;---------------------------------------
TR0EA: SETB TR1
CJNE R2,#10H,NEXT1
MOV R2,#00H
MOV P1,#00H
MOV A,P2
ADD A,#20H
MOV P2,A
MOV R0,48H
MOV A,2FH
ADD A,#4H
MOV 2FH,A
JNB 2FH.5,NEXT1
MOV 2FH,#00H
;-----------
NEXT1: MOV 21H,@R0
MOV A,2FH
MOV DPTR,#JMP_ACC
JMP @A+DPTR
JMP_ACC:MOV C,21H.7
SJMP OK
MOV C,21H.6
SJMP OK
MOV C,21H.5
SJMP OK
MOV C,21H.4
SJMP OK
MOV C,21H.3
SJMP OK
MOV C,21H.2
SJMP OK
MOV C,21H.1
SJMP OK
MOV C,21H.0
OK: MOV P2.4,C
INC R0
INC R2
MOV A,R2
CJNE A,4FH,NEXT
CPL P2.4
NOP
CPL P2.4
NEXT: RETI
;------------------------------
WIRTE: CLR EA
MOV A,4AH
MOV B,#20H
MUL AB
MOV 32H,A
MOV A,B
RRC A
MOV 23H.1,C
MOV R0,#50H
ACALL START_BIT
CLR 23H.0
MOV A,23H
ACALL WIRTE_BYTE
MOV A,32H
ACALL WIRTE_BYTE
WLOOP: MOV A,@R0
ACALL WIRTE_BYTE
INC R0
CJNE R0,#60H,WLOOP
ACALL STOP_BIT
ACALL DELAY
;-----------
MOV R0,#60H
ACALL START_BIT
CLR 23H.0
MOV A,23H
ACALL WIRTE_BYTE
MOV A,32H
ADD A,#10H
ACALL WIRTE_BYTE
WLOOP1: MOV A,@R0
ACALL WIRTE_BYTE
INC R0
CJNE R0,#70H,WLOOP1
ACALL STOP_BIT
SETB EA
RET
;-----------------------
READ: CLR EA
MOV A,4AH
MOV B,#20H
MUL AB
MOV 32H,A
MOV A,B
RRC A
MOV 23H.1,C
ACALL START_BIT
CLR 23H.0
MOV A,23H
ACALL WIRTE_BYTE
MOV A,32H
ACALL WIRTE_BYTE
ACALL START_BIT
SETB 23H.0
MOV A,23H
ACALL WIRTE_BYTE
ACALL READ_BYTE
MOV 50H,A
ACALL STOP_BIT
;------------
MOV R0,#51H
ACALL START_BIT
SETB 23H.0
MOV A,23H
ACALL WIRTE_BYTE
SJMP RR1
RLOOP: CLR SDA
NOP
SETB SCL
NOP
CLR SCL
RR1: ACALL READ_BYTE
MOV @R0,A
INC R0
CJNE R0,#70H,RLOOP
SETB EA
RET

WIRTE_BYTE: MOV R3,#8H
LOOP: RL A
SETB SDA
JB ACC.0,NET
CLR SDA
NOP
NET: SETB SCL
NOP
CLR SCL
DJNZ R3,LOOP
SETB SDA
NOP
JNB SDA,CANNEXT ;检查是否有应答
SETB 20H.4
CANNEXT: SETB SCL
NOP
CLR SCL
RET
;-------------------------------------------------------------------------
READ_BYTE: SETB SDA
MOV R3,#8H
LOOP1: RL A
SETB ACC.0
JB SDA,CONT
CLR ACC.0
CONT: SETB SCL
NOP
CLR SCL
DJNZ R3,LOOP1
RET
;---------------------------------------------------------------------------
START_BIT: SETB SDA
NOP
SETB SCL
NOP
CLR SDA
NOP
CLR SCL
RET
;----------------------------------------------------------------------------
STOP_BIT: CLR SDA
NOP
SETB SCL
NOP
SETB SDA
NOP
CLR SCL
RET
;-----------------------------------------------
DELAY: MOV 4EH,#0FFH
DEL5: MOV 4DH,#0FFH
DEL4: DJNZ 4DH,DEL4
DJNZ 4EH,DEL5
RET
END

;********************************************************

;数字信号发生器

;********************************************************

ORG 00H
AJMP MAIN
ORG 0BH
AJMP TR0EA
ORG 1BH
AJMP TR1EA
MAIN:
MOV P1,#0FFH
MOV R0,#00H
MOV TMOD,#11H
MOV TH0,#0DBH
MOV TL0,#0EFH
MOV TH1,#0ECH
MOV TL1,#07DH
MOV A,#0FAH
SETB EA
SETB ET0
SETB TR0
SETB ET1
CLR TR1
AJMP $
TR0EA: MOV TH0,#0D8H
MOV TL0,#0F5H
SETB TR0
NOP
SETB P3.7
RL A
MOV P1,A
SETB TR1
OVER: RETI
;----------
TR1EA: MOV TH1,#0ECH
MOV TL1,#07DH
CLR TR1
CLR P3.7
RETI


;**************************************************

;显示键盘

;**************************************************

ORG 00H
AJMP MAIN
ORG 0BH
AJMP EATR0
ORG 23H
AJMP ESEA
MAIN: CLR P3.2
MOV R0,#30H
MOV SCON,#90H
MOV TMOD,#11H
MOV TH0,#0FAH
MOV TL0,#0H
SETB EA
SETB ET0
SETB ES
SETB TR0
MOV 30H,#8H
MOV 34H,#8H
MOV 31H,#8H
MOV 35H,#8H
MOV 33H,#8H
MOV 37H,#8H
MOV 36H,#8H
MOV 32H,#8H
;-----------
MOV 59H,#00H
MOV 53H,#08H
MOV 50H,#00H
MOV 56H,#00H
MOV 52H,#00H
MOV 58H,#00H
MOV 50H,#00H
mov 51h,#0H
MOV 57H,#5H
MOV 60H,#0H
MOV 61H,#1H
MOV 62H,#1H
MOV 63H,#1H
MOV 7EH,#6H
DEL: ACALL DELAY
DJNZ 7EH,DEL
ACALL READY
SETB P1.0
SETB P3.4
MOV 22H,#00H
;------------------
L0: JNB P1.0,L1
JB P3.4,L0
L1: MOV 21H,P1
ANL 21H,#0E1H
MOV A,21H
;--------------------
CJNE A,#00H,N1 ;SET 22H.0
JB 22H.0,N11
MOV 22H,#1H
MOV R2,#0H
;------------------
N11: CJNE R2,#4,N12
MOV R2,#0H
N12: INC R2
ACALL SET_
ACALL DIS
ACALL DELAY1
;------------
N1: CJNE A,#80H,N5
MOV 22H,#4H ;RUN 22H.2
ACALL RUN
SETB TB8
MOV SBUF,#80H
;---------------
N5: CJNE A,#40H,N6
MOV 22H,#00H ;STOP
ACALL STOP
SETB TB8
MOV SBUF,#40H
;---------------
N6: CJNE A,#0C0H,N2
MOV 22H,#2H ;显示 22H.1
SETB TB8
MOV SBUF,#0C0H
ACALL DISPLAY
;-----------------
N2: CJNE A,#0C1H,N3 ;+ 低位
JNB 22H.0,N33
MOV A,R2
ADD A,#4FH
MOV R1,A
INC @R1
ACALL JYAN
MOV A,@R1
ANL A,#0FH
MOV 32H,A
CJNE R2,#3H,L43
MOV B,R1
MOV A,58H
ADD A,#60H
MOV R1,A
MOV @R1,52H
MOV R1,B
L43: ACALL SENDDATE
AJMP L0
N33: JNB 22H.1,N3
MOV SBUF,#60H ;下一 页
N3: CJNE A,#41H,N4 ;- 高位
JNB 22H.0,N44
MOV A,R2
ADD A,#55H
MOV R1,A
INC @R1
ACALL JYAN
MOV A,@R1
ANL A,#0FH
MOV 36H,A
CJNE R2,#3H,N441
MOV B,R1
MOV A,#60H
ADD A,58H
MOV R1,A
MOV 32H,@R1
MOV 52H,32H
MOV R1,B
N441: ACALL SENDDATE
AJMP L0
N44: JNB 22H.1,N4
MOV SBUF,#50H ;上一页
;-------------------
N4: CJNE A,#01H,N7
JNB 22H.1,N7 ;向左
SETB TB8
MOV SBUF,#01H
;-------------------------
N7: CJNE A,#81H,N8
JNB 22H.1,N8
SETB TB8
MOV SBUF,#81H ;向右
N8: ACALL DELAY
AJMP L0
;---------------------
DIS: MOV A,R2
ADD A,#4FH
MOV R1,A
MOV A,@R1
ANL A,#0FH
MOV 32H,A
MOV A,R2
ADD A,#55H
MOV R1,A
MOV A,@R1
ANL A,#0FH
MOV 36H,A
RET
;----------------------------
JYAN: ANL 52H,#03H
ANL 58H,#03H
MOV 56H,#0H ;触发点高位
J1: MOV 59H,#00H ; 16级 门限电压 高位
J2: RET
;-----------------
;------------------------------------ 数据发送
SENDDATE:
CJNE R2,#1H,DAT1
SETB TB8
MOV SBUF,#4AH ;存储位置
ACALL DELAY1
ANL 50H,#0FH
CLR TB8
MOV SBUF,50H
;-------------------
DAT1: CJNE R2,#4H,DAT2
SETB TB8
MOV SBUF,#0A0H
ACALL DELAY1 ;门限电压
ANL 53H,#0FH
CLR TB8
MOV SBUF,53H
;----------------------
DAT2: CJNE R2,#2H,DAT3
SETB TB8
MOV SBUF,#4BH
ACALL DELAY1 ;触发字
ANL 51H,#0FH
ANL 57H,#0FH
MOV A,57H
SWAP A
ORL A,51H
CLR TB8
MOV SBUF,A
;-----------
DAT3: CJNE R2,#3H,DAT4
SETB TB8
MOV SBUF,#33H ;3级
ACALL DELAY1
MOV A,58H
RL A
RL A
ADD A,61H
RL A
RL A
ADD A,62H
RL A
RL A
ADD A,63H
CLR TB8
MOV SBUF,A
DAT4: SETB TR0
ACALL DELAY
RET
;------------------------------------------------
EATR0: MOV TH0,#0FAH
MOV TL0,#0H
SETB TR0
MOV 7FH,A
CLR P3.2
MOV A,P1
ADD A,#20H
MOV P1,A
MOV DPTR,#TABLE
MOV A,@R0
CLR ACC.7
MOVC A,@A+DPTR
MOV 20H,A
ANL A,#1FH
ANL P1,#0E0H
ORL P1,A
MOV C,20H.5
MOV P3.3,C
MOV C,20H.6
MOV P3.5,C
MOV C,20H.7
MOV P3.7,C
SETB P3.2
INC R0
CJNE R0,#38H,NEXT
MOV R0,#30H
NEXT: MOV A,7FH
SETB p1.0
RETI

;-----------------------------------------
ESEA: JBC RI,RECE
CLR TI
RETI
RECE: JB RB8,ZHIL
MOV A,SBUF
MOV R1,#30H
LOOP: MOV @R1,#00H
INC R1
CJNE R1,#38H,LOOP
JNB ACC.7,RE1
MOV 30H,#1H
RE1: JNB ACC.6,RE2
MOV 34H,#1H
RE2: JNB ACC.5,RE3
MOV 31H,#1H
RE3: JNB ACC.4,RE4
MOV 35H,#1H
RE4: JNB ACC.3,RE5
MOV 33H,#1H
RE5: JNB ACC.2,RE6
MOV 37H,#1H
RE6: JNB ACC.1,RE7
MOV 36H,#1H
RE7: JNB ACC.0,RE8
MOV 32H,#1H
RE8: RETI
ZHIL: MOV A,SBUF
CJNE A,#12H,ZHOVER ;运行成功
ACALL SUCCESS
ZHOVER: RETI
;--------------------------
READY: MOV 30H,#16H
MOV 34H,#0EH
MOV 31H,#0AH
MOV 35H,#0DH
MOV 33H,#17H
MOV 37H,#01BH
MOV 36H,#01BH
MOV 32H,#01BH
RET
;--------------------------
SUCCESS:MOV 30H,#10H
MOV 34H,#18H
MOV 31H,#0CH
MOV 35H,#0CH
MOV 33H,#0EH
MOV 37H,#10H
MOV 36H,#10H
MOV 32H,#1BH
RET
;-----------------------
RUN: MOV 30H,#16H
MOV 34H,#18H
MOV 31H,#19H
MOV 35H,#1AH
MOV 33H,#1AH
MOV 37H,#1AH
MOV 36H,#1AH
MOV 32H,#1AH
RET
;----------------------------
GOOD: MOV 30H,#15H
MOV 34H,#16H
MOV 31H,#16H
MOV 35H,#0FH
MOV 33H,#01CH
MOV 37H,#01CH
MOV 36H,#01CH
MOV 32H,#1CH
RET
;--------------------------
SET_: MOV 30H,#10H
MOV 34H,#0EH
MOV 31H,#11H
MOV 35H,#1AH
MOV 33H,R2
MOV 37H,#1BH
MOV 36H,#0H
MOV 32H,#0H
RET
;--------------------------
STOP: MOV 30H,#10H
MOV 34H,#11H
MOV 31H,#0H
MOV 35H,#13H
MOV 33H,#1BH
MOV 37H,#1BH
MOV 36H,#1BH
MOV 32H,#1BH
RET
;------------
DISPLAY:MOV 30H,#0DH
MOV 34H,#1H
MOV 31H,#10H
MOV 35H,#13H
MOV 33H,#1CH
MOV 37H,#0AH
MOV 36H,#17H
MOV 32H,#1BH
RET

;----------------------------------------------
DELAY: MOV R7,#0FFH
DEL7: MOV R6,#0FFH
DEL6: DJNZ R6,DEL6
DJNZ R7,DEL7
RET
DELAY1: MOV R7,#0AFH
DEL71: MOV R6,#0FFH
DEL61: DJNZ R6,DEL61
DJNZ R7,DEL71
RET
TABLE: DB 09H,0EBH,25H,0A1H,0C3H,91H,11H,0ABH,01H,81H
DB 03H,51H,1DH,61H,15H,17H,91H,0ABH,09H,07H,81H,71H,1FH ,0C1H ,49H ,0BH ,0F7H ,0FFH ,5DH
; A b C d E F S T O P g o R y17H u N -
;
TABLE1:DB 30H,34H,31H,35H,33H,37H,36H,32H



评论

技术专区