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

📄 t4.asm

📁 cc1100发射模块汇编程序
💻 ASM
字号:
            LIST  P=PIC16F877
            INCLUDE  "P16F877.INC"
            TXBYTES   EQU    20H
            S_DATA    EQU    21H
            R_DATA    EQU    22H
            RSSI      EQU    23H
            BYTE_NUM  EQU    24H
            RSSI0     EQU    25H
            RETX_NUM2 EQU    26H
            CYCLE     EQU    27H
            CYCLE1    EQU    28H
            CYCLE2    EQU    29H




            ORG     00H
            GOTO    MAIN


            ORG     05H
DLY30us
            MOVLW  H'30'
            MOVWF  CYCLE
  LOOP1     DECFSZ CYCLE
            GOTO   LOOP1
            RETLW  0

DLY40us     MOVLW  H'42'
            MOVWF  CYCLE
  LOOP40    DECFSZ CYCLE
            GOTO   LOOP40
            RETLW  0

DLY10us
            MOVLW  H'0F'
            MOVWF  CYCLE
  LOOP2     DECFSZ CYCLE
            GOTO   LOOP2
            RETLW  0

DLY20us     MOVLW  H'20'
            MOVWF  CYCLE
  LOOP20    DECFSZ CYCLE
            GOTO   LOOP20
            RETLW  0

DLY22us     MOVLW  H'24'
            MOVWF  CYCLE
  LOOP21    DECFSZ CYCLE
            GOTO   LOOP21
            RETLW  0

DLY809us
            MOVLW  H'59'
            MOVWF  CYCLE
  LOOP3     MOVLW  H'0E'
            MOVWF  CYCLE1
  LOOP4     DECFSZ CYCLE1,1
            GOTO   LOOP4
            DECFSZ CYCLE,1
            GOTO   LOOP3
            RETLW  0


DLY2s
            MOVLW  H'70'           ;
            MOVWF  CYCLE1          ;2+(2+(2+(1+2)*255+1+2)*116+1+2)*112+2
  LOOP5     MOVLW  H'74'
            MOVWF  CYCLE2
  LOOP6     MOVLW  H'FF'
            MOVWF  CYCLE
  LOOP7     DECFSZ CYCLE,1
            GOTO   LOOP7
            DECFSZ CYCLE2,1
            GOTO   LOOP6
            DECFSZ CYCLE1,1
            GOTO   LOOP5
            RETLW  0








SEND
            BCF    STATUS,RP1
            BCF    STATUS,RP0
            MOVF   S_DATA,W
            MOVWF  SSPBUF
     WAIT   BTFSS  PIR1,SSPIF
            GOTO   WAIT
            BCF    PIR1,SSPIF
            RETLW  0

READ
            BCF    STATUS,RP1
            BSF    STATUS,RP0
    LOOP0   BTFSS  SSPSTAT,BF
            GOTO   LOOP0
            BCF    STATUS,RP0
            MOVF   SSPBUF,W
            MOVWF   R_DATA
            RETLW   0






CFG_W       ;写配置寄存器
            BCF    PORTC,2     ;CSN变低

            NOP
            MOVLW  H'02'       ;IOCFG0
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'06'       ;
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2






            NOP
            BCF    PORTC,2
            MOVLW  H'06'       ;PKTLEN
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'20'       ;32字节
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'07'       ;PKTCTRL1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'04'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2


            NOP
            BCF    PORTC,2
            MOVLW  H'08'       ;PKTCTRL0
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'44'       ;定长
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2


            NOP
            BCF    PORTC,2
            MOVLW  H'0B'       ;FSCTRL1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'08'       ;
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2


            NOP
            BCF    PORTC,2
            MOVLW  H'0D'       ;FREQ2
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'10'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'0E'       ;FREQ1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'A7'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

           NOP
           BCF    PORTC,2
           MOVLW  H'0F'        ;FREQ0
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'62'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'10'     ;MDMCFG4
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'F5'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'11'       ;MDMCFG3
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'83'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

           NOP
           BCF    PORTC,2
           MOVLW  H'12'        ;MDMCFG2
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'03'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2


            NOP
            BCF    PORTC,2
            MOVLW  H'13'      ;MDMCFG1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'22'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'15'       ;DEVIATN
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'15'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2



           NOP
           BCF    PORTC,2
           MOVLW  H'18'        ;MCSM0
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'18'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'19'      ;FOCCFG
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'16'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'1A'       ;BSCFG
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'6C'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

           NOP
           BCF    PORTC,2
           MOVLW  H'1B'        ;AGCCTRL2
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'03'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2


            NOP
            BCF    PORTC,2
            MOVLW  H'1D'      ;AGCCTRL0
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'91'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'21'       ;FREND1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'56'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2



           NOP
           BCF    PORTC,2
           MOVLW  H'23'       ;FSCAL3
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'A9'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'24'      ;FSCAL2
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'2A'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

            NOP
            BCF    PORTC,2
            MOVLW  H'25'       ;FSCAL1
            MOVWF  S_DATA
            CALL   SEND
            MOVLW  H'00'
            MOVWF  S_DATA
            CALL   SEND
            BSF    PORTC,2

           NOP
           BCF    PORTC,2
           MOVLW  H'26'        ;FSCAL0
           MOVWF  S_DATA
           CALL   SEND
           MOVLW  H'11'
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2
           RETLW  0






MAIN
           CALL   DLY2s
           BCF    STATUS,RP1
           BSF    STATUS,RP0
           BTFSS  PCON,1
           BSF    PCON,1      ;清除上电复位标志


           MOVLW  H'13'
           MOVWF  TRISC       ;定义PORTC的方向(控制10)

           MOVLW  H'00'
           MOVWF  TRISA       ;定义PORTA的方向

           MOVLW  H'00'
           MOVWF  TRISB       ;定义PORTB的方向

           MOVLW  H'00'
           MOVWF  TRISD       ;定义PORTD的方向

           MOVLW  H'00'
           MOVWF  TRISE       ;定义PORTE的方向

           BCF    STATUS,RP0

           MOVLW  H'04'
           MOVWF  PORTC       ;端口输出0

           MOVLW  H'00'
           MOVWF  PORTA       ;端口输出0

           MOVLW  H'00'
           MOVWF  PORTB       ;端口输出0

           MOVLW  H'00'
           MOVWF  PORTD       ;端口输出0

           MOVLW  H'00'
           MOVWF  PORTE       ;端口输出0


           ;屏蔽中断
           MOVLW  H'00'
           MOVWF  INTCON

           ;初始化SPI
           BCF    STATUS,RP1
           BSF    STATUS,RP0
           MOVLW  H'40'
           MOVWF  SSPSTAT
           BCF    STATUS,RP0
           MOVLW  H'20'
           MOVWF  SSPCON



RESET	   BSF    PORTC,3      ;SCK为高,初始化1100
           BCF    PORTC,5      ;SI为低
           BCF    PORTC,2
           CALL   DLY10us
           BSF    PORTC,2
           CALL   DLY40us
           BCF    PORTC,2
  LOOP111  BTFSC  PORTC,4
           GOTO   LOOP111
           MOVLW  H'30'       ;发SRES,初始
           MOVWF  S_DATA
           CALL   SEND
           BSF    PORTC,2


           CALL   DLY40us
  LOOP112  BTFSC  PORTC,4
           GOTO   LOOP112
           CALL   CFG_W

           NOP
           CALL    DLY40us
           NOP



RETX       MOVLW  H'20'       ;保存数据包长度
           MOVWF  BYTE_NUM

           BCF    PORTC,2
           MOVLW   H'3B'         ;清空TX_FIFO
           MOVWF   S_DATA
           CALL    SEND
           BSF    PORTC,2
           NOP
           CALL    DLY40us
           NOP





TX          BCF    PORTC,2    ;使TX
            MOVLW  H'35'      ;发STX
            MOVWF  S_DATA
            CALL   SEND
           BSF    PORTC,2

            CALL   DLY809us

            BCF    PORTC,2
            MOVLW  H'7F'
            MOVWF  S_DATA
            CALL   SEND
PAY_TX      MOVLW  H'55'
            MOVWF  S_DATA
            CALL   SEND
            DECFSZ BYTE_NUM,1
            GOTO   PAY_TX
            BSF    PORTC,2
            NOP

			CALL   DLY2s
            NOP
			GOTO   RETX
            NOP

            NOP
LOOP000     NOP
            NOP
            GOTO LOOP000
            NOP
            END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -