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

📄 a60_mf6210.asm

📁 用W588D写的驱动6210-2.4G无线模块,收发程序在一块,(65C02汇编指令实现)
💻 ASM
字号:
;***************************************************************************
;<<<<<<<<<<<<<<<<<<<<2.4GRF_MF6210模块驱动子程序>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;***************************************************************************
;===========================================================================
;所用项目:  2.4G_TX
;包含函数:	
;			1.MMF6210_Initial		;MF6210模块初始化
;			2.MMF6210_DATA_TX		;MF6210发送输数据
;			3.MMF6210_COMM_SEND		;从SPI口发送3字节的数据,并接收3字节的数据
;			4.MMF6210_WR_DATA		;从MF6210口读写一个字节的数据
;			5.MMF6210_DELAY_1MS		;延时1MS
;			6.TAB_MF6210_RFIC_REG	;MF6210RFIC寄存器,初始化表
;			7.TAB_MF6210_FRAMER_REG	;MF6210FRAMER寄存器,初始化表
;===========================================================================
;修改日期:2008/02/26
;程序员:Wangbo
;===========================================================================
;1.	MF6210模块初始化
MMF6210_Initial:
	MACRO_MF6210_MOSI_RESET_L
	JSR MMF6210_DELAY_1MS
	MACRO_MF6210_MOSI_RESET_H
	JSR MMF6210_DELAY_1MS
	JSR MMF6210_DELAY_1MS
	JSR MMF6210_DELAY_1MS	;等待晶振稳定
	JSR MMF6210_DELAY_1MS
	JSR MMF6210_DELAY_1MS
	;---------------------------------------------
	LDX #0
SMF6210_Initial_FRAME_REG:	
	LDA TAB_MF6210_FRAMER_REG,X
	STA gMF6210_Send_DATA
	INX
	LDA TAB_MF6210_FRAMER_REG,X
	STA gMF6210_Send_DATA+1			;初始化Frame reg
	INX 
	LDA TAB_MF6210_FRAMER_REG,X
	STA gMF6210_Send_DATA+2
	JSR MMF6210_COMM_SEND
	INX
	;------------------------------
	CPX #33
	BCC SMF6210_Initial_FRAME_REG
	;---------------------------------------------
	JSR MMF6210_DELAY_1MS			;等待RFIC自动校正
	JSR MMF6210_DELAY_1MS
	;---------------------------------------------
	LDX #0
SMF6210_Initial_REIC_REG:	
	LDA TAB_MF6210_RFIC_REG,X
	STA gMF6210_Send_DATA
	INX
	LDA TAB_MF6210_RFIC_REG,X
	STA gMF6210_Send_DATA+1			;初始化RFIC reg
	INX 
	LDA TAB_MF6210_RFIC_REG,X
	STA gMF6210_Send_DATA+2
	JSR MMF6210_COMM_SEND
	INX
	JSR MMF6210_DELAY_5US
	;------------------------------
	CPX #72
	BCC SMF6210_Initial_REIC_REG
	;---------------------------------------------
SMF6210_Initial_RTS:
	STZ gMF6210_Send_DATA
	RTS
;===========================================================================
;4.	从SPI口发送3字节的数据,并接收3字节的数据
;	gMF6210_Send_BUFF(将发送的数据)发送数据,
;	并接收状态数据,存于gMF6210_Receive_State
MMF6210_COMM_SEND:
	PHX
	;-------------
	MACRO_MF6310_Initial_State
	MACRO_MF6210_SS_L
	LDX #0
SMF6210_COMM_SEND_LP:
	LDA gMF6210_Send_DATA,X
	STA gMF6210_Send_BUFF
	JSR MMF6210_WR_DATA
	;---------------------------
	LDA gMF6210_Receive_BUFF
	STA gMF6210_Receive_State,X
	;---------------------------------------------------
	INX
	CPX #3
	BCC SMF6210_COMM_SEND_LP
	MACRO_MF6210_SS_H
	;-------------
	PLX
	RTS
;===========================================================================
;4.	从MF6210口读写一个字节的数据
;	MF6210_SS已拉低
;	发送的数据存于gMF6210_Send_BUFF中
;	接收到的数据存于gMF6210_Receive_BUFF中
;--------------------------------------------------------
MMF6210_WR_DATA:
	LDA #80H
 	STA gMF6210_TRAN_NUM
	STZ gMF6210_Receive_BUFF
SMF6210_WR_DATA_LOOP:
	MACRO_MF6210_SCLK_L
;-------------------------------------------一个周期
	LDA gMF6210_Send_BUFF
	BIT gMF6210_TRAN_NUM
	BNE SMF6210_WR_DATA_LOOP_SEND
	;---------------------------------------------------
	MACRO_MF6210_MOSI_L				;写入MOSI
	BRA SMF6210_WR_DATA_LOOP_RECE
SMF6210_WR_DATA_LOOP_SEND:
	MACRO_MF6210_MOSI_H
	;---------------------------------------------------
SMF6210_WR_DATA_LOOP_RECE:
	MACRO_MF6210_SCLK_H
	;---------------------------------------------------
	ASL gMF6210_Receive_BUFF
	LDA !Mac_MF6210_PORT
	BIT #Mac_MF6210_MISO			;读取MISO
	BEQ SMF6210_WR_DATA_LOOP_CMP
	LDA #01H
	TSB gMF6210_Receive_BUFF
	;---------------------------------------------------
SMF6210_WR_DATA_LOOP_CMP:
	;---------------------------------------------------
	LSR gMF6210_TRAN_NUM
	BCC SMF6210_WR_DATA_LOOP
	;---------------------------------------------------
	MACRO_MF6210_SCLK_L
	JSR MMF6210_DELAY_5US
	RTS
;===========================================================================
;5.延时1MS
MMF6210_DELAY_1MS:
	LDA #01H
	STA !WDTC
	LDA #200
SMF6210_DELAY_1MS_LP:
    NOP		;0.5uS
    NOP		;0.5uS
	;--------
    NOP			
    NOP
 	;--------
	NOP
    NOP
 	;--------
  	NOP
    NOP
 	;--------
    NOP
    NOP
	;--------
	DEC A
	BNE SMF6210_DELAY_1MS_LP
    RTS
;====================================================================
;13.延时5US
MMF6210_DELAY_5US:
	LDA #01H
	STA !WDTC
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    RTS
;===========================================================================
;6.	MF6210RFIC寄存器,初始化表
TAB_MF6210_RFIC_REG:
	DB	09H, 21H, 82H	;REG9		0
	DB	00H, 35H, 4DH	;REG0		1				
	DB	02H, 1EH, 01H	;REG2		2		
	DB	04H, BCH, F0H	;REG4		3
	DB	05H, 00H, A1H	;REG5		4
	DB	07H, 12H, 4CH	;REG7		5
	DB	08H, 80H, 00H	;REG8		6
	DB	0AH, 00H, 04H	;REG10		7
	DB	0BH, 40H, 41H	;REG11		8
	DB	0CH, 80H, 00H	;REG12		9
	DB	0DH, 00H, 00H	;REG13		10
	DB	0EH, 16H, 9BH	;REG14		11
	DB	0FH, 0DH, EDH	;REG15		12
	DB	10H, B0H, 00H	;REG16		13
	DB	12H, E0H, 00H	;REG18		14
	DB	13H, A1H, 14H	;REG19		15
	DB	14H, 81H, 95H	;REG20		16
	DB	15H, 69H, 62H	;REG21		17
	DB	16H, 00H, 02H	;REG22		18
	DB	17H, 00H, 02H	;REG23		19
	DB	18H, B1H, 40H	;REG24		20
	DB	19H, A8H, 0FH	;REG25		21
	DB	1AH, 3EH, 07H	;REG26		22
	DB	1CH, 58H, 00H	;REG28		23
;===========================================================================
;7.	MF6210FRAMER寄存器,初始化表
TAB_MF6210_FRAMER_REG:
	DB	30H, 98H, 00H 	;REG48		1
	DB	31H, FFH, 8FH	;REG49		2
	DB	32H, 80H, 18H	;REG50		3
	DB	33H, 80H, 56H	;REG51		4
	DB	34H, 4EH, F6H	;REG52		5
	DB	35H, F6H, F5H	;REG53		6
	DB	36H, 18H, 5CH	;REG54		7
	DB	37H, D6H, 51H	;REG55		8
	DB	38H, 44H, 44H	;REG56		9
	DB	39H, E0H, 00H	;REG57		10

⌨️ 快捷键说明

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