fm_drv.msa
来自「MP3 整个 SDK」· MSA 代码 · 共 170 行
MSA
170 行
/********************************************************************************************
PHILIPS TEA5767 FM module driver
为3961准备的汇编与C的转接口
writen by GONGJIAN. for 3961
last update 05-3-30 14:57
********************************************************************************************/
public FM_Init
public FM_Exit
public FM_SetFreq
public FM_MUTE
public FM_SetAudioMode
public FM_Standby
public FM_Search
public FM_GetStatus
public FM_VolumeSet
extern FM_INIT_Drv
extern FM_EXIT_Drv
extern FM_SETFREQ_Drv
extern FM_SEARCH_Drv
extern FM_SETMUTE_Drv
extern FM_STANDBY_Drv
extern FM_STEREO_Drv
extern FM_GETSTATUS_Drv
extern FM_VolumeSet_Drv
extern FM_result
extern buffer
//==================================================================
RSEG FM_CTRL_D
//==============================
FM_Init:
PUSH DE
PUSH HL
LD HL,LWRD buffer
LD A,E //band info.
LD (HL),A
INC HL
LD A,C //search lev
LD (HL),A
INC HL
LD A,01H //13MHZ or 32.768KHZ crystal
LD (HL),A
LD DE,LWRD buffer
CALL LWRD FM_INIT_Drv //INitialization FM
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//===============================
//============================== =
FM_Exit:
PUSH AF
CALL LWRD FM_EXIT_Drv //disable bus
POP AF
RET
//===============================
//===============================
FM_SetFreq:
PUSH DE
PUSH HL
LD HL,LWRD buffer //buffer中为频率值,3byte
LD (HL),E
INC HL
LD (HL),D
LD DE,LWRD buffer
CALL LWRD FM_SETFREQ_Drv
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//===============================
//===============================
FM_MUTE:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_SETMUTE_Drv
LD A,(LWRD FM_result)
POP DE
RET
//===============================
//===============================
FM_SetAudioMode:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_STEREO_Drv
LD A,(LWRD FM_result)
POP DE
RET
//===============================
//===============================
FM_Standby:
PUSH DE
LD DE,LWRD buffer
LD A,01H
LD (DE),A
CALL LWRD FM_STANDBY_Drv
LD A,(LWRD FM_result)
POP DE
RET
//=================================
//=================================
FM_Search:
PUSH DE
PUSH HL
LD HL,LWRD buffer //buffer中为频率值,2byte
LD (HL),E
INC HL
LD (HL),D
INC HL
LD A,C
LD (HL),A // Search direct
LD DE,LWRD buffer
CALL LWRD FM_SEARCH_Drv
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//===========================================
//===========================================
FM_GetStatus:
PUSH DE
LD DE,LWRD buffer
CALL LWRD FM_GETSTATUS_Drv
LD HL,LWRD buffer
POP DE
LD A,(HL)
LD (DE),A
INC DE
INC HL
LD A,(HL)
LD (DE),A
INC HL
INC DE
LD A,(HL)
LD (DE),A
LD A,(LWRD FM_result)
RET
//==============================================
FM_VolumeSet:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_VolumeSet_Drv
LD A,(LWRD FM_result)
POP DE
RET
//==============================================
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?