📄 p762.asm.bak
字号:
RET
NOP
NOP
;************************************************************************
;
; TIMER CLOCKING 4ms INT PROGRAM
;
;************************************************************************
TIMER_OUT:
MOV TH1,#0E0H
NOP
NOP
JB KEYS1,TEST_KEY2
NOP
NOP
JB KEYS1,TEST_KEY2
NOP
NOP
JB KEYS1,TEST_KEY2
NOP
NOP
SETB SYS_STATUS.6
TEST_KEY2:
JB KEYS2,TEST_WDT
NOP
NOP
JB KEYS2,TEST_WDT
NOP
NOP
JB KEYS2,TEST_WDT
NOP
NOP
SETB SYS_STATUS.7
TEST_WDT:
NOP
NOP
DJNZ SYS_DELAY1,TIMER1_RET
NOP
NOP
DJNZ SYS_DELAY,TEST_OLD_DATA
NOP
NOP
AJMP SYS_AGAIN
NOP
NOP
TEST_OLD_DATA:
DJNZ OLD_DELAY,TIMER1_RET
MOV OLD_DELAY,#010H ; about 60 S
PUSH ACC
MOV ACC,R0
PUSH ACC
MOV ACC,R1
PUSH ACC
MOV ACC,R2
PUSH ACC
MOV A,#OLD_BUFFER
MOV R0,A
INC A
MOV R1,A
MOV R2,#0FH
MOVE_OLD_BUF:
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,MOVE_OLD_BUF
NOP
NOP
MOV @R0,#0FFH
POP ACC
MOV R2,ACC
POP ACC
MOV R1,ACC
POP ACC
MOV R0,ACC
POP ACC
TIMER1_RET:
SETB ET1
RETI
NOP
NOP
;************************************************************************
;
; DATA INPUT INT0 PROGRAM
;
;************************************************************************
DATAIN_INT0:
PUSH PSW
PUSH ACC
MOV ACC,R3
PUSH ACC
MOV ACC,R2
PUSH ACC
MOV ACC,R0
PUSH ACC
MOV R3,#00H
CLR TR1
MOV TH1,#00H
MOV TL1,#00H
CLR TF1
SETB TR1
CLR IE0
MOV R2,#04H
NOP
NOP
IN_AGAIN:
JNB TF1,IN_AGAIN_0
NOP
NOP
CLR TF1
DJNZ R2,IN_AGAIN_0
AJMP IN_END
NOP
NOP
IN_AGAIN_0:
JB JM_XIAOYIN,IN_END
NOP
NOP
JB JM_DATA,IN_AGAIN
NOP
NOP
JB JM_DATA,IN_AGAIN
NOP
NOP
JB JM_DATA,IN_AGAIN
NOP
NOP
IN_AGAIN_1:
JNB TF1,IN_AGAIN_2
NOP
NOP
CLR TF1
DJNZ R2,IN_AGAIN_2
AJMP IN_END
NOP
NOP
IN_AGAIN_2:
JB JM_XIAOYIN,IN_END
NOP
NOP
JNB JM_DATA,IN_AGAIN_1
NOP
NOP
JNB JM_DATA,IN_AGAIN_1
NOP
NOP
JNB JM_DATA,IN_AGAIN_1
NOP
NOP
INC R3
MOV A,#63H
XRL A,R3
JZ IN_END
NOP
NOP
AJMP IN_AGAIN
NOP
NOP
IN_END:
; INC R3
NOP
NOP
MOV A,R3
XRL A,SENDING_DATA
JZ INT0_END
NOP
NOP
MOV R0,#HAO_BUFFER
MOV R2,#10H
TEST_BUFFER:
MOV A,@R0
XRL A,R3
JZ INT0_END
INC R0
NOP
DJNZ R2,TEST_BUFFER
NOP
NOP
MOV R0,#OLD_BUFFER
MOV R2,#10H
TEST_OLD_BUFFER:
MOV A,@R0
XRL A,R3
JZ INT0_END
INC R0
NOP
DJNZ R2,TEST_OLD_BUFFER
NOP
NOP
MOV R0,#HAO_BUFFER
MOV R2,#10H
TEST_BUFFER2:
MOV A,@R0
INC A
JZ TEST_BUF_END
INC R0
NOP
DJNZ R2,TEST_BUFFER2
NOP
NOP
AJMP INT0_END
NOP
NOP
TEST_BUF_END:
MOV A,R3
MOV @R0,A
INC DATA_NUM
NOP
NOP
INT0_END:
POP ACC
MOV R0,ACC
POP ACC
MOV R2,ACC
POP ACC
MOV R3,ACC
POP ACC
POP PSW
SETB TF1
CLR IE0
SETB EX0
RETI
;***************************************************************************
;
; FREQ BUILD PROGAME
;
;***************************************************************************
FREQ_BUILD:
MOV ADD_93C_L,#00H
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV FREQ_NH,A
MOV A,BYTE2_93C
MOV FREQ_NL,A
MOV ADD_93C_L,#02H
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV FREQ_A,A
;----------------- OUT FREQ 19 BIT & 16 BIT TO VCO --------------------
CLR VCO_SK
CLR VCO_DATA
CLR VCO_LE
MOV R3,#010H
DJNZ R3,$
; MOV FREQ_NH,#01H
; MOV FREQ_NL,#96H ; Work Frequence = 324.525 MHZ
; MOV FREQ_A, #1CH
MOV R2,#013H ; FREQUENCE 19 BIT DATA
FREQ_19BIT_OUT:
CLR VCO_SK
MOV ACC,FREQ_NH
MOV C,ACC.2
MOV VCO_DATA,C
MOV R3,#08H
DJNZ R3,$
SETB VCO_SK
CLR C
MOV A,FREQ_A
RLC A
MOV FREQ_A,A
MOV A,FREQ_NL
RLC A
MOV FREQ_NL,A
MOV A,FREQ_NH
RLC A
MOV FREQ_NH,A
DJNZ R2,FREQ_19BIT_OUT
CLR VCO_SK
CLR VCO_DATA
SETB VCO_LE
MOV R3,#10H
DJNZ R3,$
CLR VCO_LE
MOV R2,#010H ; FREQUENCE 19 BIT DATA
MOV FREQ_NH,#088H
MOV FREQ_NL,#01H
FREQ_16BIT_OUT:
CLR VCO_SK
CLR C
MOV A,FREQ_NL
RLC A
MOV FREQ_NL,A
MOV A,FREQ_NH
RLC A
MOV FREQ_NH,A
MOV VCO_DATA,C
MOV R3,#08H
DJNZ R3,$
SETB VCO_SK
MOV R3,#08H
DJNZ R3,$
DJNZ R2,FREQ_16BIT_OUT
CLR VCO_SK
CLR VCO_DATA
SETB VCO_LE
MOV R3,#10H
DJNZ R3,$
CLR VCO_LE
SETB EA
NOP
NOP
RET
NOP
NOP
;**************************************************************************
;
; 93C46 Read Program 16 BIT MODE
;
; Input : ADD_93C_H Address High 1 Bit
; ADD_93C_L Address Low 8 Bit
;
; Output : BYTE1_93C First BYTE 8 Bit
; BYTE2_93C Secend BYTE 8 Bit
;
; AFFECTED : R1 - R5 , PSW , ACC
;**************************************************************************
READ_93C46:
NOP
NOP
ACALL CS1_93C ; CS 1
NOP
NOP
MOV R5,#03H
MOV A,ADD_93C_L
ANL A,#07EH
MOV R4,A
MOV R2,#0CH ; COMMAND 11 BIT
NOP
NOP
READ_ADDR46:
CLR SK_93C ; SK LOW
MOV ACC,R5
MOV C,ACC.3
MOV DI_93C,C
NOP
SETB SK_93C ; SK HIGH
MOV A,R4
RLC A
MOV R4,A
MOV A,R5
RLC A
MOV R5,A
NOP
NOP
DJNZ R2,READ_ADDR46
NOP
NOP
MOV R2,#10H ; READ 16 BIT
NOP
NOP
READ_16BIT46:
SETB SK_93C ; SK HIGH
NOP
NOP
NOP
NOP
MOV R3,#05H
NOP
NOP
CLR SK_93C ; SK LOW
NOP
READ_16BIT_1:
MOV C,DO_93C
RLC A
MOV C,DO_93C
MOV F0,C
RLC A
ANL A,#03H
NOP
NOP
JZ READ_1BIT_OK
XRL A,#03H
JZ READ_1BIT_OK
NOP
NOP
DJNZ R3,READ_16BIT_1
NOP
NOP
READ_1BIT_OK:
MOV C,F0
MOV A,BYTE2_93C
RLC A
MOV BYTE2_93C,A
MOV A,BYTE1_93C
RLC A
MOV BYTE1_93C,A
NOP
NOP
DJNZ R2,READ_16BIT46
NOP
NOP
CLR CS_93C ; CS 0
CLR SK_93C
CLR DI_93C
SETB DO_93C
NOP
NOP
RET
NOP
NOP
CS1_93C:
MOV WDRST,#01EH ; CLR WDT
NOP
MOV WDRST,#0E1H
NOP
NOP
SETB CS_93C ; CS 1
SETB DO_93C
MOV R3,#0
MOV R2,#0
NOP
TEST_93C:
NOP
JB DO_93C,TEST_93C_END
DJNZ R2,TEST_93C
DJNZ R3,TEST_93C
AJMP TEST_93C_ERROR
TEST_93C_END:
NOP
NOP
TEST_93C_ERROR:
RET
NOP
NOP
;*******************************************************************
; DELAY 0.3 S
;*******************************************************************
DELAY: MOV R2,#00H
MOV R3,#00H
DELAY_0:
NOP
NOP
MOV WDRST,#01EH ; CLR WDT
NOP
MOV WDRST,#0E1H
NOP
NOP
DELAY_1:
NOP
NOP
DJNZ R2,DELAY_1
NOP
NOP
DJNZ R3,DELAY_0
NOP
NOP
MOV WDRST,#01EH ; CLR WDT
NOP
MOV WDRST,#0E1H
NOP
NOP
RET
NOP
NOP
ORG 07FBH
NOP ; SYSTEM_ERROR
NOP
NOP
AJMP SYS_AGAIN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -