⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 holtek mouse usb asm. FW
💻 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 + -