📄 935-cc1100发送数据包程序(单个字节).asm
字号:
;程序名称:
;功能:发送一个字节的数据包
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的前时钟沿驱动后时钟沿采样
;-------------------------------------------------------------------
;函数名称:MAIN
;函数功能:发送一个字节
;-------------------------------------------------------------------
MAIN: CLR P2.4
MOV A,WDCON
CLR ACC.2 ;关闭看门狗
MOV WDCON,A
SETB PX1 ;外部中断1最高优先级
SETB EX1 ;外部中断1允许
CLR IT1 ;外部中断1的触发方式为电平触发
SETB EA ;开总中断
CALL POWER_UP_RESET_CC1100
CALL SPIwritereg
CALL RFSendPacket
SJMP $
;-------------------------------------------------------------------
;函数名称:POWER_UP_RESET_CC1100
;函数功能:启动CC1100
;-------------------------------------------------------------------
POWER_UP_RESET_CC1100: SETB P2.4
NOP
CLR P2.4
NOP
SETB P2.4
MOV R1,#06H ;CSn保持高电平至少40us
LOOP1: NOP
NOP
DJNZ R1,LOOP1
CALL RESET_CC1100
MOV R4,#0FFH
TIME: DJNZ R4,TIME
RET
;-------------------------------------------------------------------
;函数名称:SPIwritereg
;函数功能:写CC1100的寄存器
;-------------------------------------------------------------------
SPIwritereg: CLR P2.4
MOV R5,#24H
ACALL WAIT
MOV DPTR, #Addres ;寄存器地址模块首地址
LOOP8: ACALL LOOP2 ;SO脚输出低电平等待
MOV R6,#01H
ACALL WAIT
CLR A
MOVC A,@A+DPTR
MOV SPDAT,A ;写寄存器地
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -