| 蜂鳴器播放6種聲音 //6個(gè)按鍵播放聲音 #include <reg51.h> #define uchar unsigned char //byte #define uint unsigned int //word sbit bu6=P3^7; //定義一個(gè)按鍵,一端接地,一端接端口 sbit bu5=P3^6; //定義一個(gè)按鍵,一端接地,一端接端口 sbit bu4=P3^5; //定義一個(gè)按鍵,一端接地,一端接端口 sbit bu3=P3^4; //定義一個(gè)按鍵,一端接地,一端接端口 sbit bu2=P3^3; //定義一個(gè)按鍵,一端接地,一端接端口 sbit bu1=P3^2; //定義一個(gè)按鍵,一端接地,一端接端口 sbit led1=P0^0; sbit led2=P0^1; sbit buzzer=P2^3; //蜂鳴器 void delay(int); void pulse_BZ(int,int,int); void main(void) { while(1) { int i; bu6=1; //初始化 按鍵高電平 bu5=1; //初始化 bu4=1; //初始化 bu3=1; //初始化 bu2=1; //初始化 bu1=1; //初始化 while(1) //當(dāng)一個(gè)按鍵被按下,為0,跳出循環(huán) { if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1) for(i=0;i<=1000;i++); //防抖動(dòng) if(!bu6||!bu5||!bu4||!bu3||!bu2||!bu1) break; } if(!bu6) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(10,10,10); } if(!bu5) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(50,50,50); } if(!bu4) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(100,10,100); } if(!bu3) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(100,100,10); } if(!bu2) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(100,30,70); } if(!bu1) //蜂鳴器發(fā)音。如果有歌譜,可以寫(xiě)歌曲函數(shù) { pulse_BZ(100,70,30); } } } /******************************************************/ /* Buzzer模塊 */ /*聲明:sbit buzzer=P2^3; void pulse_BZ(int,int,int);*/ /******************************************************/ void pulse_BZ(int count, int TH,int TL) { int i; for(i=0;i<count;i++) { buzzer=1; delay(TH); //延時(shí)TH個(gè)0.5ms buzzer=0; delay(TL); //延時(shí)TL個(gè)0.5ms } } /**************************************************/ /* 延時(shí)模塊 聲明:void delay(int); */ /**************************************************/ void delay(int x) //如 delay(1000),延時(shí)1s { int i,j; for(i=0;i<x;i++) //延時(shí)x個(gè)1ms for(j=1;j<=125;j++); //延時(shí)約1ms |
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |