📄 rfcode40old.asm
字号:
CALL JIUCUO_ONEBIT
CALL CHECK ;100
LDP #4
LACL RESPONCE_FLAG
SUB #01H
BCND RESULT_ZHISHI,EQ
NOP
NOP
LAR AR3,#ADDR_JIUCUO_POSITION
MAR *,AR3
ADRK #01H
LACL *
SACL JIUCUO_COUNTER
CALL JIUCUO_ONEBIT
CALL CHECK ;010
LDP #4
LACL RESPONCE_FLAG
SUB #01H
BCND RESULT_ZHISHI,EQ
NOP
NOP
LAR AR3,#ADDR_JIUCUO_POSITION
MAR *,AR3
ADRK #02H
LACL *
SACL JIUCUO_COUNTER
CALL JIUCUO_ONEBIT
CALL CHECK ;001
B RESULT_ZHISHI
RESULT_ZHISHI:
LDP #4
LACL RESPONCE_FLAG
SUB #01H
BCND NO_RIGHT,NEQ
NOP
NOP
; CALL LIGHT_4 ;正确解码指示
CALL LED2_DL
LDP #0
SPLK #0FFFFH,60H
RPT 60H
NOP
CALL LED_GM
RET
NO_RIGHT:
NOP
NOP
CALL LED4_DL
LDP #0
SPLK #0FFFFH,60H
RPT 60H
NOP
CALL LED_GM
RET
NO_SOF_AFSK: CALL LED1_DL
LDP #0
SPLK #0FFFFH,60H
RPT 60H
NOP
CALL LED_GM
RET
;*****************ADD_JIUCUO***********************
;*******************************************
JIUCUO_ONEBIT:
LDP #5
LACL JIUCUO_COUNTER
SFR
SFR
SFR
SACL JIUCUO_BYTES
LACL JIUCUO_COUNTER
AND #07H
SACL JIUCUO_BITS
SPLK #01H,JIUCUO_TEMP
J_ZERO: LDP #5
LACL JIUCUO_BITS
BCND JC_CHANGE,EQ
NOP
NOP
LACL JIUCUO_TEMP
SFL
SACL JIUCUO_TEMP
LACL JIUCUO_BITS
SUB #01H
SACL JIUCUO_BITS
B J_ZERO
JC_CHANGE: LACL #ADDR_CAPTURE
ADD #01H
ADD JIUCUO_BYTES
SACL JIUCUO_BYTES
LAR AR3,JIUCUO_BYTES
MAR *,AR3
LACL *
SACL JIUCUO_COUNTER
AND JIUCUO_TEMP
BCND CHANGE_0TO1,EQ
NOP
NOP
LACL JIUCUO_TEMP
NEG
AND JIUCUO_COUNTER
SACL *
B CHANGE_OVER
CHANGE_0TO1: LACL JIUCUO_TEMP
OR JIUCUO_COUNTER
SACL *
CHANGE_OVER: NOP
NOP
RET
;**************************************************
;*****************************************************
AVERAGE_4H: MAR *,AR7
ADRK #04H
; LDP #05H
; SPLK #0,CAP4TEMP
; LAR AR5,#03H ;5
;JH_CYCLE: MAR *,AR7
; LACL *+,AR5
; ADD CAP4TEMP
; SACL CAP4TEMP
; BANZ JH_CYCLE
; NOP
; NOP ;37
LACL *+
ADD *+
ADD *+
ADD *+
***************************
SFR
SFR
MAR *,AR6
SACL *+
RET ;48
*****************************************************
AVERAGE_4L: MAR *,AR7
ADRK #01CH
LDP #05H
SPLK #0,CAP4TEMP
LAR AR5,#03H ;5
JL_CYCLE: MAR *,AR7
LACL *+,AR5
ADD CAP4TEMP
SACL CAP4TEMP
BANZ JL_CYCLE
NOP
NOP ;37
SFR
SFR
MAR *,AR6
SACL *+
RET ;48
***********************************;帧头的判断
SOF_JUDGE:LDP #4
SPLK #00h,RESPONCE_FLAG
LDP #5
SPLK #0,CAP4TEMP
; LAR AR6,#9D0H ;;;;;;;;;;;;;;;;;;;;;
LAR AR6,#89D0H
LAR AR5,#07H
SOFJ_CYCLE:
MAR *,AR6
LACL *+
SUB #35H
BCND GET_H,GEQ
NOP
NOP
LACL CAP4TEMP
SFL
SACL CAP4TEMP
B SOFJ_ON
GET_H: LACL CAP4TEMP
SFL
OR #01H
SACL CAP4TEMP
SOFJ_ON: MAR *,AR5
BANZ SOFJ_CYCLE
NOP
NOP
LACL CAP4TEMP
SUB #76H
BCND SOF_RIGHT,EQ
NOP
NOP
; CALL LIGHT_1 ;无返回信号指示
RET
SOF_RIGHT:
LDP #4
SPLK #02h,RESPONCE_FLAG
; CALL FSK_JIEMA
RET
**********************************************
IOPE56_L:LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6口输出为1
SACL PEDATDIR
RET
IOPE56_H:LDP #DP_PF2
LACL PEDATDIR
OR #060H
SACL PEDATDIR ;IOPE5,6口输出为1
RET
;(5)中断程序程序*/
_GISR4: ;优先级INT4中断人口
PUSH ;保护现场
SST #0,71H ;1
SST #1,72H ;1
LDP #0E0H ;2
LACC PIVR,1 ;1 ;读取外设中断向量寄存器(PIVR),并左移一位
ADD #PVECTORS ;1 ;加上外设中断人口地址
; ADD #44h
BACC ;4 ;跳到相应的中断服务子程序
_CAP3_ISR: ;捕获单元4中断程序入口
; LDP #DP_EVB ;2
; LACL CAP4FIFO ;1 ;读出捕获的值
; SPLK #0,T3CNT ;2 ;清 T3 计数值,使其重新计?
; SPLK #0FFFFh,EVBIFRC ;2
LDP #DP_EVA ;2
LACL CAP3FIFO ;1 ;读出捕获的值
SPLK #0,T2CNT ;2 ;清 T2 计数值,使其重新计?
SPLK #0FFFFh,EVAIFRC ;2
MAR *,AR7
SACL *+ ;20
JUDGE_FHL:LDP #5
LACL CAPNUM
ADD #01H
SACL CAPNUM
SUB SETNUM
BCND GISR4_RET,NEQ
NOP
NOP
; LDP #DP_EVB
; SPLK #00H,EVBIMRC
; LACL CAPCONB
; AND #0DFFFH
; SACL CAPCONB
LDP #DP_EVA
SPLK #00H,EVAIMRC
LACL CAPCONA
AND #0EFFFH
SACL CAPCONA
GISR4_RET:
LDP #0 ;2 ;中断返回;复现场
LST #1,72H ;2
LST #0,71H ;2
POP ;1
CLRC INTM ;1 ;开总中断,因为一进中断就自动关闭总中断
RET ;4 -->21
;***************************
*************************************8
*************************************
LEVEL_TXD: ; LAR AR3,#_ADDR_CODEN
MAR *,AR3
LACL #0BCH
SACL *+
LDP #4
LACL RESPONCE_FLAG
SACL *+
LACL #7EH
RPT #09H
SACL *+
LAR AR4,#0AFH
LAR AR5,#8A00H
PULSE_MV1: MAR *,AR5
LACL *+,AR3
SACL *+,AR4
BANZ PULSE_MV1
NOP
NOP
RET
*********88
ISO_LV_TXD: ;LAR AR3,#_ADDR_CODEN
MAR *,AR3
LACL #0BCH
SACL *+
LDP #4
LACL CARD_ALL
SACL *+
LACL #7EH
RPT #09H
SACL *+
LAR AR4,#0AFH
LAR AR5,#8A00H
PULSE_MV: MAR *,AR5
LACL *+,AR3
SACL *+,AR4
BANZ PULSE_MV
NOP
NOP
RET
******************************************************
DELAY250: RPT #0FFH
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DELAY_10MS: LAR AR4,#9930H
; KICK_DOG
;DDD_ON: RPT #0FFH
; NOP
; MAR *,AR4
; BANZ DDD_ON
; NOP
; NOP
; RET
DELAY_10MS: LAR AR4,#1538 ;10ms
DDD_ON: RPT #0FFH
NOP
MAR *,AR4
BANZ DDD_ON
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PARA_LOW_SPEED:NOP
LDP #5
SPLK #018H,SWIDTH
SPLK #030H,DWIDTH
SPLK #48H,TWIDTH
SPLK #48H,LONGHIGH
SPLK #0BH,WIDTH_SPACE
SPLK #889CH,ADDR_SJ
; SPLK #0105H,NUM_PRESAM
SPLK #0100H,NUM_PRESAM
; SPLK #69H,NUM_PREJUDGE
SPLK #64H,NUM_PREJUDGE
; SPLK #013AH,NUM_SJUDGE
SPLK #0135H,NUM_SJUDGE
SPLK #8A04H,ADDR_LEVEL
RET
PARA_HIGH_SPEED:NOP
LDP #5
SPLK #06H,SWIDTH
SPLK #0CH,DWIDTH
SPLK #12H,TWIDTH
SPLK #12H,LONGHIGH
SPLK #02H,WIDTH_SPACE
SPLK #886DH,ADDR_SJ
; SPLK #87H,NUM_PRESAM
SPLK #8CH,NUM_PRESAM
; SPLK #1AH,NUM_PREJUDGE
SPLK #1FH,NUM_PREJUDGE
; SPLK #94H,NUM_SJUDGE
SPLK #9DH,NUM_SJUDGE
SPLK #8A06H,ADDR_LEVEL
RET
*********************************************
RESET_TO_READY:
LDP #4
SPLK #240H,ADR_CODEN
SPLK #04H,CODEN_NUMBERS
LAR AR6,ADR_CODEN
MAR *,AR6
LACL #002H
SACL *+
LACL #026H
SACL *+
LACL #0C3H
SACL *+
LACL #078H
SACL *+
CALL SOFQ
CALL DATA_CODING
CALL ENDF
LAR AR4,#0500H
DELAY8: LDP #0
SPLK #0FFH,60H
RPT 60H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -