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

📄 a1_isd17xx_define.asm

📁 华邦ISD17XX驱动程序,用65C02核实现的
💻 ASM
字号:
;********************************************************************
;********************************************************************
;==========================ISD17XXX变量及宏定义区============================
;修改日期:
;程序员:
;============================================================================
;-------------ISD1760相关的变量------------------------
gISD_TRAN_NUM		DS	1	;传送SPI数据时,计数用
gISD_Receive_BUFF	DS	1	;接收数据用的BUFF
gISD_Send_BUFF		DS	1	;发送数据用的BUFF

gISD_COMM_BYTE		DS	1	;命令的字节数
gISD_Send_DATA		DS	7	;所要发送的数据
gISD_Receive_DATA	DS	7	;接收的状态数据
;==================ISD17XXX接口宏=========================
Mac_ISD17XX_PORT1		EQU		BP0		;MOSI,SCLK,SS
Mac_ISD17XX_PORT2		EQU		BP1		;MISO

Mac_ISD17XX_MISO		EQU		01H		;BP1.0
Mac_ISD17XX_MOSI		EQU		20H		;BP0.5
Mac_ISD17XX_SCLK		EQU		40H		;BP0.6
Mac_ISD17XX_SS			EQU		80H		;BP0.7
;==================ISD17XXX_ID=========================
Mac_ISD1740_ID			EQU		B0H
Mac_ISD1750_ID			EQU		A8H
Mac_ISD1760_ID			EQU		A0H
Mac_USE_ISD_ID			EQU 	Mac_ISD1750_ID
;--------------------ISD命令字-----------------------------
; 							   命令字	 命令组成
Mac_ISD_COMM_PU			EQU 	01H			;2
Mac_ISD_COMM_STOP		EQU 	02H			;2
Mac_ISD_COMM_RESET		EQU 	03H			;2
Mac_ISD_COMM_CLR_INT	EQU 	04H			;2
Mac_ISD_COMM_RD_STATUS	EQU 	05H			;3
Mac_ISD_COMM_RD_PLAY_PTR EQU 	06H			;4
Mac_ISD_COMM_PD			EQU 	07H			;2
Mac_ISD_COMM_RD_REC_PTR	EQU 	08H			;4
Mac_ISD_COMM_DEVID		EQU 	09H			;3
Mac_ISD_COMM_PLAY		EQU 	40H			;2
Mac_ISD_COMM_REC		EQU 	41H			;2
Mac_ISD_COMM_ERASE		EQU 	42H			;2
Mac_ISD_COMM_G_ERASE	EQU 	43H			;2
Mac_ISD_COMM_RD_APC		EQU 	44H			;4
Mac_ISD_COMM_WR_APC1	EQU 	45H			;3
Mac_ISD_COMM_WR_APC2	EQU 	65H			;3
Mac_ISD_COMM_WR_NVCFG	EQU 	46H			;2
Mac_ISD_COMM_LD_NVCFG	EQU 	47H			;2
Mac_ISD_COMM_FWD		EQU 	48H			;2
Mac_ISD_COMM_CHK_MEM	EQU 	49H			;2
Mac_ISD_COMM_EXTCLK		EQU 	4AH			;2
Mac_ISD_COMM_SET_PLAY	EQU 	80H			;7
Mac_ISD_COMM_SET_REC	EQU 	81H			;7
Mac_ISD_COMM_SET_ERASE	EQU 	82H			;7
;=============================================================================
Mac_ISD_COMM_BYTE2		EQU		2
Mac_ISD_COMM_BYTE3		EQU		3
Mac_ISD_COMM_BYTE4		EQU		4
Mac_ISD_COMM_BYTE7		EQU		7
;=============ISD1750地址空间分配=======================================
;Mac_ISD_Start1_ADDR_L	EQU		10H
;Mac_ISD_Start1_ADDR_H	EQU		0H
;Mac_ISD_END1_ADDR_L		EQU		73H
;Mac_ISD_END1_ADDR_H		EQU		0H

;Mac_ISD_Start2_ADDR_L	EQU		74H
;Mac_ISD_Start2_ADDR_H	EQU		0H
;Mac_ISD_END2_ADDR_L		EQU		9fH
;Mac_ISD_END2_ADDR_H		EQU		01H
;===============ISD1750录音即将结束时,闪动LED===========================
;Mac_ISD17XX_LED_Short	EQU		10
;Mac_ISD17XX_LED_Long	EQU		35
;===============ISD1760地址空间分配=====================================
Mac_ISD_Start1_ADDR_L	EQU		10H
Mac_ISD_Start1_ADDR_H	EQU		0H
Mac_ISD_END1_ADDR_L	EQU		87H
Mac_ISD_END1_ADDR_H	EQU		0H

Mac_ISD_Start2_ADDR_L	EQU		88H
Mac_ISD_Start2_ADDR_H	EQU		0H
Mac_ISD_END2_ADDR_L	EQU		EFH
Mac_ISD_END2_ADDR_H	EQU		01H
;===============ISD1760录音即将结束时,闪动LED===========================
Mac_ISD17XX_LED_Short	EQU		12
Mac_ISD17XX_LED_Long	EQU		42

;==========开始发送信号时,初始化端口====当前程序中并没用到
MACRO_SPI_Initial_State:	.MACRO
	LDA #Mac_ISD17XX_SS
	TSB Mac_ISD17XX_PORT1
	;------------------------
	LDA #Mac_ISD17XX_SCLK
	TSB Mac_ISD17XX_PORT1
	;------------------------
	LDA #Mac_ISD17XX_MOSI
	TRB Mac_ISD17XX_PORT1
	.ENDM
;=================接口宏================当前程序中并没用到
MACRO_SPI_SS_H:		.MACRO
	LDA #Mac_ISD17XX_SS
	TSB Mac_ISD17XX_PORT1
	.ENDM
;--------------------------
MACRO_SPI_SS_L:		.MACRO
	LDA #Mac_ISD17XX_SS
	TRB Mac_ISD17XX_PORT1
	.ENDM
;--------------------------
MACRO_SPI_SCLK_H:	.MACRO
	LDA #Mac_ISD17XX_SCLK
	TSB Mac_ISD17XX_PORT1
	.ENDM
;--------------------------
MACRO_SPI_SCLK_L:	.MACRO
	LDA #Mac_ISD17XX_SCLK
	TRB Mac_ISD17XX_PORT1
	.ENDM
;--------------------------
MACRO_SPI_MOSI_H:	.MACRO
	LDA #Mac_ISD17XX_MOSI
	TSB Mac_ISD17XX_PORT1
	.ENDM
;--------------------------
MACRO_SPI_MOSI_L:	.MACRO
	LDA #Mac_ISD17XX_MOSI
	TRB Mac_ISD17XX_PORT1
	.ENDM
;==============================指令宏================
MACRO_ISD17XX_COMM_PU:	.MACRO
	LDA #Mac_ISD_COMM_PU		;0X01
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送PU指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM
MACRO_ISD17XX_COMM_PD:	.MACRO
	LDA #Mac_ISD_COMM_PD		;0X07
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送PD指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM
MACRO_ISD17XX_COMM_DEVID:	.MACRO
	LDA #Mac_ISD_COMM_DEVID		;0X09
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送读ID指令,读取ISD17XXX的ID
	STZ gISD_Send_DATA+2
 	LDA #Mac_ISD_COMM_BYTE3
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_CLR_INT:	.MACRO
	LDA #Mac_ISD_COMM_CLR_INT	;0X04
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送CLR_INT指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_WR_APC2:	.MACRO
	LDA #Mac_ISD_COMM_WR_APC2	;0X65
	STA gISD_Send_DATA
	LDA #A0H
	STA gISD_Send_DATA+1		;发送写APC指令
	LDA #0CH
	STA gISD_Send_DATA+2
 	LDA #Mac_ISD_COMM_BYTE3
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_WR_APC2_MIC:		.MACRO
	LDA #Mac_ISD_COMM_WR_APC2	;0X65
	STA gISD_Send_DATA
	LDA #F0H
	STA gISD_Send_DATA+1		;发送写APC指令
	LDA #0CH
	STA gISD_Send_DATA+2
 	LDA #Mac_ISD_COMM_BYTE3
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_RD_STATUS:	.MACRO
	LDA #Mac_ISD_COMM_RD_STATUS	;0X05
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送读状态指令
	STZ gISD_Send_DATA+2
 	LDA #Mac_ISD_COMM_BYTE3
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	;------------------------
	.ENDM

MACRO_ISD17XX_COMM_REC:		.MACRO
	LDA #Mac_ISD_COMM_REC		;0X41
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送录音指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_STOPALL:	.MACRO
	LDA #Mac_ISD_COMM_STOP		;0X02
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送STOP指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_PLAYSP:	.MACRO
	LDA #Mac_ISD_COMM_PLAY		;0X40
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送PLAY指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_G_ERASE:		.MACRO
	LDA #Mac_ISD_COMM_G_ERASE		;0X43
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送G_ERASE指令
 	LDA #Mac_ISD_COMM_BYTE2
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_Erase_Short:		.MACRO
	LDA #Mac_ISD_COMM_SET_ERASE		;0X82
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_ERASE指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start1_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start1_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END1_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END1_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_Erase_Longs:		.MACRO
	LDA #Mac_ISD_COMM_SET_ERASE		;0X82
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_ERASE指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start2_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start2_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END2_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END2_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_REC_Short:		.MACRO
	LDA #Mac_ISD_COMM_SET_REC		;0X81
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_REC指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start1_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start1_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END1_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END1_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_REC_Longs:		.MACRO
	LDA #Mac_ISD_COMM_SET_REC		;0X81
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_REC指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start2_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start2_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END2_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END2_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_PLAY_Short:		.MACRO
	LDA #Mac_ISD_COMM_SET_PLAY		;0X80
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_PLAY指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start1_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start1_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END1_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END1_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM

MACRO_ISD17XX_COMM_SET_PLAY_Longs:		.MACRO
	LDA #Mac_ISD_COMM_SET_PLAY		;0X80
	STA gISD_Send_DATA
	STZ gISD_Send_DATA+1		;发送SET_PLAY指令
	;-----------------------------------------------------
	LDA #Mac_ISD_Start2_ADDR_L
	STA gISD_Send_DATA+2		;开始地址
	LDA #Mac_ISD_Start2_ADDR_H
	STA gISD_Send_DATA+3
	;-----------------------------------------------------
	LDA #Mac_ISD_END2_ADDR_L
	STA gISD_Send_DATA+4		;结束地址
	LDA #Mac_ISD_END2_ADDR_H
	STA gISD_Send_DATA+5
	;-----------------------------------------------------
	STZ gISD_Send_DATA+6
 	LDA #Mac_ISD_COMM_BYTE7
	STA gISD_COMM_BYTE
	JSR MISD_COMM_SEND
	.ENDM








⌨️ 快捷键说明

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