日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于51单片机带显示器的音乐盒设计

發(fā)布時(shí)間:2024/3/24 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于51单片机带显示器的音乐盒设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖:

https://download.csdn.net/download/qq_64505944/87512938?spm=1001.2014.3001.5503

源碼獲取

摘 要

單片微型計(jì)算機(jī)室大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬于第四代電子計(jì)算機(jī)它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。他的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。我們對(duì)于電子琴如何實(shí)現(xiàn)其功能,如音色選擇、聲音強(qiáng)弱控制、節(jié)拍器、自動(dòng)放音功能等等也很好奇。

音樂(lè)盒是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器。它在現(xiàn)代音樂(lè)扮演重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)音樂(lè)盒。以單片機(jī)作為主控核心,與鍵盤揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有8個(gè)按鍵,和一個(gè)復(fù)位按鍵。

利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏要表達(dá)的音符。并且分別從原理圖,主要芯片,個(gè)模塊原理及各規(guī)模的程序的調(diào)試來(lái)詳細(xì)闡述。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,構(gòu)成我們想演奏的那首曲目。當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣的方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系編寫正確就可以達(dá)到我們想要的曲目。在此基礎(chǔ)上,所做音樂(lè)盒得到了應(yīng)有的按鍵發(fā)音效果。

關(guān)鍵詞:AT89C51;音色;自動(dòng)放音

目錄

摘 要 PAGEREF _Toc32730 \h I

1 概述 PAGEREF _Toc29953 \h 1

1.1設(shè)計(jì)背景 1

1.2設(shè)計(jì)意義 1

1.3設(shè)計(jì)目標(biāo) 1

2方案總體設(shè)計(jì) PAGEREF _Toc9341 \h 2

2.1總體設(shè)計(jì) 2

2.2方案工作原理 2

3硬件設(shè)計(jì) PAGEREF _Toc18097 \h 3

3.1 AT89C51芯片 3

3.2 單片機(jī)復(fù)位 3

3.3 單片機(jī)晶振 4

3.4 電源指示燈 4

3.5 數(shù)碼管 4

3.6 蜂鳴器 5

3.7 獨(dú)立連接式按鍵 6

4 軟件設(shè)計(jì) PAGEREF _Toc13214 \h 6

4.1 系統(tǒng)流程 6

4.2 延時(shí)源代碼 7

4.3 發(fā)音源代碼 7

4.4 按鍵源代碼 8

5 系統(tǒng)仿真與調(diào)試 PAGEREF _Toc13123 \h 8

5.1 Proteus 8

5.2 軟件調(diào)試 8

5.3 硬件調(diào)試 10

6運(yùn)行結(jié)果分析 PAGEREF _Toc26082 \h 10

6.1 仿真圖 10

6.2 運(yùn)行結(jié)果 11

6.3 運(yùn)行分析 11

總結(jié) PAGEREF _Toc11442 \h 12

參考文獻(xiàn) PAGEREF _Toc21271 \h 13

1 概述

1.1設(shè)計(jì)背景

隨著電子科技的飛速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們多帶來(lái)一點(diǎn)生活上的樂(lè)趣。基于當(dāng)前市場(chǎng)上的玩具市場(chǎng)需求量大,其中音樂(lè)盒就是一個(gè)很好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以利用軟硬件實(shí)現(xiàn)音樂(lè)盒的功能,從而實(shí)現(xiàn)電子琴的微型化,可以用作玩具琴、音樂(lè)轉(zhuǎn)盤以及音樂(lè)童車等等。并且可以進(jìn)行一定的功能擴(kuò)展。鑒于傳統(tǒng)電子琴可以用鍵盤上的鍵演奏哆、來(lái)、米、發(fā)、索、拉、西,哆,從而可以用來(lái)彈奏喜歡的樂(lè)曲。

1.2設(shè)計(jì)意義

該音樂(lè)盒設(shè)計(jì)具有以下優(yōu)點(diǎn):

1、可以方便得知播放的音符和音調(diào);

2、比傳統(tǒng)電子琴功能更完善;

3、制作簡(jiǎn)單,成本低。

1.3設(shè)計(jì)目標(biāo)

由于本設(shè)計(jì)主要用于人們娛樂(lè)方面,因此在設(shè)計(jì)上盡量使其安全以及簡(jiǎn)單易操作。其次,在這次設(shè)計(jì)可行性上進(jìn)行分析如下:

  • 經(jīng)濟(jì)可行性:所謂經(jīng)濟(jì)可行性,即在這次設(shè)計(jì)上需要投入資金的多少,由于課程設(shè)計(jì)是提高我們的動(dòng)手能力以及資金有限。因此在經(jīng)濟(jì).上必須能夠承受,比較理想化的對(duì)于我們課程設(shè)計(jì)來(lái)說(shuō)是不可行的。通過(guò)分析后,無(wú)論是在器件價(jià)格或是常見(jiàn)度.上均是可行的。

  • 技術(shù)可行性:技術(shù)可行性主要是分析技術(shù)條件上是否能夠順利開展并完成課程設(shè)計(jì)的主要問(wèn)題,硬件、軟件能否滿足設(shè)計(jì)者的需要等。通過(guò)分析各種軟件環(huán)境,硬件仿真環(huán)境等均已經(jīng)具備。

  • 綜上所述,本系統(tǒng)設(shè)計(jì)目標(biāo)已經(jīng)明確,在經(jīng)濟(jì)與技術(shù)上均可行,因此本系統(tǒng)的開發(fā)是完全可行的。

    2方案總體設(shè)計(jì)

    本次課程設(shè)計(jì)的課題是基于51單片機(jī)的電子琴的設(shè)計(jì),所要達(dá)到的要求如下:

    1、利用蜂鳴器作為發(fā)聲部件。

    2、一個(gè)數(shù)碼管作為顯示部件。

    3、設(shè)置8個(gè)按鍵,實(shí)現(xiàn)高音、中音、低音的DO,RE,MI,FA,SO,LA,XI,DO的發(fā)音。

    本次設(shè)計(jì)主要是要通過(guò)軟硬件的配合實(shí)現(xiàn)音樂(lè)盒的上述功能,操作人員可以通過(guò)按下鍵盤上任意一個(gè)鍵來(lái)發(fā)出相應(yīng)的音符。

    2.1總體設(shè)計(jì)

    圖2-1 單片機(jī)總體框架圖

    2.2方案工作原理

    由AT89C51的P1口8個(gè)按鍵控制DO,RE,MI,FA,SO,LA,XI,DO的各個(gè)音符,在由位于P0口的一位數(shù)碼管顯示出來(lái),同時(shí)位于P3^7口的蜂鳴器發(fā)出聲音。

    發(fā)音原理:若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期,再將周期除以2,即為半周期的時(shí)間。利用定時(shí)器記時(shí)半周期時(shí)間,每當(dāng)記時(shí)終止后就將P3^7反相,然后記時(shí)再反相。就可在P3^7上得到此頻率的脈沖。利用STC89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。

    3硬件設(shè)計(jì)

    3.1 AT89C51芯片

    AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器(00H-7FH為片內(nèi)RAM,80H-FFH為特殊功能寄存器SFR),32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。單片機(jī)引腳圖如圖2所示:

    圖3-1 AT89C51

    3.2 單片機(jī)復(fù)位

    1、復(fù)位功能:單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開始。

    2、復(fù)位原理:單片機(jī)復(fù)位時(shí)只要保持RST引腳接2us的高電平即可。在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過(guò)程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位。

    3.3 單片機(jī)晶振

    外接晶振引腳XTAL1和TXAL2接外部晶振和微調(diào)電容的一端。振蕩電路的頻率就是晶體的固有頻率。晶振電路結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率。晶振提高頻率越高,單片機(jī)運(yùn)行速度越快。單片機(jī)一切指令的執(zhí)行都是建立在晶振提供的時(shí)鐘頻率上。

    圖3-3 晶振電路圖

    3.4 電源指示燈

    電源指示燈部分包括一個(gè)開關(guān),發(fā)光二級(jí)管和限流電阻。當(dāng)電源接通時(shí)發(fā)光二級(jí)管點(diǎn)亮,表明電路已上電。

    3.5 數(shù)碼管

    數(shù)碼管的一種是半導(dǎo)體發(fā)光器件,數(shù)碼管可分為七段數(shù)碼管和八段數(shù)碼管,區(qū)別在于八段數(shù)碼管比七段數(shù)碼管多一個(gè)用于顯示小數(shù)點(diǎn)的發(fā)光二極管單元DP(decimal point),其基本單元是發(fā)光二極管。七段數(shù)碼管是基于發(fā)光二極管(LED)封裝的顯示器件,分為共陽(yáng)極和共陰極2種結(jié)構(gòu)。

    七段數(shù)碼管分為共陽(yáng)極及共陰極,共陽(yáng)極的七段數(shù)碼管的正極(或陽(yáng)極)為八個(gè)發(fā)光二極管的共有正極,其他接點(diǎn)為獨(dú)立發(fā)光二極管的負(fù)極(或陰極),使用者只需把正極接電,不同的負(fù)極接地就能控制七段數(shù)碼管顯示不同的數(shù)字。共陰極的七段數(shù)碼管與共陽(yáng)極的只是接駁方法相反而已。

    圖3-5 數(shù)碼管電路圖

    3.6 蜂鳴器

    蜂鳴器是一種將電信號(hào)轉(zhuǎn)換為聲音信號(hào)的器件,常用來(lái)產(chǎn)生設(shè)備的按鍵音、報(bào)警音等提示信號(hào)。蜂鳴器按驅(qū)動(dòng)方式可分為有源蜂鳴器和無(wú)源蜂鳴器;有源蜂鳴器:內(nèi)部自帶振蕩源,將正負(fù)極接上直流電壓即可持續(xù)發(fā)聲,頻率固定。無(wú)源蜂鳴器:內(nèi)部不帶振蕩源,需要控制器提供振蕩脈沖才可發(fā)聲,調(diào)整提供振蕩脈沖的頻率,可發(fā)出不同頻率的聲音。蜂鳴器有正負(fù)極,頂部印有+號(hào)的為正極,若蜂鳴器引腳沒(méi)剪,則長(zhǎng)的為正極。

    圖3-6 蜂鳴器電路

    3.7 獨(dú)立連接式按鍵

    獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài)。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,然而,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用。

    圖3-7 按鍵電路圖

    4 軟件設(shè)計(jì)

    4.1 系統(tǒng)流程

    圖4-1 程序流程圖

    4.2 延時(shí)源代碼

    void DelayMS(uint x){uchar t;while(x--) for(t=0;t<120;t++);}

    4.3 發(fā)音源代碼

    void Play(uchar y){uchar i;for(i=0;i<100;i++){BEEP=~BEEP;DelayMS(y);}BEEP=1;}

    4.4 按鍵源代碼

    if(K1==0){DelayMS(10); if(K1==0){num=1;P0=table[num];Play(1);}while(!K1);}

    5 系統(tǒng)仿真與調(diào)試

    5.1 Proteus

    Proteus是功能強(qiáng)大的單片機(jī)仿真軟件。Proteus與其他的仿真軟件相比較,在下面的優(yōu)點(diǎn):(1)能仿真模擬電路、數(shù)字電路、數(shù)?;旌想娐?#xff1b;(2)能繪制原理圖、PCB圖;(3)幾乎包括實(shí)際中所有使用的儀器(4)其最大的亮點(diǎn)在于能夠?qū)纹瑱C(jī)進(jìn)行實(shí)物級(jí)的仿真。從程序的編寫,編譯到調(diào)試,目標(biāo)版的仿真一應(yīng)俱全。支持匯編語(yǔ)言和C語(yǔ)言的編程。還可配合Keil C實(shí)現(xiàn)程序的聯(lián)合調(diào)試,將Proteus中繪制的原理圖作為實(shí)際中的目標(biāo)板,而用Keil C集成環(huán)境實(shí)現(xiàn)對(duì)目標(biāo)板的控制,與實(shí)際中通過(guò)硬件仿真器對(duì)目標(biāo)板的調(diào)試幾乎完全相同。

    5.2 軟件調(diào)試

    調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具有至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過(guò)程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序進(jìn)行分別調(diào)試。

    圖5-2 生成相應(yīng)程序的HEX軟件

    將生成的hex放在Proteus的AT89C51中:

    圖5-4 將hex文件放入到仿真中

    5.3 硬件調(diào)試

    硬件調(diào)試是針對(duì)單片機(jī)部分進(jìn)行的調(diào)試。

    在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是否存在斷路或者短路情況的任務(wù)。注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開路以及短路的現(xiàn)象出現(xiàn)。

    在確保硬件電路正常且無(wú)異常情況(短路或斷路)的情況下方可上電調(diào)試,上電調(diào)試的口的是檢測(cè)單片機(jī)控制部分、數(shù)碼管點(diǎn)亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。(1)數(shù)碼管LED電路調(diào)試:接通電源,隨機(jī)按下按鈕可以看到數(shù)碼福安顯示數(shù)字。(2)鍵盤單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。

    6運(yùn)行結(jié)果分析

    6.1 仿真圖

    圖6-1 仿真圖

    6.2 運(yùn)行結(jié)果

    圖6-2 運(yùn)行結(jié)果

    6.3 運(yùn)行分析

    總體來(lái)說(shuō),此次單片機(jī)課程設(shè)計(jì)功能基本完成,雖然課程設(shè)計(jì)的過(guò)程中遇到了很多困難與問(wèn)題,但是最終還是完成了設(shè)計(jì)的任務(wù)及要求。具體來(lái)說(shuō)可以分為以下幾點(diǎn):

    優(yōu)點(diǎn):整體各元器件布局清晰,各個(gè)程序模塊運(yùn)行順利,功能基本完成。發(fā)音時(shí)可以顯示該音符。

    缺點(diǎn):該音樂(lè)盒功能相對(duì)比較少,保存的歌曲較少,發(fā)的音節(jié)也只有哆、來(lái)、米、發(fā)、索、拉、西,哆。

    總結(jié)

    這次課程設(shè)計(jì)中,經(jīng)過(guò)努力,在仿真軟件實(shí)現(xiàn)了8個(gè)音符的發(fā)聲,有了一定的成就感,也使我進(jìn)一步熟悉和掌握了單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,了解了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本方法和步驟,掌握了單片機(jī)仿真軟件Proteus的使用方法和鍵盤、顯示器在的單片機(jī)控制系統(tǒng)中的應(yīng)用??傊?#xff0c;通過(guò)這次課程設(shè)計(jì),我清楚明白了自己的能力有多深,想提高還得歸于多鍛煉,多動(dòng)手,多向別人學(xué)習(xí)。

    尤其在做各種東西時(shí)應(yīng)該要特別的仔細(xì)小心,對(duì)于一些軟件來(lái)說(shuō),就必須了解軟件各個(gè)方面的性質(zhì),不然,在一些小問(wèn)題中也有可能造成不必要的錯(cuò)誤。另外,自己在理解老師所說(shuō)的很多東西方面還不是很成熟,經(jīng)常會(huì)反復(fù)去查閱資料,其原因都是自己沒(méi)有仔細(xì)去揣摩老師上課所講知識(shí)的意思,導(dǎo)致自己無(wú)法理解。終上所述,這都是應(yīng)該值得去注意和深思的,在做任何意見(jiàn)事情時(shí),都要用百分百的態(tài)度去完成它,不能粗心大意了,不然有可能會(huì)浪費(fèi)無(wú)比多的時(shí)間在一些不該出現(xiàn)的小問(wèn)題上。從這次課程設(shè)計(jì)中不僅學(xué)到了很多做事的方法也學(xué)到了許多對(duì)人生應(yīng)有的態(tài)度。受益匪淺。

    參考文獻(xiàn)

    [1] 何立民.單片機(jī)高級(jí)教程[M].北京: 航空航天大學(xué)出版社,2001.

    [2] 王東峰等.單片機(jī)C語(yǔ)言應(yīng)用100例[M].電子工業(yè)出版社,2009.

    [3] 馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京航空航天大學(xué)出版社,2003.

    [4] 王晉凱.簡(jiǎn)簡(jiǎn)單單學(xué)通51單片機(jī)開發(fā) [M].清華大學(xué)出版社,2014.

    [5] 夏繼強(qiáng).單片機(jī)實(shí)驗(yàn)[M].北京: 航空航天大學(xué)出版社,2001.

    總結(jié)

    以上是生活随笔為你收集整理的基于51单片机带显示器的音乐盒设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。