资源简介
这个是在stm32f103单片机上使用蜂鸣器播放音乐的程序,曲调c调,主要做了低中高三个音区共36个音调(每个音区分别有1,1#,2,2#,3,4,4#,5,5#,6,6#,7十二个音调)。资源内有上位机用于产生音乐代码(对照曲目输入音符和节拍即可),另外我还放了几个示例音乐代码用于调试。单片机端程序主要有两部分,一部分是用于解码音乐代码的音乐程序(music),另外一部分是用于配置定时器和PWM频率的硬件配置文件(timer)。配置上使用的是TIM1用于产生PWM信号,PB8输出PWM信号(接蜂鸣器)。资源里面有一个简单的使用说明,
资源列表
1.单片机程序:music.c music.h timer.h timer.c
2.音乐代码上位机:51music.exe
3.示例音乐
4.使用说明

代码片段和文件信息
#include “music.h“
#include “usart.h“
#include “delay.h“
#include “timer.h“
#include “drive.h“
#include “FreeRTOS.h“
#include “task.h“
#include “queue.h“
#include “list.h“
#include “semphr.h“
unsigned char musicflag=0;
const short T[49]={0 //const表示存放在rom中
262277294311330349370392415440466494 //低音区 11222334455566677 共12个音调
523554578622659698740784831880932988 //中音区
104611091175124513181397148015681661176018651976 //高音区
};
const unsigned char music[][2]={{04}
{04}{244}{244}{214}{194}{214}{148}{194}{214}{244}{214}{1916}{04}{244}{244}{214}{194}{214}{128}{194}{214}{244}{194}{1716}{04}{174}{194}{214}
{244}{264}{244}{224}{244}{214}{214}{194}{1916}{04}
{174}{194}{174}{174}{194}{174}{194}{194}{218}{244}{214}{2112}{04}{244}{244}{214}{194}{214}{148}{194}{214}{244}{214}{1916}{04}{244}{244}{214}
{194}{214}{128}{194}{214}{244}{194}{1716}{04}{174}{194}{214}{244}{264}{244}{224}{244}{214}{214}{194}{1912}{124}{218}{194}{198}{1716}
{0xFF0xFF}};
//音乐播放器进程
void Music_Task(void *pvParameters)
{
static unsigned char lasttune=0;
static unsigned char m=0n=0;
while (1)
{
if(musicflag!=0)
{
if(n<=0)
{
TIM1_PWM_setFrequency(0);
if(music[m][1]==0xff)
{
musicflag=0;
}
else
{
n=music[m][1];
if(music[m][0]==lasttune) //如果此次音调和上次相同,则延迟半个小节
{
delay_ms(1000/24);
}
lasttune=music[m][0];
TIM1_PWM_setFrequency(T[music[m][0]]);
m++;
}
}
n--;
}
delay_ms(1000/12);
}
}
void music_run(unsigned char flag)
{
if(flag==1)
{
musicflag=1;
}
else
{
musicflag=0;
TIM1_PWM_setFrequency(0);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 299008 2011-04-24 17:57 音乐播放器\51Music.exe
文件 2058 2019-04-28 17:00 音乐播放器\music.c
文件 197 2019-04-27 17:04 音乐播放器\music.h
文件 1920 2019-04-28 16:58 音乐播放器\timer.c
文件 159 2019-04-28 16:58 音乐播放器\timer.h
文件 349 2019-04-28 17:06 音乐播放器\使用说明.txt
文件 4209 2019-04-28 16:57 音乐播放器\示例音乐.txt
目录 0 2019-04-28 17:01 音乐播放器
----------- --------- ---------- ----- ----
307900 8
相关资源
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- 我做的电子琴,21个音,一般歌曲基本
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
- STM32 DS3231驱动.zip
- STM32F103C8T6+NRF24l01无线通信
- 21天学会嵌入式开发STM32.zip
- STM32 电子密码锁设计,LCD12864显示
评论
共有 条评论