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

📄 main.lst

📁 holtek mouse .asm firewave
💻 LST
字号:
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              INCLUDE	REG_DEF.INC


   2  0000              
   3  0000              PUBLIC	START
   4  0000              
   5  0000              EXTERN	MICROC_INIT				:NEAR
   6  0000              EXTERN	SEN_INIT				:NEAR
   7  0000              EXTERN	SEN_READ_MONTION		:NEAR
   8  0000              EXTERN	SEN_ENTRY_SLEEP_MODE	:NEAR
   9  0000              EXTERN	SEN_RESUME				:NEAR
  10  0000              EXTERN	DELAY_100US				:NEAR
  11  0000              
  12  0000              EXTERN	INIT_RF					:NEAR
  13  0000              EXTERN	WAIT_FSP				:NEAR
  14  0000              EXTERN	RF_CHANGE_TO_RX			:NEAR
  15  0000              EXTERN	RF_CHANGE_TO_TX			:NEAR
  16  0000              EXTERN	RF_FIFO_WRITE			:NEAR
  17  0000              EXTERN	RF_FIFO_READ			:NEAR
  18  0000              EXTERN	CHECK_FSP				:NEAR
  19  0000              EXTERN	RF_REFILL_DATA			:NEAR
  20  0000              
  21  0000              EXTERN	DRAW_CIRCLE				:NEAR
  22  0000              
  23  0000              EXTERN	TEST_RF					:NEAR
  24  0000              
  25  0000              EXTERN	SCAN_KEY				:NEAR
  26  0000              
  27  0000              EXTERN	INIT_TIMER				:NEAR
  28  0000              
  29  0000              EXTERN	COMM_SYNC				:NEAR
  30  0000              EXTERN	GET_NEXT_CHANNEL		:NEAR
  31  0000              
  32  0000              EXTERN	POWER_CTRL				:NEAR
  33  0000              
  34  0000              
  35  0000              BOOT_CODE	.SECTION	AT 0000H	'CODE'
  36  0000              
  37  0000  2810        	JMP		START
  38  0001              
  39  0000              MAIN_CODE	.SECTION 	AT 0010H 	'CODE'
  40  0000              
  41  0000              START:
  42  0000  2000     E  		CALL	MICROC_INIT					; INITIALIZE THE MCU RAM AND I/O
  43  0001  2000     E  		CALL	INIT_TIMER					; INITIALIZE THE TIMER
  44  0002  2000     E  		CALL	SEN_INIT					; INITIALIZE THE OPTICAL SENSOR
  45  0003  2000     E  		CALL	INIT_RF						; INITIALIZE THE ARF2496K
  46  0004              
  47  0004              		; CHECK IF THE USER WANT TO ENTRY TEST MODE OR NOT
  48  0004              		; IF LEFT-BUTTON, RIGHT-BUTTON AND MIDDLE-BUTTON ARE PRESSED, THEN 
  49  0004              		; ENTRY CIRCLE TEST MODE
  50  0004  3062        		SET		CIRCLE_TEST
  51  0005  3D12        		SZ		R_BUT	;PA.2
  52  0006  281D        		JMP		NOT_CIRCLE_TEST
  53  0007  3D92        		SZ		L_BUT	;PA.3
  54  0008  281D        		JMP		NOT_CIRCLE_TEST
  55  0009  3E12        		SZ		M_BUT	;PA.4
  56  000A  281D        		JMP		NOT_CIRCLE_TEST
  57  000B              
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 2

  58  000B              		; ENTRY CIRCLE TEST MODE, SENSOR SHOULD BE OFF
  59  000B  2000     E  		CALL	SEN_ENTRY_SLEEP_MODE
  60  000C  281E        		JMP		UN_SYNC
  61  000D              
  62  000D              	NOT_CIRCLE_TEST:
  63  000D  3462        		CLR		CIRCLE_TEST
  64  000E              
  65  000E              	UN_SYNC:
  66  000E              		; ENABLE TIMER AND SEEK FOR FSP FOR SYNC WITH DONGLE
  67  000E  320E        		SET		TIMER_ENABLE
  68  000F  2000     E  		CALL	COMM_SYNC
  69  0010  3CE2        		SZ		RESUME_FROM_HALT
  70  0011  2810        		JMP		START
  71  0012  2000     E  		CALL	RF_FIFO_READ
  72  0013              
  73  0013  2825        		JMP		SYNCED
  74  0014              ;====================================================================================
  75  0014              	MAIN_LOOP:
  76  0014              		;Still wait for FSP, even the RF chip is shuted down;
  77  0014              		;To maintain the clock ticking for 8ms period
  78  0014  2000     E  		CALL	WAIT_FSP
  79  0015              
  80  0015              	SYNCED:
  81  0015              		; IF RF IS NOT SHUTTED DOWN, THEN CHECK THE FSP PACKET
  82  0015  3C73        		SZ		POWER_MODE.0
  83  0016              
  84  0016  2840                        JMP		POWER_MODE_0_2
  85  0017              
  86  0017  2000     E  		CALL	CHECK_FSP
  87  0018              
  88  0018  3C66        		SZ		VALID_FSP
  89  0019  283B        		JMP		VALID_FSP_GOT
  90  001A              
  91  001A  3D73        		SZ		POWER_MODE.2
  92  001B  282E        		JMP		AA2
  93  001C              
  94  001C  3966        		SNZ		DONGLE_LINKED
  95  001D  281E        		JMP		UN_SYNC
  96  001E              
  97  001E              	AA2:
  98  001E              
  99  001E  14EF        		INC		NO_FSP_COUNT
 100  001F  0F06        		MOV		A, 6
 101  0020  046F        		XOR		A, NO_FSP_COUNT
 102  0021  1085        		SZ		ACC
 103  0022  283C        		JMP		NOT_VALID_FSP_GOT
 104  0023              
 105  0023  1F6F        		CLR		NO_FSP_COUNT
 106  0024  3566        		CLR		DONGLE_LINKED
 107  0025  3973        		SNZ		POWER_MODE.2
 108  0026  281E        		JMP		UN_SYNC
 109  0027              
 110  0027  3D73        		SZ		POWER_MODE.2 
 111  0028  15EF        		DEC		NO_FSP_COUNT 
 112  0029              
 113  0029  3D73        		SZ		POWER_MODE.2 
 114  002A  2840        		JMP		POWER_MODE_0_2
 115  002B              
 116  002B              	VALID_FSP_GOT:
 117  002B              
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 3

 118  002B              		; IF VALID FSP IS RECEIVED, RESET NO_FSP_COUNT		
 119  002B  1F6F        		CLR		NO_FSP_COUNT
 120  002C              
 121  002C              	NOT_VALID_FSP_GOT:
 122  002C              
 123  002C  3D73        		SZ		POWER_MODE.2
 124  002D  2840        		JMP		AA3
 125  002E              
 126  002E  3873                        SNZ		POWER_MODE.0
 127  002F              		; NO_FSP_COUNT < 6, THEN STILL SYNC WITH DONGLE, STILL SEND OUT THE DATA 
 128  002F              		; PACKET.
 129  002F  2000     E  		CALL	RF_CHANGE_TO_TX
 130  0030              
 131  0030              	AA3:
 132  0030              	
 133  0030              	POWER_MODE_0_2:
 134  0030  3862        		SNZ		CIRCLE_TEST
 135  0031  2000     E  		CALL	SEN_READ_MONTION
 136  0032  3C62        		SZ		CIRCLE_TEST
 137  0033  2000     E  		CALL	DRAW_CIRCLE
 138  0034              
 139  0034  2000     E  		CALL	SCAN_KEY
 140  0035              
 141  0035  3D73        		SZ		POWER_MODE.2
 142  0036  2849        		JMP		AA1
 143  0037              
 144  0037  3873        		SNZ		POWER_MODE.0
 145  0038  2000     E  		CALL	RF_REFILL_DATA
 146  0039              
 147  0039              	AA1:
 148  0039              
 149  0039              		;TIME GATE, HOLD TO TRANSMIT MOUSE DATA TO THE DONGLE,
 150  0039              		;TO MEET THE TIME SLOT REQUIREMENT
 151  0039              	WAIT_TG_0:
 152  0039  0F1E        		MOV		A, 30
 153  003A  440D        		XOR		A, TIMER_COUNT
 154  003B  1085        		SZ		ACC
 155  003C  2849        		JMP		WAIT_TG_0
 156  003D              
 157  003D              		; IF OVER 100 COMMUNICATION HAS NO EVENT FROM BUTTONS, WHEEL AND SENSOR,
 158  003D              		; STOP TO SEND DATA TO THE DONGLE
 159  003D  3C64        		SZ		XYZ_ZERO_FLAG
 160  003E  2851        		JMP		NOT_CHECK_FSP
 161  003F              
 162  003F              		; IF RF IS SHUTTED DOWN, NOT TO WRITE DATA TO THE RF
 163  003F  3873        		SNZ		POWER_MODE.0
 164  0040  2000     E  		CALL	RF_FIFO_WRITE
 165  0041              		
 166  0041              	NOT_CHECK_FSP:
 167  0041                              ; IF IT IS CIRCLE TEST MODE, THEN DO NOT HANDLE POWER SAVING CONTROL
 168  0041  3862        		SNZ		CIRCLE_TEST
 169  0042  2000     E  		CALL	POWER_CTRL
 170  0043  3CE2        		SZ		RESUME_FROM_HALT
 171  0044  2810        		JMP		START
 172  0045              
 173  0045  3D73        		SZ		POWER_MODE.2
 174  0046  285B        		JMP		AA4
 175  0047              		; IF RF IS SHUTTED DOWN, NOT TO CHANGE CHANNEL
 176  0047  3873        		SNZ		POWER_MODE.0
 177  0048  2000     E  		CALL	GET_NEXT_CHANNEL
"File: MAIN.ASM      Holtek Cross-Assembler  Version 2.86      Page 4

 178  0049              
 179  0049              		; IF RF IS SHUTTED DOWN, NOT TO SWITCH RF TO RX MODE
 180  0049  3873        		SNZ		POWER_MODE.0
 181  004A  2000     E  		CALL	RF_CHANGE_TO_RX
 182  004B              
 183  004B              	AA4:
 184  004B              
 185  004B              
 186  004B              
 187  004B              		;TIME GATE, HOLD TO TURN ON RF-FRONT CIRCUIT,
 188  004B              		;TO MEET THE TIME SLOT REQUIREMENT FOR POWER CONSUMPTION REDUCTION
 189  004B              	WAIT_TG_1:
 190  004B  0F49        		MOV		A, 73
 191  004C  440D        		XOR		A, TIMER_COUNT
 192  004D  1085        		SZ		ACC
 193  004E  285B        		JMP		WAIT_TG_1
 194  004F              	
 195  004F  2824        		JMP		MAIN_LOOP
 196  0050              
 197  0050  0003        		RET


        0 Errors

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -