91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MCU控制蜂鳴器演奏音樂(lè)小程序

算法&編程學(xué)院 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:工程師3 ? 2018-04-20 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

程序功能:MCU控制蜂鳴器演奏歌曲《祝你平安》

----------------------------------------------

撥碼開(kāi)關(guān)設(shè)置:將BUZZER位撥至ON,其余位撥至OFF

測(cè)試說(shuō)明:聆聽(tīng)蜂鳴器“唱出”的樂(lè)曲

既然是演奏樂(lè)曲對(duì)于一個(gè)音符應(yīng)該包括兩個(gè)部分

一是聲調(diào) 二是持續(xù)時(shí)間,在這個(gè)程序中聲調(diào)是用簡(jiǎn)單的

延時(shí)-電平翻轉(zhuǎn)來(lái)實(shí)現(xiàn)的,改變了延時(shí)的時(shí)間就改變了

聲調(diào),而時(shí)間是通過(guò)計(jì)數(shù)比較來(lái)實(shí)現(xiàn)的,當(dāng)計(jì)數(shù)值相等時(shí)

就跳出循環(huán)演奏下一個(gè)音符。

*********************************************/

#include 《msp430x14x.h》

typedef unsigned char uchar;

#include “music.h”

#define Buzzer BIT7

#define Buzzer_Port P6OUT

#define Buzzer_DIR P6DIR

uchar counter;

void Play_Song(void);

/***************主函數(shù)****************/

void main(void)

{

uchar i;

/*下面六行程序關(guān)閉所有的IO口*/

P1DIR = 0XFF;P1OUT = 0XFF;

P2DIR = 0XFF;P2OUT = 0XFF;

P3DIR = 0XFF;P3OUT = 0XFF;

P4DIR = 0XFF;P4OUT = 0XFF;

P5DIR = 0XFF;P5OUT = 0XFF;

P6DIR = 0XFF;P6OUT = 0XFF;

P6DIR |= BIT2;P6OUT |= BIT2; //關(guān)閉電平轉(zhuǎn)換

WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門(mén)狗

/*------選擇系統(tǒng)主時(shí)鐘為8MHz-------*/

BCSCTL1 &= ~XT2OFF; // 打開(kāi)XT2高頻晶體振蕩器

do

{

IFG1 &= ~OFIFG; //清除晶振失敗標(biāo)志

for (i = 0xFF; i 》 0; i--); // 等待8MHz晶體起振

}

while ((IFG1 & OFIFG)); // 晶振失效標(biāo)志仍然存在?

BCSCTL2 |= SELM_2 + SELS; //主時(shí)鐘和從時(shí)鐘都選擇高頻晶振

//設(shè)置定時(shí)器A每10ms中斷一次

CCTL0 = CCIE;

CCR0 = 10000;//改變這個(gè)值就改變了演奏的速度

TACTL |= TASSEL_2 + ID_3;

//設(shè)置控制蜂鳴器的IO方向?yàn)檩敵?/p>

Buzzer_DIR |= Buzzer;

//打開(kāi)全局中斷

_EINT();

//循環(huán)演奏歌曲

while(1)

{

Play_Song();

}

}

/*******************************************

函數(shù)名稱(chēng):TimerA_ISR

功 能:定時(shí)器A的中斷服務(wù)函數(shù)

參 數(shù):無(wú)

返回值 :無(wú)

********************************************/

#pragma vector = TIMERA0_VECTOR

__interrupt void TimerA_ISR(void)

{

counter++;

}

/*******************************************

函數(shù)名稱(chēng):Delay_Nms

功 能:延時(shí)N個(gè)ms的函數(shù) ps:不知道這個(gè)地方怎么算出來(lái)的是延時(shí)毫秒

參 數(shù):n--延時(shí)長(zhǎng)度

返回值 :無(wú)

********************************************/

void Delay_Nms(uchar n)

{

uchar i,j;

for( i = 0;i 《 n; i++ )

{

for( j = 0;j 《 3;j++ )

_NOP();

}

}

/*******************************************

函數(shù)名稱(chēng):Play_Song

功 能:播放《祝你平安》的樂(lè)曲

參 數(shù):無(wú)

返回值 :無(wú)

********************************************/

void Play_Song(void)

{

uchar Temp1,Temp2;

uchar addr = 0;

counter = 0; //中斷計(jì)數(shù)器清0

while(1)

{

Temp1 = SONG[addr++];

if ( Temp1 == 0xFF ) //休止符

{

TACTL &=~MC_1; //停止計(jì)數(shù)

Delay_Nms(100);

}

else if ( Temp1 == 0x00 ) //歌曲結(jié)束符

{

return;

}

else

{

Temp2 = SONG[addr++];

TACTL |=MC_1; //開(kāi)始計(jì)數(shù)

while(1)

{

Buzzer_Port ^= Buzzer;//電平取反

Delay_Nms(Temp1);//Temp1的值決定了延時(shí)的長(zhǎng)短,也決定了聲音的頻率

if ( Temp2 == counter )//決定了音調(diào)持續(xù)的時(shí)間,計(jì)數(shù)時(shí)間到時(shí)就跳出循環(huán)演奏下一個(gè)。

{

counter = 0;

break;

}

}

}

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18924

    瀏覽量

    398010
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123587
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    899

    瀏覽量

    47760
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用蜂鳴器和單片機(jī)演奏簡(jiǎn)單的音樂(lè)電路設(shè)計(jì)

    利用蜂鳴器和單片機(jī)演奏簡(jiǎn)單的音樂(lè),包含源程序代碼。
    發(fā)表于 04-03 12:59 ?1.1w次閱讀
    利用<b class='flag-5'>蜂鳴器</b>和單片機(jī)<b class='flag-5'>演奏</b>簡(jiǎn)單的<b class='flag-5'>音樂(lè)</b>電路設(shè)計(jì)

    各位,問(wèn)一個(gè)問(wèn)題,用蜂鳴器演奏流行音樂(lè)曲子,做成產(chǎn)品賣(mài)的話(huà),算侵權(quán)嗎?

    各位,問(wèn)一個(gè)問(wèn)題,用蜂鳴器演奏流行音樂(lè)曲子,做成產(chǎn)品賣(mài)的話(huà),算侵權(quán)嗎?
    發(fā)表于 01-22 11:09

    簡(jiǎn)易電子琴演奏音樂(lè)

    用51單片機(jī)寫(xiě)的一個(gè)小程序,可以演奏音樂(lè),通過(guò)矩陣按鍵控制,并通過(guò)1602顯示時(shí)間信息,有興趣可以看看
    發(fā)表于 09-15 16:55

    按鍵控制無(wú)源蜂鳴器發(fā)出不同聲音來(lái)演奏音樂(lè)

    cortex-A8用不同按鍵控制無(wú)源蜂鳴器發(fā)出不同聲音來(lái)演奏音樂(lè)程序
    發(fā)表于 06-05 21:36

    通過(guò)單片機(jī)演奏音樂(lè)

    /************************************************************************[文件名]C51音樂(lè)程序(八月桂花)[功能] 通過(guò)單片機(jī)演奏音樂(lè) 接線(xiàn)說(shuō)明:參考
    發(fā)表于 11-30 07:08

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏呢?其程序代碼該怎樣去實(shí)現(xiàn)呢?
    發(fā)表于 02-14 07:22

    單片機(jī)音樂(lè)程序教程

    單片機(jī)音樂(lè)程序教程:聲音基礎(chǔ),單一程序音樂(lè)演奏,模塊化音樂(lè)程序演奏等內(nèi)容。
    發(fā)表于 06-03 12:17 ?173次下載
    單片機(jī)<b class='flag-5'>音樂(lè)程序</b>教程

    音樂(lè)演奏器設(shè)計(jì)

    音樂(lè)演奏器設(shè)計(jì) 一、任務(wù)設(shè)計(jì)并制作一個(gè)可以演奏樂(lè)曲的遠(yuǎn)程音樂(lè)演奏器,基本電路框圖如圖。
    發(fā)表于 08-02 08:35 ?1949次閱讀
    <b class='flag-5'>音樂(lè)演奏</b>器設(shè)計(jì)

    蜂鳴器播放音樂(lè)程序

    蜂鳴器播放音樂(lè)程序,有興趣的同學(xué)可以下載學(xué)習(xí)
    發(fā)表于 04-27 16:18 ?34次下載

    eda音樂(lè)演奏程序

    EDA音樂(lè)演奏程序例程,可根據(jù)需要改編
    發(fā)表于 12-09 23:19 ?6次下載

    使用C51單片機(jī)進(jìn)行演奏生日快樂(lè)音樂(lè)程序的詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用C51單片機(jī)進(jìn)行演奏生日快樂(lè)音樂(lè)程序的詳細(xì)資料免費(fèi)下載,利用中級(jí)定時(shí)器以及蜂鳴器設(shè)計(jì)。
    發(fā)表于 12-17 08:00 ?20次下載
    使用C51單片機(jī)進(jìn)行<b class='flag-5'>演奏</b>生日快樂(lè)<b class='flag-5'>音樂(lè)程序</b>的詳細(xì)資料免費(fèi)下載

    如何使用單片機(jī)進(jìn)行蜂鳴器演奏音樂(lè)程序資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用單片機(jī)進(jìn)行蜂鳴器演奏音樂(lè)程序資料免費(fèi)下載。
    發(fā)表于 05-05 08:00 ?9次下載
    如何使用單片機(jī)進(jìn)行<b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b><b class='flag-5'>音樂(lè)</b>的<b class='flag-5'>程序</b>資料免費(fèi)下載

    單片機(jī)中級(jí)項(xiàng)目12丨蜂鳴器音樂(lè)之八月桂花

    ] C51音樂(lè)程序(八月桂花) [功能] 通過(guò)單片機(jī)演奏音樂(lè) /********************************************************...
    發(fā)表于 11-22 09:36 ?9次下載
    單片機(jī)中級(jí)項(xiàng)目12丨<b class='flag-5'>蜂鳴器</b><b class='flag-5'>音樂(lè)</b>之八月桂花

    利用蜂鳴器演奏簡(jiǎn)單的樂(lè)譜

    那么,今天分享的是利用蜂鳴器來(lái)演奏一些簡(jiǎn)單的樂(lè)譜。
    的頭像 發(fā)表于 05-26 16:04 ?4042次閱讀
    利用<b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b>簡(jiǎn)單的樂(lè)譜

    單片機(jī)控制蜂鳴器音樂(lè)資料分享

    單片機(jī)控制蜂鳴器音樂(lè)
    發(fā)表于 06-05 09:31 ?83次下載