📄 interrupt.asm
字号:
;;---------------------------------------------------------
;; ISR_TMR TMR INTRRUPT SERVICE
;; description START AD EVERY 1S,every in 5ms
;; input NULL
;; onput NULL
;; stack use NULL
;;---------------------------------------------------------
ISR_TMR1:
M_PUSH
INC M_TMR_MS
MOV A,M_TMR_MS
SUB A,C_TMR_MS ;WAIT 250MS?
SNZ C
JMP ISR_TMR1_END ;NO,END
CLR START
SET START
CLR START ;START AD
CLR M_TMR_MS
ISR_TMR1_END:
M_POP
RETI
;;---------------------------------------------------------
;; ISR_AD AD INTRRUPT SERVICE
;; description LOAD AD SEND TO PC
;; input NULL
;; onput NULL
;; stack use NULL
;;---------------------------------------------------------
ISR_AD:
M_PUSH
MOV A,OFFSET M_AD_BUF0
ADD A,M_AD_COUNT
MOV MP0,A
CALL SBR_RT_table
MOV R0,A
INC M_AD_COUNT
MOV A,M_AD_COUNT
SUB A,C_FIFOSize
SNZ C
JMP ISR_AD_END
CLR M_AD_COUNT
SET F_AD_FULL
ISR_AD_END:
M_POP
RETI
ORG 0E00H
SBR_RT_table:
MOV A,OFFSET RT_table
MOV TBLP,A
MOV A,ADRH
ADDM A,TBLP
MOV A,ADRL
TABRDC ACC
RET
RT_table:
DC 150,150,150,150,151,151,151,151
DC 151,151,151,151,151,151,151,151
DC 151,151,151,151,151,140,138,136
DC 135,133,132,130,128,127,125,124
DC 123,122,120,119,118,117,116,115
DC 114,113,112,111,110,110,108,108
DC 107,106,105,104,104,103,102,101
DC 101,100,99,99,98,97,97,96,95,95
DC 94,94,93,92,92,91,90,90
DC 90,89,88,88,87,87,87,86
DC 85,85,84,83,83,83,82,82
DC 81,81,80,80,79,79,79,78
DC 78,77,77,76,76,76,75,75
DC 74,74,73,73,72,72,72,71
DC 71,71,70,70,69,69,69,68
DC 68,67,67,66,66,66,65,65
DC 64,64,64,63,63,63,62,62
DC 61,61,61,60,60,59,59,59
DC 58,58,57,57,57,56,56,55
DC 55,54,54,53,53,52,52,51
DC 51,51,50,50,49,49,49,48
DC 48,47,47,47,46,46,45,45
DC 44,44,44,43,43,42,42,41
DC 41,41,40,40,40,39,38,38
DC 37,37,36,36,35,35,34,34
DC 33,33,32,32,31,31,30,30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -