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

📄 935-cc1100读写寄存器程序(全速运行).asm

📁 cc1000收发程序,实现无线通信,不过用汇编编写的
💻 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 + -