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

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

?? yinxiang.c

?? 單片機制作電子音響的原代碼.單片機初學者必看.
?? C
字號:
//-----------------------------------------------------------------------------
// 版權歸新華龍電子公司所有
//-----------------------------------------------------------------------------
//
//文件名:	YinXiang.c
//
//編寫人:	LC
//
//編寫時間:2005/03/10
//
//目標器件: C8051F02x
//
//編譯工具: Silicon Laboratories IDE
//
//程序說明:	此程序將某段音樂用特定的頻率播放出來

//P54--MUSIC
//------------------------------------------------------------------------------------
// 頭文件包含
//------------------------------------------------------------------------------------
#include <C8051F020.h>
#include <ctype.h>

//------------------------------------------------------------------------------------
// Global CONSTANTS
//------------------------------------------------------------------------------------
#pragma ot(0)
#define uint  unsigned int
#define uchar unsigned char
#define OSFREQ 6000000l                 /*所使用的晶振頻率*/


/**************音符頻率表****************/
uint code notefreq[]={ 	523, 587, 659, 698, 784, 880, 988,
						1047,1175,1319,1396,1568,1760,1976,
						2093,2349,2637,2793,3136,3520,3961};
//uint code timreg[]={ 	65058, 65110, 65157, 65178, 65217, 65252, 65283,
//						65297,65323,65347,65357,65377,65394,65410,
//						65417,65430,65441,65447,65456,65465,65473};
/*************音名***************/

uchar code notename[]={	'c','d','e','f','g','a','b',
						'1','2','3','4','5','6','7',
						'C','D','E','F','G','A','B',0};

/*************半音頻率表*****************/
uint code halfnotefreq[]={ 	554, 622, 740, 831, 933,
							1109,1245,1480,1161,1865,
							2218,2489,2960,3322,3729};
//uint code halftimreg[]={ 	65085, 65134, 65198, 65235, 65268,
//							65311,65335,65367,65321,65402,
//							65423,65436,65452,65461,65469};
/*************音名***************/
uchar code halfnotename[]={	'c','d','f','g','a',
							'1','2','4','5','6',
							'C','D','F','G','A',0};

//sbit  BEEP_PWR=P1^0;
uchar  FreqSandH,FreqSandL;  /*產生方波的定時器的初值*/
uchar timer1cnt;             /*定時器延時計數        */
uchar timer1cntflg;          /*定時器定時完成標志    */


/***************************************************************************************
函數名稱:	void timer0int() interrupt 1
功能描述:	定時器0中斷用來產生方波
輸入:		無
輸出:		無
全局變量:	TH0,TL0,P5
調用模塊:	無
***************************************************************************************/
void timer0int () interrupt 1
{
	TH0=FreqSandH;		
	TL0=FreqSandL;
	P5 = P5 ^ 0x10;		// change state of P5.4
}


/***************************************************************************************
函數名稱:	void delay(uchar time)
功能描述:	延時
輸入:		uchar time:	延時時間長度
輸出:		無
全局變量:	無
調用模塊:	無
***************************************************************************************/
void delay(uchar time)
{
	uchar i;
	uint j;
	for(i=0;i<time;i++)
    	for(j=0;j<0x900;j++);
}

/***************************************************************************************
函數名稱:	void sound(uint freq)
功能描述:	
輸入:		uint freq:	頻率值
輸出:		無
全局變量:	OSFFEQ,FreqSandH,FreqSandL,TR0,ET0
調用模塊:	無
***************************************************************************************/
void Sound(uint freq)
{
	uint timreg;
	timreg=65536l-(OSFREQ/(24l*freq));
	FreqSandH=timreg/256;
	FreqSandL=timreg&0x00ff;
	TR0=1;
	ET0=1;
}


/***************************************************************************************
函數名稱:	void Soundoff(void)
功能描述:	停止發聲
輸入:		無
輸出:		無
全局變量:	TR0,ET0,P5
調用模塊:	無
***************************************************************************************/
void SoundOff(void)
{
	TR0=0;		  
	ET0=0;
	//P5 = P5 & 0xef;
	P5 = P5 | 0x10;
}

/***************************************************************************************
函數名稱:	void GetFreq(uchar ch, uchar flag)
功能描述:	依據音名取對應的頻率
輸入:		uchar ch:	音名
			uchar flg:	全音/半音選擇
輸出:		返回頻率值
全局變量:	halfnotename[],notename[],halfnotefreq[],notefreq[]
調用模塊:	無
***************************************************************************************/
uint GetFreq(uchar ch,uchar flg)
{
	uchar * pn,i=0;
	uint * pf;
	if(flg)   {pn=halfnotename; pf=halfnotefreq;}
	else      {pn=notename;     pf=notefreq;}
	while(1)
    {
		if(pn[i]==0)     return 0;
     	if(ch==pn[i])  return pf[i];
     	i++;
    }
}

/***************************************************************************************
函數名稱:	void PORT_Init(void)
功能描述:	初始化I/O
輸入:		無
輸出:		無
全局變量:	XBR2,P74OUT
調用模塊:	無
***************************************************************************************/
void PORT_Init (void)
{
   XBR2    = 0x40;      /*使能交叉開關和弱上拉*/
   P74OUT |= 0xff;      /*使能P6,P7推挽輸出*/
}

void Play(char * str)
{
	uchar i=0,ch,halfflg=0;
	uchar lasttime;
	uint freq;
	/*無效看門狗*/
   	WDTCN = 0xde;
   	WDTCN = 0xad;
   	PORT_Init ();
	OSCICN=0x14;		/*使用內部晶振*/
	while(1)
    {
		for(;;i++)
        {
			ch=str[i];   /*允許曲譜用空格符 '|'符,換行回車等分隔以便閱讀*/
          	if((ch==' ')||(ch=='|')||(ch=='\r')||(ch=='\n')) {i++;continue;}
          	if(!ch) {SoundOff(); return;}         /*樂曲結束則播放完畢*/
          	if(ch=='#')  {halfflg=1;  continue;}  /*半音標志*/
          	if(isdigit(ch)||isalpha(ch))
            {
				freq=GetFreq(ch,halfflg);		/*從音名獲取頻率*/
               	lasttime=16;
               	break;
            }
          	else {halfflg=0;  continue;}
        }
      	i++;
      	ch=str[i];       /*從下一個符號獲取額外音長符號*/
      	while(1)
        {
			if(!ch) break;
          	if(isdigit(ch)||isalpha(ch)) break;   /*非音長符號則下次處理*/
          	if(ch=='-') lasttime+=8;              /*額外延時一拍*/
          	if(ch=='.') lasttime+=4;              /*額外延時半拍*/
          	if(ch=='_') lasttime/=2;              /*下劃線相當于簡譜中音名下面的下劃線,延時減半*/
          	if(ch=='=') lasttime/=4;              /*雙下劃線相當于簡譜中音名下面的雙下劃線,延時減為1/4*/
          	i++;
          	ch=str[i];
        }
     	if(freq!=0) Sound(freq);             	/*發聲*/
     	else        SoundOff();
     	delay(lasttime);                      	/*延時*/
     	SoundOff();
     	delay(1);                    			/*兩個引之間的間歇*/
    }
}

/*
編譜說明,低音(簡譜中數字下面有一個點的)1234567對應的為小寫cdefgab
中音(簡譜中數字上下都沒有點的)1234567對應的也為1234567
高音(簡譜中數字上面有一個點的)1234567對應的為大寫CDEFGAB
對于降音符b或聲音符#一律用#+合適的音名例如#5
一個音符本身為一拍,加下劃線后為半拍加等號為1/4拍 如:65_ 4= 則音6為一拍,音5為半拍,音4為1/4拍
下劃線或等號連續書寫則音長連續變短
音符后加-或.表示延長。‘-’延長一拍‘.’延長半拍多加則延長連續增加
*/

void main(void)
{
	//uint i;
	TMOD=0x11; ET0=1;  EA=1;
	delay(10);
	//Play("1_1_5_5_6_6_5   4_4_3_3_2_2_1  5_5_4_4_3_3_2 5_5_4_4_3_3_21_1_5_5_6_6_5  4_4_3_3_2_2_1"); /*滿天都是小星星*/
	//Play("1_2_3_1_  1_2_3_1_  3_4_5 3_4_5  5=6=5=4=3_1_ 5=6=5=4=3_1_ 2_g_12_g_1");    /*兩只老虎*/
	//Play("a-a1-a2--a-b1b13-2a--a--   a-33-12--a-b1b13-21--1-- 5-55432--a-b1-12123--3-- 1-1_1_1235--4-32-b3-2a--a--  a-66565--4-34-56543--3--1-1_1_1235--4-32-b3-2a--a--"); /*山楂樹*/
	//Play("5._3=2_1_5-12_3_g-5.3_23_5_1a_3_2-356.5_352._3=2_1_a32_21_a1g05.3_6562_3_50"); /*學習雷鋒好榜樣*/
	//Play("C-53.2_1530C-53.2_1650 5_C6_5_C05_C6_5_6_0_3_C.6_53C.6_C0C53_6_5_3_2.1_30_5_C56_C_6_5_33_1_6-60C._C=5_5_2._3=5_5_6.5_6DC6_5_C6_5_33_5_C-");  /*團結就是力量*/
	//Play("3- 2_3_4_3 3- 2_3_4_3 3- 4- 3_4_5_4 4- 3-2-  3- 2_3_4_3 3- 2_3_4_3 3-4- 3_4_5_4 4- 3-2");/*許巍-星空前奏*/
	//Play("543 3_2_1_2_30 g53 3_2_1_2_30 a65 4_3_2_3_4 1 b a g");/*許巍-時光*/
	Play("g_g_ag  1b- g_g_ag  21-  g_g_53  1ba 004_4_  312  1--1  ");	/*生日快樂*/
	SoundOff();
	while(1);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩久久精品一区| 亚洲国产精品久久久久婷婷884| 欧美国产1区2区| 视频一区二区三区入口| www.欧美精品一二区| 欧美tk—视频vk| 五月婷婷久久综合| 色婷婷av久久久久久久| 国产精品久久久久久亚洲伦| 精油按摩中文字幕久久| 欧美日韩mp4| 亚洲综合视频在线观看| 99热国产精品| 欧美激情综合网| 国产精品一区一区| 2014亚洲片线观看视频免费| 亚洲18女电影在线观看| 在线观看欧美黄色| 亚洲女同ⅹxx女同tv| 成人精品在线视频观看| 久久视频一区二区| 国产乱淫av一区二区三区| 欧美一区二区人人喊爽| 亚洲一级二级在线| 欧美日韩国产三级| 偷拍一区二区三区四区| 欧美剧情片在线观看| 午夜视频在线观看一区二区| 在线观看国产一区二区| 一区二区三区四区蜜桃| 在线看日本不卡| 亚洲成人av中文| 欧美夫妻性生活| 老司机午夜精品99久久| 久久久天堂av| 成人网在线播放| 最近中文字幕一区二区三区| 欧美精品一区二区蜜臀亚洲| 精品一二三四区| 久久色视频免费观看| 国产成人亚洲精品狼色在线| 中文字幕av在线一区二区三区| 高清久久久久久| 中文字幕一区二区三区在线不卡| av电影在线观看一区| 亚洲精品乱码久久久久| 欧美午夜寂寞影院| 日韩电影免费在线观看网站| 欧美电影免费观看高清完整版| 激情综合色综合久久综合| 久久久久国产一区二区三区四区| 成人一区二区三区视频在线观看| 国产精品系列在线| 91福利在线观看| 日韩av中文在线观看| 国产无人区一区二区三区| 91在线观看污| 美日韩黄色大片| 国产精品素人一区二区| 欧美剧在线免费观看网站| 国内精品久久久久影院色| 综合网在线视频| 欧美一级欧美三级在线观看| 成人精品国产免费网站| 午夜精品久久久久| 欧美激情综合网| 8x福利精品第一导航| 国产成+人+日韩+欧美+亚洲| 亚洲一区二区欧美| 国产欧美一区二区三区沐欲| 日本精品免费观看高清观看| 久久av资源网| 亚洲一区二区在线视频| 国产亚洲欧美一级| 在线观看91av| 一本色道久久综合亚洲aⅴ蜜桃| 蜜芽一区二区三区| 亚洲精品免费看| 亚洲国产精品高清| 日韩一区二区免费在线电影| 91视频一区二区三区| 国产毛片精品视频| 日韩电影一区二区三区| 亚洲日本青草视频在线怡红院| 日韩精品一区二区三区在线观看| 色综合久久精品| 国产很黄免费观看久久| 美女网站视频久久| 亚洲成a天堂v人片| 伊人色综合久久天天| 国产欧美日韩在线| 欧美sm极限捆绑bd| 欧美精品视频www在线观看 | 久久综合九色综合97婷婷| 欧美亚洲国产bt| voyeur盗摄精品| 国产一区二区三区| 日本不卡在线视频| 一区二区三区欧美亚洲| 18欧美亚洲精品| 国产精品系列在线播放| 免费久久精品视频| 亚洲国产一区二区三区青草影视| 中文字幕欧美一| 国产精品久久国产精麻豆99网站 | 亚洲成人久久影院| 亚洲人成在线观看一区二区| 国产精品美女一区二区| 国产日韩欧美综合一区| 久久久精品免费网站| 国产网站一区二区| 国产精品视频一二| 国产精品毛片a∨一区二区三区| 2023国产精华国产精品| 2022国产精品视频| 国产免费成人在线视频| 中文字幕亚洲视频| 一区二区三区在线播放| 亚洲午夜av在线| 日精品一区二区| 黄色资源网久久资源365| 国产精品99久久久久久有的能看 | 久久精品99国产国产精| 精品无码三级在线观看视频| 蜜桃视频免费观看一区| 国内精品伊人久久久久av影院 | 国产女同性恋一区二区| 成人免费在线视频| 亚洲一区二区三区四区五区黄 | 99免费精品视频| 91国产免费观看| 欧美精品丝袜中出| 精品国产123| 国产精品久久夜| 亚洲已满18点击进入久久| 日本中文一区二区三区| 韩国精品一区二区| 99国产精品99久久久久久| 在线视频亚洲一区| 欧美不卡在线视频| 中文字幕在线免费不卡| 亚洲国产婷婷综合在线精品| 久色婷婷小香蕉久久| 国产69精品久久777的优势| 91国产精品成人| 欧美大片一区二区三区| 亚洲欧洲精品一区二区精品久久久| 有码一区二区三区| 国产在线观看一区二区 | 国产高清精品网站| 色综合av在线| 久久蜜桃av一区二区天堂| 亚洲欧美成aⅴ人在线观看| 免费久久精品视频| 91首页免费视频| 久久天天做天天爱综合色| 亚洲主播在线播放| 国产成人午夜精品5599| 国产伦精品一区二区三区免费迷 | 欧美男人的天堂一二区| 久久九九国产精品| 香蕉久久夜色精品国产使用方法| 国产成人精品免费视频网站| 欧美久久久久久久久中文字幕| 国产亚洲欧美在线| 日本aⅴ精品一区二区三区 | 成人免费毛片高清视频| 正在播放亚洲一区| 日韩美女视频19| 国产精品一区二区不卡| 91精品欧美久久久久久动漫 | 亚洲三级电影网站| 国产精品一区在线观看乱码 | 亚洲乱码国产乱码精品精小说 | 色丁香久综合在线久综合在线观看 | 欧美精品一区在线观看| 亚洲大片免费看| 99r国产精品| 日本一区二区三区四区| 美女视频免费一区| 欧美精品色综合| 一区二区三区四区高清精品免费观看 | 欧美日本在线看| 亚洲精品日韩一| 91首页免费视频| 中文字幕日韩一区| aaa欧美日韩| 亚洲少妇最新在线视频| av资源网一区| 亚洲欧洲精品一区二区三区不卡| 国产精品538一区二区在线| 久久这里都是精品| 国产一区在线观看视频| 欧美大尺度电影在线| 爽好久久久欧美精品| 欧美一区二视频| 男女视频一区二区| 欧美变态tickling挠脚心| 韩国在线一区二区| 国产清纯在线一区二区www|