80S52:无源蜂鸣器模块
功能:嗡嗡叫发声
这个无源蜂鸣器的操作非常水所以我也水过去好了
先上电路连接图(Proteus仿真):

从图中可见我们能操作的也就P3.3一个端口,只要不停地输出0,1,0,1就能让蜂鸣器振动发声,那么如何发出美妙的声音呢,只要在0和1的变换之间插入不同长度的延时就能做到音阶的变化,本人不懂乐理,更搞不清楚具体要延时几微秒,但可以问度娘手动滑稽。
然后看到了大佬们惊为天人的作品:
基于T0定时/计数器的最炫民族风。。。
#include<reg52.h>
sbit BUZZER = P3^3;
#define uchar unsigned char
#define uint unsigned int
#define REST 36
#define A 0
#define AB 1
#define B 2
#define BC 3
#define C 4
#define D 5
#define DE 6
#define E 7
#define EF 8
#define F 9
#define FG 10
#define G 11
#define L 12
#define LM 13
#define M 14
#define MN 15
#define N 16
#define O 17
#define OP 18
#define P 19
#define PQ 20
#define Q 21
#define QR 22
#define R 23
#define S 24
#define SU 25
#define U 26
#define UV 27
#define V 28
#define W 29
#define WX 30
#define X 31
#define XY 32
#define Y 33
#define YZ 34
#define Z 35
uchar code m_note[][2] = {
{
248,136},{
248,243},{
249,88},{
249,184},{
250,18},{
250,103},{
250,184},{
251,3},{
251,75},
{
251,143},{
251,206},{
252,11},{
252,67},{
252,121},{
252,172},{
252,219},{
253,9},{
253,51},
{
253,91},{
253,129},{
253,165},{
253,199},{
253,231},{
254,5},{
254,33},{
254,60},{
254,85},
{
254,109},{
254,132},{
254,153},{
254,173},{
254,192},{
254,210},{
254,227},{
254,243},{
255,2},
{
0,0},
};
uchar code display[][2] = {
{
N,8},{
F,4},{
F,4},{
L,8},{
N,8},{
M,4},{
M,2},{
N,2},{
M,4},{
L,4},
{
M,4},{
L,4},{
F,8},{
N,8},{
F,4},{
F,4},{
L,8},{
N,8},
{
P,4},{
M,2},{
N,2},{
M,4},{
L,4},{
M,4},{
L,4},{
G,4},{
E,4},
{
N,8},{
F,4},{
F,4},{
L,8},{
N,8},{
M,

本文介绍了一种使用80S52单片机控制无源蜂鸣器播放音乐的方法,通过定时器和精确的延时控制,实现了《最炫民族风》等曲目的演奏。文章提供了详细的代码示例,展示了如何利用单片机的P3.3端口输出特定频率的信号,以产生不同音阶的声音。
最低0.47元/天 解锁文章
2315

被折叠的 条评论
为什么被折叠?



