nrf2401_rx.asm

来自「无线数传模块nRF2401的代码」· 汇编 代码 · 共 66 行

ASM
66
字号
PWR_UP	EQU		P2.5
CE		EQU		P2.4
CS		EQU		P2.3
DR1		EQU		P2.2
CLK1	EQU		P2.1
DATA_BIT	EQU		P2.0			   ;"DATA"是伪指令

		ORG 0000H
		LJMP MAIN

		ORG 0030H
MAIN:	LCALL	nRF2401_config
		SETB CE
		MOV P1,#00H

LOOP:	SETB DR1
		JB DR1,OK	 	
		SJMP LOOP
OK:		MOV P1,#0AAH
		SJMP $

nRF2401_config:			;模块配置
		SETB PWR_UP		;PWR_UP=1,CE=0,CS=1时为配置模式
		MOV R7,#10		;5ms delay
		LCALL DELAY 	;Tpd2cfgm >3ms
		CLR CE
		SETB CS
		NOP
		NOP
		NOP
		MOV	R2,#15		;15 bytes of config data
		MOV R3,#00		;地址偏移量
		MOV DPTR,#TAB_config
NEXT_CONFIG_BYTE:
		MOV A,R3
		MOVC A,@A+DPTR		  ;查表得配置字,A为传递 参数
		LCALL CLK_IN		  ;clock in config data
		INC R3			;地址偏移加一
		DJNZ R2,NEXT_CONFIG_BYTE
		CLR CS			;CS清零,配置有效
	   	RET


CLK_IN:	MOV R4,#08		;每字节8位 ,A为传递参数
		CLR CLK1
NEXT_BIT:
		CLR C
		RLC A			 ;Cy位加入左移,
		MOV DATA_BIT,C
		NOP
		SETB CLK1		 ;上升沿有效
		NOP
		CLR CLK1
		DJNZ R4,NEXT_BIT
		RET

DELAY: 	MOV R6,#248			  ;delay R7*0.5ms 
		NOP
		DJNZ R6,$
		DJNZ R7,DELAY
		RET

TAB_config:
		DB 50H,08H,  00H,0D0H,0DDH,0DDH,0DDH,  00H,0DDH,0DDH,0DDH,0DDH,83H,6FH,05H

		END

⌨️ 快捷键说明

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