xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

這個(gè)是在stm32f103單片機(jī)上使用蜂鳴器播放音樂(lè)的程序,曲調(diào)c調(diào),主要做了低中高三個(gè)音區(qū)共36個(gè)音調(diào)(每個(gè)音區(qū)分別有1,1#,2,2#,3,4,4#,5,5#,6,6#,7十二個(gè)音調(diào))。資源內(nèi)有上位機(jī)用于產(chǎn)生音樂(lè)代碼(對(duì)照曲目輸入音符和節(jié)拍即可),另外我還放了幾個(gè)示例音樂(lè)代碼用于調(diào)試。單片機(jī)端程序主要有兩部分,一部分是用于解碼音樂(lè)代碼的音樂(lè)程序(music),另外一部分是用于配置定時(shí)器和PWM頻率的硬件配置文件(timer)。配置上使用的是TIM1用于產(chǎn)生PWM信號(hào),PB8輸出PWM信號(hào)(接蜂鳴器)。資源里面有一個(gè)簡(jiǎn)單的使用說(shuō)明, 資源列表 1.單片機(jī)程序:music.c music.h timer.h timer.c 2.音樂(lè)代碼上位機(jī):51music.exe 3.示例音樂(lè) 4.使用說(shuō)明

資源截圖

代碼片段和文件信息

#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?“l(fā)ist.h“
#include?“semphr.h“



unsigned?char?musicflag=0;

const?short?T[49]={0????????????????????????????????????????????????//const表示存放在rom中
??262277294311330349370392415440466494???????????????????//低音區(qū)??11222334455566677?共12個(gè)音調(diào)
523554578622659698740784831880932988???????????????????//中音區(qū)
104611091175124513181397148015681661176018651976????????//高音區(qū)
};

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}};

//音樂(lè)播放器進(jìn)程
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)??//如果此次音調(diào)和上次相同,則延遲半個(gè)小節(jié)
{
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);
}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????299008??2011-04-24?17:57??音樂(lè)播放器\51Music.exe

?????文件???????2058??2019-04-28?17:00??音樂(lè)播放器\music.c

?????文件????????197??2019-04-27?17:04??音樂(lè)播放器\music.h

?????文件???????1920??2019-04-28?16:58??音樂(lè)播放器\timer.c

?????文件????????159??2019-04-28?16:58??音樂(lè)播放器\timer.h

?????文件????????349??2019-04-28?17:06??音樂(lè)播放器\使用說(shuō)明.txt

?????文件???????4209??2019-04-28?16:57??音樂(lè)播放器\示例音樂(lè).txt

?????目錄??????????0??2019-04-28?17:01??音樂(lè)播放器

-----------?---------??----------?-----??----

???????????????307900????????????????????8


評(píng)論

共有 條評(píng)論