亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vs1003mian.c

?? vs1003 MP3解碼器的操作代碼
?? C
字號(hào):
//文件名:vs1003.c
//功能:vs1003 的底層驅(qū)動(dòng)程序,主控芯片為L(zhǎng)PC2103;
//     其他的微處理器(帶SPI接口的)只需稍加修改即可適用;
//     對(duì)于不帶硬SPI接口的微處理器可以用IO進(jìn)行SPI的時(shí)序模擬
//     更多代碼敬請(qǐng)?jiān)L問www.icdev.com.cn
 

#include "vs1003.h"
#include "timer.h"

extern long volatile timeval; //用于延時(shí)的全局變量

/**********************************************************/
/*  函數(shù)名稱 :   MSPI_Init                                */
/*  函數(shù)功能 : 初始化SPI接口,設(shè)置為主機(jī)。               */
/*  參數(shù)     :  無(wú)                                        */
/*  返回值   :  無(wú)                                        */
/*--------------------------------------------------------*/
void  MSPI_Init(void)
{  
	PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500;	//選擇 SPI 
        S0SPCCR = 0x08;		                        // SPI 時(shí)鐘設(shè)置
 	S0SPCR  = (0 << 3) |				// CPHA = 0, 
 		  (0 << 4) |				// CPOL = 0, 
 		  (1 << 5) |				// MSTR = 1, 
 		  (0 << 6) |				// LSBF = 0, 
 	          (0 << 7);				// SPIE = 0, 
}

/**********************************************************/
/*  函數(shù)名稱 :  InitPortVS1003                            */
/*  函數(shù)功能 : MCU與vs1003接口的初始化                   */
/*  參數(shù)     :  無(wú)                                        */
/*  返回值   :  無(wú)                                        */
/*--------------------------------------------------------*/
void  InitPortVS1003(void)
{
	MSPI_Init();//SPI口的初始化
	IODIR &= 0xfffeffff;   //其他接口線的設(shè)置,其中dreq 為輸入口
	IODIR |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS均為輸出口
	IOSET |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS默認(rèn)輸出高電平	
}


/**********************************************************/
/*  函數(shù)名稱 :  SPIPutChar                                */
/*  函數(shù)功能 : 通過SPI發(fā)送一個(gè)字節(jié)的數(shù)據(jù)                 */
/*  參數(shù)     :  待發(fā)送的字節(jié)數(shù)據(jù)                          */
/*  返回值   :  無(wú)                                        */
/*--------------------------------------------------------*/
void  SPIPutChar(unsigned char c)
{      
	S0SPDR = c;
	while((S0SPSR & 0x80) == 0);	 //等待SPI將數(shù)據(jù)發(fā)送完畢
}


/**********************************************************/
/*  函數(shù)名稱 :  Mp3SoftReset                              */
/*  函數(shù)功能 : vs1003軟件復(fù)位                            */
/*  參數(shù)     :  無(wú)                                        */
/*  返回值   :  無(wú)                                        */
/*--------------------------------------------------------*/
void Mp3SoftReset(void)
{
	Mp3WriteRegister (SPI_MODE, 0x08, 0x04); //軟件復(fù)位

	wait(1); //延時(shí)1ms
	while (IOPIN & MP3_DREQ == 0); //等待軟件復(fù)位結(jié)束
	Mp3WriteRegister(SPI_CLOCKF, 0x98, 0x00);//設(shè)置vs1003的時(shí)鐘,3倍頻
	Mp3WriteRegister (SPI_AUDATA, 0xBB, 0x81); //采樣率48k,立體聲
	Mp3WriteRegister(SPI_BASS, 0x00, 0x55);//設(shè)置重音
	Mp3SetVolume(20,20);//設(shè)置音量
    	wait(1); //延時(shí)1ms
    	
    	//向vs1003發(fā)送4個(gè)字節(jié)無(wú)效數(shù)據(jù),用以啟動(dòng)SPI發(fā)送
        Mp3SelectData();
	SPIPutChar(0);
	SPIPutChar(0);
	SPIPutChar(0);
	SPIPutChar(0);
	Mp3DeselectData();

}
/**********************************************************/
/*  函數(shù)名稱 :  Mp3Reset                                  */
/*  函數(shù)功能 : vs1003硬件復(fù)位                            */
/*  參數(shù)     :  無(wú)                                        */
/*  返回值   :  無(wú)                                        */
/*--------------------------------------------------------*/
void Mp3Reset(void)
{	
	Mp3PutInReset();//xReset = 0   復(fù)位vs1003      
	wait(100);//延時(shí)100ms
//	SPIPutCharWithoutWaiting(0xff);//發(fā)送一個(gè)字節(jié)的無(wú)效數(shù)據(jù),啟動(dòng)SPI傳輸
	Mp3DeselectControl();   //xCS = 1
	Mp3DeselectData();     //xDCS = 1
	Mp3ReleaseFromReset(); //xRESET = 1
	wait(100);            //延時(shí)100ms
	while (IOPIN & MP3_DREQ == 0);//等待DREQ為高
        wait(100);            //延時(shí)100ms
     	Mp3SetVolume(10,10);  
        Mp3SoftReset();//vs1003軟復(fù)位
}


/***********************************************************/
/*  函數(shù)名稱 :  VsSineTest                                 */
/*  函數(shù)功能 : vs1003正弦測(cè)試,將該函數(shù)放在while循環(huán)中,  */
/*              如果能持續(xù)聽到一高一低的聲音,證明測(cè)試通過 */                            
/*  參數(shù)     :  無(wú)                                         */
/*  返回值   :  無(wú)                                         */
/*---------------------------------------------------------*/
void VsSineTest(void)
{
	Mp3PutInReset();  //xReset = 0   復(fù)位vs1003
	wait(100);        //延時(shí)100ms        
	SPIPutChar(0xff);//發(fā)送一個(gè)字節(jié)的無(wú)效數(shù)據(jù),啟動(dòng)SPI傳輸
	Mp3DeselectControl();  
	Mp3DeselectData();     
	Mp3ReleaseFromReset(); 
	wait(100);	               
 	Mp3WriteRegister(SPI_MODE,0x08,0x20);//進(jìn)入vs1003的測(cè)試模式
	while (IOPIN & MP3_DREQ == 0);     //等待DREQ為高
 	Mp3SelectData();       //xDCS = 1,選擇vs1003的數(shù)據(jù)接口
 	
 	//向vs1003發(fā)送正弦測(cè)試命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
 	//其中n = 0x24, 設(shè)定vs1003所產(chǎn)生的正弦波的頻率值,具體計(jì)算方法見vs1003的datasheet
        SPIPutChar(0x53);      
	SPIPutChar(0xef);      
	SPIPutChar(0x6e);      
	SPIPutChar(0x24);      
	SPIPutChar(0x00);      
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();//程序執(zhí)行到這里后應(yīng)該能從耳機(jī)聽到一個(gè)單一頻率的聲音
  
        //退出正弦測(cè)試
	Mp3SelectData();
	SPIPutChar(0x45);
	SPIPutChar(0x78);
	SPIPutChar(0x69);
	SPIPutChar(0x74);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();

        //再次進(jìn)入正弦測(cè)試并設(shè)置n值為0x44,即將正弦波的頻率設(shè)置為另外的值
    	Mp3SelectData();       
	SPIPutChar(0x53);      
	SPIPutChar(0xef);      
	SPIPutChar(0x6e);      
	SPIPutChar(0x44);      
	SPIPutChar(0x00);      
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData(); 

	//退出正弦測(cè)試
	Mp3SelectData();
	SPIPutChar(0x45);
	SPIPutChar(0x78);
	SPIPutChar(0x69);
	SPIPutChar(0x74);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	SPIPutChar(0x00);
	wait(500);
	Mp3DeselectData();
 }

/*************************************************************/
/*  函數(shù)名稱 :  Mp3WriteRegister                             */
/*  函數(shù)功能 : 寫vs1003寄存器                               */
/*  參數(shù)     :  寄存器地址,待寫數(shù)據(jù)的高8位,待寫數(shù)據(jù)的低8位 */
/*  返回值   :  無(wú)                                           */
/*-----------------------------------------------------------*/
void Mp3WriteRegister(unsigned char addressbyte, unsigned char highbyte, unsigned char lowbyte)
{
	Mp3DeselectData();
	Mp3SelectControl();//XCS = 0
	SPIPutChar(VS_WRITE_COMMAND); //發(fā)送寫寄存器命令
	SPIPutChar(addressbyte);      //發(fā)送寄存器的地址
	SPIPutChar(highbyte);         //發(fā)送待寫數(shù)據(jù)的高8位
	SPIPutChar(lowbyte);          //發(fā)送待寫數(shù)據(jù)的低8位
	Mp3DeselectControl();
}

/*************************************************************/
/*  函數(shù)名稱 :  Mp3ReadRegister                              */
/*  函數(shù)功能 : 寫vs1003寄存器                               */
/*  參數(shù)     :  寄存器地址				     */
/*  返回值   :  vs1003的16位寄存器的值                       */
/*-----------------------------------------------------------*/
unsigned int Mp3ReadRegister(unsigned char addressbyte)
{
	unsigned int resultvalue = 0;
	Mp3DeselectData();
	Mp3SelectControl();//XCS = 0
	SPIPutChar(VS_READ_COMMAND); //發(fā)送讀寄存器命令
	SPIPutChar((addressbyte));	 //發(fā)送寄存器的地址
	SPIPutChar(0xff); 		//發(fā)送讀時(shí)鐘
	resultvalue = (SPI_RESULT_BYTE) << 8;//讀取高8位數(shù)據(jù)
	SPIPutChar(0xff);		   //發(fā)送讀時(shí)鐘
	resultvalue |= (SPI_RESULT_BYTE);  //讀取低8位數(shù)據(jù)
	Mp3DeselectControl();              
	return resultvalue;                 //返回16位寄存器的值
}




?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线电影| 欧美国产日韩a欧美在线观看| 国产精品免费久久| 精品午夜一区二区三区在线观看| 色综合久久综合网| 国产精品嫩草久久久久| 9i看片成人免费高清| 亚洲欧洲av一区二区三区久久| 成人一区二区三区在线观看 | 五月婷婷久久丁香| 色综合久久久久| 亚洲综合丝袜美腿| 日韩一级在线观看| 国产一区二区在线观看视频| 国产日本欧美一区二区| 成人免费视频免费观看| 亚洲日本护士毛茸茸| 欧美亚洲一区二区在线| 日韩制服丝袜av| 久久婷婷综合激情| 色噜噜狠狠一区二区三区果冻| 亚洲成人动漫av| 精品国产精品网麻豆系列 | 亚洲精品乱码久久久久久日本蜜臀| 91猫先生在线| 国内精品免费**视频| 亚洲欧美日韩在线| 欧美午夜电影在线播放| 国产最新精品免费| 一区二区三区不卡视频| 精品美女在线播放| 岛国精品在线观看| 丝袜美腿亚洲一区二区图片| 欧美激情一区二区| 日韩女优电影在线观看| 在线观看日产精品| 国产九九视频一区二区三区| 五月激情六月综合| 亚洲免费观看高清完整版在线| 久久久久九九视频| 精品动漫一区二区三区在线观看 | 免费精品99久久国产综合精品| 国产精品护士白丝一区av| 欧美tickle裸体挠脚心vk| 欧美日韩国产123区| 91在线播放网址| 国产成人av福利| 国产精品综合视频| 极品少妇xxxx精品少妇偷拍| 蜜乳av一区二区三区| 日本不卡免费在线视频| 日韩在线播放一区二区| 日韩精品一区第一页| 午夜婷婷国产麻豆精品| 日本在线观看不卡视频| 亚洲欧美日韩国产手机在线| 国产精品欧美一区喷水| 中文一区在线播放| 国产精品久久久久久久久免费丝袜 | 91女人视频在线观看| 在线免费不卡电影| 欧美午夜理伦三级在线观看| 在线视频亚洲一区| 欧美精品 日韩| 91在线一区二区三区| 日本在线不卡一区| 亚洲电影视频在线| 日韩av电影免费观看高清完整版| 日本中文一区二区三区| 香港成人在线视频| 麻豆精品在线看| 岛国一区二区在线观看| 91国偷自产一区二区使用方法| 9191国产精品| 日本一区二区三区在线不卡 | 欧美日韩国产首页在线观看| 欧美一区二区在线免费播放 | 色综合天天综合狠狠| 欧美日韩在线播| 中文字幕不卡一区| 亚洲人成在线播放网站岛国| 麻豆91精品视频| 色综合av在线| 国产精品理论在线观看| 天天av天天翘天天综合网色鬼国产| 美脚の诱脚舐め脚责91| 91麻豆国产自产在线观看| 日韩欧美一区中文| 亚洲综合清纯丝袜自拍| 国产专区欧美精品| 69堂亚洲精品首页| 一区二区三区在线视频观看| 成人av先锋影音| 日韩一二在线观看| 亚洲国产精品久久久久婷婷884| 国产精品一区专区| 26uuu色噜噜精品一区二区| 夜夜嗨av一区二区三区| www.亚洲色图.com| 亚洲人成电影网站色mp4| 成人性生交大片免费看视频在线 | 国产高清精品久久久久| 日韩一区二区三区av| 亚洲va在线va天堂| 97精品国产露脸对白| 中文字幕在线不卡| 99r国产精品| 一区二区成人在线观看| 欧美三级乱人伦电影| 男人的天堂久久精品| 精品久久久久久综合日本欧美| 黄色小说综合网站| 国产精品毛片无遮挡高清| 在线亚洲免费视频| 久久国产精品免费| 亚洲色欲色欲www| 91麻豆精品国产自产在线观看一区| 日韩av一区二区三区四区| 久久精品人人做人人爽97| 成人综合在线视频| 爽好多水快深点欧美视频| 亚洲精品一区二区三区影院| 成人黄色在线网站| 日韩精品亚洲专区| 国产精品超碰97尤物18| 欧美日本乱大交xxxxx| 国产精品18久久久久久久久| 亚洲美女精品一区| 精品国内二区三区| 欧美亚洲一区二区三区四区| 国产美女精品人人做人人爽 | 国产亚洲1区2区3区| 国产成人亚洲精品狼色在线 | 精品国产凹凸成av人导航| 色综合婷婷久久| 国产不卡在线视频| 天天影视色香欲综合网老头| 国产精品免费看片| 欧美精品一区二区精品网| 欧美日韩亚洲综合一区| www.欧美精品一二区| 日本va欧美va瓶| 丝袜亚洲另类丝袜在线| 国产精品久久久久久久久久久免费看| 日韩欧美你懂的| 777久久久精品| 欧美人狂配大交3d怪物一区| 91久久精品午夜一区二区| 91理论电影在线观看| 99v久久综合狠狠综合久久| av电影天堂一区二区在线观看| 国内成+人亚洲+欧美+综合在线| 日韩不卡免费视频| 久久av资源站| 国产91丝袜在线18| 国产91在线观看| 日本高清视频一区二区| 在线观看www91| 欧美一区二区在线免费播放| 日韩欧美激情四射| 久久久精品蜜桃| 中文字幕日韩欧美一区二区三区| 国产精品高潮久久久久无| 亚洲精品第一国产综合野| 亚洲一二三四区不卡| 美女www一区二区| 成人黄色在线看| 欧美日韩一区二区欧美激情 | 在线看日韩精品电影| 日韩欧美国产系列| 国产精品国产三级国产有无不卡| 亚洲成人免费在线观看| 国产精品综合av一区二区国产馆| 91小视频免费看| 日韩三级精品电影久久久| 亚洲国产电影在线观看| 日韩电影一二三区| 99精品国产视频| 久久久影院官网| 日韩精品一区第一页| 99视频超级精品| 精品国精品国产| 亚洲成人在线观看视频| 成人黄色大片在线观看| 日韩一区二区三区精品视频| 亚洲日本青草视频在线怡红院| 狠狠色狠狠色合久久伊人| 日韩一级黄色大片| 亚洲国产裸拍裸体视频在线观看乱了 | 一本大道久久a久久综合婷婷| 26uuu国产在线精品一区二区| 奇米影视一区二区三区小说| 欧美人狂配大交3d怪物一区| 一区二区三区欧美日| 99这里只有久久精品视频| 久久久久久久久久看片| 国内欧美视频一区二区| 精品黑人一区二区三区久久| 蜜臂av日日欢夜夜爽一区| 日韩一级黄色片|