📄 nrf2401_rx.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 + -