📄 a02_isd17xx_define.asm
字号:
;****************************************************************************
;****************************************************************************
;****************************************************************************
;**************************ISD17XXX变量及宏定义区****************************
;****************************************************************************
;****************************************************************************
;****************************************************************************
;>>所定义的宏:
; 1.
; 2.
; 3.
; 4.
; 5.
; 6.
; 7.
; 8.
; 9.
;
;所用项目:M07853
;修改日期:2008/02/18
;程序员:Wangbo
;==========================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 BP1 ;MOSI,SCLK,SS
Mac_ISD17XX_PORT2 EQU BP1 ;MISO
Mac_ISD17XX_MISO EQU 01H ;BP1.1
Mac_ISD17XX_SCLK EQU 20H ;BP1.5
Mac_ISD17XX_MOSI EQU 40H ;BP1.6
Mac_ISD17XX_SS EQU 80H ;BP1.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
;===============ISD1760地址空间分配===============================
;ISD1760总地址----0x1EFH
Mac_ISD_Start1_ADDR_L EQU 10H
Mac_ISD_Start1_ADDR_H EQU 0H ;录音第1段
Mac_ISD_END1_ADDR_L EQU 5FH
Mac_ISD_END1_ADDR_H EQU 0H
;-------------------------------------
Mac_ISD_Start2_ADDR_L EQU 60H
Mac_ISD_Start2_ADDR_H EQU 0H ;录音第2段
Mac_ISD_END2_ADDR_L EQU AFH
Mac_ISD_END2_ADDR_H EQU 0H
;-------------------------------------
Mac_ISD_Start3_ADDR_L EQU B0H
Mac_ISD_Start3_ADDR_H EQU 0H ;录音第3段
Mac_ISD_END3_ADDR_L EQU FFH
Mac_ISD_END3_ADDR_H EQU 0H
;-------------------------------------
Mac_ISD_Start4_ADDR_L EQU 00H
Mac_ISD_Start4_ADDR_H EQU 1H ;录音第4段
Mac_ISD_END4_ADDR_L EQU 4FH
Mac_ISD_END4_ADDR_H EQU 1H
;-------------------------------------
Mac_ISD_Start5_ADDR_L EQU 50H
Mac_ISD_Start5_ADDR_H EQU 1H ;录音第5段
Mac_ISD_END5_ADDR_L EQU 9FH
Mac_ISD_END5_ADDR_H EQU 01H
;-------------------------------------
Mac_ISD_Start6_ADDR_L EQU A0H
Mac_ISD_Start6_ADDR_H EQU 0H ;录音第6段
Mac_ISD_END6_ADDR_L EQU EFH
Mac_ISD_END6_ADDR_H EQU 01H
;==========开始发送信号时,初始化端口====当前程序中并没用到
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
;=============================================================================
;清中断和EOM位
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
; LDA #50H
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
LDA #50H
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
;=============================================================================
;擦ISD1760第1段
MACRO_ISD17XX_COMM_SET_Erase_SEG1: .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
;=============================================================================
;擦ISD1760第2段
MACRO_ISD17XX_COMM_SET_Erase_SEG2: .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
;=============================================================================
;擦ISD1760第3段
MACRO_ISD17XX_COMM_SET_Erase_SEG3: .MACRO
LDA #Mac_ISD_COMM_SET_ERASE ;0X82
STA gISD_Send_DATA
STZ gISD_Send_DATA+1 ;发送SET_ERASE指令
;-----------------------------------------------------
LDA #Mac_ISD_Start3_ADDR_L
STA gISD_Send_DATA+2 ;开始地址
LDA #Mac_ISD_Start3_ADDR_H
STA gISD_Send_DATA+3
;-----------------------------------------------------
LDA #Mac_ISD_END3_ADDR_L
STA gISD_Send_DATA+4 ;结束地址
LDA #Mac_ISD_END3_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
;=============================================================================
;擦ISD1760第4段
MACRO_ISD17XX_COMM_SET_Erase_SEG4: .MACRO
LDA #Mac_ISD_COMM_SET_ERASE ;0X82
STA gISD_Send_DATA
STZ gISD_Send_DATA+1 ;发送SET_ERASE指令
;-----------------------------------------------------
LDA #Mac_ISD_Start4_ADDR_L
STA gISD_Send_DATA+2 ;开始地址
LDA #Mac_ISD_Start4_ADDR_H
STA gISD_Send_DATA+3
;-----------------------------------------------------
LDA #Mac_ISD_END4_ADDR_L
STA gISD_Send_DATA+4 ;结束地址
LDA #Mac_ISD_END4_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
;=============================================================================
;擦ISD1760第5段
MACRO_ISD17XX_COMM_SET_Erase_SEG5: .MACRO
LDA #Mac_ISD_COMM_SET_ERASE ;0X82
STA gISD_Send_DATA
STZ gISD_Send_DATA+1 ;发送SET_ERASE指令
;-----------------------------------------------------
LDA #Mac_ISD_Start5_ADDR_L
STA gISD_Send_DATA+2 ;开始地址
LDA #Mac_ISD_Start5_ADDR_H
STA gISD_Send_DATA+3
;-----------------------------------------------------
LDA #Mac_ISD_END5_ADDR_L
STA gISD_Send_DATA+4 ;结束地址
LDA #Mac_ISD_END5_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
;=============================================================================
;擦ISD1760第6段
MACRO_ISD17XX_COMM_SET_Erase_SEG6: .MACRO
LDA #Mac_ISD_COMM_SET_ERASE ;0X82
STA gISD_Send_DATA
STZ gISD_Send_DATA+1 ;发送SET_ERASE指令
;-----------------------------------------------------
LDA #Mac_ISD_Start6_ADDR_L
STA gISD_Send_DATA+2 ;开始地址
LDA #Mac_ISD_Start6_ADDR_H
STA gISD_Send_DATA+3
;-----------------------------------------------------
LDA #Mac_ISD_END6_ADDR_L
STA gISD_Send_DATA+4 ;结束地址
LDA #Mac_ISD_END6_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
;=============================================================================
;录音ISD1760第1段
MACRO_ISD17XX_COMM_SET_REC_SEG1: .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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -