main.asm

来自「holtek mouse usb asm. FW」· 汇编 代码 · 共 95 行

ASM
95
字号
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 + =
减小字号Ctrl + -
显示快捷键?