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

📄 003t_a7105.asm

📁 2.4G RF开发代码 是用的最流行汇编
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;***************************************************************************************************************************;***	公司 :;***	文件名 : 		003R_A7105.ASM;***	编写者 :;***	创建日期 : 		2008年06月13日;***	修改日期 : 		2008年06月13日;***	说明 :;***	版本 : 			1.0;**************************************************************************************************************************		INCLUDE	"SH69P48.H"			;***************************************************************************************************************************;***		RAM定义;***		30H~EFH;***************************************************************************************************************************;RF_CH_RX_H		EQU	57H;RF_CH_RX_L		EQU	56HRF_HOOP_FLAG_H		EQU	57HRF_HOOP_FLAG_L		EQU	56HIDCODE_H		EQU	55HIDCODE_L		EQU	54HRF_CH_NOW_H		EQU	53HRF_CH_NOW_L		EQU	52HRF_CH_NEXT_H		EQU	51HRF_CH_NEXT_L		EQU	50HCH1_H			EQU	4FHCH1_L			EQU	4EHCH2_H			EQU	4DHCH2_L			EQU	4CHCH3_H			EQU	4BHCH3_L			EQU	4AHCH4_H			EQU	49HCH4_L			EQU	48HDELAY_TMPH		EQU	3FHDELAY_TMPL		EQU	3EHTMP_DATA		EQU	36HREG_ADR_H		EQU	35HREG_ADR_L		EQU	34HREG_DATA_H		EQU	33HREG_DATA_L		EQU	32H						SPI_DATAH		EQU	31HSPI_DATAL		EQU	30H;***************************************************************************************************************************;***		参数定义;***************************************************************************************************************************RF_CH_MAX_H		EQU	0AH			; 162X0.5=81 2400~2483RF_CH_MAX_L		EQU	02HRSSI_LEVEL_H		EQU	06HRSSI_LEVEL_L		EQU	08HRF_CH_JUMP_H		EQU	03H			; 50	RF_CH_JUMP_L		EQU	02HRF_HOOP_H		EQU	0AHRF_HOOP_L		EQU	03H;***************************************************************************************************************************;***		主程序;***************************************************************************************************************************		ORG	0000H		JMP	RESET		RTNI			JMP	T0_INT_SUB		RTNI		RTNI			;***************************************************************************************************************************RESET:			CALL	MCU_INIT				CALL	RAM_INT			MAIN:			CALL	RF_INIT						LDI	TM0,		01H		; TIMER0-> 1:512		LDI	TL0,		0AH		; 97.6		LDI	TH0,		0DH		LDI	IE,		0100B		; TIMER0 IE ENABLE;***************************************************************************************************************************		;**		应用主程序;***************************************************************************************************************************						JMP	$;***************************************************************************************************************************		;***************************************************************************************************************************;***		T0中断服务程序;***************************************************************************************************************************T0_INT_SUB:		LDI	IRQ,00H		;		LDI	REG_ADR_H,1010B		; 进入STANDBY;		CALL	STROBE_SUB		;***************************************************************************************************************************;***		RSSI NOW CH 测量并判断;***************************************************************************************************************************		LDI	REG_ADR_H,	00H		; ADDR:0F			LDI	REG_ADR_L,	0FH				SBI	RF_CH_NOW_L,	01H		; RX=RF_CH_NOW-1		STA	REG_DATA_L		LDI	TMP_DATA,	00H		SBC	RF_CH_NOW_H		STA	REG_DATA_H						CALL	WR_REG_SUB			; 设置RF通道						LDI	REG_ADR_H,	1100B		; 进入RX		CALL	STROBE_SUB				CALL	DELAY_200US				LDI	REG_ADR_H,	01H		; ADDR:1D			LDI	REG_ADR_L,	0DH		;		CALL	RD_REG_SUB			; 读RSSI				LDA	REG_DATA_H		LDA	REG_DATA_L				SBI	REG_DATA_H,	RSSI_LEVEL_H	; 判断RSSSI		BNC	RSSI_NOW_FAIL		BNZ	RSSI_NOW_PASS		SBI	REG_DATA_L,	RSSI_LEVEL_L		BC	RSSI_NOW_PASS		RSSI_NOW_FAIL:						; 如果判断RSSI<RSSI LEVEL			ADIM	RF_CH_NEXT_L,	RF_CH_JUMP_L	; 就要 NOW+JUMP=NEXT		LDI	TMP_DATA,	RF_CH_JUMP_H		ADCM	RF_CH_NEXT_H				SBI	RF_CH_NEXT_H,	RF_CH_MAX_H		BNC	RSSI_NEXT_DECT		BNZ	RSSI_FAIL_ADD		SBI	RF_CH_NEXT_L,	RF_CH_MAX_L		BC	RSSI_FAIL_ADD		JMP	RSSI_NEXT_DECTRSSI_FAIL_ADD:					SBIM	RF_CH_NEXT_L,	RF_CH_MAX_L		LDI	TMP_DATA,	RF_CH_MAX_H		SBCM	RF_CH_NEXT_H		;***************************************************************************************************************************;***		RSSI NEXT CH 测量并判断;***************************************************************************************************************************RSSI_NEXT_DECT:		LDI	REG_ADR_H,	00H		; ADDR:0F			LDI	REG_ADR_L,	0FH		SBI	RF_CH_NEXT_L,	01H		STA	REG_DATA_L		LDI	TMP_DATA,	00H		SBC	RF_CH_NEXT_H		STA	REG_DATA_H			CALL	WR_REG_SUB			; 设置RF通道				LDI	REG_ADR_H,	1100B		; 进入RX		CALL	STROBE_SUB				CALL	DELAY_200US				LDI	REG_ADR_H,	01H		; ADDR:1D			LDI	REG_ADR_L,	0DH		;		CALL	RD_REG_SUB			; 读RSSI						LDA	REG_DATA_H		LDA	REG_DATA_L				SBI	REG_DATA_H,	RSSI_LEVEL_H	; 判断RSSSI		BNC	RSSI_NOW_FAIL		BNZ	$+3		SBI	REG_DATA_L,	RSSI_LEVEL_L		BNC	RSSI_NOW_FAIL				LDI	RF_HOOP_FLAG_H, RF_HOOP_H		LDI	RF_HOOP_FLAG_L, RF_HOOP_L		JMP	T0_TX				RSSI_NOW_PASS:	;;		LDA	RF_CH_NOW_H;		STA	RF_CH_NEXT_H;		LDA	RF_CH_NOW_L;		STA	RF_CH_NEXT_L				LDI	RF_HOOP_FLAG_H,	00H		LDI	RF_HOOP_FLAG_L,	00H				;***************************************************************************************************************************;***		采样发射;***************************************************************************************************************************T0_TX:				CALL	AD_SUB				; 采样数据						LDI	REG_ADR_H,	1010B		; 进入STANDBY		CALL	STROBE_SUB						CALL	WR_FIFO_SUB									LDI	REG_ADR_H,	00H		; ADDR:0F			LDI	REG_ADR_L,	0FH		LDA	RF_CH_NOW_H		STA	REG_DATA_H			LDA	RF_CH_NOW_L		STA	REG_DATA_L				CALL	WR_REG_SUB			; 设置RF通道				LDI	REG_ADR_H,	1101B		; 进入TX		CALL	STROBE_SUB		LDA	PORTD		BA3	$-1T0_RX:						LDI	REG_ADR_H,	00H		; ADDR:0F			LDI	REG_ADR_L,	0FH		SBI	RF_CH_NOW_L,	01H		STA	REG_DATA_L		LDI	TMP_DATA,	00H		SBC	RF_CH_NOW_H		STA	REG_DATA_H					CALL	WR_REG_SUB			; 设置RF通道		LDI	REG_ADR_H,	1100B		; 进入RX		CALL	STROBE_SUB				LDI	IRQ,		00H		LDI	TM1,		01H		; TIMER1-> 1:512		LDI	TL1,		05H		; 97.6		LDI	TH1,		0EH		LDI	T1SET,		08H		LDA	IRQ				; 在发射完后5MS能否收到对方的ACK		BA1	$+8				LDA	PORTD		BA3	$-3				LDI	WDT,		01H		LDA	RF_CH_NEXT_H		STA	RF_CH_NOW_H		LDA	RF_CH_NEXT_L		STA	RF_CH_NOW_L						LDI	T1SET,		00H		LDI	IRQ,		00H								LDI	IE,		0100B		;TIMER0 IE ENABLE		RTNI							;***************************************************************************************************************************;***		子程序;***************************************************************************************************************************;***************************************************************************************************************************;***		69P48 初始化子程序;***************************************************************************************************************************MCU_INIT:		LDI	IRQ,		00H		; 保证程序可靠。		LDI	IE,		00H		; 保证程序可靠。				LDI	PAOUT,		1100B		; 2通道ADC输入(.0,.1),其它输出以防悬空(.2,.3)。		LDI	PBOUT,		0011B		; 2通道ADC输入(.2,.3),其它输出以防悬空(.0,.1)。		LDI	PCOUT,		1111B		; 输出以防悬空。		LDI	PDOUT,		0111B		; 		LDI	PEOUT,		0011B		; 输出以防悬空。		LDI	PORTA,		00H		LDI	PORTB,		00H		LDI	PORTC,		00H		LDI	PORTD,		1101B		LDI	PORTE,		00H								LDI	ADMODE,		1000B		; AN7,AN6,AN1,AN0有效		RTNIRAM_INIT:		LDI	TMP_DATA,	00H		LDI	RF_CH_NOW_H,	05H		; 初始化		LDI	RF_CH_NOW_L,	00H		LDI	RF_CH_NEXT_H,	05H		; 初始化		LDI	RF_CH_NEXT_L,	00H				LDI	RF_HOOP_FLAG_H, 00H		LDI	RF_HOOP_FLAG_L,	00H		LDI	WDT,		01H				RTNI		;***************************************************************************************************************************;***		7105 初始化子程序;***************************************************************************************************************************RF_INIT:		LDI	REG_ADR_H,	00H		; ADDR:00			LDI	REG_ADR_L,	00H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB				;		LDI	REG_ADR_H,00H		; ADDR:00	;		LDI	REG_ADR_L,00H		;		CALL	RD_REG_SUB				CALL	WR_REG_IDCODE_06				LDI	REG_ADR_H,	00H		; ADDR:01			LDI	REG_ADR_L,	01H		LDI	REG_DATA_H,	04H		; DATA:42		LDI	REG_DATA_L,	02H		; RSSI自动测量打开		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:02			LDI	REG_ADR_L,	02H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:03			LDI	REG_ADR_L,	03H		LDI	REG_DATA_H,	00H		; DATA:07		LDI	REG_DATA_L,	07H		CALL	WR_REG_SUB			; FIFO总共8个数据为了节约时间		LDI	REG_ADR_H,	00H		; ADDR:04			LDI	REG_ADR_L,	04H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB				LDI	REG_ADR_H,	00H		; ADDR:07			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,	00H		; ADDR:08			LDI	REG_ADR_L,	08H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:09			LDI	REG_ADR_L,	09H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0A			LDI	REG_ADR_L,	0AH		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0B			LDI	REG_ADR_L,	0BH		LDI	REG_DATA_H,	00H		; DATA:01		LDI	REG_DATA_L,	01H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0C			LDI	REG_ADR_L,	0CH		LDI	REG_DATA_H,	02H		; DATA:21		LDI	REG_DATA_L,	01H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0D			LDI	REG_ADR_L,	0DH		LDI	REG_DATA_H,	00H		; DATA:05		LDI	REG_DATA_L,	05H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0E			LDI	REG_ADR_L,	0EH		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		; SDR		CALL	WR_REG_SUB		LDI	REG_ADR_H,	00H		; ADDR:0F			LDI	REG_ADR_L,	0FH		LDI	REG_DATA_H,	05H		; DATA:50		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:10			LDI	REG_ADR_L,	00H		LDI	REG_DATA_H,	09H		; DATA:9E		LDI	REG_DATA_L,	0EH		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:11			LDI	REG_ADR_L,	01H		LDI	REG_DATA_H,	04H		; DATA:4B		LDI	REG_DATA_L,	0BH		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:12			LDI	REG_ADR_L,	02H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:13			LDI	REG_ADR_L,	03H		LDI	REG_DATA_H,	00H		; DATA:02		LDI	REG_DATA_L,	02H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:14			LDI	REG_ADR_L,	04H		LDI	REG_DATA_H,	01H		; DATA:16		LDI	REG_DATA_L,	06H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:15			LDI	REG_ADR_L,	05H		LDI	REG_DATA_H,	02H		; DATA:2B		LDI	REG_DATA_L,	0BH		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:16			LDI	REG_ADR_L,	06H		LDI	REG_DATA_H,	01H		; DATA:12		LDI	REG_DATA_L,	02H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:17			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,	01H		; ADDR:18			LDI	REG_ADR_L,	08H		LDI	REG_DATA_H,	06H		; DATA:62		LDI	REG_DATA_L,	02H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:19			LDI	REG_ADR_L,	09H		LDI	REG_DATA_H,	08H		; DATA:80		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:1A			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,	01H		; ADDR:1B			LDI	REG_ADR_L,	0BH		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:1C			LDI	REG_ADR_L,	0CH		LDI	REG_DATA_H,	00H		; DATA:0A		LDI	REG_DATA_L,	0AH		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:1D			LDI	REG_ADR_L,	0DH		LDI	REG_DATA_H,	03H		; DATA:32		LDI	REG_DATA_L,	02H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:1E			LDI	REG_ADR_L,	0EH		LDI	REG_DATA_H,	0CH		; DATA:C3		LDI	REG_DATA_L,	03H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	01H		; ADDR:1F			LDI	REG_ADR_L,	0FH		LDI	REG_DATA_H,	00H		; DATA:07		LDI	REG_DATA_L,	07H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:20			LDI	REG_ADR_L,	00H		LDI	REG_DATA_H,	01H		; DATA:16		LDI	REG_DATA_L,	06H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:21			LDI	REG_ADR_L,	01H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:22			LDI	REG_ADR_L,	02H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB				LDI	REG_ADR_H,	02H		; ADDR:24			LDI	REG_ADR_L,	04H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:25			LDI	REG_ADR_L,	05H		LDI	REG_DATA_H,	00H		; DATA:00		LDI	REG_DATA_L,	00H		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:26			LDI	REG_ADR_L,	06H		LDI	REG_DATA_H,	03H		; DATA:3A		LDI	REG_DATA_L,	0AH		CALL	WR_REG_SUB		LDI	REG_ADR_H,	02H		; ADDR:27	

⌨️ 快捷键说明

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