📄 pro_oper.asm
字号:
INCLUDE REG_DEF.INC
PUBLIC COMM_SYNC
PUBLIC GET_NEXT_CHANNEL
EXTERN START :NEAR
EXTERN RF_CHANGE_TO_RX :NEAR
EXTERN SEN_ENTRY_SLEEP_MODE :NEAR
PROTOCOL_CODE .SECTION 'CODE'
COMM_SYNC:
CLR PROTOCOL_COUNT
CLR TRRDY
CALL RF_CHANGE_TO_RX
KEEP_WAIT_FSP:
SET TRRDY
SZ TRINT
JMP COMM_SYNC_GOT_FSP
MOV A, 40
XOR A, TIMER_COUNT
SZ ACC
JMP KEEP_WAIT_FSP
CLR TRRDY
CLR TIMER_ENABLE
CLR TIMER_COUNT
MOV A, 105
MOV TMR, A
CALL GET_NEXT_CHANNEL
CALL RF_CHANGE_TO_RX
MOV A, 02AH
XOR A, RF_CHANNEL
SZ ACC
JMP NOT_ONE_CHANNEL_ROUND
INC PROTOCOL_COUNT
MOV A, 230
XOR A, PROTOCOL_COUNT
SZ ACC
JMP NOT_ONE_CHANNEL_ROUND
CLR PSB
SET TRRDY
HALT
SET RESUME_FROM_HALT
RET
NOT_ONE_CHANNEL_ROUND:
SET TIMER_ENABLE
JMP KEEP_WAIT_FSP
COMM_SYNC_GOT_FSP:
CLR TRRDY
CLR TIMER_ENABLE
CLR TIMER_COUNT
MOV A, 105
MOV TMR, A
SET TIMER_ENABLE
RET
CHN_CODE .SECTION AT 0900H 'CODE'
GET_NEXT_CHANNEL:
SZ NEXT_1_CHANNEL
JMP USE_DONGLE_CHANNEL
JMP USE_DEFAULT_CHANNEL
USE_DONGLE_CHANNEL:
MOV A, NEXT_1_CHANNEL
MOV CHANNEL_INDEX, A
DEC CHANNEL_INDEX
MOV A, NEXT_2_CHANNEL
MOV NEXT_1_CHANNEL, A
MOV A, NEXT_3_CHANNEL
MOV NEXT_2_CHANNEL, A
MOV A, NEXT_4_CHANNEL
MOV NEXT_3_CHANNEL, A
MOV A, NEXT_5_CHANNEL
MOV NEXT_4_CHANNEL, A
CLR NEXT_5_CHANNEL
JMP GET_RF_CHANNEL
USE_DEFAULT_CHANNEL:
INC CHANNEL_INDEX
MOV A, CHANNEL_INDEX
XOR A, 80
SZ ACC
JMP NOT_RST_CHANNEL_INDEX
CLR CHANNEL_INDEX
GET_RF_CHANNEL:
NOT_RST_CHANNEL_INDEX:
MOV A, CHN_LIST
ADD A, CHANNEL_INDEX
MOV TBLP, A
TABRDC RF_CHANNEL
RET
CHN_LIST:
DC 2, 22, 42, 62
DC 3, 23, 43, 63
DC 4, 24, 44, 64
DC 5, 25, 45, 65
DC 6, 26, 46, 66
DC 7, 27, 47, 67
DC 8, 28, 48, 68
DC 9, 29, 49, 69
DC 10, 30, 50, 70
DC 11, 31, 51, 71
DC 12, 32, 52, 72
DC 13, 33, 53, 73
DC 14, 34, 54, 74
DC 15, 35, 55, 75
DC 16, 36, 56, 76
DC 17, 37, 57, 77
DC 18, 38, 58, 78
DC 19, 39, 59, 79
DC 20, 40, 60, 80
DC 21, 41, 61, 81
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -