【創新!】蜂鳴器,與感應電子琴[定時、中斷、I/O高阻工作類型]

來源:互聯網
上載者:User

標籤:【創新!】蜂鳴器   與感應電子琴[定時、中斷、i/o高阻工作類型]   

2015年10月2日


1、驅動有源/無源蜂鳴器,發出不同頻率的聲音

/*工程建立MCU選取,Atmel 89C55單片機:STC12C4052AD晶振:12M功能:驅動無源蜂鳴器串連說明:BEEP正極接VCC,負極接到 MCU的P3^7*/#include <STC12C2052AD.H>sbit BEEP = P3^7;void DELAY_MS (unsigned int a) {    unsigned int i;    while ( --a != 0 )  {        for (i=0;i<=600;i++);    }}void main (void) {unsigned int i; BEEP=1;while (1){for(i=0;i<100;i++){  //調整發音頻率BEEP=1;DELAY_MS(2);BEEP=0;DELAY_MS(2);}for(i=0;i<100;i++){  //調整發音頻率BEEP=1;DELAY_MS(3);BEEP=0;DELAY_MS(3);}for(i=0;i<100;i++){  //調整發音頻率BEEP=1;DELAY_MS(4);BEEP=0;DELAY_MS(4);}for(i=0;i<100;i++){  //調整發音頻率BEEP=1;DELAY_MS(5);BEEP=0;DELAY_MS(5);}}}







2、用定時器與中斷的方法製作8鍵電子琴C程式[VCC觸發]

/*工程建立MCU選取,Atmel 89C55單片機:STC12C4052AD晶振:12M功能:用定時器與中斷的方法製作8鍵電子琴C程式串連說明:BEEP正極接VCC,負極接到 MCU的11腳P3 ^ 7,VCC觸12腳到19腳BEEP響*/#include <STC12C2052AD.H> //STC12Cx052或STC12Cx052AD系列單片機標頭檔 sbit SPEAKER  = P3^7;#define KEY  P1 unsigned char MUSIC; unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,//低音3開始 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178}; void main(void){ TMOD=0x01; //ET0=1;     //EA=1;      //開啟總中斷KEY = 0x00;while(1){ if(KEY != 0x00){switch (KEY){//顯示的列位置case 0x01://MUSIC = 7;break;//case 0x02://MUSIC = 6;break;//case 0x04://MUSIC = 5;break;//case 0x08://MUSIC = 4;break;//case 0x10://MUSIC = 3;break;//case 0x20://MUSIC = 2;break;//case 0x40://MUSIC = 1;break;//case 0x80://MUSIC = 0;break;//default:MUSIC = 0xff;break;//}if(MUSIC != 0xff){    STH0=tab[MUSIC]/256;     STL0=tab[MUSIC]%256;     TR0=1;}}else{     SPEAKER = 1;TR0=0;}     } } void t0(void) interrupt 1 using 0{   TH0=STH0;   TL0=STL0;   SPEAKER=~SPEAKER; }





3、用定時器與中斷的方法製作8鍵電子琴C程式[GND觸發]

/*工程建立MCU選取,Atmel 89C55單片機:STC12C4052AD晶振:12M功能:用定時器與中斷的方法製作8鍵電子琴C程式串連說明:BEEP正極接VCC,負極接到 MCU的11腳P3 ^ 7,GND觸12腳到19腳BEEP響*/#include <STC12C2052AD.H> //STC12Cx052或STC12Cx052AD系列單片機標頭檔 sbit SPEAKER  = P3^7;#define KEY  P1 unsigned char MUSIC; unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,//低音3開始 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178}; void main(void){ TMOD=0x01; //ET0=1;     //EA=1;      //開啟總中斷while(1){ if(KEY != 0xff){switch (~KEY){//顯示的列位置case 0x01://MUSIC = 7;break;//case 0x02://MUSIC = 6;break;//case 0x04://MUSIC = 5;break;//case 0x08://MUSIC = 4;break;//case 0x10://MUSIC = 3;break;//case 0x20://MUSIC = 2;break;//case 0x40://MUSIC = 1;break;//case 0x80://MUSIC = 0;break;//default:MUSIC = 0xff;break;//}if(MUSIC != 0xff){    STH0=tab[MUSIC]/256;     STL0=tab[MUSIC]%256;     TR0=1;}}else{     SPEAKER = 1;TR0=0;}     } } void t0(void) interrupt 1 using 0{   TH0=STH0;   TL0=STL0;   SPEAKER=~SPEAKER; }





4、用定時器與中斷的方法製作[隔空感應]8鍵電子琴C程式

/*工程建立MCU選取,Atmel 89C55單片機:STC12C4052AD晶振:12M功能:用定時器與中斷的方法製作8鍵電子琴C程式串連說明:BEEP正極接VCC,負極接到 MCU的11腳P3 ^ 7,電腦USB供電隔空感應12腳到19腳,BEEP響*/#include <STC12C2052AD.H> //STC12Cx052或STC12Cx052AD系列單片機標頭檔 sbit SPEAKER  = P3^7;#define KEY  P1 unsigned char MUSIC; unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,//低音3開始 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178}; void main(void){ TMOD=0x01; //ET0=1;     //EA=1;      //開啟總中斷  P1M0 = 0xff; P1M1 = 0x00;   //用電腦USB供電就是隔空感應12腳到19腳,BEEP響,前提是KEY = 0x00;如果KEY = 0xff;啟用高阻,將全是噪音!KEY = 0x00;    //用移動電源供電就是觸摸12腳到19腳BEEP響,前提是KEY = 0x00;如果KEY = 0xff;啟用高阻,將全是噪音!while(1){ if(KEY != 0x00){switch (KEY){//顯示的列位置case 0x01://MUSIC = 7;break;//case 0x02://MUSIC = 6;break;//case 0x04://MUSIC = 5;break;//case 0x08://MUSIC = 4;break;//case 0x10://MUSIC = 3;break;//case 0x20://MUSIC = 2;break;//case 0x40://MUSIC = 1;break;//case 0x80://MUSIC = 0;break;//default:MUSIC = 0xff;break;//}if(MUSIC != 0xff){    STH0=tab[MUSIC]/256;     STL0=tab[MUSIC]%256;     TR0=1;}}else{     SPEAKER = 1;TR0=0;}     } } void t0(void) interrupt 1 using 0{   TH0=STH0;   TL0=STL0;   SPEAKER=~SPEAKER; }



關於蜂鳴器,告一段落。



本文出自 “生命不息,折騰不止。” 部落格,謝絕轉載!

【創新!】蜂鳴器,與感應電子琴[定時、中斷、I/O高阻工作類型]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.