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

📄 nrf2401_rx.asm

📁 无线数传模块nRF2401的代码
💻 ASM
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -