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

📄 cc2500-dongle-rx-v40.asm

📁 这个是CC2500在em78p447的程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
CHECK_RF_REG_ERROR:
		MOV		A,@0XFF
		RET

;**********************************************
;INPUT: ADDR 00~3F  DATA0
;OUTPUT: RF_STATUS
;**********************************************
WRITE_SINGLE_BYTE:		
		BC		PORT6,SCLK
		BC		PORT5,CSN
		JBC		PORT6,SO
		JMP		$-1
		MOV		A,@16
		MOV		RW_COUNT,A	
		JMP		WRITE_SINGLE_LOOP
WRITE_COMMAND_STROBE:		
		BC		PORT6,SCLK
		BC		PORT5,CSN
		JBC		PORT6,SO
		JMP		$-1
		MOV		A,@8
		MOV		RW_COUNT,A			
WRITE_SINGLE_LOOP:	
		RLC		DATA0
		RLC		TEMP0
		BC		PORT5,SI
		JBC		STATUS,C
		BS		PORT5,SI
		JMP		$+1
		JMP		$+1
		BS		PORT6,SCLK	
		JMP		$+1
		JMP		$+1		
		JMP		$+1
		JMP		$+1
		BC		STATUS,C
		JBC		PORT6,SO
		BS		STATUS,C
		RLC		RF_STATUS
		BC		PORT6,SCLK
		DJZ		RW_COUNT
		JMP		WRITE_SINGLE_LOOP	
		BS		PORT5,CSN
		RET
;************************************************
;WRITE THE TX FIFO
;INPUT:  ADDR 3F  RRX_MODE~RRX_BIG
;OUTPUT: RF_STATUS
;************************************************
WRITE_BURST_3BYTE:		
		MOV		A,@0X40
		OR		ADDR,A
		BC		PORT6,SCLK
		BC		PORT5,CSN
		JBC		PORT6,SO
		JMP		$-1
		MOV		A,@5*8
		MOV		RW_COUNT,A	
		MOV		A,@0X03
		MOV		PK_TX_LENGH,A
WRITE_BURST_LOOP:	
		RLC		RRX_BIG
		RLC		RRX_SMALL
		RLC		RRX_MODE
		RLC		PK_TX_LENGH
		RLC		ADDR
		BC		PORT5,SI
		JBC		STATUS,C
		BS		PORT5,SI
		JMP		$+1
		JMP		$+1
		JMP		$+1
		BS		PORT6,SCLK
		JMP		$+1
		JMP		$+1
		JMP		$+1
		JMP		$+1
		JMP		$+1		
		BC		STATUS,C
		JBC		PORT6,SO
		BS		STATUS,C
		RLC		RF_STATUS
		BC		PORT6,SCLK
		DJZ		RW_COUNT
		JMP		WRITE_BURST_LOOP	
		BS		PORT5,CSN
		RET
;*************************************************
;INPUT: TEMP0(ADDR 00~3F)
;OUTPUT: RF_STATUS  DATA0
;*************************************************
READ_SINGLE_BYTE:
		MOV		A,@0X80
		OR		TEMP0,A
		BC		PORT6,SCLK
		BC		PORT5,CSN
		JBC		PORT6,SO
		JMP		$-1
		MOV		A,@16
		MOV		RW_COUNT,A	
READ_SINGLE_LOOP:		
		RLC		TEMP0
		BC		PORT5,SI
		JBC		STATUS,C
		BS		PORT5,SI
		JMP		$+1
		JMP		$+1
		BS		PORT6,SCLK
		JMP		$+1
		JMP		$+1
		JMP		$+1
		JMP		$+1		
		BC		STATUS,C
		JBC		PORT6,SO
		BS		STATUS,C
		RLC		DATA0
		RLC		RF_STATUS
		BC		PORT6,SCLK
		DJZ		RW_COUNT
		JMP		READ_SINGLE_LOOP
		BS		PORT5,CSN
		RET
;****************************************************
;READ THE RX FIFO
;INPUT: ADDR  00~3F
;OUTPUT: RF_STATUS RTX_MODE~RTX_R2(19BYTE) RSSI LQI
;****************************************************
READ_BURST_22BYTE:
		BC		FLAG,RX_FIFO_FLAG
		MOV		A,@0X3F
		MOV		ADDR,A
		MOV		A,@0XC0
		OR		ADDR,A
		BC		PORT6,SCLK
		BC		PORT5,CSN
		JBC		PORT6,SO
		JMP		$-1
		;MOV		A,DATA0
		;MOV		A,@0X0F	;23*8
DEAL_LENGH:		
		MOV		A,@8*2	;23*8
		MOV		RW_COUNT,A	
READ_BURST_LOOP:		
		RLC		ADDR
		BC		PORT5,SI
		JBC		STATUS,C
		BS		PORT5,SI
		JMP		$+1
		JMP		$+1
		BS		PORT6,SCLK
		JMP		$+1
		JMP		$+1
		JMP		$+1
		JMP		$+1		
		BC		STATUS,C
		JBC		PORT6,SO
		BS		STATUS,C
		RLC		LQI
		RLC		RSSI
		RLC		RTX_R2
		RLC		RTX_L2      
		RLC		RTX_R1      
		RLC		RTX_L1      
		RLC		RTX_SQUARE  
		RLC		RTX_CROSS   
		RLC		RTX_CIRCLE  
		RLC		RTX_TRIANGLE
		RLC		RTX_DOWN    
		RLC		RTX_UP      
		RLC		RTX_LEFT    
		RLC		RTX_RIGHT   
		RLC		RTX_LY      
		RLC		RTX_LX      
		RLC		RTX_RY      
		RLC		RTX_RX      
		RLC		RTX_KEY2    
		RLC		RTX_KEY1    
		RLC		RTX_MODE
		RLC		PK_RX_LENGH
		RLC		RF_STATUS
		BC		PORT6,SCLK
		DJZ		RW_COUNT
		JMP		READ_BURST_LOOP
		JBC		FLAG,RX_FIFO_FLAG
		MOV		A,@0XFF
		JBC		FLAG,RX_FIFO_FLAG
		JMP		READ_BURST_22BYTE_END
		
		MOV		A,RSSI
		XOR		A,@0X0F
		JBS		STATUS,Z
		JMP		READ_BURST_22BYTE_END_1
		
		MOV		A,LQI
		XOR		A,@0X13
		JBS		STATUS,Z
		JMP		READ_BURST_22BYTE_END_1
		
		BS		FLAG,RX_FIFO_FLAG
		MOV		A,@21*8
		MOV		RW_COUNT,A
		JMP		READ_BURST_LOOP
READ_BURST_22BYTE_END_1:		
		MOV		A,@0X00
READ_BURST_22BYTE_END:		
		BS		PORT5,CSN
		RET		

randm:                      
   		  mov	a,rand_h
		  mov   rand,a 
		  mov	a,rand_h
          mov   rand1,a
          rlc   rand 
		  mov	a,rand
          xor   rand1,a  
          rlc   rand        
          rlc   rand  
		  mov	a,rand
          xor   rand1,a
		  mov	a,rand_l
          mov   rand,a 
          swap  rand 
		  mov	a,rand1
          xor   rand,a  
          rlc   rand        
          rlc   rand_l      
          rlc   rand_h      
          ret               




		ORG	0X300
	
CONFIG_TABLE:
			TBL
			RETL	0X07	;IOCFG2 GDO2 CRC OK
			RETL	0X2E	;IOCFG1 GDO1 3-STATE
			RETL	0X06	;IOCFG0 send finish
			RETL	0X09	;FIFOTHR
			RETL	0X22	;SYNC1
			RETL	0X00	;SYNC0
			RETL	0X13	;RECEIVE PKTLEN
			RETL	0X0C	;4	;PKTCTRL1
			RETL	0X45	;PKTCTRL0
			RETL	0X00	;ADDR
			RETL	0X00	;CHANNEL
			RETL	0X0C	;FSCTRL1
			RETL	0X00	;FSCTRL0
			RETL	0X5D	;FREQ2
			RETL	0X93	;FREQ1
			RETL	0XB1	;FREQ0
			RETL	0X0E	;MDMCFG4
			RETL	0X3b	;MDMCFG3
			RETL	0X73	;MDMCFG2
			RETL	0XC2	;MDMCFG1
			RETL	0XF8	;MDMCFG0
			RETL	0X00	;DEVIATN
			RETL	0X07	;MCSM2
			RETL	0X30	;MCSM1
			RETL	0X18	;38	;MCSM0
			RETL	0X1D	;FOCCFG
			RETL	0X1C	;BSCFG
			RETL	0XC7	;AGCCTRL2
			RETL	0X40	;AGCCTRL1
			RETL	0XB2	;AGCCTRL0
			RETL	0X87	;WOREVT1
			RETL	0X6B	;WOREVT0
			RETL	0XF8	;WORCTRL
			RETL	0XB6	;FREND1
			RETL	0X10	;FREND0
			RETL	0XEA	;FSCAL3
			RETL	0X0A	;FSCAL2
			RETL	0X00	;FSCAL1
			RETL	0X19	;FSCAL0	;0x26
;************************************************
CH_TABLE:
			TBL
			RETL	0X00
			RETL	0X01
			RETL	0X02
			RETL	0X03
			RETL	0X04
			RETL	0X05
			RETL	0X06
			RETL	0X07
			RETL	0X08
			RETL	0X09
			RETL	0X0A
			RETL	0X0B
			RETL	0X0C
			RETL	0X0D
			RETL	0X0E
			RETL	0X0F
			RETL	0X10
			RETL	0X11
			RETL	0X12
			RETL	0X13
			RETL	0X14
			RETL	0X15
			RETL	0X16
			RETL	0X17
			RETL	0X18
			RETL	0X19
			RETL	0X1A
			RETL	0X1B
			RETL	0X1C
			RETL	0X1D
			RETL	0X1E
			RETL	0X1F
			RETL	0X20
			RETL	0X21
			RETL	0X22
			RETL	0X23
			RETL	0X24
			RETL	0X25
			RETL	0X26
			RETL	0X27
			RETL	0X28
			RETL	0X29
			RETL	0X2A
			RETL	0X2B
			RETL	0X2C
			RETL	0X2D
			RETL	0X2E
			RETL	0X2F
			RETL	0X30
			RETL	0X31
			RETL	0X32
			RETL	0X33
			RETL	0X34
			RETL	0X35
			RETL	0X36
			RETL	0X37
			RETL	0X38
			RETL	0X39
			RETL	0X3A
			RETL	0X3B
			RETL	0X3C
			RETL	0X3D
			RETL	0X3E
			RETL	0X3F
			RETL	0X40
			RETL	0X41
			RETL	0X42
			RETL	0X43
			RETL	0X44
			RETL	0X45
			RETL	0X46
			RETL	0X47
			RETL	0X48
			RETL	0X49
			RETL	0X4A
			RETL	0X4B
			RETL	0X4C
			RETL	0X4D
			RETL	0X4E
			RETL	0X4F
			RETL	0X50
			RETL	0X51
			RETL	0X52
			RETL	0X53
			RETL	0X54
			RETL	0X55
			RETL	0X56
			RETL	0X57
			RETL	0X58
			RETL	0X59
			RETL	0X5A
			RETL	0X5B
			RETL	0X5C
			RETL	0X5D
			RETL	0X5E
			RETL	0X5F
			RETL	0X60
			RETL	0X61
			RETL	0X62
			RETL	0X63
			RETL	0X64
			RETL	0X65
			RETL	0X66
			RETL	0X67
			RETL	0X68
			RETL	0X69
			RETL	0X6A
			RETL	0X6B
			RETL	0X6C
			RETL	0X6D
			RETL	0X6E
			RETL	0X6F
			RETL	0X70
			RETL	0X71
			RETL	0X72
			RETL	0X73
			RETL	0X74
			RETL	0X75
			RETL	0X76
			RETL	0X77
			RETL	0X78
			RETL	0X79
			RETL	0X7a
			RETL	0X7B
			RETL	0X7C
			RETL	0X7D
			RETL	0X7E
			RETL	0X7F
			




			
;*******************************************
;	RESET VECTOR
;*******************************************
        ORG 0XFFF
		JMP RESET      		
		
		
		
		
		
		
		

⌨️ 快捷键说明

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