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

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

?? soundplay.h

?? 電子琴設計 其中包含樂普編輯
?? H
字號:
/**************************************************************************
   
     					SOUND PLAY FOR 51MCU
  
               		COPYRIGHT (c)   2005 BY JJJ.
                       		--  ALL RIGHTS RESERVED  --
  
   File Name:       SoundPlay.h
   Author:          Jiang Jian Jun
   Created:         2005/5/16
   Modified:		NO
   Revision: 		1.0
  
*******************************************************************************/

/*說明**************************************************************************
 曲譜存貯格式 unsigned char code MusicName{音高,音長,音高,音長...., 0,0};	末尾:0,0 表示結束(Important)

 音高由三位數字組成:
 		個位是表示 1~7 這七個音符 
 		十位是表示音符所在的音區:1-低音,2-中音,3-高音;
 		百位表示這個音符是否要升半音: 0-不升,1-升半音。
 
 音長最多由三位數字組成: 
 		個位表示音符的時值,其對應關系是: 
 			|數值(n):  |0 |1 |2 |3 | 4 | 5 | 6 
 			|幾分音符: |1 |2 |4 |8 |16 |32 |64 		音符=2^n
 		十位表示音符的演奏效果(0-2):  0-普通,1-連音,2-頓音
 		百位是符點位: 0-無符點,1-有符點

 調用演奏子程序的格式
 		Play(樂曲名,調號,升降八度,演奏速度);
	|樂曲名           : 要播放的樂曲指針,結尾以(0,0)結束;
	|調號(0-11)       :	是指樂曲升多少個半音演奏;
	|升降八度(1-3)	  : 1:降八度, 2:不升不降, 3:升八度;
	|演奏速度(1-12000):	值越大速度越快;

***************************************************************************/
#ifndef __SOUNDPLAY_H_REVISION_FIRST__
#define __SOUNDPLAY_H_REVISION_FIRST__

//**************************************************************************

#define SYSTEM_OSC 		12000000	//定義晶振頻率12000000HZ
#define SOUND_SPACE 	4/5 		//定義普通音符演奏的長度分率,//每4分音符間隔
sbit    BeepIO    =   	P3^7;		//定義輸出管腳

unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表

unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 }; 								  //1~7在頻率表中的位置
unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };						
unsigned char Sound_Temp_TH0,Sound_Temp_TL0;	//音符定時器初值暫存 
unsigned char Sound_Temp_TH1,Sound_Temp_TL1;	//音長定時器初值暫存
//**************************************************************************
void InitialSound(void)
{
	BeepIO = 0;
	Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;	// 計算TL1應裝入的初值 	(10ms的初裝值)
	Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;	// 計算TH1應裝入的初值 
	TH1 = Sound_Temp_TH1;
	TL1 = Sound_Temp_TL1;
	TMOD  |= 0x11;
	ET0    = 1;
	ET1    = 0;
	TR0    = 0;
	TR1    = 0;
	EA     = 1;
}

void BeepTimer0(void) interrupt 1	//音符發生中斷
{
	BeepIO = !BeepIO;
	TH0    = Sound_Temp_TH0;
 	TL0    = Sound_Temp_TL0;
}
//**************************************************************************
void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)
{
	unsigned int NewFreTab[12];		//新的頻率表
	unsigned char i,j;
	unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;
	unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;
	for(i=0;i<12;i++) 				// 根據調號及升降八度來生成新的頻率表 
	{
		j = i + Signature;
		if(j > 11)
		{
			j = j-12;
			NewFreTab[i] = FreTab[j]*2;
		}
		else
			NewFreTab[i] = FreTab[j];

		if(Octachord == 1)
			NewFreTab[i]>>=2;
		else if(Octachord == 3)
			NewFreTab[i]<<=2;
	}									
	
	
        SoundLength = 0;//歌曲長度
	
       while(Sound[SoundLength] != 0x00)	//計算歌曲長度
	{
		SoundLength+=2;
	}


	Point = 0;
	Tone   = Sound[Point];	
	Length = Sound[Point+1]; 			// 讀出第一個音符和它時時值
	
	LDiv0 = 12000/Speed;				// 算出1分音符的長度(幾個10ms) 	
	LDiv4 = LDiv0/4; 					// 算出4分音符的長度 
	LDiv4 = LDiv4-LDiv4*SOUND_SPACE; 	// 普通音最長間隔標準 
	TR0	  = 0;
	TR1   = 1;
	
        while(Point < SoundLength)
	{
		SL=Tone%10; 								//計算出音符 
		SM=Tone/10%10; 								//計算出高低音 
		SH=Tone/100; 								//計算出是否升半 
		CurrentFre = NewFreTab[SignTab[SL-1]+SH]; 	//查出對應音符的頻率 	
		if(SL!=0)
		{
			if (SM==1) CurrentFre >>= 2; 		//低音 
			if (SM==3) CurrentFre <<= 2; 		//高音
			Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計算計數器初值
			Sound_Temp_TH0 = Temp_T/256; 
			Sound_Temp_TL0 = Temp_T%256; 
			TH0 = Sound_Temp_TH0;  
			TL0 = Sound_Temp_TL0 + 12; //加12是對中斷延時的補償 
		}
		SLen=LengthTab[Length%10]; 	//算出是幾分音符
		XG=Length/10%10; 			//算出音符類型(0普通1連音2頓音) 
		FD=Length/100;
		LDiv=LDiv0/SLen; 			//算出連音音符演奏的長度(多少個10ms)
		if (FD==1) 
			LDiv=LDiv+LDiv/2;
		if(XG!=1)	
			if(XG==0) 				//算出普通音符的演奏長度 
				if (SLen<=4)	
					LDiv1=LDiv-LDiv4;
				else
					LDiv1=LDiv*SOUND_SPACE;
			else
				LDiv1=LDiv/2; 		//算出頓音的演奏長度 
		else
			LDiv1=LDiv;
		if(SL==0) LDiv1=0;
			LDiv2=LDiv-LDiv1; 		//算出不發音的長度 
	  	if (SL!=0)
		{
			TR0=1;
			for(i=LDiv1;i>0;i--) 	//發規定長度的音 
			{
				while(TF1==0);
				TH1 = Sound_Temp_TH1;
				TL1 = Sound_Temp_TL1;
				TF1=0;
			}
		}
		if(LDiv2!=0)
		{
			TR0=0; BeepIO=0;
			for(i=LDiv2;i>0;i--) 	//音符間的間隔
			{
				while(TF1==0);
				TH1 = Sound_Temp_TH1;
				TL1 = Sound_Temp_TL1;
				TF1=0;
			}
		}
		Point+=2; 
		Tone=Sound[Point];
		Length=Sound[Point+1];
	}
	BeepIO = 0;
}
//**************************************************************************
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂2014| 亚洲成人在线网站| 欧美精品乱码久久久久久按摩 | 中文字幕日韩一区| 欧美一区二视频| 色哟哟一区二区在线观看| 国产在线精品视频| 日本aⅴ免费视频一区二区三区 | 蜜桃视频在线观看一区二区| 亚洲视频在线一区二区| 欧美精品一区二区三区蜜桃视频| 91久久精品国产91性色tv| 国产精品一二三四五| 日韩精品一二区| 亚洲女人小视频在线观看| 久久久久久一级片| 日韩欧美在线综合网| 欧美色区777第一页| 成人h动漫精品| 国产精品1024| 国产成人综合亚洲网站| 久久99国产乱子伦精品免费| 亚洲电影激情视频网站| 亚洲黄色在线视频| 亚洲人成网站在线| 亚洲日本韩国一区| **网站欧美大片在线观看| 国产视频911| 久久久青草青青国产亚洲免观| 欧美一区二区三区视频在线| 欧美精品xxxxbbbb| 欧美性一级生活| 欧美在线一二三四区| 色老汉一区二区三区| 91视频com| 一本大道av伊人久久综合| 99精品欧美一区| 色综合一个色综合亚洲| 色88888久久久久久影院野外| 成人一级黄色片| 成人免费观看男女羞羞视频| 成人免费毛片app| 91色视频在线| 色天使色偷偷av一区二区| 色综合婷婷久久| 欧洲一区在线观看| 欧美私人免费视频| 7777女厕盗摄久久久| 日韩亚洲欧美高清| 久久久精品综合| 中文字幕一区二区日韩精品绯色| 综合久久久久久久| 亚洲午夜电影网| 美国三级日本三级久久99| 激情综合色综合久久综合| 国产精品一区在线| 97se亚洲国产综合自在线不卡| 在线观看区一区二| 91麻豆精品国产91久久久 | 亚洲免费观看视频| 天天综合网 天天综合色| 蜜桃视频在线观看一区| 国产在线精品一区二区不卡了| 成人激情图片网| 欧美中文字幕亚洲一区二区va在线| 欧美精选一区二区| 精品理论电影在线| 国产精品久久久久毛片软件| 洋洋av久久久久久久一区| 天堂av在线一区| 国产成人精品免费网站| 日本高清无吗v一区| 日韩女同互慰一区二区| 国产无一区二区| 一区二区国产盗摄色噜噜| 日本欧美一区二区在线观看| 国产精品一区二区黑丝| 色琪琪一区二区三区亚洲区| 日韩欧美专区在线| 亚洲视频资源在线| 精品一区二区三区日韩| 色又黄又爽网站www久久| 精品日产卡一卡二卡麻豆| 亚洲精品精品亚洲| 国产一区不卡精品| 欧美午夜片在线观看| 久久久久免费观看| 午夜亚洲国产au精品一区二区| 国产精品主播直播| 在线不卡免费欧美| 国产精品卡一卡二| 激情深爱一区二区| 欧美午夜精品一区二区三区| 久久亚洲二区三区| 天天综合色天天综合| av中文字幕一区| 久久一区二区三区四区| 亚洲国产成人porn| 99视频精品免费视频| 精品国产一区二区在线观看| 亚洲国产一区二区在线播放| 国产成人自拍高清视频在线免费播放| 欧美日韩精品一区视频| 自拍偷拍亚洲欧美日韩| 国产精品一级在线| 精品久久久久久最新网址| 亚洲成人免费看| 99精品视频一区| 亚洲国产成人一区二区三区| 美腿丝袜一区二区三区| 欧美久久久久免费| 亚洲国产日日夜夜| 91免费小视频| 国产精品欧美一区二区三区| 久久99国产精品免费网站| 欧美一区二区精品| 天天综合日日夜夜精品| 欧美丝袜丝nylons| 夜夜夜精品看看| 色天使色偷偷av一区二区| 国产精品久久免费看| 粉嫩av一区二区三区| 久久久一区二区三区| 久久99国产精品麻豆| 欧美成人乱码一区二区三区| 日韩国产精品大片| 正在播放亚洲一区| 全国精品久久少妇| 日韩精品一区二| 黑人巨大精品欧美黑白配亚洲| 日韩欧美一卡二卡| 久久成人免费网| 精品欧美一区二区三区精品久久 | 麻豆极品一区二区三区| 欧美疯狂性受xxxxx喷水图片| 亚洲线精品一区二区三区| 欧美这里有精品| 首页欧美精品中文字幕| 欧美日韩激情在线| 麻豆精品国产传媒mv男同| 欧美r级电影在线观看| 国产露脸91国语对白| 久久久不卡影院| 国产91精品一区二区麻豆亚洲| 国产日韩成人精品| 成人性生交大片免费看中文网站| 国产欧美精品一区| 本田岬高潮一区二区三区| 日韩美女啊v在线免费观看| 日本精品一区二区三区高清 | 欧美日韩不卡在线| 欧美aa在线视频| 久久久夜色精品亚洲| 成人一区在线观看| 亚洲一区二区影院| 欧美精品国产精品| 国产一级精品在线| 国产精品乱码人人做人人爱 | 在线亚洲一区二区| 午夜天堂影视香蕉久久| 日韩视频一区在线观看| 精品一二三四在线| 国产精品国产三级国产普通话蜜臀| 97se亚洲国产综合自在线不卡| 亚洲一区二区三区小说| 欧美一区二区三区四区五区 | 欧美午夜精品理论片a级按摩| 日韩综合小视频| 久久精品夜色噜噜亚洲aⅴ| 99精品热视频| 捆绑紧缚一区二区三区视频| 国产亚洲综合在线| 色偷偷一区二区三区| 日本成人中文字幕在线视频| 久久精品亚洲精品国产欧美kt∨ | 国产精品一区二区不卡| 悠悠色在线精品| 精品国产凹凸成av人网站| 99久久免费国产| 久久不见久久见免费视频7| 国产精品国产自产拍高清av王其| 欧美三级在线看| 国产精品亚洲成人| 午夜亚洲国产au精品一区二区| 久久免费视频色| 欧美三电影在线| 成人性生交大合| 免费成人结看片| 亚洲天堂网中文字| 精品国产麻豆免费人成网站| 91黄视频在线观看| 国产一区二区美女| 五月天丁香久久| 亚洲欧美日韩在线| 久久色在线观看| 欧美伦理视频网站| 91国偷自产一区二区三区成为亚洲经典| 经典三级一区二区| 亚洲一区二区三区不卡国产欧美| 欧美激情一区二区|