📄 test.asm
字号:
; NOP
; NOP ;读取区域内的全部标签
; CALL RESET_TO_READY
; CALL INV_QUIET
; B ISOCMD_TXDF
;NEW_READF: CALL INV_QUIET ;读取区域内新出现的标签
;*************
;ISOCMD_TXDF:
; LDP #4
; LACL CARD_ALL
; BCND SUCCESS_INVF,GT
; NOP
; NOP
; LACL #0
; B FSK_OUT
;SUCCESS_INVF:LACL #1
;******************************************
FSK_OUT: NOP
NOP
RET
;*************捕获FSK信号******************************
RESET_TO_RDY_H:
LAR AR3,#_ISOMode
MAR *,AR3
LACL #20H
SACL *
LAR AR3,#_viccdata
MAR *,AR3
LACL #05H
SACL *+
LACL #03H ;FSK,HIGH RATE
SACL *+
LACL #26H
SACL *+
LACL #01BH
SACL *+
LACL #061H
SACL *+
RET
GET_SYSINF_L:
LAR AR3,#_ISOMode
MAR *,AR3
LACL #20H
SACL *
LAR AR3,#_viccdata
MAR *,AR3
LACL #05H
SACL *+
LACL #01H ;FSK,LOW RATE
SACL *+
LACL #2BH
SACL *+
LACL #04EH
SACL *+
LACL #089H
SACL *+
RET
GET_SYSINF_H:
LAR AR3,#_ISOMode
MAR *,AR3
LACL #20H
SACL *
LAR AR3,#_viccdata
MAR *,AR3
LACL #05H
SACL *+
LACL #03H ;FSK,HIGH RATE
SACL *+
LACL #2BH
SACL *+
LACL #0FEH
SACL *+
LACL #0BAH
SACL *+
RET
WRITE_SINGLE_H:
LAR AR3,#_ISOMode
MAR *,AR3
LACL #34H
SACL *
LAR AR3,#_viccdata
MAR *,AR3
LACL #0AH ;FSK,HIGH RATE
SACL *+
LACL #43H
SACL *+
LACL #21H
SACL *+
LACL #00H
SACL *+
LACL #011H
SACL *+
LACL #022H
SACL *+
LACL #033H
SACL *+
LACL #044H
SACL *+
LACL #020H
SACL *+
LACL #93H
SACL *+
RET
;****************************************************
FSK_JIEMA: LAR AR7,#ADDR_CAPTURE
LDP #5
SPLK #1,RXD_BYTES
; LAR AR7,#8B60H
MAR *,AR7
LACL #00H
SACL *+
LAR AR6,#8B80H
LDP #5
LACL STAGE
RPT #03H
SFR
ADD #01H
SACL STAGE
LAR AR4,STAGE
MAR *,AR4
SBRK #01H
SUB #03H
BCND S_JIEMA,GEQ
NOP
NOP ;ERROR
RET
S_JIEMA:
****************************************
SAR AR6,TEMP
MAR *,AR6
ADRK #02H
LACL *+
SUB #35H
BCND JM_NOW,LT
NOP
NOP
LACL *+
SUB #35H
BCND JM_NOW,LT
NOP
NOP
LACL *+
SUB #35H
BCND JM_NOW,LT
NOP
NOP
B JIAOYAN
****************************************
JM_NOW: LAR AR6,TEMP
LAR AR5,#07H
SPLK #0,CAP4TEMP
JM_CYCLE: MAR *,AR6
LACL *+
SUB *+
BCND GET_ZERO,GEQ
NOP
NOP
LACL CAP4TEMP
SFR
OR #80H
SACL CAP4TEMP
B JM_ON
GET_ZERO: LACL CAP4TEMP
SFR
SACL CAP4TEMP
JM_ON: MAR *,AR5
BANZ JM_CYCLE
NOP
NOP
LACL CAP4TEMP
MAR *,AR7
SACL *+
LACL RXD_BYTES
ADD #01H
SACL RXD_BYTES
MAR *,AR4
BANZ S_JIEMA
NOP
LACL STAGE
SACL RXD_BYTES
JIAOYAN: NOP
*****************
LAR AR6,#2CAH
LDP #5
LACL RXD_BYTES
MAR *,AR6
SACL *+
LACL STAGE
SACL *
CALL CHECK ;校验
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
; LDP #4
; LACL RESPONCE_FLAG
; SUB #02H
; BCND NO_SOF_AFSK,NEQ
; CALL LIGHT_8 ;SOF指示
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
*****************************************************
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -