📄 a1_isd17xx_define.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 + -