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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? music.c

?? 非常適用的萬年歷程序
?? C
字號:
#include "music.h"
/************************************************************
播放音樂使能TIME1之前必須完成以下工作
初始化*pMusic指針,使其指向某一首音樂
初始化maxMusic,使其等于*pMusic指針指向的音樂的數據的個數
初始化音樂播放的次數playCycle
初始化OCR1A,使其對應于第一個音符
初始化第一個音符比較匹配的次數iCompaCycle
初時話iMusicCycle為1
************************************************************/


/************************************************************
Timer1比較匹配中斷處理函數
************************************************************/
interrupt [TIM1_COMPA] void Timer1CompaIsr(void)
{
	
	if (--iCompaCycle == 0)                   //比較匹配次數是否到了
	{
		if(iMusicCycle < maxMusic)           // 判斷最后一個音符是否已經被播放
		{     
			OCR1A = dataOfOCR1A[pMusic[++iMusicCycle]];        //裝入下一個音符的數據
			iCompaCycle = counter[pMusic[iMusicCycle]];        
			iCompaCycle = iCompaCycle * pMusic[++iMusicCycle];
																
			if(OCR1A == 2500)						// IF語句判斷OCR1A中是否是裝入了空音符的數據,如果是的話就把PD5釋放
			{
				TCCR1A = 0x00;
			}
			else if (TCCR1A == 0x00)     //非空音符時,如果PD5引腳已經釋放,則與OCR1連接
			{
				TCCR1A = 0x40;
			}

		}
		else if(--playCycle != 0)                              //判斷播放次數是否已經為0
		{
			OCR1A = dataOfOCR1A[pMusic[0]];                    //重新裝入第一個音符的數據
			iCompaCycle = counter[pMusic[0]] * pMusic[1];
			iMusicCycle = 1;
			 
            if(OCR1A == 2500)		// IF語句判斷OCR1A中是否是裝入了空音符的數據,如果是的話就把PD5釋放
			{
				TCCR1A = 0x00;
			}
			else if (TCCR1A == 0x00)	//非空音符時,如果PD5引腳已經釋放,則與OCR1連接
			{
				TCCR1A = 0x40;
			}

		}
		else
		{
			TCCR1B = 0x08;    //播放結束,關閉TIME1的時鐘
		}

	}
}
/************************************************************
函數MusicInit用于初始化音樂播放
************************************************************/
void MusicInit(void)
{
	DDRD.5 = 1;            //設置PD5為輸出引腳
   	PORTD.5 = 0;			//
    	TCCR1A = 0x40;		//比較匹配時觸發PD5引腳
    	TCCR1B = 0x08;		//CTC模式,先不啟動定時器
	TIMSK |= 0x10;			//開放定時器1的比較匹配功能
}
/************************************************************
函數void PlayMusic(unsigned char musicChoose, unsigned char counterChoose)
中musicChoose為選擇播放的音樂,counterChoose為播放次數
************************************************************/
void PlayMusic(unsigned char musicChoose, unsigned char counterChoose)
{
	//switch語句把選擇的音樂序號對應的音樂數據付給pMusic指針
	switch (musicChoose)
	{
	case 1:
		pMusic = music1;
		maxMusic = maxMusic1;
		break;
	
	case 2:
		pMusic = music2;
		maxMusic = maxMusic2;
		break;

	case 3:
		pMusic = music3;
		maxMusic = maxMusic3;
		break;

	case 4:
		pMusic = music4;
		maxMusic = maxMusic4;
		break;

	case 5:
		pMusic = music5;
		maxMusic = maxMusic5;
		break;

	case 6:
		pMusic = music6;
		maxMusic = maxMusic6;
		break;

	case 7:
		pMusic = music7;
		maxMusic = maxMusic7;
		break;

	case 8:
		pMusic = music8;
		maxMusic = maxMusic8;
		break;

	case 9:
		pMusic = music9;
		maxMusic = maxMusic9;
		break;

	case 10:
		pMusic = music10;
		maxMusic = maxMusic10;
		break;

	};

	playCycle = counterChoose;     //音樂播放次數賦值
	OCR1A = dataOfOCR1A[pMusic[0]];      //第一個音符賦值   
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	
	if(OCR1A == 2500)		// IF語句判斷OCR1A中是否是裝入了空音符的數據,如果是的話就把PD5釋放
	{
	        TCCR1A = 0x00;
	}
	else if (TCCR1A == 0x00)	//非空音符時,如果PD5引腳已經釋放,則與OCR1連接
	{
	        TCCR1A = 0x40;
	} 
	
	TCCR1B = 0x0A;     //開啟定時器工作
}

void PlayMusic1(unsigned char counter1)
{
	pMusic = music1;
	maxMusic = maxMusic1;
	playCycle = counter1;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic2(unsigned char counter2)
{
	pMusic = music2;
	maxMusic = maxMusic2;
	playCycle = counter2;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic3(unsigned char counter3)
{
	pMusic = music3;
	maxMusic = maxMusic3;
	playCycle = counter3;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic4(unsigned char counter4)
{
	pMusic = music4;
	maxMusic = maxMusic4;
	playCycle = counter4;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic5(unsigned char counter5)
{
	pMusic = music5;
	maxMusic = maxMusic5;
	playCycle = counter5;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic6(unsigned char counter6)
{
	pMusic = music6;
	maxMusic = maxMusic6;
	playCycle = counter6;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic7(unsigned char counter7)
{
	pMusic = music7;
	maxMusic = maxMusic7;
	playCycle = counter7;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic8(unsigned char counter8)
{
	pMusic = music8;
	maxMusic = maxMusic8;
	playCycle = counter8;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic9(unsigned char counter9)
{
	pMusic = music9;
	maxMusic = maxMusic9;
	playCycle = counter9;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

void PlayMusic10(unsigned char counter10)
{
	pMusic = music10;
	maxMusic = maxMusic10;
	playCycle = counter10;
	OCR1A = dataOfOCR1A[pMusic[0]];
	iCompaCycle = counter[pMusic[0]] * pMusic[1];
	iMusicCycle = 1;
	TCCR1B = 0x0A;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色欲综合视频天天天| 国产精品99久久不卡二区| 国产精品亲子伦对白| 日韩精品一区二区三区视频在线观看| 欧美亚洲日本一区| 欧美精品久久久久久久多人混战 | 国产婷婷色一区二区三区四区 | 色成人在线视频| 不卡的电影网站| eeuss鲁片一区二区三区在线看| 国产成人免费视频网站| 粉嫩蜜臀av国产精品网站| 国产91丝袜在线播放| 国产成人精品免费看| a亚洲天堂av| 91成人国产精品| 91精品国产欧美一区二区| 精品国产凹凸成av人网站| 国产欧美久久久精品影院| 中文字幕乱码亚洲精品一区| 亚洲免费在线视频一区 二区| 亚洲影院理伦片| 奇米亚洲午夜久久精品| 国产高清一区日本| 色呦呦一区二区三区| 欧美久久婷婷综合色| 日韩欧美国产电影| 日韩久久一区二区| 日韩不卡一区二区三区| 国产精品一区二区三区乱码| 91小视频免费观看| 日韩欧美视频一区| 亚洲人成影院在线观看| 秋霞电影网一区二区| 成人av在线一区二区三区| 欧美三级三级三级爽爽爽| 久久亚洲一区二区三区明星换脸| 国产精品乱人伦中文| 青青草国产成人99久久| 成人a级免费电影| 在线电影一区二区三区| 国产精品久久午夜夜伦鲁鲁| 日韩专区在线视频| av中文字幕一区| 精品日韩99亚洲| 亚洲亚洲精品在线观看| 国产白丝网站精品污在线入口| 欧美性色黄大片| 国产精品久久久久永久免费观看| 亚洲一二三专区| 成人性生交大合| 精品国产一区二区三区忘忧草| 尤物视频一区二区| 国产999精品久久久久久| 在线电影院国产精品| 一区二区三区中文免费| 岛国精品在线观看| 久久久亚洲精品石原莉奈 | 中文字幕一区二区三区在线不卡| 丝袜诱惑制服诱惑色一区在线观看| 成人精品一区二区三区中文字幕| 欧美精品自拍偷拍| 亚洲国产精品视频| 91在线视频网址| 成人欧美一区二区三区1314| 国内精品视频666| 在线综合+亚洲+欧美中文字幕| 中文字幕亚洲精品在线观看| 国产精品一区二区久激情瑜伽| 欧美电视剧在线看免费| 日本美女一区二区| 日韩欧美在线网站| 老司机一区二区| 日韩欧美国产三级电影视频| 蜜臀av国产精品久久久久| 欧美男男青年gay1069videost | 欧美亚洲国产一区在线观看网站| 欧美激情一区二区三区全黄| 国内成+人亚洲+欧美+综合在线 | 欧美一卡二卡三卡四卡| 国产原创一区二区| 亚洲一区二区av电影| 国产欧美日本一区二区三区| 欧美精品久久99| 色先锋资源久久综合| 精品一区二区三区在线观看国产| 中文字幕亚洲一区二区av在线| 日韩一卡二卡三卡国产欧美| 91久久精品一区二区二区| 麻豆91精品视频| 亚洲一区二区综合| 国产精品色婷婷| 久久亚洲私人国产精品va媚药| 欧美另类高清zo欧美| 色偷偷成人一区二区三区91| 国产精品亚洲一区二区三区妖精| 香蕉久久夜色精品国产使用方法 | 26uuu色噜噜精品一区二区| 欧美日韩的一区二区| 一本久久a久久精品亚洲| 国产麻豆欧美日韩一区| 六月丁香婷婷久久| 日本不卡的三区四区五区| 亚洲精品成人悠悠色影视| 国产精品久久久爽爽爽麻豆色哟哟 | 一区二区三区不卡在线观看 | 青青草91视频| 婷婷夜色潮精品综合在线| 玉米视频成人免费看| 亚洲欧美偷拍三级| 亚洲视频一区在线| 亚洲人成精品久久久久| 中文字幕一区av| 亚洲男帅同性gay1069| 国产精品久久久久久久午夜片| 国产精品久久久久久久久免费相片| 国产午夜亚洲精品午夜鲁丝片| 精品第一国产综合精品aⅴ| 日韩一区二区免费高清| 欧美一区二区三区小说| 日韩一区二区不卡| 2020国产精品| 日本一区二区三区电影| 国产精品三级av| 亚洲精品免费电影| 午夜欧美一区二区三区在线播放 | 国产精品久久精品日日| 日韩美女视频19| 亚洲影视在线播放| 日韩和欧美一区二区| 久久99久国产精品黄毛片色诱| 国产自产v一区二区三区c| 国产精品99久久久久久久vr| 成人av免费观看| 91免费版在线| 欧美精品aⅴ在线视频| 91精品国产一区二区三区蜜臀| 精品国产乱码久久久久久夜甘婷婷| 欧美成人乱码一区二区三区| 久久久www成人免费毛片麻豆| 国产精品区一区二区三区| 亚洲在线视频免费观看| 日韩精品免费视频人成| 国产精品一区二区久激情瑜伽| 99re这里只有精品6| 欧美日韩不卡一区二区| 久久一区二区视频| 一区二区三区电影在线播| 精彩视频一区二区| 91在线一区二区三区| 911精品国产一区二区在线| 26uuu欧美| 亚洲一区在线观看免费观看电影高清| 日韩黄色片在线观看| 国产91精品露脸国语对白| 欧美性大战久久久久久久蜜臀| 亚洲精品一区二区三区在线观看| 国产精品免费丝袜| 日韩电影免费一区| 波多野结衣的一区二区三区| 3d动漫精品啪啪1区2区免费| 欧美激情一区二区三区四区| 日日摸夜夜添夜夜添国产精品| 成人高清伦理免费影院在线观看| 欧美一区二区视频网站| 亚洲三级小视频| 国产精品综合一区二区三区| 日本乱码高清不卡字幕| 国产三级精品视频| 免费不卡在线视频| 91香蕉视频污| 日本一区二区成人| 国产中文字幕精品| 欧美日韩国产美女| 亚洲日本在线看| 国产高清精品在线| 欧美成人福利视频| 日韩成人免费看| 欧美日韩国产三级| 一区二区三区四区激情| 波多野结衣欧美| 国产日韩v精品一区二区| 久久机这里只有精品| 88在线观看91蜜桃国自产| 一区二区在线观看免费| 福利一区二区在线| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩av电影一区| 欧美日韩中字一区| 一区二区三区四区乱视频| 91丨九色丨蝌蚪富婆spa| 国产日本一区二区| 国产一区二区0| 久久久久国产免费免费| 极品少妇xxxx偷拍精品少妇| 欧美一区二区成人| 免费看欧美女人艹b| 欧美一区二区网站| 蜜臀99久久精品久久久久久软件 | 欧美在线高清视频|