📄 gobd2.asm
字号:
INC R7
;
ISO_RD00_1:MOV R3,#70
lcall READDAT_WAIT
JC ISO_RD01_1
MOV @R0,A
INC R7
INC R0
DJNZ R6,ISO_RD00_1
;
ISO_RD01_1:MOV R0,#READ_BUF+1
MOV A,R7
MOV @R0,A
JNZ ISO_RD02_1
MOV READ_BUF,#1
SETB C
RET
;
ISO_RD02_1:CLR C
MOV READ_BUF,#1
RET
ISO_SEND_READ: ;SEND--------------------
MOV R0,#SEND_BUF
MOV A,@R0
JZ ISO_SEND_END
MOV R5,A
ISO_SEND_00:INC R0
MOV A,@R0
LCALL SEND_ACC
MOV R4,#04
LCALL DELAY_1MS
DJNZ R5,ISO_SEND_00
ISO_SEND_END:
;READ-------------------
MOV R6,#35
LCALL ISO_READDATA
RET
;USEFUL SUBROUTINE===========================================================;
CLR_BUF: MOV R0,#08H ;SEND_BUF
MOV R1,#50
CLR A
CLR_BUF01:MOV @R0,A
INC R0
DJNZ R1,CLR_BUF01
TRANS_TOBUF: MOV R0,#SEND_BUF
CLR A
MOVC A,@A+DPTR
MOV @R0,A
MOV R1,A
SETB C
JZ TRANSBUF2
TRANSBUF1:INC DPTR
INC R0
CLR A
MOVC A,@A+DPTR
MOV @R0,A
DJNZ R1,TRANSBUF1
CLR C
TRANSBUF2:RET
READ_CODE: MOV R7,#0
MOV R0,#READ_BUF+1
MOV R1,#TEST_CODE+1
MOV R4,#3
OB_F10:INC R0 ;
INC R0
INC R0
INC R0
INC R0 ;dptr=trouble code
MOV R3,#3
OB_F11:MOV A,@R0 ;
INC R0
MOV R5,A
MOV A,@R0 ;
INC R0
MOV R6,A
MOV A,R5
JNZ OB_F12
MOV A,R6
JNZ OB_F12
LJMP OB_F13
OB_F12:MOV A,R5
MOV @R1,A ;
INC R1
MOV A,R6
MOV @R1,A ;
INC R1
INC R7
OB_F13:DJNZ R3,OB_F11
DJNZ R4,OB_F10
MOV R1,#TEST_CODE
MOV A,R7
MOV @R1,A
OB_F14:RET
SET_OK: CLR A
MOV TEST_CODE,A
RET
SET_BAUD_10400: MOV PCON,#00H
MOV TCON,#00H
MOV TH1,#B10400
MOV TL1,#B10400
SETB TR1
MOV SCON,#50H
MOV A,SBUF
MOV A,SBUF
RET
DELAY_1MS: ;for 24MHz
PUSH 00H ;2
PUSH 01H ;2
MOV R1,#4 ;1
DELAY_1MS_00:MOV R0,#248 ;1
DJNZ R0,$ ;2*246=492
DJNZ R1,DELAY_1MS_00 ;2
POP 01H ;2
POP 00H ;2
DJNZ R4,DELAY_1MS
RET
DELAY_10MS: PUSH 04H
MOV R4,#10
LCALL DELAY_1MS
POP 04H
DJNZ R4,DELAY_10MS
RET
DIS_CODE: MOV R0,#TEST_CODE
MOV A,@R0
JNZ OB_RCDCOD
LCALL DIS_CODEOK
RET
OB_RCDCOD:LCALL DIS_CODECOD
RET
DIS_CODEOK: MOV DBUF1,#16H
MOV DBUF2,#16H
MOV DBUF3,#16H
MOV DBUF4,#16H
MOV R5,#50
DIS_OK01:lcall AFACE_DELAY ;
DJNZ R5,DIS_OK01
RET
DIS_ERROR: MOV DBUF1,#0EH
MOV DBUF2,#18H
MOV DBUF3,#18H
MOV DBUF4,#18H
MOV R5,#50
DIS_ERR01:lcall AFACE_DELAY ;
DJNZ R5,DIS_ERR01
RET
DIS_CODECOD: MOV R6,#3
DIS_COD00:MOV R0,#TEST_CODE
MOV A,@R0
INC R0
MOV R7,A
JZ DIS_COD_END
DIS_COD01:MOV A,@R0
INC R0
MOV B,#16
DIV AB
MOV DBUF1,A
MOV DBUF2,B
MOV A,@R0
INC R0
MOV B,#16
DIV AB
MOV DBUF3,A
MOV DBUF4,B
MOV R4,#5
DIS_COD02:LCALL AFACE_DELAY ;
DJNZ R4,DIS_COD02
DJNZ R7,DIS_COD01
MOV R4,#100
LCALL DELAY_10MS
DJNZ R6,DIS_COD00
DIS_COD_END:MOV R4,#100
LCALL DELAY_10MS
;
RET
DIS_AFACE: MOV DBUF1,#18H
MOV DBUF2,#18H
MOV DBUF3,#18H
MOV DBUF4,#10H
lcall AFACE_DELAY ;' L'
;
MOV DBUF1,#18H
MOV DBUF2,#18H
MOV DBUF3,#10H
MOV DBUF4,#11H
lcall AFACE_DELAY ;' LA'
;
MOV DBUF1,#18H
MOV DBUF2,#10H
MOV DBUF3,#11H
MOV DBUF4,#12H
lcall AFACE_DELAY ;' LAU'
;
MOV DBUF1,#10H
MOV DBUF2,#11H
MOV DBUF3,#12H
MOV DBUF4,#13H
lcall AFACE_DELAY ;'LAUN'
;
MOV DBUF1,#11H
MOV DBUF2,#12H
MOV DBUF3,#13H
MOV DBUF4,#14H
lcall AFACE_DELAY ;'AUNC'
;
MOV DBUF1,#12H
MOV DBUF2,#13H
MOV DBUF3,#14H
MOV DBUF4,#15H
lcall AFACE_DELAY ;'UNCH'
;
MOV DBUF1,#13H
MOV DBUF2,#14H
MOV DBUF3,#15H
MOV DBUF4,#18H
lcall AFACE_DELAY ;'NCH '
;
MOV DBUF1,#14H
MOV DBUF2,#15H
MOV DBUF3,#18H
MOV DBUF4,#18H
lcall AFACE_DELAY ;'CH '
;
MOV DBUF1,#15H
MOV DBUF2,#18H
MOV DBUF3,#18H
MOV DBUF4,#18H
lcall AFACE_DELAY ;'H '
;
RET
;
INT0_INT:
INT1_INT:
T1_INT:
SIO_INT:
T0_INT: RETI
AFACE_DELAY: PUSH 00H
PUSH 04H
PUSH ACC
MOV R2,#100
MOV DCOUNT,#0
AF_DELAY01:
INC DCOUNT
MOV A,DCOUNT
SETB LED_D1
SETB LED_D2
SETB LED_D3
SETB LED_D4
DT01:CJNE A,#1,DT02
MOV A,DBUF1
lcall DIS_NUMBER
CLR LED_D1
LJMP DT0DIS
DT02:CJNE A,#2,DT03
MOV A,DBUF2
lcall DIS_NUMBER
CLR LED_D2
LJMP DT0DIS
DT03:CJNE A,#3,DT04
MOV A,DBUF3
lcall DIS_NUMBER
CLR LED_D3
LJMP DT0DIS
DT04:MOV DCOUNT,#0
MOV A,DBUF4
lcall DIS_NUMBER
CLR LED_D4
LJMP DT0DIS
DT0DIS:MOV R4,#4
LCALL DELAY_1MS
DJNZ R2,AF_DELAY01
SETB LED_D1
SETB LED_D2
SETB LED_D3
SETB LED_D4
POP ACC
POP 04H
POP 00H
RET
DIS_NUMBER: PUSH 00H ;显示数字传送
MOV DPTR,#LED_DCHARACTER
MOVC A,@A+DPTR
MOV B,A
MOV R0,#8
SENDNUMBER_01:MOV A,B
CLR C
RLC A
MOV B,A
MOV P1.1,C
lcall DELAY_74164
CLR P1.0
lcall DELAY_74164
SETB P1.0
lcall DELAY_74164
DJNZ R0,SENDNUMBER_01
SETB P1.1
CLR P1.0
POP 00H
RET
DELAY_74164: PUSH 00H
MOV R0,#5
DJNZ R0,$
POP 00H
RET
OB_PWM_START: DB 06H,61H,6AH,0F1H,01H,00H,0AH
OB_PWM_NCODE: DB 06H,61H,6AH,0F1H,01H,01H,17H
OB_PWM_RCODE: DB 05H,61H,6AH,0F1H,03H,0CCH
OB_PWM_CLRCODE: DB 05H,61H,6AH,0F1H,04H,9FH
OB_VPW_START: DB 07, 06H,68H,6AH,0F1H,01H,00H,17H
OB_VPW_NCODE: DB 07, 06H,68H,6AH,0F1H,01H,01H,0AH
OB_VPW_RCODE: DB 06, 05H,68H,6AH,0F1H,03H,0CDH
OB_VPW_CLRCODE: DB 06, 05H,68H,6AH,0F1H,04H,9EH
OB_ISO_START: DB 07, 06H,68H,6AH,0F1H,01H,00H,0C4H
OB_ISO_NCODE: DB 07, 06H,68H,6AH,0F1H,01H,01H,0C5H
OB_ISO_RCODE: DB 06, 05H,68H,6AH,0F1H,03H,0C6H
OB_ISO_CLRCODE: DB 06, 05H,68H,6AH,0F1H,04H,0C7H
LED_DCHARACTER: ; 00-0 01-1 02-2 03-3 04-4 05-5 06-6 07-7
DB 002H, 09EH, 024H, 00CH, 098H, 048H, 040H, 01EH
;
; 08-8 09-9 0A-A 0B-B 0C-C 0D-D 0E-E 0F-F
DB 000H, 008H, 010H, 0C0H, 0B2H, 084H, 060H, 070H
;
; 10-L 11-A 12-U 13-N 14-C 15-H 16-- 17-=
DB 0E2H, 010H, 082H, 012H, 062H, 090H, 0FCH, 0ECH
;
; 18-* 19-* 1A-* 1B-* 1C-* 1D-* 1E-* 1F-*
DB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
;
; 20-* 21-* 22-* 23-* 24-* 25-* 26-* 27-*
DB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -