❶ 51單片機蜂鳴器音樂
你需要把青花瓷的譜子變成數字(定時器的時間)
❷ 51單片機蜂鳴器程序是什麼
51單片機蜂鳴器程序為:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep=~beep;
delay(1000);//控制音調頻率
beep=~beep;/控制聲音大小
delay(10);
}
}
(2)51單片機蜂鳴器擴展閱讀:
BUZZER蜂鳴器的分類:
1、按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器)。
2、按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器。
3、按封裝的不同,可分為:DIP BUZZER(插針蜂鳴器)和SMD BUZZER(貼片式蜂鳴器)。
4、按電流的不同,可分為:直流蜂鳴器和交流蜂鳴器,其中,以直流最為常見壓電式蜂鳴器,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。
電磁式蜂鳴器,主要是利用通電導體會產生磁場的特性,用一個固定的永久磁鐵與通電導體產生磁力推動固定在線圈上的鼓膜。
由於兩種蜂鳴器發音原理不同,壓電式結構簡單耐用但音調單一音色差,適用於報警器等設備。而電磁式由於音色好,所以多用於語音、音樂等設備。
❸ 51單片機 設計一程序 蜂鳴器
#include<reg51.h>
#define uchar unsigned char
sbit fmq=P1^0;
key=P1^1;
void t0isr() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
fmq=~fmq;
}
main()
{
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;
EA=1;
while(1)
{
if(key==1)
{
TR0=1;
while(key==1);
TR0=0;
}
}
}
❹ 求51單片機蜂鳴器程序
#include<reg51.h>
sbit buzzer = P1^0 ;聲明區
void delay(int) ;
void pulse_BZ(int,int,int);聲明函數void main(void)
{
while(1)
{
pulse_BZ(500,1,1); 調用發聲
delay(1000); 延時1000 X 0.5ms
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
}
}void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<60;j++);
}void pulse_BZ(int count;int TH;int TL)
{
int i;
for(i=o;i<count;i++) //循環count次,時間count x 1ms
{
buzzer=1; //此程序段產生1HZ 信號
delay(TH);
buzzer=0;
delay(TL);
}
}
❺ 51單片機如何加一個蜂鳴器
這個圖接有源蜂鳴器和無源蜂鳴器都行,接有源蜂鳴器時BEEP端給低電平就會響了,接無源蜂鳴器時要給一定頻率的高低電平才會響。
❻ STC51單片機C語言開啟蜂鳴器
#include<reg52.h>
sbitbeep=P0^4;
voidmain()
{
beep=0;
while(1);
}
試試這個怎樣,單片機在執行完程序之後會回到初始狀態,然後再重新執行程序,所以蜂鳴器就會反復的開和關,聽起來聲音會小很多;加個while(1)死循環,讓程序一直保持在beep=0的狀態。
❼ 51單片機蜂鳴器一直響怎麼辦
你往單片機里寫入一個程序,控制這個引腳分別為高低電平各1S鍾,看看是不是還一直響,如果還一直響,那有可能是蜂鳴器的和單片機相連的引腳被短路到電源上或者地上了
❽ 51單片機蜂鳴器接法
對於51單片機,最簡單且常見的連接方法是I/O口輸出經4.7k電阻連接PNP三極體的基極,三極體發射機接+5V電源端,三極體集電極連接蜂鳴器的正極,蜂鳴器負極接GND。
❾ 51單片機蜂鳴器程序
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharpwm,ctl=5;
sbitfmq=P1^0;
bitflag;
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
voidt0isr()interrupt1
{
pwm++;
if(pwm<=ctl)P0=0xff;
elseP0=0x00;
if(pwm==100)
{
pwm=0;
ctl++;
}
if(ctl==100)flag=1;
}
main()
{
uchari,led;
TMOD=0x02;
TH0=236;
TL0=236;
ET0=1;
EA=1;
while(1)
{
led=0xfe;
for(i=0;i<8;i++)
{
P0=led;
led=led<<1;
delay(200);
}
led=0xff;
delay(200);
led=0x7f;
for(i=0;i<8;i++)
{
P0=led;
led=led>>1;
delay(200);
}
TR0=1;
flag=1;
while(flag);
TR0=0;
}
}