51单片机蜂鸣器程序是什么?
}k=sszymmh[i]+7sszymmh[i+1]-1;51单片机蜂鸣器
51单片机蜂鸣器音乐代码 51单片机蜂鸣器音乐代码欢乐颂
开关C语言程序:
51单片机,编写延时程序,控制蜂鸣器发声:
很简单的
#include
#includ}elsee
#define uint unsigned int
#define uchar unsigned char
it buzzer=P2^0;
uchar temp[4]={4,0,2,0};
uchar n=1;
{unsigned char a,b;
for(b=19;b>0;b--)
fMOV T0H,Aor(a=5;a>0;a--);
}void main(void)
{uchar i=0,n0=0;
TMOD=0x01;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
{n0=n;
if(n0!=0)
{if(++i==temp[n])i=1;
if((i==1)|(i==temp[n]/2))buzzer=~buzzer;
delay250uS();
}void Timer0Interrupt(void) interrupt 1
{static uchar temp1=0;
TL0=(65536-50000)%256;
if(++temp1==10)
{if(++n==4)n=0;
蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,
关于单片机驱动蜂鸣器发出滴滴的声音的程序怎么写
while(1)#define uchar unsigned char
}}#define uint unsigned int
例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,void Alarm(uchar t)
{uchari,j;
for(i=0;i<200;i++)
{SPK=~SPK;
for(j=0;j voidmain() {SPK=0; {if(K1==1) Alarm(120); } 《星月神话》 TAB#include DB 34H,22H,12H,24H,12H,0A2H,14H,0A2H,92H,88H,94H,12H,0A2H,0A4H,82H,0D2H,0DCH DB 12H,22H,34H,22H,12H,24H,12H,0A2H,14H,0A2H,92H,88H DB 94H,32H,0A2H,0A4H,12H,22H,1DH,96H,12H,0A4H,12H,22H,36H,52H,38H DB 96H,12H,0A4H,12H,22H,1AH,12H,22H,34H,22H,12H,24H,12H,0A2H,14H,0A2H,92H,86H DB 94H,12H,0A2H,0A4H,12H,22H,36H,22H,24H,12H,22H,34H,22H,12H,24H,12H,0A2H,14H,0A2H,92H,86H DB 92H,0A2H,14H,32H,22H,24H,52H,32H,3CH,32H,52H,66H,62H,52H,22H,22H,25H,32H,12H,12H,92H,94H DB 32H,22H,14H,32H,22H,24H,32H,0A2H,9CH DB 00 给你大概说个原理吧,用两个定时器,一个来产生某个频率的方波,一个来定时产生这个频率的方波的持续时间。 音频上的每个调都有自己的频率的,这个你可以自己去网上查查。 每个调的持续时间都不一样,这个也要去控制,否则你听到的都是一样时长的调子,听起来就不像是歌曲了。 蜂鸣器的发声频率是固定的,不能改变声调。要播放歌曲的话用小喇叭,通过改变while(1)脉冲的频率可以控制小喇叭的0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,声调。 专门有卖音乐芯片的吧,非常非常非常便宜的!用单片机可以给芯片供电控制,如果仅需要单一播放音乐的功能,用单片机浪费了! #define uchar unsigned char #define uint unsigned int void Alarm(uchar t) {uchari,j; for(i=0;i<200;i++) {SPK=~SPK; for(j=0;j voidmain() {SPK=0; {if(K1==1) Alarm(120); } 一、总体原理: 乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号, 经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。 1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),it BEEP=P3^7;然后将此周期除以2,即为半周 期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O 反相,然 后重复计时此半周期的时间再对I/O 反相,就可以在I/O 脚上得到此频率的脉冲。 2)利用8051 的内部定时器使其工INC DPTR作在计数器模式MODE1 下,改变计数值TH0 及TL0 以 产生不同频率的方法如下: 计数脉冲值与频率的关系公式如下: N=Fi/2/Fr (N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率) 三、其计数值的求法如下: T=65536-N=65536-Fi/2/Fr 计算举例: 的计数值。 T=65536-N=65536-Fi/2/Fr=6/2/Fr=65536-/Fr 中音DO 的T=65536-/523=64580 高音DO 的T=65536-/1047=65059 参考程序: #define uchar unsigned char #define uint unsigned int // 生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; // 生日快乐歌节拍表,节拍决定每个音符的演奏长短 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; // 延时 void void delay250uS(void)//延时250usDelayMS(uint x) {uchar t; while(x--) for(t=0;t<120;t++); }// 播放函数 void PlayMusic() {uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j {BEEP=~BEEP; //SONG_TONE延时表决定了每个音符的频率 for(k=0;k }DelayMS(10); i++; void main() {BEEP=0; {PlayMusic(); //播放生日快乐 DelayMS(500); //播放完后暂停一段时间 一、总体原理: 乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号, 经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。 1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率)在每计数956 次时就将I/O 反接,就可得到中音DO(532Hz)。,然后将此周期除以2,即为半周 期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O 反相,然 后重复计时此半周期的时间再对I/O 反相,就可以在I/O 脚上得到此频率的脉冲。 2)利用8051 的内部定时器使其工作在计数器模式MODE1 下,改变计数值TH0 及TL0 以 产生不同频率的方法如下: 计数脉冲值与频率的关系公式如下: N=Fi/2/Fr (N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率) 三、其计数值的求法如下: T=65536-N=65536-Fi/2/Fr 计算举例: 的计数值。 T=65536-N=65536-Fi/2/Fr=6/2/Fr=65536-/Fr 中音DO 的T=65536-/523=64580 高音DO 的T=65536-/1047=65059 参考程序: #define uchar unsigned char #define uint unsigned int // 生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; // 生日快乐歌节拍表,节拍决定每个音符的演奏长短 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; // 延时 void DelayMS(uint x) {uchar t; while(x--) for(t=0;t<120;t++); }// 播放函数 void PlayMusic() {uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j {BEEP=~BEEP; //SONG_TONE延时表决定了每个音符的频率 for(k=0;k }DelayMS(10); i++; void main() {BEEP=0; {PlayMusic(); //播放生日快乐 DelayMS(500); //播放完后暂停一段时间 51单片机蜂鸣器 开关C语言程序: 51单片机,编写延时程序,控制蜂鸣器发声: 很简单的 #include #include #define uint unsigned int #define uchar unsigned char it buzzer=P2^0; uchar temp[4]={4,0,2,0}; uchar n=1; {unsigned char a,b; for(b=19;b>0;b--) for(a=5;a>0;a--); }void main(void) {uchar i=0,n0=0; TMOD=0x01; TL0=(65536-50000)%256; ET0=1; EA=1; TR0=1; {n0=n; if(n0!=0) {if(++i==temp[n])i=1; if((i==1)|(i==temp[n]/2))buzzer=~buzzer; delay250uS(); }void Timer0Interrupt(void) interrupt 1 {static uchar temp1=0; TL0=(65536-50000)%256; if(++temp1==10) {if(++n==4)n=0; 蜂鸣器经常用于ADD A,#10电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行, T0H EQU 30H T0L EQU 31H ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV SP,#5FH MOV TMOD,#01H SETB ET0 SETB EA LOOP: MOV DPTR,#FREQ MOV A,P2 ;控制高中低音区 MOV R1,#0 ANL A,#03H JB ACC.0,LOOP01 MOV R1,#14 SJMP LOOP0 LOOP01: JB ACC.1,LOOP0 MOV R1,#28 LOOP0: JB P0.0,LOOP1 ;控制音频1234567 LJ}}MP LOOP LOOP1: JB P0.1,LOOP2 ADD A,#2 ADD A,#2 LJMP LOOP JB P0.2,LOOP3 ADD A,#4 ADD A,#4 LJMP LOOP LOOP3: JB P0.3,LOOP4 ADD A,#6 ADD A,#6 LJMP LOOP LOOP4: JB P0.4,LOOP5 ADD A,#8 ADD A,#8 LJMP LOOP LOOP5: JB P0.5,LOOP6 LJMP LOOP LOOP6: JB P0.6,LOOP7 ADD A,#12 ADD A,#12 LJMP LOOP LOOP7: LJMP LOOP ;----------------------------- T0ISR: MOV TH0,T0H MOV TL0,T0L SETB TR0 CPL P3.0 RETI ;----------------------------- FREQ: DB 0F2H,03DH ;低音1 DB 0F3H,0BDH ;低音2 DB 0F5H,0B1H ;低音4 DB 0F6H,0D0H ;低音5 DB 0F7H,0D1H ;低音6 DB 0F8H,0B5H ;低音7 DB 0F9H,01EH ;中音1 DB 0F9H,0DEH ;中音2 DB 0FAH,08AH ;中音3 DB 0FAH,0D8H ;中音4 DB 0FBH,068H ;中音5 DB 0FBH,0E8H ;中音6 DB 0FCH,05AH ;中音7 DB 0FCH,08FH ;高音1 DB 0FCH,0EFH ;高音2 DB 0FDH,045H ;高音3 DB 0FDH,06CH ;高音4 DB 0FDH,0B4H ;高音5 DB 0FDH,0F4H ;高音6 DB 0FEH,029H ;高音7 ;----------------------------- END 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。能提供几首单片机的歌曲代码?用蜂鸣器唱的
TH0=(65536-50000)/256;51单片机的蜂鸣器来控制音乐,音乐数组用的是十六进制数,请问是怎么个编法?
while(1)如何使用51单片机的蜂鸣器来播放某些歌曲?
INC DPTR关于单片机驱动蜂鸣器发出滴滴的声音的程序怎么写
低音DO 的T=65it P2^0=KEY;536-/262=63627如何编写51单片机音乐程序
如何编写51单片机音乐程序
{TR0 = 0;51单片机蜂鸣器程序是什么?
{Alarm(90);51单片机用按键控制蜂鸣器发出do re mi fa...的声音,
//发声函数,注意这里是用扬声器,不能用普通的蜂鸣器