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

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

?? 51

?? 51單片機大量源碼
??
字號:
//簡易電子琴
#include<reg52.h>   //包含51單片機寄存器定義的頭文件

sbit P14=P1^4;      //將P14位定義為P1.4引腳
sbit P15=P1^5;      //將P15位定義為P1.5引腳
sbit P16=P1^6;      //將P16位定義為P1.6引腳
sbit P17=P1^7;      //將P17位定義為P1.7引腳
unsigned char keyval;    //定義變量儲存按鍵值

sbit sound=P3^6;    //將sound位定義為P3.7
unsigned int C;     //全局變量,儲存定時器的定時常數
unsigned int f;     //全局變量,儲存音階的頻率

//以下是C調低音的音頻宏定義
#define l_dao 262   //將“l_dao”宏定義為低音“1”的頻率262Hz
#define l_re 286    //將“l_re”宏定義為低音“2”的頻率286Hz
#define l_mi 311    //將“l_mi”宏定義為低音“3”的頻率311Hz
#define l_fa 349    //將“l_fa”宏定義為低音“4”的頻率349Hz
#define l_sao 392   //將“l_sao”宏定義為低音“5”的頻率392Hz
#define l_la 440    //將“l_a”宏定義為低音“6”的頻率440Hz
#define l_xi 494    //將“l_xi”宏定義為低音“7”的頻率494Hz
       
     //以下是C調中音的音頻宏定義
#define dao 523     //將“dao”宏定義為中音“1”的頻率523Hz
#define re 587      //將“re”宏定義為中音“2”的頻率587Hz
#define mi 659      //將“mi”宏定義為中音“3”的頻率659Hz
#define fa 698      //將“fa”宏定義為中音“4”的頻率698Hz
#define sao 784     //將“sao”宏定義為中音“5”的頻率784Hz
#define la 880      //將“la”宏定義為中音“6”的頻率880Hz
#define xi 987      //將“xi”宏定義為中音“7”的頻率53
      
//以下是C調高音的音頻宏定義
#define h_dao 1046     //將“h_dao”宏定義為高音“1”的頻率1046Hz
#define h_re 1174      //將“h_re”宏定義為高音“2”的頻率1174Hz
#define h_mi 1318      //將“h_mi”宏定義為高音“3”的頻率1318Hz
#define h_fa 1396     //將“h_fa”宏定義為高音“4”的頻率1396Hz
#define h_sao 1567    //將“h_sao”宏定義為高音“5”的頻率1567Hz
#define h_la 1760     //將“h_la”宏定義為高音“6”的頻率1760Hz
#define h_xi 1975     //將“h_xi”宏定義為高音“7”的頻率1975Hz
/**************************************************************
函數功能:軟件延時子程序
**************************************************************/
 void delay20ms(void)   
{
   unsigned char i,j;
	for(i=0;i<100;i++)
	 for(j=0;j<60;j++)
           ;
 }


/*******************************************
函數功能:節拍的延時的基本單位,延時200ms
******************************************/
void delay()               
   {
     unsigned char i,j;
	  for(i=0;i<250;i++)
	    for(j=0;j<250;j++)
           	 ;
   }
/*******************************************
函數功能:輸出音頻
入口參數:F
******************************************/
void Output_Sound(void)
{
  C=(46083/f)*10;	   //計算定時常數
  TH0=(8192-C)/32;     //可證明這是13位計數器TH0高8位的賦初值方法
  TL0=(8192-C)%32;     //可證明這是13位計數器TL0低5位的賦初值方法
  TR0=1;               //開定時T0
  delay();             //延時200ms,播放音頻
  TR0=0;               //關閉定時器
  sound=1;        //關閉蜂鳴器
  keyval=0xff;	    //播放按鍵音頻后,將按鍵值更改,停止播放
}
/*******************************************
函數功能:主函數
******************************************/	
void main(void)
  {  
  	   EA=1;         //開總中斷
	   ET0=1;         //定時器T0中斷允許
		ET1=1;        //定時器T1中斷允許
		TR1=1;        //定時器T1啟動,開始鍵盤掃描
      TMOD=0x10;    //分別使用定時器T1的模式1,T0的模式0
     TH1=(65536-500)/256;  //定時器T1的高8位賦初值
	  TL1=(65536-500)%256;  //定時器T1的高8位賦初值	 							   
			
				 while(1)            //無限循環
				   {
				    switch(keyval)
					    {
						    case 1:f=dao;            //如果第1個鍵按下,將中音1的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
							 case 2:f=l_xi;           //如果第2個鍵按下,將低音7的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
                      case 3:f=l_la;           //如果第3個鍵按下,將低音6的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
						    case 4:f=l_sao;          //如果第4個鍵按下,將低音5的頻率賦給f
							      Output_Sound();    //轉去計算定時常數 
								 break;
							 case 5:f=sao;             //如果第5個鍵按下,將中音5的頻率賦給f
							        Output_Sound();    //轉去計算定時常數 
								 break;
							 case 6:f=fa;              //如果第6個鍵按下,將中音4的頻率賦給f
							     Output_Sound();    //轉去計算定時常數 
								 break;
                      case 7:f=mi;             //如果第7個鍵按下,將中音3的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break; 
						    case 8:f=re;              //如果第8個鍵按下,將中音2的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
							 case 9:f=h_re;           //如果第9個鍵按下,將高音2的頻率賦給f
							     Output_Sound();    //轉去計算定時常數 
								 break;
							 case 10:f=h_dao;           //如果第10個鍵按下,將高音1的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
                      case 11:f=xi;            //如果第11個鍵按下,將中音7的頻率賦給f
							   Output_Sound();    //轉去計算定時常數 
								 break;
						    case 12:f=la;            //如果第12個鍵按下,將中音6的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break; 
							 case 13:f=h_la;          //如果第13個鍵按下,將高音6的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
							 case 14:f=h_sao;          //如果第14個鍵按下,將高音5的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
                      case 15:f=h_fa;          //如果第15個鍵按下,將高音4的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;
						    case 16:f=h_mi;           //如果第16個鍵按下,將高音3的頻率賦給f
							    Output_Sound();    //轉去計算定時常數 
								 break;  
		           } 
		  	}	
	} 
/**************************************************************
函數功能:定時器T0的中斷服務子程序,使P3.7引腳輸出音頻方波
**************************************************************/ 

  void Time0_serve(void ) interrupt 1 using 1  
  {
         
        TH0=(8192-C)/32;     //可證明這是13位計數器TH0高8位的賦初值方法
        TL0=(8192-C)%32;     //可證明這是13位計數器TL0低5位的賦初值方法 
	     sound=!sound;        //將P3.7引腳取反,輸出音頻方波
  }
		
/**************************************************************
函數功能:定時器T1的中斷服務子程序,進行鍵盤掃描,判斷鍵位
**************************************************************/ 
  void time1_serve(void) interrupt 3 using 2    //定時器T1的中斷編號為3,使用第2組寄存器
  {
     TR1=0;                  //關閉定時器T0
     P1=0xf0;                 //所有行線置為低電平“0”,所有列線置為高電平“1”
	  if((P1&0xf0)!=0xf0)      //列線中有一位為低電平“0”,說明有鍵按下
	   {
			         delay20ms();           //延時一段時間、軟件消抖
				  if((P1&0xf0)!=0xf0)      //確實有鍵按下
				    {
				       P1=0xfe;             //第一行置為低電平“0”(P1.0輸出低電平“0”)
				       if(P14==0)           //如果檢測到接P1.4引腳的列線為低電平“0”
			             keyval=1;            //可判斷是S1鍵被按下
			           if(P15==0)             //如果檢測到接P1.5引腳的列線為低電平“0”
			             keyval=2;            //可判斷是S2鍵被按下
			           if(P16==0)             //如果檢測到接P1.6引腳的列線為低電平“0”
			             keyval=3;            //可判斷是S3鍵被按下
			           if(P17==0)            //如果檢測到接P1.7引腳的列線為低電平“0”
			             keyval=4;           //可判斷是S4鍵被按下
			
			           P1=0xfd;             //第二行置為低電平“0”(P1.1輸出低電平“0”)
				      if(P14==0)           //如果檢測到接P1.4引腳的列線為低電平“0”
			             keyval=5;            //可判斷是S5鍵被按下
			           if(P15==0)             //如果檢測到接P1.5引腳的列線為低電平“0”
			             keyval=6;            //可判斷是S6鍵被按下
			           if(P16==0)             //如果檢測到接P1.6引腳的列線為低電平“0”
			             keyval=7;            //可判斷是S7鍵被按下
			           if(P17==0)            //如果檢測到接P1.7引腳的列線為低電平“0”
			             keyval=8;           //可判斷是S8鍵被按下
					
			           P1=0xfb;             //第三行置為低電平“0”(P1.2輸出低電平“0”)
				    if(P14==0)          //如果檢測到接P1.4引腳的列線為低電平“0”
			             keyval=9;          //可判斷是S9鍵被按下
			           if(P15==0)           //如果檢測到接P1.5引腳的列線為低電平“0”
			             keyval=10;         //可判斷是S10鍵被按下
			           if(P16==0)          //如果檢測到接P1.6引腳的列線為低電平“0”
			             keyval=11;        //可判斷是S11鍵被按下
			           if(P17==0)          //如果檢測到接P1.7引腳的列線為低電平“0”
			             keyval=12;        //可判斷是S12鍵被按下
			
			           P1=0xf7;             //第四行置為低電平“0”(P1.3輸出低電平“0”)
				    if(P14==0)          //如果檢測到接P1.4引腳的列線為低電平“0”
			             keyval=13;          //可判斷是S13鍵被按下
			           if(P15==0)           //如果檢測到接P1.5引腳的列線為低電平“0”
			             keyval=14;         //可判斷是S14鍵被按下
			           if(P16==0)          //如果檢測到接P1.6引腳的列線為低電平“0”
			             keyval=15;        //可判斷是S15鍵被按下
			           if(P17==0)          //如果檢測到接P1.7引腳的列線為低電平“0”
			             keyval=16;        //可判斷是S16鍵被按下
			     }
		}
     TR1=1;                    //開啟定時器T1
     TH1=(65536-500)/256;  //定時器T1的高8位賦初值
	  TL1=(65536-500)%256;  //定時器T1的高8位賦初值		 
 }

		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本韩国欧美在线| 99久久精品久久久久久清纯| 综合久久国产九一剧情麻豆| 国产午夜一区二区三区| 久久久久国产精品人| 久久精品一区蜜桃臀影院| 日韩精品一区二区在线| 精品久久人人做人人爽| 欧美videos大乳护士334| 久久午夜羞羞影院免费观看| www日韩大片| 国产精品污污网站在线观看| 自拍av一区二区三区| 一区二区三区在线看| 日韩国产欧美三级| 国内成人免费视频| 大尺度一区二区| 欧洲精品中文字幕| 91精选在线观看| 精品电影一区二区三区| 国产女人aaa级久久久级 | 久久综合九色欧美综合狠狠| 久久九九影视网| 亚洲国产一二三| 美腿丝袜在线亚洲一区| 国产白丝精品91爽爽久久| 91在线无精精品入口| 宅男噜噜噜66一区二区66| 欧美国产一区二区| 日欧美一区二区| 成人教育av在线| 在线成人免费观看| 欧美国产国产综合| 日韩av一级片| 99久久精品免费| 欧美精品一区男女天堂| 亚洲私人黄色宅男| 精品亚洲porn| 欧美日韩激情在线| 久久亚洲一区二区三区四区| 一区二区三区四区在线播放| 裸体健美xxxx欧美裸体表演| 91偷拍与自偷拍精品| 欧美刺激午夜性久久久久久久| 午夜精品久久久久久久久久| 另类小说综合欧美亚洲| 欧美网站一区二区| 1000部国产精品成人观看| 精品一区二区综合| 欧美美女网站色| 亚洲精品国产品国语在线app| 久久av资源网| 欧美精品一卡二卡| 亚洲一区av在线| 成人国产精品免费观看| 久久精品无码一区二区三区| 日本怡春院一区二区| 91网站最新网址| 国产精品国产三级国产| 国产乱码精品一区二区三区五月婷 | 日韩一区二区在线播放| 亚洲一区二区在线观看视频| 91免费观看国产| 亚洲欧洲性图库| 99久久精品国产导航| 国产欧美日韩另类一区| 国产麻豆精品theporn| 欧美成人aa大片| 久久99精品久久久久久国产越南 | 91视频免费观看| 国产精品视频一二三区| 国产91清纯白嫩初高中在线观看| 精品999在线播放| 精品一区二区三区免费观看| 在线电影欧美成精品| 婷婷中文字幕一区三区| 制服丝袜成人动漫| 裸体在线国模精品偷拍| 精品久久国产97色综合| 国产乱妇无码大片在线观看| 久久久高清一区二区三区| 国产精品亚洲专一区二区三区| 久久一区二区视频| 99视频精品全部免费在线| 亚洲欧美一区二区在线观看| 97久久超碰精品国产| 亚洲欧美视频在线观看| 欧美日韩视频在线观看一区二区三区 | 亚洲自拍另类综合| 欧美精品在欧美一区二区少妇| 日本最新不卡在线| 久久久无码精品亚洲日韩按摩| 成人av免费在线| 亚洲一区二区三区四区在线免费观看| 在线免费精品视频| 强制捆绑调教一区二区| 久久综合久久综合久久| 91亚洲精品久久久蜜桃网站 | 国产精品91xxx| 中文字幕一区二区三区av| 欧美性感一区二区三区| 国产尤物一区二区在线| 亚洲精品一二三区| 日韩欧美色电影| 99久免费精品视频在线观看| 午夜一区二区三区视频| 26uuu精品一区二区在线观看| 97久久超碰国产精品电影| 天堂一区二区在线免费观看| 国产亚洲综合在线| 欧亚洲嫩模精品一区三区| 国产美女娇喘av呻吟久久| 夜夜嗨av一区二区三区网页 | 欧美亚洲丝袜传媒另类| 黄页视频在线91| 亚洲成人一区二区| 国产精品天干天干在观线| 91精品欧美综合在线观看最新| 成人免费视频app| 美国毛片一区二区三区| 一区二区三区不卡视频| 国产区在线观看成人精品| 欧美精品三级日韩久久| 91美女福利视频| 国产精品一区专区| 美国三级日本三级久久99| 亚洲午夜精品在线| 自拍av一区二区三区| 国产亚洲视频系列| 日韩精品一区二区三区四区视频| 欧洲国产伦久久久久久久| 成人av电影在线观看| 国内精品免费在线观看| 日本91福利区| 亚洲3atv精品一区二区三区| 亚洲精品视频一区| 国产精品免费久久| 国产三级一区二区三区| 91精品国产免费久久综合| 欧美综合亚洲图片综合区| 99re在线精品| 99久久精品免费看| av不卡一区二区三区| 成人黄页毛片网站| 国产风韵犹存在线视精品| 久久se精品一区二区| 另类综合日韩欧美亚洲| 七七婷婷婷婷精品国产| 奇米色一区二区| 日本视频一区二区三区| 视频一区二区欧美| 麻豆精品视频在线观看视频| 日本免费在线视频不卡一不卡二| 日韩成人精品在线观看| 日韩不卡免费视频| 九九视频精品免费| 国产精品影视网| 成人av片在线观看| 色综合久久久久综合体| 欧美三级电影精品| 91精品国产色综合久久ai换脸| 欧美精品乱人伦久久久久久| 91精品免费在线观看| 精品国产污网站| 中文字幕巨乱亚洲| 一区二区三区精品在线| 午夜不卡在线视频| 精品一区二区在线观看| 福利电影一区二区| 欧洲另类一二三四区| 日韩一区二区三区视频在线| 精品国产青草久久久久福利| 日本一区二区三区久久久久久久久不| 国产精品视频一二| 夜夜精品视频一区二区| 久99久精品视频免费观看| 成人免费看黄yyy456| 欧美日韩免费一区二区三区| 精品粉嫩超白一线天av| 亚洲人午夜精品天堂一二香蕉| 亚洲与欧洲av电影| 国产麻豆精品95视频| 色天天综合久久久久综合片| 欧美成人伊人久久综合网| 国产精品视频线看| 日本视频在线一区| 97精品久久久午夜一区二区三区| 欧美嫩在线观看| 欧美国产精品中文字幕| 午夜电影一区二区三区| 懂色中文一区二区在线播放| 欧美美女黄视频| 国产人伦精品一区二区| 日韩黄色免费网站| 91丝袜美腿高跟国产极品老师 | 国产亚洲精品aa午夜观看| 婷婷久久综合九色综合绿巨人 | 五月婷婷激情综合| 成人av网站免费| 26uuu亚洲综合色欧美|