📄 main.asm
字号:
INCLUDE DONGLE.INC
;FUNCTIONS AND VARIABLES DEFINED IN USB_OPER.ASM
EXTERN INIT_USB :NEAR
EXTERN USB_ROUTINE :NEAR
EXTERN USB_CONFIGURATION_DONE :BIT
EXTERN WRITE_FIFO2 :NEAR
;FUNCTIONS AND VARIABLES DEFINED IN RF_OPER.ASM
EXTERN INIT_RF :NEAR
EXTERN RF_REFILL_COMMAND :NEAR
EXTERN RF_CHANGE_TO_TX :NEAR
EXTERN RF_CHANGE_TO_RX :NEAR
EXTERN RF_WAIT_DATA :NEAR
EXTERN RF_FIFO_WRITE :NEAR
EXTERN TEST_RF :NEAR
;FUNCTIONS AND VARIABLES DEFINED IN TIMER_OPER.ASM
EXTERN INIT_TIMER :NEAR
EXTERN TIME_EVENT :BIT
;EXTERN TEST_V:BYTE
;FUNCTIONS AND VARIABLES DEFINED IN CHANNEL_MANA.ASM
EXTERN CHANNEL_SCAN :NEAR
EXTERN GET_NEXT_CHANNEL :NEAR
EXTERN GET_NEXT_2CHANNELS :NEAR
EXTERN RSSI_CHECK :NEAR
EXTERN INIT_CHANNEL_MANA :NEAR
MAIN_CODE .SECTION AT 0000H 'CODE'
JMP START
MAIN_FLOW .SECTION AT 0010H 'CODE'
START:
CALL INIT_RAM
CALL INIT_RF
CALL INIT_CHANNEL_MANA
CALL INIT_TIMER
CALL INIT_USB
CLR LED_PIN_CTRL
SET LED_PIN
CLR PCC.2
CLR PC.2
MAINLOOP:
CALL USB_ROUTINE
SNZ USB_CONFIGURATION_DONE
JMP MAINLOOP
SET [0EH].4
SNZ TIME_EVENT
JMP NOT_DO_RF_COMMUNICATION
CLR TIME_EVENT
CALL RF_FIFO_WRITE ;SEND A COMMAND
CALL RF_CHANGE_TO_RX
CALL RF_WAIT_DATA
CALL RSSI_CHECK
CALL GET_NEXT_CHANNEL
CALL GET_NEXT_2CHANNELS
CALL RF_REFILL_COMMAND
CALL RF_CHANGE_TO_TX
NOT_DO_RF_COMMUNICATION:
JMP MAINLOOP
INIT_RAM:
;ALWAYS LET MP1 POINTS TO BANK 1
MOV A, 1
MOV BP, A
;INITIALIZE RAM CONTENT TO ZERO (20H~BFH)
MOV A, 020H
MOV MP0, A
INIT_RAM_LOOP:
CLR ID0
INC MP0
MOV A, 0C0H
XOR A, MP0
SZ ACC
JMP INIT_RAM_LOOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -