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

📄 nrf24l01.lst

📁 Holtek audio decoder , Dongle 参考范例
💻 LST
📖 第 1 页 / 共 4 页
字号:
 284  0097  0083        		mov	mp1,a
 285  0098              		kmov	RECORD_IN_L,R1
 286  009A  1483        		inc	mp1
 287  009B              		kmov	RECORD_IN_H,R1
 288  009D              		
 289  009D  1480     E  		inc	ADC_FIFO_COUNTER
 290  009E  1480     E  		inc	ADC_FIFO_COUNTER
 291  009F              	;------- USB to RAM (play)	 
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 6

 292  009F  0700     E  		mov	A,TX_FIFO_ADDR_temp			
 293  00A0  0300     E  		ADD	A,DAC_FIFO_COUNTER
 294  00A1  0083        		mov	MP1,A			
 295  00A2              		kmov	R1,PLAY_DATAL_L
 296  00A4  1483        		inc     MP1
 297  00A5  1480     E  		inc	DAC_FIFO_COUNTER
 298  00A6              	   	kmov	R1,PLAY_DATAL_H
 299  00A8  1483        		inc     MP1
 300  00A9  1480     E  		inc	DAC_FIFO_COUNTER				
 301  00AA              	
 302  00AA              	;------- RAM0/RAM1 switch
 303  00AA  0700     E  		mov	a,ADC_FIFO_COUNTER
 304  00AB  0C20        		xor	a,020h
 305  00AC  3D0A        		sz	z
 306  00AD  0F02        		mov	a,02h
 307  00AE  3D0A        		sz	z
 308  00AF  0080     E  		mov	ADC_FIFO_COUNTER,a
 309  00B0  390A        		snz	z
 310  00B1  2800     R  		jmp	$3
 311  00B2  3C00     E  		sz	bFlag_RX_FIFO_Select1
 312  00B3  2800     R  		jmp	$2
 313  00B4  2800     R  		jmp	$1
 314  00B5              $1:
 315  00B5              		kmov	RX_FIFO_ADDR_temp,RX_FIFO_ADDR
 316  00B7  3000     E  		set	bFlag_RX_FIFO_Select1
 317  00B8  2800     R  		jmp	$3
 318  00B9              $2:
 319  00B9              		kmov	RX_FIFO_ADDR_temp,RX_FIFO_ADDR1
 320  00BB  3400     E  		clr	bFlag_RX_FIFO_Select1
 321  00BC              $3:
 322  00BC  0700     E  		mov	a,DAC_FIFO_COUNTER
 323  00BD  0C20        		xor	a,020h
 324  00BE  3D0A        		sz	z
 325  00BF  0F02        		mov	a,02h
 326  00C0  3D0A        		sz	z
 327  00C1  0080     E  		mov	DAC_FIFO_COUNTER,a
 328  00C2  390A        		snz	z
 329  00C3  2800     R  		jmp	$6
 330  00C4  3C00     E  		sz	bFlag_TX_FIFO_Select1
 331  00C5  2800     R  		jmp	$4
 332  00C6  2800     R  		jmp	$5
 333  00C7              
 334  00C7              $5:	
 335  00C7              		kmov	TX_FIFO_ADDR_temp,TX_FIFO_ADDR
 336  00C9  3000     E  		set     bFlag_TX_FIFO_Select1
 337  00CA  2800     R  		jmp	$6
 338  00CB              $4:
 339  00CB              		kmov	TX_FIFO_ADDR_temp,TX_FIFO_ADDR1
 340  00CD  3400     E  		clr     bFlag_TX_FIFO_Select1
 341  00CE              $6:
 342  00CE              
 343  00CE              	;------- First transmission at channel 05h
 344  00CE  0700     E  		mov	a,DAC_FIFO_COUNTER
 345  00CF  0C1E        		xor	a,01eh
 346  00D0  390A        		snz	z
 347  00D1  2800     R  		jmp	$7
 348  00D2  2000     R  		call	Delay_30us		
 349  00D3  2000     R  		call	nRF_RX_Receive_IRQ	
 350  00D4              		kmov	RF_number,channel_1
 351  00D6  2000     R  		call	RF_Channel_set
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 7

 352  00D7  2000     R  		call	TX_mode_set
 353  00D8              $7:		
 354  00D8  0700     E  		mov	a,DAC_FIFO_COUNTER
 355  00D9  0C02        		xor	a,002h
 356  00DA  3D0A        		sz	z	
 357  00DB  2000     R  		call 	Pluse_CE_to_send	
 358  00DC              		
 359  00DC  0700     E  		mov	a,DAC_FIFO_COUNTER
 360  00DD  0C1A        		xor	a,01Ah				;also be 01Ch
 361  00DE  3D0A        		sz	z		
 362  00DF  2000     R  		call	nRF_TX_Transmit						
 363  00E0              	;------- RX mode switch
 364  00E0  0700     E  		mov	a,DAC_FIFO_COUNTER
 365  00E1  0C08        		xor	a,008h
 366  00E2  390A        		snz	z
 367  00E3  2800     R  		jmp	$9
 368  00E4  2000     R  		call	RX_mode_set			
 369  00E5              $9:	
 370  00E5              	;------- Fisrt received at channel 05h
 371  00E5  0700     E  		mov	a,DAC_FIFO_COUNTER
 372  00E6  0C04        		xor	a,004h
 373  00E7  390A        		snz	z
 374  00E8  2800     R  		jmp	$10
 375  00E9  2000     R  		call	nRF_RX_Receive
 376  00EA  3400     E  		clr	bFlag_RX_SPI
 377  00EB              $10:
 378  00EB              	;------- Second transmission at channel 0Bh
 379  00EB  0700     E  		mov	a,DAC_FIFO_COUNTER
 380  00EC  0C10        		xor	a,010h
 381  00ED  390A        		snz	z
 382  00EE  2800     R  		jmp	$8
 383  00EF  2000     R  		call	nRF_RX_Receive_IRQ
 384  00F0              		kmov	RF_number,channel_2
 385  00F2  2000     R  		call	RF_channel_set
 386  00F3  2000     R  		call	TX_mode_set
 387  00F4  2000     R  		call	TX_reuse_pl
 388  00F5  2000     R  		call	Pluse_CE_to_send				
 389  00F6              $8:
 390  00F6              	;------- RX mode switch
 391  00F6  0700     E  		mov	a,DAC_FIFO_COUNTER
 392  00F7  0C16        		xor	a,016h
 393  00F8  3D0A        		sz	z
 394  00F9  2000     R  		call	RX_mode_set
 395  00FA              			
 396  00FA              	;------- Second received at channel 0Bh			
 397  00FA  0700     E  		mov	a,DAC_FIFO_COUNTER
 398  00FB  0C12        		xor	a,012h
 399  00FC  3D0A        		sz	z
 400  00FD  2000     R  		call	nRF_RX_Receive
 401  00FE              		
 402  00FE  0003        ret
 403  00FF              
 404  00FF              ;***************************************************************
 405  00FF              ;		nRF24L01 TX/RX Mode toogle 
 406  00FF              ;		1.This function is for device toogle PTX/PRX 
 407  00FF              ;		2.only toogle Chip's TX/RX mode. 
 408  00FF              ;		3.COMMAND_H: first  send Address
 409  00FF              ;		  COMMADD_L: second send Register data setting
 410  00FF              ;		4.TX/RX payload
 411  00FF              ;***************************************************************
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 8

 412  00FF              RF_Channel_set:
 413  00FF              		kmov	COMMAND_H,25H
 414  0101              		kmov	COMMAND_L,RF_number
 415  0103  3000     E  		set	bFlag_End_SPI_Operation
 416  0104  2000     R  		call	NRF_SPI_16bit
 417  0105  0003        ret
 418  0106              
 419  0106              TX_MODE:
 420  0106              							;20H + 00H = Write register command+ Register address  
 421  0106              		kmov	COMMAND_H,20H			;Send SPI Command of Write Register and address is 00H
 422  0108              		kmov	COMMAND_L,7AH			;Setup config register PTX (TX Mode) bit 0=0:PTX
 423  010A  3000     E  		set	bFlag_End_SPI_Operation
 424  010B  2000     R  		call	NRF_SPI_16bit
 425  010C  0003        ret
 426  010D              
 427  010D              RX_MODE:
 428  010D              							;20H + 00H = Write register command + Register address
 429  010D              		kmov	COMMAND_H,20H			;Send SPI Command of Write Register
 430  010F              		kmov	COMMAND_L,3BH			;Setup config register PRX (RX Mode) bit 0=1:PRX
 431  0111  3000     E  		set	bFlag_End_SPI_Operation
 432  0112  2000     R  		call	NRF_SPI_16bit
 433  0113  0003        ret
 434  0114              
 435  0114              TX_reuse_pl:
 436  0114              		kmov	COMMAND_H,11100011b
 437  0116  3400     E  		clr	bFlag_End_SPI_Operation
 438  0117  2000     R  		call	NRF_SPI_16bit
 439  0118  0003        ret
 440  0119              
 441  0119              TX_Payload:
 442  0119              		KMOV	COMMAND_H,NRF_CMD_TX_PAYLOAD
 443  011B  2000     R  		call	NRF_SPI_TX_payload
 444  011C  0003        ret
 445  011D              
 446  011D              RX_Payload:
 447  011D              		KMOV	COMMAND_H,NRF_CMD_RX_PAYLOAD
 448  011F  2000     R  		call	NRF_SPI_RX_payload
 449  0120  0003        ret
 450  0121              
 451  0121              Delay_1500us:
 452  0121  0F06        		mov	a,06H
 453  0122  0080     E  		mov	Delay_1,a
 454  0123  0FF0        		mov	a,0F0H
 455  0124  0080     E  		mov	Delay_2,a
 456  0125              Delay_1500us_Wait:
 457  0125  1780     E  		SDZ	Delay_2
 458  0126  2800     R  		JMP	Delay_1500us_Wait
 459  0127  1780     E  		SDZ	Delay_1
 460  0128  2800     R  		JMP	Delay_1500us_Wait
 461  0129  0003        		RET
 462  012A              
 463  012A              Delay_30us:
 464  012A  0F2C        		mov	a,02CH
 465  012B  0080     E  		mov	Delay_1,a
 466  012C              Delay_30us_Wait:
 467  012C  1780     E  		SDZ	Delay_1
 468  012D  2800     R  		JMP	Delay_30us_Wait
 469  012E  0003        		RET
 470  012F              
 471  012F              ;***************************************************************
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 9

 472  012F              ;		nRF24L01 
 473  012F              ;		1.Clear TX FIFO / RX FIFO / IRQ
 474  012F              ;		2.REUSE_TX_PL
 475  012F              ;		3.NOP Command
 476  012F              ;***************************************************************
 477  012F              Clear_NRF_TX_IRQ:
 478  012F              		kmov 	COMMAND_H,27H		
 479  0131              		kmov 	COMMAND_L,20H	
 480  0133  3000     E  		set	bFlag_End_SPI_Operation	
 481  0134  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 482  0135  0003        ret
 483  0136              
 484  0136              Clear_NRF_RX_IRQ:
 485  0136              		kmov 	COMMAND_H,27H		
 486  0138              		kmov 	COMMAND_L,40H	
 487  013A  3000     E  		set	bFlag_End_SPI_Operation	
 488  013B  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 489  013C  0003        ret
 490  013D              
 491  013D              Clear_NRF_IRQ:
 492  013D              		kmov 	COMMAND_H,27H		
 493  013F              		kmov 	COMMAND_L,70H	
 494  0141  3000     E  		set	bFlag_End_SPI_Operation	
 495  0142  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 496  0143  0003        ret
 497  0144              
 498  0144              FlushTXFIFO:
 499  0144              		kmov	COMMAND_H,NRF_CMD_FLUSH_TX
 500  0146  3400     E  		clr	bFlag_End_SPI_Operation	
 501  0147  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 502  0148  2000     R  		call	Clear_NRF_IRQ
 503  0149  0003        ret
 504  014A              
 505  014A              FlushRXFIFO:
 506  014A              		kmov	COMMAND_H,NRF_CMD_FLUSH_RX
 507  014C  3400     E  		clr	bFlag_End_SPI_Operation	
 508  014D  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 509  014E  2000     R  		call	Clear_NRF_IRQ
 510  014F              
 511  014F  0003        ret
 512  0150              
 513  0150              REUSETXPL:
 514  0150              		kmov	COMMAND_H,NRF_CMD_REUSE_TX_PL
 515  0152  3400     E  		clr	bFlag_End_SPI_Operation	
 516  0153  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 517  0154  0003        ret
 518  0155              
 519  0155              NOPCommand:
 520  0155              		kmov	COMMAND_H,NRF_CMD_NOP
 521  0157  3400     E  		clr	bFlag_End_SPI_Operation	
 522  0158  2000     R  		call 	NRF_SPI_16bit			;send SPI Command
 523  0159  0003        ret
 524  015A              
 525  015A              
 526  015A              ;***************************************************************
 527  015A              ;		nRF24L01 Pluse CE high to send at least 10u Second
 528  015A              ;		1. 1 instruction 4 clocks
 529  015A              ;		2. 12MHz OSC => 12/4=3MHz => 1/3 = 0.33uS (1 machine cycle)
 530  015A              ;		3. 10uS = 0.333us x 33(ins) = 10.3..
 531  015A              ;***************************************************************
"File: NRF24L01.ASM  Holtek Cross-Assembler  Version 2.86      Page 10

 532  015A              
 533  015A              Pluse_CE_to_send:
 534  015A  3196        		set	NRF_CE
 535  015B              		kmov	temp_num,010H
 536  015D              delay_ce:
 537  015D  1780     E  		SDZ	temp_num
 538  015E  2800     R  		jmp	delay_ce
 539  015F  3596        		clr	NRF_CE
 540  0160  0003        ret
 541  0161              
 542  0161              ;***************************************************************
 543  0161              ;		nRF24L01 SPI initial 
 544  0161              ;
 545  0161              ;	1.For config these register ,we has to send data consist of 
 546  0161              ;	  register ADDRESS and register value.	
 547  0161              ;	  Ex:0F | 03H =>  register value | register address
 548  0161              ;
 549  0161              ;	2.This function only for initial nRF24L01 v1.2 
 550  0161              ;	3.Write Register Command's common start  bit is 001x xxxx.
 551  0161              ;*************************************************************** 
 552  0000              CODEz            .section        PAGE  'code'	
 553  0000              nRF2401_table:		;20H=Write Register command,01~17H=Register Address,High byte=Setting register value
 554  0000              
 555  0000  0021        		DW	0021H	;20H+01H,Enable Auto Ack P0     	
 556  0001  0122        		DW	0122H	;20H+02H,Enable RX Address P0 (can receive data from pipe number 1,2,3.)
 557  0002  0323        		DW 	0323H	;20H+03H,setup address width=5 byte
 558  0003  0024        		DW	0024H	;20H+04H,Auto RT dalay=1000+86us,ARC=3 times
 559  0004  0525        		DW	0525H	;20H+05H,RF channel default value
 560  0005  0F26        		DW	0F26H	;20H+06H,RF SETUP,2Mbps,0dbm ,defaulr value
 561  0006  7027        		DW	7027H	;20H+07H,status register clear IRQ
 562  0007              
 563  0007  432C        		DW	0C32CH	;20H+07H,P2 Address setting
 564  0008  442D        		DW	0C42DH	;20H+07H,P3 Address setting
 565  0009  452E        		DW	0C52EH	;20H+07H,P4 Address setting
 566  000A  462F        		DW	0C62FH	;20H+07H,P5 Address setting
 567  000B              
 568  000B  2031        		DW	2031H	;20H+11H,pipe 0 payload 32byte		
 569  000C  2032        		DW	2032H	;20H+12H,pipe 1 payload 32byte
 570  000D  2033        		DW	2033H	;20H+13H,pipe 2 payload 32byte
 571  000E  2034        		DW	2034H	;20H+14H,pipe 3 payload 32byte
 572  000F  2035        		DW	2035H	;20H+15H,pipe 4 payload 32byte
 573  0010  2036        		DW	2036H	;20H+16H,pipe 5 payload 32byte
 574  0011  1137        		DW	1137H	;20H+17H,FIFO 
 575  0012              

⌨️ 快捷键说明

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