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

📄 f45_main.c

📁 HSAV OTG13S USB-HOST MP3模块应用源代码
💻 C
字号:
#define ROOT 

#include "F45_main.h"           
//sfr   CHPCON                   = 0xbf;     /* TOPRO TP2804HP */

void main(){  
//    CHPCON = 0x10;                                      

MDEBUG(1);

	TMOD = TMODE_8bitAutoTimer0 | TMODE_16bitTimer1; 
    TH0 = cTBT125uS; 
    TH1 = 225;											  
    TL1 = 30;
    IE = IE_EA | IE_EX0 | IE_ET0 | IE_ET1; 
    IP = IP_PX0;				
    TCON = TCON_TR0 | TCON_IT0;

    MDIPInitialize();
    gPKeyScan = cPKeyDigitHome; //有关按键的
    MDELAY(255);
    MDELAY(255);

    MSSB_Initialize();
    while (1){ 								 
        MSSB_Polling();
        if (g10msTimer > 9){
            g10msTimer = 0;
            if (++g100msTimer > 10) {
                F100msTimer = 1;
                g100msTimer = 0;
                if (++g500msTimer > 4){
                    g500msTimer = 0;                        
                    F500msTimer = 1;
// MSSB_ReadFileInfo();

                }     
            }
            MPKeyScan();
            F100msTimer = 0;
            F500msTimer = 0;
        }
    }

} 

void MSSB_USB_Insert(){
    return;
}
void MSSB_USB_Remove(){
    return;
}
void MSSB_TrackEnd(){
    return;
}
void MSSB_TrackTimer(){
    BYTE gLocal_1;
    BYTE gLocal_2;

    gLocal_2 = g2SSB_ReceiveBuffer[0]/60; 

    gLocal_1 = MLIBWriteCharacter(0, 1, gMenuSelectTm / 10 + '0');
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, gMenuSelectTm % 10 + '0');
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, '-');

    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, gLocal_2 / 10 + '0');
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, gLocal_2 % 10 + '0');

    gLocal_2 = g2SSB_ReceiveBuffer[0]%60; 
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, ':');
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, gLocal_2 / 10 + '0');
    gLocal_1 = MLIBWriteCharacter(gLocal_1, 1, gLocal_2 % 10 + '0');
    return;
}
void MSSB_TrackNumber(){
    gMenuSelectTm = g2SSB_ReceiveBuffer[0];
    return;
}
void MSSB_TrackName(){
MDIP_LineClear(2,0,128);
     MLIBWriteString(0,2,g2SSB_ReceiveBuffer);

/*
    MDEBUG(g2SSB_ReceiveBuffer[0] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[0] >> 8);
    MDEBUG(g2SSB_ReceiveBuffer[1] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[1] >> 8);
    MDEBUG(g2SSB_ReceiveBuffer[2] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[2] >> 8);
    MDEBUG(g2SSB_ReceiveBuffer[3] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[3] >> 8);
    MDEBUG(g2SSB_ReceiveBuffer[4] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[4] >> 8);
    MDEBUG(g2SSB_ReceiveBuffer[5] & 0xff);
    MDEBUG(g2SSB_ReceiveBuffer[5] >> 8);
*/
    return;
}


void MPKeyScan(){
    if (FPKeyDecodeOk) {
        FPKeyDecodeOk = 0;
        FPKeyStep = 1;                      
        FDirectUp = 0;
MDEBUG(GPKeyData);
		switch(GPKeyData){
			case 0x35:     
			    MSSB_Write(0x00,0x8000); //要求暂停
			    break;
			case 0x36:
			    MSSB_Write(0x00,0x4000); //要求播放
			    break;
			case 0x21:
			    MSSB_Write(0x00,0x2000); //要求播放完一曲后停止
			    break;
			case 0x2e:              
			    MSSB_Write(0x01,0x0004); //指定曲目播放
			    break;
			case 0x2d:FDirectUp = 1;
//			case 0x1d:
                FPKeyStep = 0;
			    if(FDirectUp){
    			    if(gVolme < 0x60) ++gVolme;
			    }
			    else {
    			    if(gVolme > 0x00) --gVolme;
			    }
			    MSSB_Write(0x02,gVolme);  //主音量控制
			    break;
			case 0x3a:FDirectUp = 1; 
			case 0x39:
                FPKeyStep = 0;
			    if(FDirectUp){
    			    if(gBass < 10) ++gBass;
			    }
			    else {
    			    if(gBass > 0x00) --gBass;
			    }
			    MSSB_Write(0x03,gTreble << 8 | gBass); //音调控制  D0 ~ D7 低音控制 D8 ~ D15 高音控制
			    break;
			case 0x1e:FDirectUp = 1; 
			case 0x1d:
                FPKeyStep = 0;
			    if(FDirectUp){
    			    if(gTreble < 10) ++gTreble;
			    }
			    else {
    			    if(gTreble > 0x00) --gTreble;
			    }
			    MSSB_Write(0x03,gTreble << 8 | gBass); //音调控制  D0 ~ D7 低音控制 D8 ~ D15 高音控制
			    break;

			default: break;
		}
    }


    gMain00 = IOP1 & ~gPKeyScan;
    IOP1 &= 0x80;   //没有参加的脚位
    IOP1 = gMain00;
    gPKeyBuffer = IOP1 & cPKeyMask;   
    if ((gMain00 & cPKeyMask) != gPKeyBuffer){  
        GPKeyData = gPKeyBuffer;   
        FPKeyDetect = 1;
    } 
    if (FPKeyDetect){   
        if (!FPKeyStep){             
            if (++gPKeyConfirmTm > 10){ 
                gPKeyConfirmTm = 0;
                if (GPKeyData == gPKeyBuffer){
                     FPKeyDecodeOk = 1;
                }
                else FPKeyDetect = 0;  
            }
        }    
        else{ 
            
            if ((gMain00 & cPKeyMask) == gPKeyBuffer){
               if (++gPKeyConfirmTm > 10){      
                   gPKeyConfirmTm = 0;  
                   FPKeyStep = 0;
                   FPKeyDetect = 0;     
                }
            }
            else gPKeyConfirmTm = 0;   
        }
    }
    else{    
        gPKeyScan <<= 1;          
        if (gPKeyScan == cPKeyDigitEnd) gPKeyScan = cPKeyDigitHome; 
    }     

    IOP1 &= 0x80;  //没有参加的脚位
    IOP1 |=  gMain00 | cPKeyMask;       
    return;
}



void MUSDELAY(BYTE gLocal_1){      
    if (gLocal_1 > 6){
        while (--gLocal_1 != 0);
    }
	return;
}


void MDELAY(BYTE gLocal_1){        
    WORD g2Local_1;
    do {        
       g2Local_1 = 159;
       while (--g2Local_1 != 0); 
    } while (--gLocal_1 != 0);
    return;
}                                    

void TBascTimer(void) interrupt 1 using 2 {
    if (++gTBascTimer > 7){
        gTBascTimer = 0;
        ++g10msTimer;
    }
    return;
}

⌨️ 快捷键说明

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