单片机控制蜂鸣器发声的基本原理和方法:只需对驱动口输出驱动电平并通过放大电路放大驱动电流就能使蜂鸣器发出声音。改变引脚的频率,就可以调整蜂鸣器的音调,产生各种不同的声音。
同时改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小
下面给出代码
main.c
(这里注意要把数组类型从char改为int要不然字符数组存不下,音乐不会完整播放),更改SPEED可改变曲子的播放速度。
#include <REGX52.H>
#include "Delay.h"
#include "Timer0.h"
//蜂鸣器端口定义
sbit Buzzer=P2^5;
//播放速度,值为四分音符的时长(ms)
#define SPEED 700
//音符与索引对应表,P:休止符,L:低音,M:中音,H:高音,下划线:升半音符号#
#define P 0
#define L1 1
#define L1_ 2
#define L2 3
#define L2_ 4
#define L3 5
#define L4 6
#define L4_ 7
#define L5 8
#define L5_ 9
#define L6 10
#define L6_ 11
#define L7 12
#define M1 13
#define M1_ 14
#define M2 15
#define M2_ 16
#define M3 17
#define M4 18
#define M4_ 19
#define M