亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91福利国产精品| 久久先锋资源网| 欧美一区二区三区在线视频| 精品国内片67194| 亚洲另类在线制服丝袜| 免费在线观看精品| 日本福利一区二区| xfplay精品久久| 日日摸夜夜添夜夜添亚洲女人| 国产精品一区二区免费不卡| 在线观看国产日韩| 国产精品卡一卡二卡三| 另类小说欧美激情| 在线视频你懂得一区二区三区| 欧美精品一区二区精品网| 性做久久久久久| 99国产精品国产精品久久| 久久夜色精品国产欧美乱极品| 亚洲精品久久久久久国产精华液| 国产乱码精品一品二品| 91精品国产欧美日韩| 一区二区三区在线观看欧美| 成人综合在线视频| 精品国产sm最大网站| 日韩成人伦理电影在线观看| 91精品办公室少妇高潮对白| 国产精品天干天干在观线| 国内成人精品2018免费看| 欧美一区二区三区视频免费 | 丝袜亚洲另类丝袜在线| 成人免费黄色大片| 亚洲一二三四区不卡| 成人18精品视频| 中文字幕不卡的av| 国产黄色成人av| 久久免费视频一区| 国模一区二区三区白浆| 亚洲精品在线电影| 久久99久久99小草精品免视看| 欧美日韩国产综合草草| 亚洲成a人片在线观看中文| 欧美亚洲国产一卡| 亚洲午夜av在线| 欧美日韩午夜在线视频| 亚洲一区在线视频| 欧美日韩国产在线播放网站| 亚洲香肠在线观看| 欧美日韩高清不卡| 蜜桃视频在线一区| 精品国产一区久久| 国产一区二区免费在线| 日本一区二区视频在线| www.激情成人| 有坂深雪av一区二区精品| 色八戒一区二区三区| 亚洲国产色一区| 91麻豆精品国产91久久久久久久久 | 制服丝袜av成人在线看| 亚洲第一搞黄网站| 91精品国产综合久久福利软件| 青青草97国产精品免费观看 | 久久国产精品72免费观看| 精品福利二区三区| 成人午夜碰碰视频| 一区二区三区色| 4hu四虎永久在线影院成人| 麻豆精品久久久| 久久精品日产第一区二区三区高清版 | 日韩午夜精品视频| 国产精品一二三区| 亚洲精品成人悠悠色影视| 欧美日韩aaaaaa| 国产一区二区三区| 亚洲精品国产a| 精品日韩成人av| 99久久久久久99| 亚欧色一区w666天堂| 久久久久国产精品人| 色婷婷综合久久| 麻豆91精品91久久久的内涵| 国产精品久久久久aaaa| 欧美二区在线观看| 成人性色生活片免费看爆迷你毛片| 亚洲精选在线视频| 精品捆绑美女sm三区| 91色在线porny| 久久99精品久久只有精品| 亚洲色图视频网| 欧美xxxx老人做受| 欧美性生交片4| 成人avav在线| 韩国精品久久久| 午夜精品一区二区三区电影天堂| 久久久91精品国产一区二区三区| 欧美日韩在线播放三区四区| 国产a区久久久| 久久99精品网久久| 亚洲成av人片一区二区三区| 久久99久久99| 亚洲国产va精品久久久不卡综合| 国产日产欧美精品一区二区三区| 91 com成人网| 在线观看国产日韩| 成人精品国产福利| 另类小说色综合网站| 亚洲福利视频导航| 亚洲人成网站精品片在线观看 | 91精品国产综合久久福利| 色综合久久久久综合| 国产精品一区二区男女羞羞无遮挡| 图片区日韩欧美亚洲| 一区二区免费看| 日韩久久一区二区| 国产精品视频一区二区三区不卡| 精品处破学生在线二十三| 欧美精品三级日韩久久| 在线观看一区不卡| 99re热这里只有精品视频| 懂色一区二区三区免费观看| 国产在线看一区| 韩国女主播一区| 国产乱码字幕精品高清av | 精品国免费一区二区三区| 91精品国产一区二区人妖| 欧美精品tushy高清| 欧美日韩一区二区三区免费看| 91啪在线观看| 97se亚洲国产综合自在线不卡| 成人精品视频一区二区三区尤物| 国产成人av影院| 国产剧情在线观看一区二区| 国产精品原创巨作av| 国产成人午夜99999| 成人性生交大片免费看中文| 不卡的av网站| 色婷婷av一区二区三区大白胸| 一本到高清视频免费精品| 在线免费视频一区二区| 欧美性欧美巨大黑白大战| 538在线一区二区精品国产| 欧美一区二区黄| 久久久久亚洲蜜桃| 国产精品美女久久久久久2018| 粉嫩在线一区二区三区视频| 国产成人在线免费| 99久久99久久久精品齐齐| 欧美最猛黑人xxxxx猛交| 欧美日韩大陆在线| 精品对白一区国产伦| 国产精品久久久久天堂| 亚洲激情在线激情| 日本亚洲天堂网| 国产成人久久精品77777最新版本| 国产成人精品亚洲午夜麻豆| 色88888久久久久久影院按摩| 欧美日免费三级在线| 精品1区2区在线观看| 亚洲欧美乱综合| 蜜臀99久久精品久久久久久软件| 国产精品18久久久久| 欧美在线高清视频| 欧美tickling挠脚心丨vk| 日本一区二区三区国色天香| 亚洲国产成人av好男人在线观看| 久久国内精品自在自线400部| 成人app在线| 日韩一区二区视频| 成人欧美一区二区三区小说| 天天色天天操综合| 99视频精品全部免费在线| 91麻豆精品久久久久蜜臀| 国产精品污网站| 蜜臀av在线播放一区二区三区| 99re亚洲国产精品| 日韩精品在线一区| 亚洲第一综合色| www.在线成人| 久久综合久久久久88| 亚洲大片免费看| 91色|porny| 中文字幕免费一区| 捆绑调教美女网站视频一区| 91精品福利视频| 中文字幕一区二区三区av| 久久成人久久鬼色| 欧美日韩精品欧美日韩精品一| 国产精品伦一区| 国产一区二区导航在线播放| 欧美福利电影网| 一区二区不卡在线播放| 成人av免费在线播放| 亚洲国产精品精华液ab| 极品少妇一区二区三区精品视频| 欧美日韩国产天堂| 一区二区三区四区蜜桃| 99re热这里只有精品视频| 国产视频在线观看一区二区三区| 久久精品国产久精国产爱| 91精品国产乱码| 天天综合日日夜夜精品|