亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10390|回復(fù): 23
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)蜂鳴器如何演奏音樂 求幫助

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 50 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 2 次(中獎(jiǎng)概率 50%)
跳轉(zhuǎn)到指定樓層
樓主
ID:417679 發(fā)表于 2018-11-5 01:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
使用51單片機(jī) 如何讓蜂鳴器演奏音樂

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
蘆葦劫 + 5 贊一個(gè)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:310519 發(fā)表于 2018-11-5 08:16 | 只看該作者
控制振動(dòng)的頻率和振動(dòng)時(shí)間的長短。
回復(fù)

使用道具 舉報(bào)

板凳
ID:419294 發(fā)表于 2018-11-8 13:05 | 只看該作者
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep = P1^5;
uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,
212,212,106,126,159,169,190,119,119,126,159,142,159,0};

uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,
9,3,12,12,12,12,12,9,3,12,12,12,24,0};

//延時(shí)
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t<120;t++);
}

void PlayMusic()
{
uint i=0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{ //播放各個(gè)音符,SONG_LONG 為拍子長度
    for(j=0;j<SONG_LONG[i]*20;j++)
{
    beep=~beep;
//SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率
    for(k=0;k<SONG_TONE[i]/3;k++);
}
    DelayMS(10);
    i++;
}
}


void main()
{

beep=0;
while(1)
{
PlayMusic(); //播放生日快樂
DelayMS(500); //播放完后暫停一段時(shí)間
}
}
復(fù)制代碼





/*兩只蝴蝶歌曲*/  
/*******************************************/
#include <reg51.h>             // 這是  單片機(jī)音樂代碼生成器  生成的代碼
#define uchar unsigned char
sbit beepIO=P1^5;                 // 輸出 為 P1.5  可以修改 成 其它 IO 口
uchar m,n;
uchar code T[49][2]={{0,0},
{0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
};
uchar code music[][2]={{0,4},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
{23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},
{26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},
{21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},
{0xFF,0xFF}};
void delay(uchar p)
{
    uchar i,j;
    for(;p>0;p--)
    for(i=181;i>0;i--)
    for(j=181;j>0;j--);
}
void pause()
{
    uchar i,j;
    for(i=150;i>0;i--)
    for(j=150;j>0;j--);
}
void T0_int() interrupt 1
{
beepIO=!beepIO;
TH0=T[m][0]; TL0=T[m][1];
}
void main()
{
uchar i=0;
TMOD=0x01;  EA=1; ET0=1;
while(1)
      {
        m=music[i][0];n=music[i][1];
           if(m==0x00)
             {TR0=0;delay(n);i++;}
           else if(m==0xFF)
             {TR0=0;delay(30);i=0;}
           else if(m==music[i+1][0])
             {TR0=1;delay(n);TR0=0;pause();i++;}
           else
             {TR0=1;delay(n);i++;}
      }
}

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
蘆葦劫 + 10 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:423203 發(fā)表于 2018-11-8 19:50 | 只看該作者
應(yīng)該是控制振動(dòng)的頻率和振動(dòng)時(shí)間的長短。
回復(fù)

使用道具 舉報(bào)

5#
ID:423342 發(fā)表于 2018-11-8 23:19 | 只看該作者
建立聲音庫,輸入想要播放的音調(diào)排列,運(yùn)用函數(shù)輸出就行
回復(fù)

使用道具 舉報(bào)

6#
ID:424408 發(fā)表于 2018-11-11 12:54 | 只看該作者
用pwm控制輸出的信號(hào)頻率
回復(fù)

使用道具 舉報(bào)

7#
ID:408178 發(fā)表于 2018-11-11 15:34 | 只看該作者
無源的蜂鳴器會(huì)控制頻率讓他響就夠了,想讓他出音樂去網(wǎng)上找一個(gè)51樂譜軟件,
回復(fù)

使用道具 舉報(bào)

8#
ID:413355 發(fā)表于 2018-11-11 15:46 | 只看該作者

建立一個(gè)聲音庫,把你準(zhǔn)備放的東西存在里面輸入想要播放的音調(diào)排列,再運(yùn)用函數(shù)把它輸出就ok
回復(fù)

使用道具 舉報(bào)

9#
ID:424615 發(fā)表于 2018-11-11 19:02 | 只看該作者
音色就是控制頻率大小,不同音色“DO RE MI FA SO LA XI ”對應(yīng)不同的頻率,頻率定好后然后調(diào)用就可以了
回復(fù)

使用道具 舉報(bào)

10#
ID:111634 發(fā)表于 2018-11-12 08:50 | 只看該作者
本帖最后由 zl2168 于 2018-11-13 23:28 編輯

給你介紹幾個(gè)播放音樂參考案例
實(shí)例31  單音頻輸出  簡易電子琴

Proteus仿真一下,確認(rèn)有效。 實(shí)例31 簡易電子琴.rar (28.34 KB, 下載次數(shù): 25)

實(shí)例13  雙音頻輸出 實(shí)例13 雙音頻輸出.rar (26.69 KB, 下載次數(shù): 9) 救護(hù)車警車鈴聲輸出.rar (27.04 KB, 下載次數(shù): 10)
實(shí)例75  定時(shí)器控制播放生日快樂歌 實(shí)例75 定時(shí)器控制播放生日快樂歌.rar (26.96 KB, 下載次數(shù): 15)
實(shí)例76 定時(shí)器控制播放世上只有媽媽好歌曲.rar (27.15 KB, 下載次數(shù): 12)
還有報(bào)警聲輸出,在《實(shí)例78  功能齊全的電子密碼鎖》中
電子密碼鎖1.rar (1.13 MB, 下載次數(shù): 4)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。
回復(fù)

使用道具 舉報(bào)

11#
ID:424820 發(fā)表于 2018-11-12 09:16 | 只看該作者
網(wǎng)上找代碼復(fù)制就可以了
回復(fù)

使用道具 舉報(bào)

12#
ID:424964 發(fā)表于 2018-11-12 14:10 | 只看該作者
可以,pwm加積分電路或者dac
回復(fù)

使用道具 舉報(bào)

13#
ID:411940 發(fā)表于 2018-11-13 11:07 | 只看該作者
建立一個(gè)聲音庫,輸入想要播放的音調(diào)排列,運(yùn)用函數(shù)輸出就行
回復(fù)

使用道具 舉報(bào)

14#
ID:111634 發(fā)表于 2018-11-14 08:29 | 只看該作者
實(shí)例75  定時(shí)器控制播放生日快樂歌   世上只有媽媽好
回復(fù)

使用道具 舉報(bào)

15#
ID:426249 發(fā)表于 2018-11-14 11:19 | 只看該作者
試試去網(wǎng)上找一下
回復(fù)

使用道具 舉報(bào)

16#
ID:422661 發(fā)表于 2018-11-17 12:23 | 只看該作者
回復(fù)

使用道具 舉報(bào)

17#
ID:428171 發(fā)表于 2018-11-17 14:00 | 只看該作者
控制振動(dòng) 的頻率就可以,這個(gè)可以通過控制電流電壓來實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

18#
ID:428195 發(fā)表于 2018-11-17 14:50 | 只看該作者
需要用到音調(diào),音頻,節(jié)拍
回復(fù)

使用道具 舉報(bào)

19#
ID:428212 發(fā)表于 2018-11-17 15:07 | 只看該作者
不同音調(diào)對應(yīng)不同頻率,在實(shí)際樂曲中還有不同音調(diào)對應(yīng)的播放時(shí)間問題。
回復(fù)

使用道具 舉報(bào)

20#
ID:428212 發(fā)表于 2018-11-17 15:07 | 只看該作者
正好一起學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

21#
ID:428260 發(fā)表于 2018-11-17 16:32 | 只看該作者
如果是無源的蜂鳴器,只需控制0(低電平)和1(高電平)的賦值頻率就行了。賦值周期基本就是一條語句執(zhí)行的周期,可以根據(jù)CPU的頻率計(jì)算出來。
回復(fù)

使用道具 舉報(bào)

22#
ID:428270 發(fā)表于 2018-11-17 16:45 | 只看該作者
#include "reg51.h"

code unsigned int yindiao[] = {0,120,106,94,89,79,71,62};
code unsigned int jiepai[] = {0,523,587,659,698,784,880,988};
code unsigned int yy[]={′ËÇøóò¿é×Ô¼oìî′ê};

void play(unsigned int yd,unsigned int jp);
void delay(unsigned int a);

sbit beep=P2^2;
void main(void)
{
        unsigned int i;
        while (1)
        {
                for(i=0;i<13;i++)
                {
                        play(yindiao[yy[i]],jiepai[yy[i]]);
                        delay(1000);
                }
        delay(4000);
        }
}
void play(unsigned int yd,unsigned int jp)
{   
unsigned int i,j;
        for (i=0;i<jp;i++)
        {
                beep=0;
                for (j=0;j<yd;j++);
                beep=1;
                for (j=0;j<yd;j++);
        }
}
void delay(unsigned int a)  
{
        unsigned int b;
        while(a--)
                for(b=0;b<115;b++);
}

回復(fù)

使用道具 舉報(bào)

23#
ID:423511 發(fā)表于 2018-11-17 22:28 | 只看該作者
相似性 發(fā)表于 2018-11-17 16:45
#include "reg51.h"

code unsigned int yindiao[] = {0,120,106,94,89,79,71,62};

yy[]={    };   括號(hào)里是什么數(shù)字?你發(fā)的有點(diǎn)亂碼,能給我發(fā)一下嗎?
回復(fù)

使用道具 舉報(bào)

24#
ID:421917 發(fā)表于 2018-11-19 21:53 | 只看該作者
改變頻率
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表