📄 p762.asm.bak
字号:
MOV A,SEND_BYTE_NUM2
ANL A,#07H
JZ Poc_Step10_2
AJMP POC_SEND_RET
Poc_Step10_1:
MOV Next_Step,#0BH
MOV SEND_BYTE_NUM,#040H
AJMP POC_SEND_RET
Poc_Step10_2:
MOV A,ZHENG_HAO
JB ACC.3,Poc_Step10_3
MOV Next_Step,#0FH
MOV SEND_BYTE_NUM,#040H
AJMP POC_SEND_RET
Poc_Step10_3:
MOV SEND_BYTE_NUM2,#00H
AJMP POC_SEND_RET
Poc_Step11:
MOV SEND_BYTE,#07CH
MOV Next_Step,#0CH
AJMP POC_SEND_RET
Poc_Step12:
MOV SEND_BYTE,#0D2H
MOV Next_Step,#0DH
AJMP POC_SEND_RET
Poc_Step13:
MOV SEND_BYTE,#015H
MOV Next_Step,#0EH
AJMP POC_SEND_RET
Poc_Step14:
MOV SEND_BYTE,#0D8H
MOV Next_Step,#0FH
AJMP POC_SEND_RET
; TONGBU_TABLE: DB 07CH,0D2H,015H,0D8H
; KONXIAN_TABLE: DB 07AH,089H,0C1H,097H
Poc_Step15:
MOV SEND_BYTE,#07AH
MOV Next_Step,#10H
AJMP POC_SEND_RET
Poc_Step16:
MOV SEND_BYTE,#089H
MOV Next_Step,#11H
AJMP POC_SEND_RET
Poc_Step17:
MOV SEND_BYTE,#0C1H
MOV Next_Step,#12H
AJMP POC_SEND_RET
Poc_Step18:
MOV SEND_BYTE,#097H
MOV Next_Step,#13H
AJMP POC_SEND_RET
Poc_Step19:
NOP
MOV Next_Step,#00H
CLR SEND_PTT ; SEND_END
CLR SYS_STATUS.0
POP ACC
MOV R0,ACC
POP DPL
POP DPH
POP PSW
POP ACC
CLR ET0
RETI
NOP
NOP
NOP
POC_SEND_RET:
POP ACC
MOV R0,ACC
POP DPL
POP DPH
POP PSW
POP ACC
SETB ET0
RETI
;*********************************************************************
; Build Pocsag coding programe
;
; Input : ACC Start POC_POINTER , 3 BYTES = 20 BIT
; C C=0 Address
; C=1 Information
;
; Output : Start POC_POINTER , 4 BYTE 32 BIT
;
; MACHINE CYCLES ( LCALL ): MAX = 549 , MIN = 377
; AFFECTED : R1 - R5 , PSW , ACC
; STACK : 2
;*********************************************************************
POCSAG_BUILD:
MOV R1,A
MOV R2,#15H ; TOTAL NEED MOVE 21 BIT
MOV A,@R1 ; POCSAG 1ST BYTE
RRC A
MOV R3,A
MOV @R1,A
INC R1 ; POCSAG 2ND BYTE
MOV A,@R1
RRC A
MOV R4,A
MOV @R1,A
INC R1 ; POCSAG 3RD BYTE
MOV A,@R1
ANL A,#0F0H
RRC A
MOV R5,A
MOV @R1,A
INC R1 ; POCSAG 4TH BYTE
MOVE_CONT:
MOV ACC,R3
JNB ACC.7,MOVE_CONT1
MOV A,R3
XRL A,#0EDH
MOV R3,A
MOV A,R4
XRL A,#020H
MOV R4,A
MOVE_CONT1:
CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
DJNZ R2,MOVE_CONT
MOVE_END:
MOV A,R3
RRC A
MOV R3,A
MOV A,R4
RRC A
SWAP A
ANL A,#0EH
MOV R4,A
MOV A,R3
SWAP A
ANL A,#0F0H
ORL A,R4
CLR C
RRC A
MOV @R1,A
DEC R1 ; POCSAG 3TH BYTE
MOV A,R3
SWAP A
ANL A,#07H
ORL A,@R1
MOV @R1,A
DEC R1
DEC R1 ; POCSAG 1ST BYTE
MOV R2,#04H
CLR C
POCSAG_ACK:
MOV A,@R1
JNB P,POCSAG_ACK_0
CPL C
POCSAG_ACK_0:
INC R1
DJNZ R2,POCSAG_ACK
RLC A
DEC R1 ; POCSAG 4TH BYTE
MOV @R1,A
POC_BUL_END:
RET
NOP
NOP
NOP
;*********************** POCSAG BUILD PRORAM END *********************
;**********************************************************************
;
; BUFFER DATA SEND
;
;**********************************************************************
DATA_SEND:
MOV A,#HAO_BUFFER
MOV R0,A
DEC DATA_NUM
MOV R2,#010H
READ_HAO:
MOV A,@R0
INC A
JNZ READ_HAO_OK
INC R0
NOP
DJNZ R2,READ_HAO
NOP
NOP
CLR C
RET
NOP
NOP
READ_HAO_OK:
MOV A,@R0
MOV SENDING_DATA,A
MOV @R0,#0FFH
CLR C
SUBB A,#064H
JC DATA_RIGHT
NOP
NOP
CLR C
RET
NOP
NOP
DATA_RIGHT:
ACALL POC_START
NOP
NOP
MOV A,#OLD_BUFFER
MOV R0,A
INC A
MOV R1,A
MOV R2,#0FH
DATA_TO_OLDBUF:
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,DATA_TO_OLDBUF
NOP
NOP
MOV A,SENDING_DATA
MOV @R0,A
NOP
MOV OLD_DELAY,#010H ; About 60 s
MOV A,#POCSAG_BUFFER
MOV R0,A
MOV ADD_93C_L,#08H
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV ADD_93C_L,#0AH
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV @R0,#033H
INC R0
MOV A,SENDING_DATA
MOV B,#0AH
DIV AB
NOP
NOP
MOV DPTR,#INFOR_BCD
MOVC A,@A+DPTR
ORL A,#030H
MOV @R0,A
INC R0
MOV A,B
MOVC A,@A+DPTR
SWAP A
MOV @R0,A
MOV SENDING_DATA,#0FFH
MOV A,#POCSAG_BUFFER
INC A
INC A
INC A
INC A
SETB C
ACALL POCSAG_BUILD
NOP
NOP
MOV ZHENG_HAO,#08H
SEND_DATA_WAIT1:
NOP
NOP
NOP
NOP
MOV WDRST,#01EH ; CLR WDT
NOP
MOV WDRST,#0E1H
NOP
NOP
MOV TMOD,#011H
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB EA
NOP
NOP
JB SYS_STATUS.0,SEND_DATA_WAIT1
NOP
NOP
ACALL DELAY
NOP
NOP
ACALL POC_START
NOP
NOP
SEND_DATA_WAIT2:
NOP
NOP
NOP
NOP
MOV WDRST,#01EH ; CLR WDT
NOP
MOV WDRST,#0E1H
NOP
NOP
MOV TMOD,#011H
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB EA
NOP
NOP
JB SYS_STATUS.0,SEND_DATA_WAIT2
NOP
NOP
CLR ET0
NOP
NOP
RET
NOP
NOP
INFOR_BCD: DB 000H,008H,004H,00CH,002H,00AH,006H,00EH,001H,009H,005H,00DH,003H,00B,007H,00FH
NOP
NOP
NOP
AJMP SYS_START
NOP
NOP
;**********************************************************************
;
; KEY1 SEND
;
;**********************************************************************
KEYS1_SEND:
MOV R7,#010H;
NOP
NOP
AJMP KEYS_SEND
NOP
NOP
KEYS2_SEND:
MOV R7,#020H;
NOP
NOP
KEYS_SEND:
MOV A,#POCSAG_BUFFER
MOV R0,A
CLR A
ORL A,R7
MOV ADD_93C_L,A
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV A,#02H
ORL A,R7
MOV ADD_93C_L,A
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV A,#08H
ORL A,R7
MOV ADD_93C_L,A
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV A,#0AH
ORL A,R7
MOV ADD_93C_L,A
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV @R0,A
INC R0
MOV A,BYTE2_93C
MOV @R0,A
INC R0
MOV A,#04H
ORL A,R7
MOV ADD_93C_L,A
NOP
NOP
ACALL READ_93C46
NOP
NOP
MOV A,BYTE1_93C
MOV ZHENG_HAO,A
NOP
NOP
ACALL POC_START
NOP
NOP
AJMP SEND_DATA_WAIT1
NOP
NOP
RET
NOP
NOP
;****************************************************************************
;
; POCSAG SEND START
;
;****************************************************************************
POC_START:
NOP
NOP
SETB SEND_PTT ; SEND ENABLE
NOP
NOP
ACALL DELAY
NOP
NOP
ACALL FREQ_BUILD
NOP
NOP
SETB SYS_STATUS.0
MOV SEND_BYTE,#00H
MOV SEND_BIT_NUM,#00H
MOV SEND_BYTE_NUM,#80H
MOV Next_Step,#00H
SETB ET0
NOP
NOP
POC_START_1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -