📄 test.asm
字号:
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
NOP
MAR *,AR4
BANZ DELAY8
NOP
RET
;*********************发送数据帧头部信号**1/256****(clk:40M)********************
SOF: LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0 ;2
SPLK #016FH,COUNTER ;2
RPT COUNTER ;1
NOP
;***************** ;2
LDP #DP_PF2 ;1
LACL PEDATDIR ;1
OR #0060H ;IOPE5,6输出为1,56.64us(8DAH)
SACL PEDATDIR
LDP #0
SPLK #08CFH,COUNTER
RPT COUNTER
NOP
;*****************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
**********************
LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1
SACL PEDATDIR
RET
;*********************发送数据帧头部信号**1/4******(20M)******************
SOFQ: LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016EH,COUNTER
RPT COUNTER
NOP
;*****************
LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,37.76us(5E6)
SACL PEDATDIR
LDP #0
SPLK #05DAH,COUNTER
RPT COUNTER
NOP
;*****************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016EH,COUNTER
RPT COUNTER
NOP
**********************
LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,18.88us(2F3)
SACL PEDATDIR
LDP #0
SPLK #02EAH,COUNTER
RPT COUNTER
NOP
RET
;*********************发送数据帧结束信号******(40M)********************
;"ENDF"调用前有30个指令周期
ENDF: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,18.88us(2F3H)
SACL PEDATDIR
LDP #0 ;2C1=2F3-1E-14
SPLK #02C1H,COUNTER
RPT COUNTER
NOP
;*****************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
;****************
LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
RET
*************写指令时的附加结束信号************************
WENDF: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,60输出为1,18.88us(2F3H)
SACL PEDATDIR
LDP #0 ;2DF=2F3-14
SPLK #02DFH,COUNTER
RPT COUNTER
NOP
;*****************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
;****************
LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
RET
;**************************** 位置脉冲************(40M)*********************
;"PULSE"调用前有34个指令周期
PULSE: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,9.44us(17AH)
SACL PEDATDIR
LDP #0 ;142= 17A-22-16
SPLK #142H,COUNTER
RPT COUNTER
NOP
;**********************************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPB0输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016FH,COUNTER
RPT COUNTER
NOP
************************************
LDP #DP_PF2
LACL PEDATDIR
OR #060H ;IOPB0输出为1
SACL PEDATDIR
RET
;****************************18.88us的高电平*******(40M)*****************8*
;"HIGH1"调用前有34个指令周期
HIGH1: LDP #DP_PF2 ;2
LACL PEDATDIR ;1
OR #0060H ;2 ;IOPE5,6输出为1,18.88us(2F3)
SACL PEDATDIR
LDP #0
LACL #02B5H ;2B8=2F3-22-19
; SUB MODIFY
ADD MODIFY
SACL COUNTER
RPT COUNTER
NOP
LDP #0
SPLK #0,MODIFY
RET
;****************************18.88us的高电平*******(40M)*****************8*
;"HIGH2"调用前有24个指令周期
HIGH2: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,18.88us(2F3)
SACL PEDATDIR
LDP #0
LACL #02BFH ;2C2=2F3-18-19
; SUB MODIFY
ADD MODIFY
SACL COUNTER
RPT COUNTER
NOP
LDP #0
SPLK #0,MODIFY
RET
;**************************** 位置脉冲************(40M)*********************
;"QPULSE"调用前有50个指令周期
QPULSE: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,9.44us(17AH)
SACL PEDATDIR
LDP #0 ;132= 17A-32-16
SPLK #132H,COUNTER
RPT COUNTER
NOP
;**********************************
LDP #DP_PF2
LACL PEDATDIR
AND #0FF9FH ;IOPE5,6输出为0,9.44us(17AH)
SACL PEDATDIR
LDP #0
SPLK #016EH,COUNTER
RPT COUNTER
NOP
************************************
LDP #DP_PF2
LACL PEDATDIR
OR #060H ;IOPE5,6输出为1
SACL PEDATDIR
RET
;**1/4**************************18.88us的高电平*****(40M)*******************8*
;"QHIGH1"调用前有50个指令周期
QHIGH1: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,18.88us(2F3)
SACL PEDATDIR ;2AD=2F3-32-14
LDP #0
SPLK #02ADH,COUNTER
RPT COUNTER
NOP
RET
;**1/4**************************18.88us的高电平*****(20M)*******************8*
;"QHIGH2"调用前有14个指令周期
QHIGH2: LDP #DP_PF2
LACL PEDATDIR
OR #0060H ;IOPE5,6输出为1,18.88us(2F3)
SACL PEDATDIR ;2D1=2F3-E-14
LDP #0
SPLK #02D1H,COUNTER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -