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

📄 channel_mana.lst

📁 holtek mouse usb asm. FW
💻 LST
📖 第 1 页 / 共 3 页
字号:
"File: CHANNEL_MANA.ASM  Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              INCLUDE DONGLE.INC


   2  0000              
   3  0000              PUBLIC		INIT_CHANNEL_MANA
   4  0000              PUBLIC		CHANNEL_SCAN
   5  0000              PUBLIC		RSSI_CHECK
   6  0000              PUBLIC		GET_NEXT_CHANNEL
   7  0000              PUBLIC		GET_NEXT_2CHANNELS
   8  0000              
   9  0000              PUBLIC		NEXT_1_CHANNEL
  10  0000              PUBLIC		NEXT_2_CHANNEL
  11  0000              PUBLIC		NEXT_3_CHANNEL
  12  0000              PUBLIC		NEXT_4_CHANNEL
  13  0000              PUBLIC		NEXT_5_CHANNEL
  14  0000              
  15  0000              
  16  0000              EXTERN		RF_CHANNEL			:BYTE
  17  0000              EXTERN		RF_REG_ADDRESS		:BYTE
  18  0000              EXTERN		RF_REG_DATA			:BYTE
  19  0000              EXTERN		CHANNEL_INDEX		:BYTE
  20  0000              
  21  0000              EXTERN		RF_REG_READ			:NEAR
  22  0000              EXTERN		RF_REG_WRITE		:NEAR
  23  0000              
  24  0000              CHANNEL_MANA	.SECTION 'DATA'
  25  0000              
  26  0000              
  27  0000              
  28  0000  00          BIT_MASK_INDEX		DB	?
  29  0001  00          CHANNEL_BIT_MASK	DB	?
  30  0002  00          RSSI_LIMIT			DB	?
  31  0003  00          SAFE_CHANNEL_CNT	DB	?
  32  0004  00          CHANNEL_IDX_TEMP	DB	?
  33  0005  00          NEXT_1_CHANNEL		DB	?
  34  0006  00          NEXT_2_CHANNEL		DB	?
  35  0007  00          NEXT_3_CHANNEL		DB	?
  36  0008  00          NEXT_4_CHANNEL		DB	?
  37  0009  00          NEXT_5_CHANNEL		DB	?
  38  000A  00          RF_CHANNEL_RSSI		DB	?
  39  000B  00          CHANNEL_IDX_RSSI	DB	?
  40  000C  00          RSSI_ACC_TEMP		DB	?
  41  000D  00          RSSI_ACC_LIMIT		DB	?
  42  000E  00          RSSI_RB_TEMP		DB	?
  43  000F  00          RSSI_RB_CNT			DB	?
  44  0010  00          RSSI_RB_1			DB	?
  45  0011              ;RSSI_RB_2			DB	?
  46  0011              ;RSSI_RB_3			DB	?
  47  0011  00          RF_CHANNEL_TEMP		DB	?
  48  0012  00          RSSI_INC_FLAG		DBIT
  49  0013              
  50  0013              
  51  0013              
  52  0000              CHANNEL_MANA_CODE	.SECTION 'CODE'
  53  0000              
  54  0000              INIT_CHANNEL_MANA:
  55  0000              
  56  0000  0F50        		MOV		A, 80
  57  0001  0080     R  		MOV		SAFE_CHANNEL_CNT, A
"File: CHANNEL_MANA.ASM  Holtek Cross-Assembler  Version 2.86      Page 2

  58  0002  0F02        		MOV		A, 2
  59  0003  0080     R  		MOV		RSSI_LIMIT, A
  60  0004  0F01        		MOV		A, 1
  61  0005  0080     R  		MOV		RSSI_ACC_LIMIT, A
  62  0006              
  63  0006  1F00     R  		CLR		CHANNEL_IDX_RSSI
  64  0007  0F02        		MOV		A, 2
  65  0008  0080     R  		MOV		RF_CHANNEL_RSSI, A
  66  0009              
  67  0009  0003        		RET
  68  000A              		
  69  000A              
  70  000A              CHANNEL_SCAN:
  71  000A              
  72  000A              
  73  000A  0003        		RET
  74  000B              
  75  000B              RSSI_CHECK:
  76  000B              
  77  000B  3116        		SET		PC.2
  78  000C              
  79  000C              	RSSI_CA:
  80  000C  0700     R  		MOV		A, CHANNEL_IDX_RSSI	; INIT:0
  81  000D  0080     R  		MOV		CHANNEL_IDX_TEMP, A
  82  000E              
  83  000E              		;CALL	GET_RF_CHANNEL_RSSI
  84  000E              
  85  000E              		; CHANGE TO RX MODE
  86  000E  1F00     E  		CLR		RF_REG_ADDRESS
  87  000F  0700     R  		MOV		A, RF_CHANNEL_RSSI	; RF_CHANNEL_RSSI <-- 2 ,WHEN INIT_CHANNEL_MANA()
  88  0010  0080     E  		MOV		RF_REG_DATA, A
  89  0011  2000     E  		CALL	RF_REG_WRITE			; CHANGE MODE TO "RX" AND CHANNEL TO "RF_CHANNEL_RSSI"
  90  0012              
  91  0012              		; CHANGE TO DIRECT MODE
  92  0012  0F02        		MOV		A, 002H
  93  0013  0080     E  		MOV		RF_REG_ADDRESS, A
  94  0014  0F28        		MOV		A, 028H			; 0010 1000
  95  0015  0080     E  		MOV		RF_REG_DATA, A
  96  0016  2000     E  		CALL	RF_REG_WRITE
  97  0017              
  98  0017              		;ENABLE RSSI REFRESH BY ASSIGN RSSI_CCA=1
  99  0017  0F03        		MOV		A, 003H
 100  0018  0080     E  		MOV		RF_REG_ADDRESS, A
 101  0019  0F90        		MOV		A, 090H			; 1001 0000
 102  001A  0080     E  		MOV		RF_REG_DATA, A		;    |
 103  001B  2000     E  		CALL	RF_REG_WRITE			;    RSSI_CCA
 104  001C              
 105  001C              		;POWER-UP RF FRONT
 106  001C              		;SET		TRRDY
 107  001C              
 108  001C              	WAIT_RSSI_REFRESH_DONE:
 109  001C  2000     E  		CALL	RF_REG_READ
 110  001D  3C00     E  		SZ		RF_REG_DATA.4		; RSSI_CCA:1->0 MEANS REFRESH "RSSIVAL" DONE
 111  001E  2800     R  		JMP		WAIT_RSSI_REFRESH_DONE
 112  001F              
 113  001F              		;CLR		TRRDY
 114  001F              		
 115  001F  0F04        		MOV		A, 004H
 116  0020  0080     E  		MOV		RF_REG_ADDRESS, A
 117  0021  2000     E  		CALL	RF_REG_READ
"File: CHANNEL_MANA.ASM  Holtek Cross-Assembler  Version 2.86      Page 3

 118  0022              
 119  0022  0700     E  		MOV		A, RF_REG_DATA		; NOW RF_REG_DATA.3~0:RSSIVAL
 120  0023  0E0F        		AND		A, 00FH			; 0000XXXX
 121  0024              
 122  0024  0300     R  		ADD		A, RSSI_RB_1		; INIT:0
 123  0025  1985        		RR		ACC			; X0000XXX
 124  0026  0E7F        		AND		A, 07FH			; 01111111
 125  0027  0080     R  		MOV		RSSI_RB_1, A		; RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST TIME) ) MOD 2
 126  0028              
 127  0028              ;		MOV		RSSI_RB_TEMP, A
 128  0028              ;
 129  0028              ;		MOV		A, RSSI_RB_2
 130  0028              ;		MOV		RSSI_RB_1, A
 131  0028              ;
 132  0028              ;		MOV		A, RSSI_RB_3
 133  0028              ;		MOV		RSSI_RB_2, A
 134  0028              ;
 135  0028              ;		MOV		A, RSSI_RB_TEMP
 136  0028              ;		MOV		RSSI_RB_3, A
 137  0028              
 138  0028              		;CHECK READED RSSI VALUE, IF RSSIVAL > RSSI_LIMIT THEN ACC = 0XFF
 139  0028              ;		SUB		A, RSSI_LIMIT
 140  0028              ;		SZ		ACC.7
 141  0028              ;		JMP		ACC_TO_ZERO
 142  0028              ;
 143  0028              ;		SET		ACC
 144  0028              ;		JMP		GOTO_REFRESH_RSSI
 145  0028              ;
 146  0028              ;	ACC_TO_ZERO:
 147  0028              ;
 148  0028              ;		CLR		ACC
 149  0028              ;
 150  0028              ;	GOTO_REFRESH_RSSI:
 151  0028              
 152  0028              ;		CALL	REFRESH_RSSI_ACC_A
 153  0028              ;		CALL	REFRESH_RSSI_ACC
 154  0028              
 155  0028              		; CHANGE BACK TO BURST MODE
 156  0028  0F02        		MOV		A, 002H
 157  0029  0080     E  		MOV		RF_REG_ADDRESS, A
 158  002A  0F68        		MOV		A, 068H			; 0110 1000
 159  002B  0080     E  		MOV		RF_REG_DATA, A		;  |
 160  002C  2000     E  		CALL	RF_REG_WRITE			;  BURST MODE
 161  002D              
 162  002D              
 163  002D  1480     R  		INC		RSSI_RB_CNT		; 0~7 ROTATIONs "NOT INC RSSI CHANNEL"
 164  002E  0F08        		MOV		A, 8
 165  002F  0400     R  		XOR		A, RSSI_RB_CNT
 166  0030  1085        		SZ		ACC
 167  0031  2800     R  		JMP		NOT_INC_RSSI_CHANNEL
 168  0032              	INC_RSSI_CHANNEL:
 169  0032  0700     R  		MOV		A, RSSI_RB_1		; RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST TIME) ) MOD 2
 170  0033  2000     R  		CALL	REFRESH_RSSI_ACC_A
 171  0034              
 172  0034  1F00     R  		CLR		RSSI_RB_1
 173  0035  1F00     R  		CLR		RSSI_RB_CNT
 174  0036              
 175  0036              		;INC		CHANNEL_IDX_RSSI
 176  0036  1480     R  		INC		RF_CHANNEL_RSSI
 177  0037  0F52        		MOV		A, 82
"File: CHANNEL_MANA.ASM  Holtek Cross-Assembler  Version 2.86      Page 4

 178  0038  0400     R  		XOR		A, RF_CHANNEL_RSSI
 179  0039              		;XOR		A, CHANNEL_IDX_RSSI
 180  0039  1085        		SZ		ACC
 181  003A  2800     R  		JMP		NOT_RST_CIR
 182  003B              
 183  003B  0F02        		MOV		A, 2
 184  003C  0080     R  		MOV		RF_CHANNEL_RSSI, A
 185  003D              		;CLR		CHANNEL_IDX_RSSI
 186  003D  2800     R  		JMP		EXIT_RSSI_CHECK
 187  003E              
 188  003E              	NOT_INC_RSSI_CHANNEL:
 189  003E              	NOT_RST_CIR:
 190  003E              
 191  003E              
 192  003E              ;		SZ		CHANNEL_IDX_RSSI.0
 193  003E              ;		JMP		RSSI_CA
 194  003E              
 195  003E              ;		SZ		RSSI_RB_CNT.0
 196  003E              ;		JMP		RSSI_CA
 197  003E              
 198  003E              	EXIT_RSSI_CHECK:
 199  003E              
 200  003E  3516        		CLR		PC.2
 201  003F              
 202  003F  0003        		RET
 203  0040              
 204  0040              REFRESH_RSSI_ACC_A:
 205  0040              
 206  0040  0080     R  		MOV		RSSI_RB_TEMP, A	; A = RSSI_RB_1(NOW) = ( RSSIVAL + RSSI_RB_1(LAST) ) MOD 2
 207  0041              
 208  0041              ;		MOV		A, 5
 209  0041              ;		XOR		A, RF_CHANNEL_RSSI
 210  0041              ;		SZ		ACC
 211  0041              ;		JMP		NOT_STOP_D
 212  0041              ;
 213  0041              ;		NOP
 214  0041              ;
 215  0041              ;	NOT_STOP_D:
 216  0041  0700     R  		MOV		A, RF_CHANNEL_RSSI
 217  0042  0A02        		SUB		A, 2
 218  0043              		;MOV		A, CHANNEL_IDX_RSSI
 219  0043  1985        		RR		ACC
 220  0044  0E7F        		AND		A, 07FH
 221  0045              
 222  0045  0B50        		ADD		A, RF_RSSI_STATUS
 223  0046  0081        		MOV		MP0, A
 224  0047              		;MOV		A, ID0
 225  0047              
 226  0047  0700     R  		MOV		A, RF_CHANNEL_RSSI
 227  0048  0A02        		SUB		A, 2
 228  0049  0080     R  		MOV		RF_CHANNEL_TEMP, A
 229  004A  0700        		MOV		A, ID0
 230  004B  3C00     R  		SZ		RF_CHANNEL_TEMP.0
 231  004C              		;SZ		CHANNEL_IDX_RSSI.0
 232  004C  2800     R  		JMP		LOW_BYTE_RSSI_A
 233  004D              
 234  004D  1985        		RR		ACC
 235  004E  1985        		RR		ACC
 236  004F  1985        		RR		ACC
 237  0050  1985        		RR		ACC
"File: CHANNEL_MANA.ASM  Holtek Cross-Assembler  Version 2.86      Page 5

 238  0051              
 239  0051              	LOW_BYTE_RSSI_A:
 240  0051              
 241  0051  0E0F        		AND		A, 00FH
 242  0052              		;RL		ACC
 243  0052              		;AND		A, 00FH
 244  0052              
 245  0052  0300     R  		ADD		A, RSSI_RB_TEMP
 246  0053  1985        		RR		ACC
 247  0054  0E7F        		AND		A, 07FH
 248  0055              
 249  0055              	PUT_RSSI_ACC_BACK_A:
 250  0055              
 251  0055  0080     R  		MOV		RSSI_ACC_TEMP, A
 252  0056  0700        		MOV		A, ID0
 253  0057              

⌨️ 快捷键说明

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