娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

蜂鳴器播放音樂+普中51單片機+江科大自化協

發布者:BlissfulMoments最新更新時間:2024-08-08 來源: cnblogs關鍵字:蜂鳴器  播放音樂 手機看文章 掃描二維碼
隨時隨地手機看文章

1 現象

利用蜂鳴器實現音樂播放功能,播放《天空之城》。


2 原理

(1)天空之城的樂譜

3 參考程序

3.1 主程序

#include

#include 'delayms.h'

#include 'timer0.h'


//蜂鳴器端口定義

sbit buzzer = P2^5;


//播放速度,值為四分音符的時長

#define SPEED 500


//音符與索引對應表,P:休止符,L:低音,M:中音,H:高音,下劃線:升半音符號#

#define P    0

#define L1    1

#define L1_    2

#define L2    3

#define L2_    4

#define L3    5

#define L4    6

#define L4_    7

#define L5    8

#define L5_    9

#define L6    10

#define L6_    11

#define L7    12

#define M1    13

#define M1_    14

#define M2    15

#define M2_    16

#define M3    17

#define M4    18

#define M4_    19

#define M5    20

#define M5_    21

#define M6    22

#define M6_    23

#define M7    24

#define H1    25

#define H1_    26

#define H2    27

#define H2_    28

#define H3    29

#define H4    30

#define H4_    31

#define H5    32

#define H5_    33

#define H6    34

#define H6_    35

#define H7    36


//索引與頻率對照表

unsigned int FreqTable[]={

    0,

    63472,63584,63697,63797,63897,63987,64074,64156,64233,64307,64376,64441,

    64502,64560,64615,64667,64715,64761,64805,64846,64885,64921,64956,64989,

    65020,65048,65076,65102,65126,65149,65171,65191,65210,65229,65246,65262

};


//樂譜,天空之城,頻率,音長

unsigned char code Music[]={

    //第1行

    P,    4,    P,    4,    P,    4,    M6,    2,    M7,    2,

    H1,    4+2,M7,    2,    H1,    4,    H3,    4,

    M7,    4+4+4,        M3,    2,    M3,    2,

    //第2行

    M6,    4+2,M5,    2,    M6,    4,    H1,    4,

    M5,    4+4+4,        M3,    4,

    M4,    4+2,M3,    2,    M4,    4,     H1,    4,

    //第3行

    M3,    4+2,P,    2,    H1,    2,    H1,    2,    H1,    2,

    M7,    4+2,M4_,2,    M4_,4,    M7,    4,

    M7,    4+4,P,    4,    M6,    2,    M7,    2,

    //第4行

    H1, 4+2,M7,    2,    H1,    4,    H3,    4,

    M7,    4+4+4,    M3,    2,    M3,    2,

    M6,    4+2,    M5,    2,    M6,    4, H1,    4,

    //第5行

    M5,    4+4+4,    M2,    2,    M3,    2,

    M4,    4,    H1,    2,    M7,    2+2,    H1,    2+4,

    H2,    2,    H2,    2,    H3,    2,    H1,    2+4+4,

    //第6行

    H1,    2,    M7,    2,    M6,    2,    M6,    2,    M7,    4,    M5_,4,

    M6,    4+4+4,    H1,    2,    H2,    2,

    H3,    4+2,H2,    2,    H3,    4,    H5,    4,

    //第7行

    H2,    4+4+4,    M5,    2,    M5,    2,

    H1,    4+2,    M7,    2,    H1,    4,    H3,    4,

    H3,    4+4+4+4,

    //第8行

    M6,    2,    M7,    2, H1,    4,    M7,    4,    H2,    2,    H2,    2,

    H1,    4+2,M5,    2+4+4,

    H4,    4,    H3,    4,    H2,    4,    H1,    4,

    //第9行

    H3,    4+4+4,    H3,    4,

    H6,    4+4,    H5,    4,    H5,    4,

    H3,    2,    H2,    2,    H1,    4+4,    P,    2,    H1,    2,

    //第10行

    H2,    4,    H1,    2,    H2,    2,    H2,    4,    H5,    4,

    H3,    4+4+4,    H3,    4,

    H6,    4+4,    H5,    4+4,

    //第11行

    H3,    2,    H2,    2,    H1,    4+4,    P,    2,    H1,    2,

    H2,    4,    H1,    2,    H2,    2+4,    M7,    4,

    M6,    4+4+4,    M6,    2,    M7,    2,

    

    0xFF    //終止符號

};


unsigned char FreqSelect,MusicSelect;


void main()

{

    timer0_init();

    while(1)

    {

        if(Music[MusicSelect]!=0xFF)    //如果不是停止標志位

        {

            FreqSelect = Music[MusicSelect];    //選擇音符對應的頻率

            MusicSelect++;

            delayms(SPEED/4*Music[MusicSelect]);    //選擇音符對應的時值

            MusicSelect++;

            TR0 = 0;    

            delayms(5);        //音符間短暫停頓

            TR0 = 1;

        }

        else            //如果是停止標志位,停止播放

        {

            TR0 = 0;

            while(1);

        }

    }

}


void timer0_routine() interrupt 1

{

    if(FreqTable[FreqSelect])    //如果不是休止符

    {

        /*取對應頻率值的重裝載值到定時器*/

        TL0 = FreqTable[FreqSelect]%256;        //設置定時初值

        TH0 = FreqTable[FreqSelect]/256;        //設置定時初值

        buzzer=!buzzer;    //翻轉蜂鳴器IO口

    }

}


3.2 延時函數


#ifndef _delayms_h_

#define _delayms_h_


    delayms(unsigned int xms);

    

#endif


#include


void delayms(unsigned int xms)        //@11.0592MHz

{

    unsigned char i, j;


    while(xms--)

    {

        _nop_();

        i = 2;

        j = 199;

        do

        {

            while (--j);

        } while (--i);    

    }

}


3.3 定時器函數


#ifndef _timer0_h_

#define _timer0_h_


    void timer0_init(void);

    

#endif


#include


/**

  * @brief  定時器0初始化,1毫秒@11.0592MHz

  * @param  無

  * @retval 無

  */

void timer0_init(void)        //1毫秒@11.0592MHz

{

    TMOD &= 0xF0;    //設置定時器模式,1111_0000,&,高四位保留,低四位清零

    TMOD |= 0x01;    //設置定時器模式,0000_0001,|,高四位保留,設置模式為T0

    TL0 = 0x66;        //設置定時初始值,1ms,@11.0592MHz

    TH0 = 0xFC;        //設置定時初始值,1ms,@11.0592MHz

    TF0 = 0;        //清除TF0標志

    TR0 = 1;        //定時器0開始計時

    ET0=1;            //打開定時器T0中斷開關

    EA=1;            //打開中斷系統總開關

    PT0=0;            //設置T0中斷優先級,低

}


關鍵字:蜂鳴器  播放音樂 引用地址:蜂鳴器播放音樂+普中51單片機+江科大自化協

上一篇:AT24C02數據存儲+普中51單片機+江科大自化協
下一篇:蜂鳴器播放DOREMI+普中51單片機+江科大自化協

推薦閱讀最新更新時間:2025-06-07 23:39

51單片機播放音樂(聲音還不夠純正)
#define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include reg52.h //包括一個 52 標準內核的頭文件 char code dx516 _at_ 0x003b;//這是為了仿真設置的 sbit BEEP=P3^4; //喇叭輸出腳 uchar th0_f; //在中斷中裝載的 T0 的值高 8 位 uchar tl0_f; //在中斷中裝載的 T0 的值低 8 位 //T0 的值,及輸出頻率對照表 uchar code freq ={ 0xA9,0
[單片機]
基于PIC單片機實現音樂播放的實例程序
PIC單片機實現音樂播放的實例程序 ******************************** * PIC單片機實現音樂播放 * ******************************** 源程序: 以下程序要用二個定時器資源,凡是有二個定時器的PIC單片機均可實現,該范例需要的MCU是MICROCHIP PIC16C62 INCLUDE "D:PICP16XX.EQU" ;該文件在MICROCHIP光盤中可找到 ;************************************************** #define BeepOut RC,4 ;**********************
[單片機]
關于調試蜂鳴器驅動電路的解決辦法
問題描述:   蜂鳴器驅動電路如上,當PB5輸出高電平時,三極管截止;當PB5輸出低電平時,三極管導通。   遇到的問題是:PB5無論輸出高電平還是低電平,蜂鳴器都導通。   嘗試解決途徑:換三極管,換電阻,測試引腳上的電壓   最終解決的辦法:把5V換成3.3V。   因為PB5輸出高電平時,PB5上的電壓為芯片的供電電壓3.3V,發射極(2)與基級(1)即發射結正偏,集電結也正偏,處于飽和區,導通。   輸出低電平時,PB5上的電壓為0V,發射結與集電結都正偏,處于飽和區,導通。   換成3.3V后   PB5輸出高電平,集電結反偏,發射結小于開啟電壓,處于截止區;   PB5輸出低電平,發射結集電極均正偏,處于飽和區,導
[嵌入式]
關于調試<font color='red'>蜂鳴器</font>驅動電路的解決辦法
萬用表丈量蜂鳴器及話筒好壞圖解
這篇文章以MF50型指針式萬用表為例,介紹在業余條件下運用萬用表敏捷區分駐極體話筒的極性、查看駐極體話筒的好壞及功用的詳細辦法。 圖1?駐極體話筒的查看 (a)區分極性與好壞 (b)查看兩頭式話筒活絡度 (c)查看三端式話筒活絡度 區分極性 因為駐極體話筒內部場效應管的漏極D和源極S直接作為話筒的引出電極,所以只需區分出漏極D和源極S,也就不難斷定出駐極體話筒的電極。如圖1(a)所示,將萬用表撥至“R×十0”或“R×1k”電阻撓,黑表筆接恣意一極,紅表筆接別的一極,讀出電阻值數;對調兩表筆后,再次讀出電阻值數,并比照兩次丈量作用,阻值較小的一次中,黑表筆所接應為源極S,紅表筆所接應為漏極D。進一步區分:假定駐極體話
[測試測量]
51單片機外圍模塊——蜂鳴器
蜂鳴器簡介 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。 接通電源后,振蕩器產生的音頻信號電流通過電磁線圈,使電磁線圈產生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發聲。 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。 多諧振蕩器由晶體管或集成電路構成,當接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發聲。 改變單片機引腳輸出波形的頻率,就可以調整控制蜂鳴器音調,產生各種不同音色、音調的聲音。 改變輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小。
[單片機]
<font color='red'>51單片機</font>外圍模塊——<font color='red'>蜂鳴器</font>
Tiny210裸機PWM控制蜂鳴器
start.S源碼: .global _start _start: ldr sp, =0xD0030000 // 初始化棧,因為后面要調用C函數 bl clock_init // 初始化時鐘 bl ddr_init // 初始化內存 bl nand_init // 初始化NAND ldr r0, =0x36000000 // 要拷貝到DDR中的位置 ldr r1, =0x0 // 從NAND的0地址開始拷貝 ldr r2, =bss_start // BSS段的開始地址 sub r2,r2,r0 // 要拷
[單片機]
PIC單片機-蜂鳴器使用示例
PIC中檔單片機蜂鳴器原理圖: 使用示例: /******************************************************************************* * 跳線接法:短接P2的2、3 * 功能描述:無源蜂鳴器發聲 *******************************************************************************/ #include htc.h #include math.h #define uint8 unsigned char #define uint16 unsigned int __CONFIG(WDTDI
[單片機]
PIC單片機-<font color='red'>蜂鳴器</font>使用示例
51單片機 蜂鳴器
蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅動不了蜂鳴器,因此需要增加一個電流放大的電路。三極管的作用為驅動,通過三極管放大驅動電流,從而可以讓蜂鳴器發出聲音。 有源蜂鳴器和無源蜂鳴器的區別: 這里的“源”不是指電源。而是指震蕩源。 也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會叫。 而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K~5K的方波去驅動它。 有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路。 無源蜂鳴器的優點是:1。便宜,2。聲音頻率可控,可以做出“多來米發索拉西”的效果。
[單片機]
<font color='red'>51單片機</font> <font color='red'>蜂鳴器</font>
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沛县| 马龙县| 手游| 格尔木市| 建湖县| 九龙坡区| 牟定县| 永顺县| 巴南区| 通州区| 灌南县| 北碚区| 郁南县| 永昌县| 图木舒克市| 兴仁县| 旬邑县| 巩留县| 四子王旗| 金溪县| 宣恩县| 平果县| 黎平县| 万山特区| 阳泉市| 丰顺县| 韶关市| 北海市| 台山市| 嵊州市| 凤城市| 寿阳县| 兴安盟| 克拉玛依市| 炉霍县| 龙门县| 安丘市| 开原市| 阿克苏市| 东乡族自治县| 安泽县|