📄 a20_initial_main.asm
字号:
;*********************************************************************
;*********************************************************************
;=======================端口初试化及程序主循环========================
;>>项目名 : MB Project - RX >>
;>>项目号 : M07853 >>
;>>备注 : 要搬用该程序文件,须注意3个部分: >>
; 1.变量定义部分 >>
; 2.一般的定时器,用于系统分时运行 >>
; 3.端口初试化及程序主循环 >>
;>>客户 : >>
;>>开始日期 : 2008/02/25 >>
;>>修改日期 : 2008/02/27 >>
;>>程序员 : Wangbo >>
;>>芯片型号 : W567S080 >>
;>>IO端口配置: >>
; BP00[O]----->LED_A >>
; BP01[O]----->LED_B >>
; BP02[O]----->LED_C >>
; BP03[O]----->LED_D >>
; BP04[O]----->LED_E >>
; BP05[O]----->LED_F >>
; BP06[O]----->LED_G >>
; BP07[O]----->充电控制 >>
; BP10[I]----->ISD.MISO >>
; BP11[O]----->SW3_PLAY >>
; BP12[I]----->SW4_RECORD >>
; BP13[I]----->SW5_TRACK >>
; BP14[O]----->MIC电源 >>
; BP15[O]----->ISD.SCK >>
; BP16[O]----->ISD.MOSI >>
; BP17[O]----->ISD.SS >>
; BP20[]----->FIFO_flag >>
; BP21[]----->VOLT_DETECT >>
; BP22[]----->SPI_miso >>
; BP23[]----->BATTERY_DETECT >>
; BP24[]----->SPI_ss >>
; BP25[]----->SPI_mosi >>
; BP26[]----->SIP_clk >>
; BP27[]----->RESET_n >>
;>>程序实现功能简述: >>
; >>
; >>
; >>
;===========================端口初试化================================
SProgram_Start:
LDA #07H
STA !BP0D
LDA #1FH
STA !BP0M
STA !BP0
LDA #02H
STA !BP0EN_R
;---------------------------------------------------------------------
LDA #03H
STA !BP1D
LDA #FFH
STA !BP1M
LDA #03H
STA !BP1EN_F
;---------------------------------------------------------------------
LDA #01H
TSB !IEF0
;---------------
LDA #02H
TSB !IEF1 ;开FXF15中断
;------------------------------------
LDA #1H ;播放和录音时,的段号
STA gDIP_NUM
JSR MMF6210_Initial
;------------------------------------
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>程序主循环>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAIN_Start_Loop:
LDA #01H
STA !WDTC
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
; JSR MMF6210_RX
S_Time100ms:
LDA FSYS_Time_Flag
BIT #MACRO_SYS_100MS
BEQ S_Time500ms
LDA #MACRO_SYS_100MS
TRB FSYS_Time_Flag
;----------------------------------------------100ms程序段区
JSR MKEY1_PLAY
JSR MKEY2_REC
JSR MKEY3_TRACK
;-----------------------------
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 ;睡眠
; JSR MLED_FLASH
; JSR MMF6210_DATA_TX
JSR MMF6210_Enable_RX
SMAIN_END:
JMP MAIN_Start_Loop
;=====================================================================
;系统睡眠
MSYS_SLEEP:
LDA !BP1
AND #Mac_KEY_NUM
CMP #Mac_KEY_NUM ;检测是否有按键按下
BCS SSYS_SLEEP_RUN
JMP SSYS_SLEEP_RTS
SSYS_SLEEP_RUN:
;----------------------------------------
MACRO_ISD17XX_COMM_RD_STATUS
LDA gISD_Receive_DATA+2 ;检测ISD是否在播放声音
BIT #04H
BNE SSYS_SLEEP_RTS
;----------------------------------------开始计时睡觉
INC gSTOP_Counter
LDA gSTOP_Counter
CMP #20
BCC SSYS_SLEEP_RTS
;-----------------------------------------
JSR M_ENTER_SLEEP
LDA #01H
STA !STOP ;开始睡眠
NOP
NOP
;-----------------------------------------
NOP
NOP
;-----------------------------------------
STZ gSTOP_Counter
SSYS_SLEEP_RTS:
RTS
;=============================================================
M_ENTER_SLEEP:
;-----------------------------------------
MACRO_ISD17XX_COMM_PD
RTS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -