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

📄 nrf24l01.lst

📁 Holtek audio decoder , Dongle 参考范例
💻 LST
📖 第 1 页 / 共 4 页
字号:
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              ;*********************************************************************
   2  0000              ;	nRF Library
   3  0000              ;	Author : hongyuan lai
   4  0000              ;	EMail  : yuan_lai@holtek.com.tw
   5  0000              ;	Date   : 2006/09/26
   6  0000              ;*********************************************************************
   7  0000              #include		ht82a851r.inc


   8  0000              #include		const.inc


   9  0000              #include		nRF24L01.inc


  10  0000              #include		macro.asm


  11  0000              ;=====================================================================
  12  0000              ;	nRF24L01 function for ht82a851r
  13  0000              ;=====================================================================
  14  0000              ; 
  15  0000              ;
  16  0000              ;
  17  0000              ;
  18  0000              ;
  19  0000              
  20  0000              
  21  0000              extern		TX_FIFO_STACK:byte
  22  0000              extern		RX_FIFO_STACK:byte
  23  0000              extern		TX_FIFO_ADDR:byte
  24  0000              extern		TX_FIFO_ADDR1:byte
  25  0000              extern		RX_FIFO_ADDR:byte
  26  0000              extern		RX_FIFO_ADDR1:byte
  27  0000              extern		ADC_FIFO_COUNTER:byte
  28  0000              extern		DAC_FIFO_COUNTER:byte
  29  0000              extern		TX_FIFO_ADDR_temp:byte
  30  0000              extern		RX_FIFO_ADDR_temp:byte
  31  0000              extern		RX_FIFO_Status:byte
  32  0000              extern		RX_key_code:byte
  33  0000              extern		channel_1:byte
  34  0000              extern		channel_2:byte
  35  0000              
  36  0000              extern		bFlag_TX_FIFO:bit
  37  0000              extern		bFlag_TX_FIFO_Select:bit
  38  0000              extern		bFlag_TX_FIFO_Select1:bit
  39  0000              extern		bFlag_RX_FIFO_Select:bit
  40  0000              extern		bFlag_RX_FIFO_Select1:bit
  41  0000              extern		bFlag_TX_Mode:bit
  42  0000              extern		bFlag_RX_Mode:bit
  43  0000              extern		bFlag_RX_SPI:bit
  44  0000              extern		bFlag_End_SPI_Operation:bit
  45  0000              
  46  0000              extern		temp_num:byte
  47  0000              extern		table_data:byte
  48  0000              extern		COMMAND_L:byte
  49  0000              extern		COMMAND_H:byte
  50  0000              extern		FIFO_TEMP:byte
  51  0000              extern		RF_number:byte
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 2

  52  0000              
  53  0000              extern		TX_ADDRESS_Select:byte
  54  0000              extern		RX_ADDRESS_Select:byte
  55  0000              extern		nRF_ADDR_value:byte
  56  0000              
  57  0000              extern		Delay_1:byte
  58  0000              extern		Delay_2:byte
  59  0000              extern		Delay_3:byte
  60  0000              
  61  0000              ;;***************************************************************
  62  0000              ;		nRF24L01 initialize nRF24L01 program Start!!
  63  0000              ;		This program is initialized in 851R
  64  0000              ;***************************************************************
  65  0000              nRF_initial:
  66  0000              ;--pin assignmant
  67  0000  3693        		clr     pac.5
  68  0001  3713        		clr    	pac.6
  69  0002  3793        		clr	pac.7
  70  0003  3417        		clr    	PCC.0
  71  0004  3497        		clr     PCC.1
  72  0005  3597        		clr	PCC.3  				;MCU CE  pin O/P
  73  0006  3117        		set	PCC.2				;MCU IRQ pin I/P
  74  0007  3596        		clr	NRF_CE				;At configuration Mode CE muse be low		
  75  0008              		kmov	PGA_CTRL,080h
  76  000A  2000     R  		call	MCU_16M
  77  000B              
  78  000B              ;--set PWR_UP and delay for 1.5ms into standby mode after into TX mode
  79  000B              		kmov	COMMAND_H,20H		
  80  000D              		kmov	COMMAND_L,7AH		
  81  000F  3000     E  		set     bFlag_End_SPI_Operation		;set 2 SPI operation
  82  0010  2000     R  		call	NRF_SPI_16bit			;send SPI Command
  83  0011  2000     R  		call	Delay_1500us			;delay 1.5ms for power down -> standby
  84  0012  2000     R  		call	Delay_1500us
  85  0013              		
  86  0013              ;--for clean data in fifo
  87  0013              ClearFIFO:
  88  0013  2000     R  		call	FlushTXFIFO			;clear TX FIFO
  89  0014  2000     R  		call	FlushRXFIFO			;clear RX FIFO
  90  0015  2000     R  		call	Clear_NRF_IRQ			;clear IRQ
  91  0016  3916        		SNZ     NRF_IRQ
  92  0017  2800     R  		jmp     ClearFIFO			
  93  0018  2000     R  		call 	Delay_1500us			;delay 1.518ms
  94  0019              				
  95  0019              ;--initial register identity
  96  0019              		kmov	temp_num,12H 			;initial 18 data (1 table)
  97  001B  2000     R  		call	NRF_TABLE_init			;initial nRF24L01
  98  001C              ;--initial TX/RX ADDR
  99  001C  3000     E  		set	TX_ADDRESS_Select.0		;Write TX P0: E0 E0 E0 E0 E0 H
 100  001D  2000     R  		call	nRF_TX_ADDR_WRITE
 101  001E  3400     E  		clr	TX_ADDRESS_Select.0
 102  001F              
 103  001F              		kmov	RX_ADDRESS_Select,03Fh
 104  0021              $1:		
 105  0021  2000     R  		call	nRF_RX_ADDR_WRITE
 106  0022  0700     E  		mov	a,RX_ADDRESS_Select
 107  0023  0C00        		xor	a,00h
 108  0024  390A        		snz	z
 109  0025  2800     R  		jmp	$1
 110  0026              		
 111  0026              		kmov	RX_ADDRESS_Select,07Fh
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 3

 112  0028              $2:
 113  0028  2000     R  		call	nRF_RX_ADDR_READ
 114  0029  0700     E  		mov	a,RX_ADDRESS_Select
 115  002A  0C00        		xor	a,00h
 116  002B  390A        		snz	z
 117  002C  2800     R  		jmp	$2
 118  002D              ;--variable define	
 119  002D               		kmov	TX_FIFO_ADDR,(OFFSET TX_FIFO_STACK)		
 120  002F  0700     E  		mov     A,TX_FIFO_ADDR
 121  0030  0080     E  		mov     TX_FIFO_ADDR_temp,A
 122  0031  0B20        		add	A,20H
 123  0032  0080     E  		mov	TX_FIFO_ADDR1,A		
 124  0033              
 125  0033              		kmov	RX_FIFO_ADDR,(OFFSET RX_FIFO_STACK)	
 126  0035  0700     E  		mov	A,RX_FIFO_ADDR
 127  0036  0080     E  		mov	RX_FIFO_ADDR_temp,A
 128  0037  0B20        		ADD	A,20H
 129  0038  0080     E  		mov	RX_FIFO_ADDR1,A
 130  0039              
 131  0039              		kmov	ADC_FIFO_COUNTER,02h
 132  003B              		kmov	DAC_FIFO_COUNTER,02h		
 133  003D  3400     E  		clr	bFlag_TX_FIFO_Select
 134  003E  3400     E  		clr	bFlag_TX_FIFO_Select1
 135  003F  3400     E  		clr	bFlag_RX_FIFO_Select
 136  0040  3000     E  		set	bFlag_RX_FIFO_Select1
 137  0041  3400     E  		clr	bFlag_RX_SPI
 138  0042              		
 139  0042              		kmov	channel_1,15h
 140  0044              		kmov	channel_2,1fh	
 141  0046              		kmov	RF_number,channel_1
 142  0048  2000     R  		call	RF_Channel_set				
 143  0049              
 144  0049  2000     R  		call	Delay_1500us
 145  004A  2000     R  		call 	Delay_1500us			;delay 1.518ms
 146  004B  0003        ret
 147  004C              
 148  004C              
 149  004C              ;***************************************************************
 150  004C              ;		nRF24L01 TX program 
 151  004C              ;***************************************************************
 152  004C              nRF_TX_Transmit:	
 153  004C  3C00     E  		sz	bFlag_TX_FIFO_Select
 154  004D  2800     R  		jmp	TX_DATA_CONFIG1
 155  004E  2800     R  		jmp	TX_DATA_CONFIG2		
 156  004F              
 157  004F              TX_DATA_CONFIG1:
 158  004F  3C00     E  		sz	bFlag_TX_FIFO_Select1
 159  0050  2800     R  		jmp	TX_DATA_CONFIG2
 160  0051              
 161  0051              		kmov	MP1,TX_FIFO_ADDR	
 162  0053  2000     R  		call 	TX_Payload
 163  0054  3400     E  		clr	bFlag_TX_FIFO_Select		;switch to RAM2			
 164  0055              	
 165  0055  2800     R  		jmp	TX_DATA_CONFIG3
 166  0056              TX_DATA_CONFIG2:
 167  0056  3800     E  		snz	bFlag_TX_FIFO_Select1
 168  0057  2800     R  		jmp	TX_DATA_CONFIG1
 169  0058              
 170  0058              		kmov	MP1,TX_FIFO_ADDR1
 171  005A  2000     R  		call 	TX_Payload
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 4

 172  005B  3000     E  		set	bFlag_TX_FIFO_Select		;switch to RAM1					
 173  005C                	
 174  005C              TX_DATA_CONFIG3:
 175  005C              		;call	TX_reuse_pl
 176  005C              		;call 	Pluse_CE_to_send
 177  005C                		;call	Clear_NRF_TX_IRQ			
 178  005C  0003        ret
 179  005D              
 180  005D              
 181  005D              ;***************************************************************
 182  005D              ;		nRF24L01 RX program 
 183  005D              ;***************************************************************
 184  005D              nRF_RX_Receive_IRQ:	
 185  005D  3D16        		sz	NRF_IRQ				;data receive by IRQ=low
 186  005E  2800     R  		jmp	$1				;data loss by IRQ=high
 187  005F              		
 188  005F  3C00     E  		sz	bFlag_RX_SPI			;
 189  0060  2800     R  		jmp	$1
 190  0061  3000     E  		set	bFlag_RX_SPI
 191  0062  0003        		ret
 192  0063              $1:
 193  0063  3400     E  		clr	bFlag_RX_SPI
 194  0064  0003        ret
 195  0065              
 196  0065              nRF_RX_Receive:
 197  0065              		;SZ	NRF_IRQ				;IRQ = low active
 198  0065              		;ret
 199  0065  3800     E  		snz	bFlag_RX_SPI
 200  0066  2800     R  		jmp	RX_DATA_CONFIG5
 201  0067              
 202  0067  3292        set	pa5									
 203  0068  3C00     E  		sz	bFlag_RX_FIFO_Select
 204  0069  2800     R  		jmp	RX_DATA_CONFIG1
 205  006A  2800     R  		jmp	RX_DATA_CONFIG2
 206  006B              		
 207  006B              ;------------- FIFO Stack 1 ----------------		
 208  006B              RX_DATA_CONFIG1:
 209  006B  3C00     E  		sz	bFlag_RX_FIFO_Select1
 210  006C  2800     R  		jmp	RX_DATA_CONFIG2
 211  006D              	
 212  006D  0700     E  		mov	A,RX_FIFO_ADDR 			
 213  006E  0083        		mov	MP1,A				
 214  006F  2000     R  		call	RX_Payload		
 215  0070  3400     E  		clr	bFlag_RX_FIFO_Select		;switch to RAM2
 216  0071              		
 217  0071  2800     R  		jmp	RX_DATA_CONFIG3
 218  0072              
 219  0072              ;------------- FIFO Stack 0 ----------------				
 220  0072              RX_DATA_CONFIG2:
 221  0072  3800     E  		snz	bFlag_RX_FIFO_Select1
 222  0073  2800     R  		jmp	RX_DATA_CONFIG1
 223  0074              	
 224  0074  0700     E  		mov	A,RX_FIFO_ADDR1
 225  0075  0083        		mov	MP1,A			
 226  0076  2000     R  		call	RX_Payload			
 227  0077  3000     E  		set	bFlag_RX_FIFO_Select		;switch to RAM1
 228  0078              		
 229  0078              RX_DATA_CONFIG3:
 230  0078  2000     R  		call	Clear_NRF_RX_IRQ
 231  0079  3692        clr	pa5		
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 5

 232  007A  0003        ret
 233  007B              
 234  007B              RX_DATA_CONFIG5:
 235  007B  3312        set	pa6
 236  007C  2000     R  		call	FlushRXFIFO
 237  007D  2000     R  		call	Clear_NRF_RX_IRQ
 238  007E  3712        clr	pa6
 239  007F  0003        ret		
 240  0080              
 241  0080              ;***************************************************************
 242  0080              ;		nRF24L01 TX/RX mode switch program 
 243  0080              ;***************************************************************
 244  0080              TX_RX_Switch:
 245  0080  3C00     E  		sz	bFlag_TX_Mode
 246  0081  2800     R  		jmp	$2
 247  0082  3C00     E  		sz	bFlag_RX_Mode
 248  0083  2800     R  		jmp	$1
 249  0084  2800     R  		jmp	$3
 250  0085              		
 251  0085              $1:	
 252  0085  3196        		set	NRF_CE
 253  0086  3400     E  		clr	bFlag_RX_Mode
 254  0087  2000     R  		call	RX_MODE
 255  0088  2800     R  		jmp	$3
 256  0089              $2:		
 257  0089  3596        		clr	NRF_CE
 258  008A  3400     E  		clr	bFlag_TX_Mode
 259  008B  2000     R  		call	TX_MODE
 260  008C              $3:
 261  008C              
 262  008C  0003        ret
 263  008D              
 264  008D              TX_mode_set:
 265  008D  3596        		clr	NRF_CE
 266  008E  2000     R  		call	TX_MODE
 267  008F  0003        ret
 268  0090              
 269  0090              RX_mode_set:
 270  0090  2000     R  		call	RX_MODE
 271  0091  3196        		set	NRF_CE		
 272  0092  0003        ret	
 273  0093              
 274  0093              
 275  0093              ;***************************************************************
 276  0093              ;		nRF24L01 play/rec int function 
 277  0093              ;***************************************************************
 278  0093              nRF_int:
 279  0093              		kmov	BP,001h				;switch to RAM Bank1
 280  0095              		
 281  0095              	;------- RAM to USB (rec)
 282  0095  0700     E  		mov	a,RX_FIFO_ADDR_temp
 283  0096  0300     E  		add	a,ADC_FIFO_COUNTER

⌨️ 快捷键说明

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