📄 935-cc1100读写寄存器程序(全速运行).asm
字号:
;程序名称:通过LPC935读写CC1100的寄存器
;功能:向CC1100的某寄存器写一数据后,能准确将写进去的数值准确读出
SPIF EQU 07H ;935的SPI传输标志位
ORG 0000H
MOV P1M1, #00H ;P1口标准I/O
MOV P1M2, #00H
MOV P2M1, #00H ;P2口标准I/O
MOV P2M2, #00H
MOV SPCTL, #0DCH ;935的SPI控制寄存器,SPI使能数据字的高字节最先发送,SPICLK空闲时为高电平,SPICLK的前时钟沿为下降沿而后沿为上升沿,
;数据在SPICLK的前时钟沿驱动后时钟沿采样
CLR P2.4
MAIN: CALL POWER_UP_RESET_CC1100
CALL SPIwritereg
CALL SPIredareg
RET
;-------------------------------------------------------------------
;函数名称:POWER_UP_RESET_CC1100
;函数功能:启动CC1100
;-------------------------------------------------------------------
POWER_UP_RESET_CC1100: SETB P2.4
NOP
CLR P2.4
NOP
SETB P2.4
MOV R1,#05H ;CSn保持高电平至少40us
LOOP1: NOP
NOP
DJNZ R1,LOOP1
CALL RESET_CC1100
RET
;-------------------------------------------------------------------
;函数名称:SPIwritereg
;函数功能:写CC1100的寄存器
;-------------------------------------------------------------------
SPIwritereg: CLR P2.4
ACALL LOOP2
MOV A,#06H
MOV SPDAT,A
ACALL WAIT ;延时
; ACALL LOOP3 ;SPIF
; NOP
MOV SPDAT,#0BH
ACALL WAIT ;延时
; ACALL LOOP3
; NOP
RET
;-------------------------------------------------------------------
;函数名称:SPIredareg
;函数功能:读CC1100的寄存器
;-------------------------------------------------------------------
SPIredareg: CLR P2.4
ACALL LOOP2
MOV SPDAT,#86H
ACALL WAIT ;延时
; ACALL LOOP3
NOP
MOV SPDAT,#00H
ACALL WAIT ;延时
MOV A,SPDAT
SETB P2.4
RET
;-------------------------------------------------------------------
;函数名称:RESET_CC1100
;函数功能:重启CC1100
;-------------------------------------------------------------------
RESET_CC1100: CLR P2.4
ACALL LOOP2 ;等待SO变低
MOV SPDAT,#030H ;发送CC1100的SRES滤波
ACALL WAIT ;延时
; ACALL LOOP3
; ACALL LOOP2
SETB P2.4
RET
;-------------------------------------------------------------------
;函数名称:LOOP2
;函数功能:SO脚输出低电平等待
;-------------------------------------------------------------------
LOOP2: MOV A, SPDAT
JB ACC.7,LOOP2
RET
;-------------------------------------------------------------------
;函数名称:LOOP3
;函数功能:SPI传输完成等待
;-------------------------------------------------------------------
; LOOP3: JB SPIF, LOOP3
; MOV SPSTAT,#80H
; RET
;-------------------------------------------------------------------
;函数名称:WAIT
;函数功能:产生延时
;-------------------------------------------------------------------
WAIT: MOV R0,#02FH
LOOP: DJNZ R0,LOOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -