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

📄 a10_initial_main.asm

📁 winbond的W567B030驱动ISD17240的例子
💻 ASM
字号:
;*****************************************************************************************
;*****************************************************************************************
;==========================端口初试化及程序主循环=========================================
;>>项目名  	: Phonics Board - ISD17240 Part Program					   					>>
;>>项目号  	: M08263											   	   					>>
;>>备注	 	: 要搬用该程序文件,须注意3个部分:					   	   					>>
;				1.变量定义部分									   	   					>>
;				2.一般的定时器,用于系统分时运行					   	   					>>
;				3.端口初试化及程序主循环						      					>>
;>>客户		:													      					>>
;>>修改日期	: 2008/08/21															   	>>
;>>程序员	: Wangbo																   	>>
;>>芯片型号	: W567B030											   						>>
;>>IO端口配置:																			>>
;		BP00[O]----->LED1																>>
;		BP01[O]----->LED2																>>
;		BP02[O]----->LED3																>>
;		BP03[O]----->LED4																>>
;		BP04[O]----->LED5																>>
;		BP05[O]----->LED6																>>
;		BP10[O]----->ISD_Reset															>>
;		BP11[O]----->ISD_MOSI															>>
;		BP12[O]----->ISD_SCK															>>
;		BP13[O]----->ISD_SS																>>
;		IP00[I]----->K7_Record															>>
;		IP01[I]----->ISD_MISO															>>
;		IP02[I]----->K2_ISD_PLAY														>>
;		IP03[I]----->K3_ISD_REG_INC														>>
;		IP04[I]----->K4_ISD_REG_DEC														>>
;>>程序实现功能简述:											   						>>
;	ISD分为44个录音段,每一段5S,实现每一段的选择,录音,播放功能							>>
;																						>>
;===========================端口初试化====================================================
SProgram_Start:
	LDA #0FH
	TRB !BP0D
	LDA #0FH					;LED
	TSB !BP0M

	LDA #03H
	TRB !BP1D
	LDA #0FH					;ISD_CON
	TSB !BP1M

	LDA #08H
	TRB !BP2D
	LDA #0FH					;KEY_CON
	TSB !BP2M

	LDA #80H					;打开KEY
	TRB !BP2

	LDA #FFH					;关闭LED
	STA !BP0

	LDA #0FH
	TSB !IP0EN

	MACRO_ISD17240_ON
;---------------------------------------------------------------------
	LDA #02H
	TSB !IEF1					;开FXF15中断
	;---------------------------
	JSR MISD17XX_Initial		;ISD初始化
	LDA #01
	STA gChoose_SEG
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>程序主循环>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAIN_Start_Loop:
S_Time10ms:
	LDA FSYS_Time_Flag
	BIT #MACRO_SYS_10MS
	BEQ S_Time100ms
	LDA #MACRO_SYS_10MS
	TRB FSYS_Time_Flag
;-------------------------------------------------------------------------10ms程序段区
	LDA #01H
	STA !WDTC
	JSR MKEY_SCAN
S_Time100ms:
	LDA FSYS_Time_Flag
	BIT #MACRO_SYS_100MS
	BEQ S_Time500ms
	LDA #MACRO_SYS_100MS
	TRB FSYS_Time_Flag
;------------------------------------------------------------------------100ms程序段区
	JSR MKEY1_Record_ISD
	JSR MKEY2_PLAY_ISD
	JSR MKEY3_Choose_SEG
	JSR MKEY4_Choose_SEG
S_Time500ms:
	LDA FSYS_Time_Flag
	BIT #MACRO_SYS_500MS
	BEQ SMAIN_END
	LDA #MACRO_SYS_500MS
	TRB FSYS_Time_Flag
;------------------------------------------------------------------------500ms程序段区
	JSR MSYS_SLEEP			;睡眠

SMAIN_END:
	JMP	MAIN_Start_Loop
;========================================================================================
;系统睡眠
MSYS_SLEEP:
	;-------------------------------------------
	LDA !Mac_KEY_Port
	AND #Mac_KEY_NUM
	CMP #Mac_KEY_NUM			;检测是否有按键按下
	BEQ SSYS_SLEEP_RUN
	RTS
SSYS_SLEEP_RUN:
	MACRO_ISD17XX_COMM_RD_STATUS
	LDA gISD_Receive_DATA+2
	BIT #04H					;检测ISD是否在播放声音
	BNE SSYS_SLEEP_RTS

	INC gSTOP_Counter
	LDA gSTOP_Counter
	CMP #6						;3秒后睡眠
	BCC	SSYS_SLEEP_RTS

	MACRO_ISD17XX_COMM_PD		;ISD掉电模式
	;-----------------------------------------

	JSR	MSPI_SS_H
	JSR MSPI_SCLK_H				;ISD控制口
	JSR MSPI_MOSI_H

	JSR MSPI_DELAY_100US
	JSR MSPI_DELAY_100US
	JSR MSPI_DELAY_100US
	JSR MSPI_DELAY_100US
	;-----------------------------------------
	LDA !S0EN
	STA gSTOP_Counter
	LDA #0						;关DAC
	STA !S0EN
	;-----------------------------------------
	LDA #FFH
	TSB !BP0					;关LED
	;-----------------------------------------
	JSR MSPI_DELAY_100US
	LDA #01H
	STA !STOP					;开始睡眠
	NOP
	NOP
	NOP
	NOP
	JSR MSPI_DELAY_100US
	;-----------------------------------------
	LDA gSTOP_Counter
	STA !S0EN
	STZ gSTOP_Counter
	MACRO_ISD17XX_COMM_PU
SSYS_SLEEP_RTS:
	RTS

⌨️ 快捷键说明

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