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 + -
显示快捷键?