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

📄 003t_a7105.asm

📁 2.4G RF开发代码 是用的最流行汇编
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		LDI	REG_ADR_L,	07H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:28			LDI	REG_ADR_L,	08H		LDI	REG_DATA_H,	01H		; DATA:17		LDI	REG_DATA_L,	07H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:29			LDI	REG_ADR_L,	09H		LDI	REG_DATA_H,	04H		; DATA:47		LDI	REG_DATA_L,	07H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2A			LDI	REG_ADR_L,	0AH		LDI	REG_DATA_H,	08H		; DATA:80		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2B			LDI	REG_ADR_L,	0BH		LDI	REG_DATA_H,	00H		; DATA:03		LDI	REG_DATA_L,	03H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2C			LDI	REG_ADR_L,	0CH		LDI	REG_DATA_H,	00H		; DATA:01		LDI	REG_DATA_L,	01H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2D			LDI	REG_ADR_L,	0DH		LDI	REG_DATA_H,	04H		; DATA:45		LDI	REG_DATA_L,	05H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2E			LDI	REG_ADR_L,	0EH		LDI	REG_DATA_H,	01H		; DATA:18		LDI	REG_DATA_L,	08H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:2F			LDI	REG_ADR_L,	0FH		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	03H		; ADDR:30			LDI	REG_ADR_L,	00H		LDI	REG_DATA_H,	00H		; DATA:01		LDI	REG_DATA_L,	01H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	03H		; ADDR:31			LDI	REG_ADR_L,	01H		LDI	REG_DATA_H,	00H		; DATA:0F		LDI	REG_DATA_L,	0FH		CALL	WR_REG_SUB;***************************************************************************************************************************;***	CAL		LDI	REG_ADR_H,	1010B		; 进入STANDBY		CALL	STROBE_SUB				LDI	REG_ADR_H,	00H		; ADDR:02			LDI	REG_ADR_L,	02H		LDI	REG_DATA_H,	00H		; DATA:01		LDI	REG_DATA_L,	01H		CALL	WR_REG_SUB							LDI	REG_ADR_H,	00H		; ADDR:02			LDI	REG_ADR_L,	02H		CALL	RD_REG_SUB		LDA	SPI_DATAL		BA0	$-4				LDI	REG_ADR_H,	02H		; ADDR:22			LDI	REG_ADR_L,	02H		CALL	RD_REG_SUB		LDA	SPI_DATAH		BA0	$-4				; 校准出错				LDI	REG_ADR_H,	02H		; ADDR:24			LDI	REG_ADR_L,	04H		LDI	REG_DATA_H,	01H		; DATA:13		LDI	REG_DATA_L,	03H		CALL	WR_REG_SUB				LDI	REG_ADR_H,	02H		; ADDR:25			LDI	REG_ADR_L,	05H		LDI	REG_DATA_H,	00H		; DATA:09		LDI	REG_DATA_L,	09H		CALL	WR_REG_SUB		RTNI;***************************************************************************************************************************;***		A/D采样子程序;***************************************************************************************************************************WR_FIFO_SUB:		LDI	REG_ADR_H,	1110B		; 复位写FIFO		CALL	STROBE_SUB				ANDIM	PORTD,		1110B		; SCS输出为低电平		LDI	SPI_DATAH,	00H		; 05		LDI	SPI_DATAL,	05H		CALL	WR_SPI				; FIFO地址				LDA	IDCODE_H			; 0: IDCODE		STA	SPI_DATAH		LDA	IDCODE_L		STA	SPI_DATAL		CALL	WR_SPI						LDA	RF_HOOP_FLAG_H			; 1: HOOP_FLAG		STA	SPI_DATAH		LDA	RF_HOOP_FLAG_L		STA	SPI_DATAL		CALL	WR_SPI						LDA	RF_CH_NOW_H			; 2: RF_CH_NOW		STA	SPI_DATAH		LDA	RF_CH_NOW_L		STA	SPI_DATAL		CALL	WR_SPI;		LDI	RF_CH_NEXT_H,	05H;		LDI	RF_CH_NEXT_L,	00H		LDA	RF_CH_NEXT_H			; 3: RF_CH_NEXT		STA	SPI_DATAH		LDA	RF_CH_NEXT_L		STA	SPI_DATAL		CALL	WR_SPI						LDA	CH1_H				; 4: CH1		STA	SPI_DATAH		LDA	CH1_L		STA	SPI_DATAL		CALL	WR_SPI				LDA	CH2_H				; 5: CH2		STA	SPI_DATAH		LDA	CH2_L		STA	SPI_DATAL		CALL	WR_SPI				LDA	CH3_H				; 6: CH3		STA	SPI_DATAH		LDA	CH3_L		STA	SPI_DATAL		CALL	WR_SPI				LDA	CH4_H				; 7: CH4		STA	SPI_DATAH		LDA	CH4_L		STA	SPI_DATAL		CALL	WR_SPI					ORIM	PORTD,0001B		; SCS输出为高电平			RTNI;***************************************************************************************************************************;***		A/D采样子程序;***************************************************************************************************************************AD_SUB:		LDI	ADCPOW,0001B		; VREF=VDD, ADC POWER ON		LDI	ADCH,0000B		; ADC MODULE ON AD0		LDI	ADCON,1100B		; TAD=8*TOSC							LDA	ADCON		BA3	$-1				LDA	ADRESH		STA	CH1_H		LDA	ADRESM		STA	CH1_L				LDI	ADCPOW,0001B		; VREF=VDD, ADC POWER ON		LDI	ADCH,0001B		; ADC MODULE ON AD1		LDI	ADCON,1100B		; TAD=8*TOSC							LDA	ADCON		BA3	$-1				LDA	ADRESH		STA	CH2_H		LDA	ADRESM		STA	CH2_L				LDI	ADCPOW,0001B		; VREF=VDD, ADC POWER ON		LDI	ADCH,0110B		; ADC MODULE ON AD6		LDI	ADCON,1100B		; TAD=8*TOSC							LDA	ADCON		BA3	$-1				LDA	ADRESH		STA	CH3_H		LDA	ADRESM		STA	CH3_L		LDI	ADCPOW,0001B		; VREF=VDD, ADC POWER ON		LDI	ADCH,0111B		; ADC MODULE ON AD7		LDI	ADCON,1100B		; TAD=8*TOSC							LDA	ADCON		BA3	$-1				LDA	ADRESH		STA	CH4_H		LDA	ADRESM		STA	CH4_L				RTNI;***************************************************************************************************************************WR_REG_IDCODE_06:;		ANDIM	REG_ADR_H,1011B		; R/W=0		ANDIM	PORTD,1110B		; SCS输出为低电平				LDI	SPI_DATAH,00H		; IDCODE 地址		LDI	SPI_DATAL,06H		CALL	WR_SPI				LDI	SPI_DATAH,05H		; ID CODE0		LDI	SPI_DATAL,04H		CALL	WR_SPI				LDI	SPI_DATAH,07H		; ID CODE1		LDI	SPI_DATAL,05H		CALL	WR_SPI				LDI	SPI_DATAH,0CH		; ID CODE2		LDI	SPI_DATAL,05H		CALL	WR_SPI				LDI	SPI_DATAH,02H		; ID CODE3		LDI	SPI_DATAL,0AH		CALL	WR_SPI				ORIM	PORTD,0001B		; SCS输出为高电平				ANDIM	PORTD,1110B		; SCS输出为低电平		LDI	SPI_DATAH,04H		; ADDR:06			LDI	SPI_DATAL,06H		CALL	WR_SPI				CALL	RD_SPI		LDA	SPI_DATAH		LDA	SPI_DATAL				CALL	RD_SPI		LDA	SPI_DATAH		LDA	SPI_DATAL				CALL	RD_SPI		LDA	SPI_DATAH		LDA	SPI_DATAL				CALL	RD_SPI		LDA	SPI_DATAH		LDA	SPI_DATAL				ORIM	PORTD,0001B		; SCS输出为高电平		RTNI;***************************************************************************************************************************STROBE_SUB:		ANDIM	PORTD,1110B		; SCS输出为低电平		LDA	REG_ADR_H		STA	SPI_DATAH		ORIM	PDOUT,0100B		; 设置SDIO为输出;BIT 7				LDA	SPI_DATAH		BA3	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 6				LDA	SPI_DATAH		BA2	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 5				LDA	SPI_DATAH		BA1	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 4				LDA	SPI_DATAH		BA0	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平		ORIM	PORTD,0001B		; SCS输出为高电平		RTNI		;***************************************************************************************************************************WR_REG_SUB:		ANDIM	REG_ADR_H,1011B		; R/W=0		ANDIM	PORTD,1110B		; SCS输出为低电平				LDA	REG_ADR_H		STA	SPI_DATAH		LDA	REG_ADR_L		STA	SPI_DATAL						CALL	WR_SPI				LDA	REG_DATA_H		STA	SPI_DATAH		LDA	REG_DATA_L		STA	SPI_DATAL						CALL	WR_SPI				ORIM	PORTD,0001B		; SCS输出为高电平;		CALL	RD_REG_SUB				RTNI;***************************************************************************************************************************RD_REG_SUB:		ORIM	REG_ADR_H,0100B		; R/W=1		ANDIM	PORTD,1110B		; SCS输出为低电平				LDA	REG_ADR_H		STA	SPI_DATAH		LDA	REG_ADR_L		STA	SPI_DATAL						CALL	WR_SPI										CALL	RD_SPI		LDA	SPI_DATAH		STA	REG_DATA_H		LDA	SPI_DATAL		STA	REG_DATA_L				ORIM	PORTD,0001B		; SCS输出为高电平				RTNI		;***************************************************************************************************************************WR_SPI:		ORIM	PDOUT,0100B		; 设置SDIO为输出;BIT 7				LDA	SPI_DATAH		BA3	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 6				LDA	SPI_DATAH		BA2	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 5				LDA	SPI_DATAH		BA1	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 4				LDA	SPI_DATAH		BA0	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 3						LDA	SPI_DATAL		BA3	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 2				LDA	SPI_DATAL		BA2	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 1				LDA	SPI_DATAL		BA1	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 0				LDA	SPI_DATAL		BA0	$+3		ANDIM	PORTD,1011B		; SDIO输出为低电平		JMP	$+2		ORIM	PORTD,0100B		; SDIO输出为高电平		ORIM	PORTD,0010B		; SCL输出为高电平		ANDIM	PORTD,1101B		; SCL输出为低电平						RTNI		;***************************************************************************************************************************RD_SPI:			ANDIM	PDOUT,1011B		; 设置SDIO为输入		LDI	SPI_DATAH,00H		LDI	SPI_DATAL,00H;BIT 7				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAH,1000B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 6				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAH,0100B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 5				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAH,0010B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 4				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAH,0001B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 3					ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAL,1000B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 2				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAL,0100B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 1				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAL,0010B				ANDIM	PORTD,1101B		; SCL输出为低电平;BIT 0				ORIM	PORTD,0010B		; SCL输出为高电平		LDA	PORTD		BA2	$+2			; 如果输入SDI为高电平		JMP	$+2		ORIM	SPI_DATAL,0001B				ANDIM	PORTD,1101B		; SCL输出为低电平		         	RTNI        	;***************************************************************************************************************************	;***		延迟200us子程序;***************************************************************************************************************************DELAY_200US:		LDI	DELAY_TMPH,08H				LDI	DELAY_TMPL,0AH		SBIM	DELAY_TMPL,01H		BNZ	$-1		SBIM	DELAY_TMPH,01H		BNZ	$-4				RTNI;***************************************************************************************************************************				END		

⌨️ 快捷键说明

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