1. 首页 > 数码 >

51单片机蜂鸣器音乐代码 51单片机蜂鸣器音乐代码欢乐颂

51单片机蜂鸣器程序是什么?

}k=sszymmh[i]+7sszymmh[i+1]-1;

51单片机蜂鸣器

51单片机蜂鸣器音乐代码 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);

}

能提供几首单片机的歌曲代码?用蜂鸣器唱的

TH0=(65536-50000)/256;

《星月神话》

6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,

TAB#includeLE:

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

51单片机的蜂鸣器来控制音乐,音乐数组用的是十六进制数,请问是怎么个编法?

while(1)

给你大概说个原理吧,用两个定时器,一个来产生某个频率的方波,一个来定时产生这个频率的方波的持续时间。

it SPK=P1^DB 12H,82H,94H,32H,12H,0A4H,12H,22H,1CH,32H,52H,66H,62H,54H,22H,52H,34H,14H,94H0;

音频上的每个调都有自己的频率的,这个你可以自己去网上查查。

每个调的持续时间都不一样,这个也要去控制,否则你听到的都是一样时长的调子,听起来就不像是歌曲了。

如何使用51单片机的蜂鸣器来播放某些歌曲?

INC DPTR

蜂鸣器的发声频率是固定的,不能改变声调。要播放歌曲的话用小喇叭,通过改变while(1)脉冲的频率可以控制小喇叭的0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,声调。

专门有卖音乐芯片的吧,非常非常非常便宜的!用单片机可以给芯片供电控制,如果仅需要单一播放音乐的功能,用单片机浪费了!

关于单片机驱动蜂鸣器发出滴滴的声音的程序怎么写

低音DO 的T=65it P2^0=KEY;536-/262=63627

#define uchar unsigned char

MOVC A,@A+DPTR

#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);

}

如何编写51单片机音乐程序

一、总体原理:

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,

经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

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); //播放完后暂停一段时间

如何编写51单片机音乐程序

{TR0 = 0;

一、总体原理:

MOV T0H,A

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,

经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

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单片机蜂鸣器程序是什么?

{Alarm(90);

51单片机蜂鸣器

MOVC A,@A+DPTR

开关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电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,

51单片机用按键控制蜂鸣器发出do re mi fa...的声音,

//发声函数,注意这里是用扬声器,不能用普通的蜂鸣器

T0H EQU 30H

it K1=P1^7;

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 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息