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

📄 cc2500.asm.bak

📁 cc2500的跳频发送程式,有需要的朋友可以参考一下哟
💻 BAK
📖 第 1 页 / 共 2 页
字号:
	
	lds	R_Delay,2;
	call	F_DelxxUS;
	rts;
;*********************************************************************
;F: Function Name: F_DelxxUs.
;F: Input:
;F:	R_Delay.
;F:
;F:
;*********************************************************************
F_DelxxUS:
	nop;
	nop;
	nop;
	nop;
	nop;
	dec*	R_Delay;
	jnz	F_DelxxUS;
	rts;
;*********************************************************************
;F: Function Name: F_CC2500WRStrobe.
;F: Input:
;F:  	R_ParLow,R_ParHigh.
;F: Output:
;F:	None:
;F:
;**********************************************************************	
F_CC2500WRStrobe:
	andi*	R_PortA,D_NCSn;
	opa	R_PortA;
L_WaitSOLO00:
	ipb	R_WrkReg1;
	jb3	L_WaitSOLO00;
	
	call	F_WRCC2500Bit;
	call	F_WRCC2500_REG_Addr;
	
	lds	R_Delay,10;
	call	F_DelxxUS;
	ori*	R_PortA,D_CSn;
	opa	R_PortA;
	rts;
;***********************************************************************
;F: Function Name: F_WRCC2500Bit.
;F: 
;F: 送出一位写信号位。
;F:
;F:	
;************************************************************************	
F_WRCC2500Bit:
	andi*	R_PortA,D_NSI;
	opa	R_PortA;
	
	nop;
	nop;
	nop;
	nop;
	ori*	R_PortA,D_SCLK;
	opa	R_PortA;
	nop;
	nop;
	andi*	R_PortA,D_NSCLK;
	opa	R_PortA;
	rts;
;************************************************************************
;F: Function Name: F_RDCC2500Bit.
;F:
;F: 送出一位读信号位。
;F:
;F:
;F:
;*************************************************************************	
F_RDCC2500Bit:
	ori*	R_PortA,D_SI;
	opa	R_PortA;
	nop;
	nop;
	nop;
	nop;
	ori*	R_PortA,D_SCLK;
	opa	R_PortA;
	nop;
	nop;
	andi*	R_PortA,D_NSCLK;
	opa	R_PortA;
	rts;
;*************************************************************************
;F: Function Name: F_WRCC2500_REG_Addr.
;F:
;F: Write 7bit register address.
;F:
;F:
;*************************************************************************
F_WRCC2500_REG_Addr:
	lds	R_cc2500Count,7;
	lda	R_ParLow;
	add*	R_ParLow;
	lda	R_ParHigh;
	adc*	R_ParHigh;
L_LoopWR00:
	lda	R_ParLow;
	add*	R_ParLow;
	lda	R_ParHigh;
	adc*	R_ParHigh;
	jc	L_WRHi00;
L_WRLo00:			
	andi*	R_PortA,D_NSI;
	opa	R_PortA;
	jmp	L_WRClk00;
L_WRHi00:
	ori*	R_PortA,D_SI;
	opa	R_PortA;
L_WRClk00:
	nop;
	nop;
	nop;
	nop;
	ori*	R_PortA,D_SCLK;
	opa	R_PortA;
	nop;
	nop;
	andi*	R_PortA,D_NSCLK;
	opa	R_PortA;
	
	dec*	R_cc2500Count;
	jnz	L_LoopWR00;
	
	andi*	R_PortA,D_NSI;
	opa	R_PortA;
	rts;
;**************************************************************************
;F: Function Name: F_WRCC2500_ABYTE.
;F: Write 8bit data to register.
;F:
;F: Input:
;F:	R_ParLow,R_ParHigh.
;F:
;**************************************************************************
F_WRCC2500_ABYTE:
	lds	R_cc2500Count,8;	
L_LoopWR02:
	lda	R_ParLow;
	add*	R_ParLow;
	lda	R_ParHigh;
	adc*	R_ParHigh;
	jnc	L_WRLO02;
L_WRHi02:	
	ori*	R_PortA,D_SI;
	opa	R_PortA;
	jmp	L_Clk02;	
L_WRLO02:
	andi*	R_PortA,D_NSI;
	opa	R_PortA;
L_Clk02:
	nop;
	nop;
	nop;
	nop;
	ori*	R_PortA,D_SCLK;
	opa	R_PortA;
	nop;
	nop;
	andi*	R_PortA,D_NSCLK;
	opa	R_PortA;
	
	dec*	R_cc2500Count;
	jnz	L_LoopWR02;
	
	andi*	R_PortA,D_NSI;
	opa	R_PortA;
	rts;
;**********************************************************************
;F: Function Name: F_ReadCC2500AByte.
;F:
;F:
;F:
;F:
;***********************************************************************	
F_ReadCC2500AByte:
	lds	R_ParLow,0;
	lds	R_ParHigh,0;
	lds	R_cc2500Count,8;	
L_LoopRdByte:
	ipb	R_WrkReg1;
	jb3	L_RdCC2500Hi	
L_RdCC2500Lo:
	lds	R_WrkReg1,0;
	mra	R_WrkReg1;
	jmp	L_RdClk;
;======================================
;======================================
L_RdCC2500Hi:	
	lds	R_WrkReg1,1000b;	
	mra	R_WrkReg1;	
L_RdClk:
	lda	R_ParLow;
	adc*	R_ParLow;
	lda	R_ParHigh;
	adc*	R_ParHigh;

	ori*	R_PortA,D_SCLK;
	opa	R_PortA;
	nop;
	nop;
	andi*	R_PortA,D_NSCLK;
	opa	R_PortA;
	
	dec*	R_cc2500Count;
	jnz	L_LoopRdByte;
	rts;
;*********************************************************************
;F: Function Name:	F_SendRFCommand.
;F: Build Date:
;F:	2006/11/6.
;F:
;F:
;*********************************************************************
F_SendRFCommand:
	lds	R_ParLow,CMD_CC2500_SIDLE%16;
	lds	R_ParHigh,CMD_CC2500_SIDLE/16;
	call	F_CC2500WRStrobe;

	lds	R_Delay,4;
	call	F_DelxxUS;
	lds	R_ParLow,CMD_CC2500_SFTX%16;
	lds	R_ParHigh,CMD_CC2500_SFTX/16;
	call	F_CC2500WRStrobe;
	
	call	F_CfgChannel;
	call	F_CfgPKGLong;
;==============================================
;==============================================
;Write TX FIFO BUffer.		
	andi*	R_PortA,D_NCSn;
	opa	R_PortA;
L_WaitSOLo07:
	ipb	R_WrkReg1;
	jb3	L_WaitSOLo07;
	
	call	F_WRCC2500Bit;
	lds	R_ParLow,7FH%16;
	lds	R_ParHigh,7FH/16;
	call	F_WRCC2500_REG_Addr;  packet long register.
	
	;ipd	R_WrkReg1;
	lds	R_WrkReg1,4;
	sta	R_ParLow;
	lds	R_ParHigh,0;
	call	F_WRCC2500_ABYTE; 地址值。 
	
	lda	R_SendCommandLo;
	sta	R_ParLow;
	lda	R_SendCommandHi;
	sta	R_ParHigh;
	call	F_WRCC2500_ABYTE;
	
	lds	R_ParLow,55h%16;
	lds	R_ParHigh,55h/16;
	call	F_WRCC2500_ABYTE;
	
	lds	R_ParLow,0aah%16;
	lds	R_ParHigh,0aah/16;
	call	F_WRCC2500_ABYTE;
	
	ori*	R_PortA,D_CSn;
	opa	R_PortA;
	lds	R_ParLow,CMD_CC2500_STX%16;
	lds	R_ParHigh,CMD_CC2500_STX/16;
	call	F_CC2500WRStrobe;
L_SendRFCMDRet:	
	rts;
;**********************************************************************
;F: Function Name: F_ReadCC2500Reg.
;F:
;F:
;F:
;F:
;**********************************************************************
F_ReadCC2500Reg:
	andi*	R_PortA,D_NCSn;
	opa	R_PortA;
L_WaitSOLO10:
	ipb	R_WrkReg1;
	jb3	L_WaitSOLO10;
	
	call	F_RDCC2500Bit;
	lda	R_RdAddrLow;
	sta	R_ParLow;
	lda	R_RdAddrHigh;
	sta	R_ParHigh;
	call	F_WRCC2500_REG_Addr;
	call	F_ReadCC2500AByte;
	ori*	R_PortA,D_CSn;
	opa	R_PortA;
	rts;
;**********************************************************************
;F: Function Name:	F_CfgPKGLong.
;F:
;F:
;F:
;F:********************************************************************	
F_CfgPKGLong:
	andi*	R_PortA,D_NCSn;
	opa	R_PortA;
L_WaitSOLo05:
	ipb	R_WrkReg1;
	jb3	L_WaitSOLo05;
	
	call	F_WRCC2500Bit;
	lds	R_ParLow,06h;
	lds	R_ParHigh,0;
	call	F_WRCC2500_REG_Addr;  packet long register.
	lds	R_ParLow,4;
	lds	R_ParHigh,0;
	call	F_WRCC2500_ABYTE;				
	ori*	R_PortA,D_CSn;
	opa	R_PortA;
	rts;
;**********************************************************************
;F: Function Name:	F_CfgChannel.
;F:
;F:
;F:
;F:
;**********************************************************************	
F_CfgChannel:
	andi*	R_PortA,D_NCSn;
	opa	R_PortA;
L_WaitSOLo06:
	ipb	R_WrkReg1;
	jb3	L_WaitSOLo06;
	
	call	F_WRCC2500Bit;
	lds	R_ParLow,0ah;
	lds	R_ParHigh,0;
	call	F_WRCC2500_REG_Addr;
	
	;ipd	R_WrkReg1;
	lds	R_WrkReg1,2;
	sta	R_ParLow;
	lds	R_ParHigh,0;
	call	F_WRCC2500_ABYTE;
	ori*	R_PortA,D_CSn;
	opa	R_PortA;
	rts;	


⌨️ 快捷键说明

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