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

📄 fm_drv.msa

📁 yts收音模块用汇编语言写的,介绍了收音的搜台和处理过程
💻 MSA
字号:
/********************************************************************************************
FM module YTS7001 接口函数
writen by Gongjian. for GL3951 S1. 05-1-19
********************************************************************************************/

//为3951准备的汇编与C的转接口
//==================================================================
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
//==================================================================       
         
    RSEG    FM_CTRL_D

buffer      DEFS    14
//==============================================================
//   FM Init 
//   INPUT PARAMETER:E:band information.1-Japan 0-US
//                   C:SEEK Judgement Level:0~15                  
//   OUTPUT PARAMETER:A:1-Success;0-Fail.
//==============================================================     
FM_Init:
        PUSH    DE
        PUSH    HL
        
        LD      HL,LWRD buffer
        LD      A,E                  //band info.
        LD      (HL),A
        INC     HL
        LD      A,C
        LD      (HL),A               //LEVEL 
        LD      DE,LWRD buffer
        CALL    LWRD FM_INIT_Drv     //Initialization FM
        LD      A,(LWRD FM_result)
        
        POP     HL
        POP     DE
        RET
        
//==============================================================
//   FM Exit 
//   INPUT PARAMETER:NO.
//   OUTPUT PARAMETER:NO.
//==============================================================
FM_Exit:
        PUSH    AF
        CALL    LWRD FM_EXIT_Drv     //disable bus
        
        POP     AF
        RET

//==============================================================
//   FM Set Frequency 
//   INPUT PARAMETER:DE:Frequency Value.
//   OUTPUT PARAMETER:A:1-success;0-fail.
//==============================================================
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 
//   INPUT PARAMETER:E:1-MUTE;0-OFF.
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_MUTE:
        PUSH    DE
        LD      A,E   
        LD      DE,LWRD buffer    
        LD      (DE),A
        CALL    LWRD FM_SETMUTE_Drv
        LD      A,(LWRD FM_result)                //FM_result from Write_Register
        POP     DE
        RET
        
//==============================================================
//   FM SET Audio Mode 
//   INPUT PARAMETER:E:1-Mono;0-Stereo.
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
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 Mode-PE=0 
//   INPUT PARAMETER:NO
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_Standby:
        PUSH    DE
        LD      DE,LWRD buffer  
        LD      A,00H        
        LD      (DE),A
        CALL    LWRD FM_STANDBY_Drv
        LD      A,(LWRD FM_result)      
        POP     DE
        RET

//==============================================================
//   FM Auto Search Station 
//   INPUT PARAMETER:DE:FREQUENCY;
//                   C:DIRECTION
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
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 Get Status 
//   INPUT PARAMETER:DE:BUFFER
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
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 SET Volume 
//   INPUT PARAMETER:E:Volume Level.
//   OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -