單片機(jī)是經(jīng)典的嵌入式微控制器(Microcontroller Unit),縮寫為MCU,最早是被利用于工業(yè)控制領(lǐng)域。因?yàn)樵诠I(yè)控制領(lǐng)域單片機(jī)有著廣泛的應(yīng)用,所以誕生了單片機(jī)開發(fā)板這樣的系統(tǒng)使更多的產(chǎn)品開發(fā)人員、業(yè)內(nèi)人士、學(xué)生來學(xué)習(xí)單片機(jī)這門技術(shù),其中比較出名的單片機(jī)開發(fā)板有電子人DZR-01A。單片機(jī)是從芯片內(nèi)部僅有的特殊處理器發(fā)展起來的,它最開始的設(shè)計(jì)思路是將CPU與大量的外圍設(shè)備通過一個(gè)微處理器集成在一起,從而使得計(jì)算機(jī)系統(tǒng)變得更迷你,組裝到繁雜的且對體積要求比較小的控制裝備之中更簡單。Zilog公司的Z80便是最早使用這種設(shè)計(jì)思想做出來的的cpu,自此以后,單片機(jī)和計(jì)算機(jī)CPU的發(fā)展便成為了兩個(gè)不同的方向。
單片機(jī)相當(dāng)于把一個(gè)復(fù)雜的計(jì)算機(jī)系統(tǒng)濃縮到一個(gè)微小的芯片上,它計(jì)算機(jī)相比只缺少了輸入/輸出設(shè)備,所以可以把它看作一個(gè)微型的計(jì)算機(jī)?梢愿艣r的講成:一塊相當(dāng)于一臺計(jì)算機(jī)的芯片。它的質(zhì)量輕、體積小、價(jià)格便宜、為開發(fā)、應(yīng)用和學(xué)習(xí)提供了便利條件。所以,如果你想要了解計(jì)算機(jī)原理與結(jié)構(gòu),那么學(xué)習(xí)使用單片機(jī)是最簡單的選擇。
電子琴是大規(guī)模集成電路和音樂結(jié)合的產(chǎn)物,它因?yàn)槟苣M各種樂器的音色而受到群眾們喜愛。本設(shè)計(jì)制作了一種除了有普通電子琴彈奏功能外,還擁有一種存儲播放樂曲功能。本設(shè)計(jì)是以AT89S52單片機(jī)作為一個(gè)簡單電子琴系統(tǒng)設(shè)計(jì)的核心部件,其原理是因?yàn)槊總(gè)表有固定的振動頻率,所以可以利用89S52單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器改變計(jì)數(shù)值來產(chǎn)生各個(gè)音調(diào)對應(yīng)的方波頻率來驅(qū)動揚(yáng)聲器播放出不同音調(diào)。這僅僅只是單片機(jī)應(yīng)用的一個(gè)點(diǎn),希望能由點(diǎn)到面,更好的了解和應(yīng)用單片機(jī)技術(shù)。
8個(gè)譯碼輸出顯示的數(shù)碼管,以顯示目標(biāo)芯片的32 位輸出信號,且8個(gè)發(fā)光管也能顯示目標(biāo)器件的8位輸出信號。時(shí)鐘為50MHz ,輸出接揚(yáng)聲器。
具體過程:主系統(tǒng)可由兩個(gè)模塊組成:當(dāng)系統(tǒng)檢測到有按鍵按下時(shí),對應(yīng)音符的頻率由模塊1獲得,這是一個(gè)數(shù)控分頻器。由其clk端輸入一具有較高頻率的信號,分頻后輸出。
音符的持續(xù)時(shí)間須根據(jù)樂曲的速度及每個(gè)音符的節(jié)拍數(shù)決定,模塊2的功能是為模塊1提供決定所發(fā)音的分頻預(yù)置值,而此數(shù)在模塊1輸入口停留的時(shí)間即為此音符的節(jié)拍值。
采用AT89S52單片機(jī)的兩個(gè)定時(shí)器(如T0,T1)控制頻率,在P1.0引腳上輸出方波周期信號,產(chǎn)生聲音,按下不同的模擬按鍵就會產(chǎn)生不同的音符,所以使用者可以通過本電子琴系統(tǒng)暢所欲為的彈奏自己想要彈的樂曲。
具體過程:當(dāng)系統(tǒng)掃描到鍵盤上有鍵子被按下,則快速檢測出是那一個(gè)鍵子,然后單片機(jī)的定時(shí)器被啟動,發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出相應(yīng)的音調(diào)。。如果在前一個(gè)按下的鍵發(fā)聲的同時(shí)有另一個(gè)鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序,發(fā)出后按鍵的音。
對比兩套方案各有優(yōu)缺點(diǎn),方案一采用CPLD,工作速度快,系統(tǒng)穩(wěn)定,效果好,但是其價(jià)格昂貴;而方案二在設(shè)計(jì)這樣小型電子方面,無論是效果還是工作速度與方案一相差不大,而且價(jià)格較為便宜。因此,選擇方案二即單片機(jī)加外設(shè)的方式設(shè)計(jì)該系統(tǒng)比較好。
由AT89S52單片機(jī)、獨(dú)立鍵盤、音頻功率放大模塊、揚(yáng)聲器、數(shù)碼管、存儲播放模塊所組成。
圖1 系統(tǒng)結(jié)構(gòu)框架
AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
圖2 AT89S52
本設(shè)計(jì)共含有10個(gè)按鍵,其中8個(gè)按鍵分別接著P2.0~P2.7引腳,代表著8個(gè)音符。當(dāng)按下這八個(gè)按鍵其中一個(gè)按鍵時(shí),數(shù)碼管也會顯示一個(gè)與音調(diào)對應(yīng)的數(shù)字來指示用戶所按下的按鍵。而另外兩個(gè)按鍵為功能按鍵,按下可播放已存儲的歌曲,另一個(gè)按下可中斷播放音樂。這兩個(gè)功能按鍵連接著的引腳分別是P3.2、P3.3。如圖3所示。
圖3按鍵圖
由于本次設(shè)計(jì)需要的單片機(jī)I/O端口不多,所以數(shù)碼管顯示方式采用了靜態(tài)顯示驅(qū)動,數(shù)碼管將直接由單片機(jī)I/O端口驅(qū)動, 又因?yàn)長ED數(shù)碼管是電流控制元件,所以使用時(shí)要上一個(gè)加限流電阻。數(shù)碼管顯示是通過單片機(jī)查表得出編碼,然后單片機(jī)再驅(qū)動端口決定數(shù)碼管顯示的數(shù)字,按鍵與數(shù)碼管顯示程序的一致性就是這么實(shí)現(xiàn)的。連接在P0.1-P0.3,4個(gè)引腳上,并加一個(gè)排阻。如圖4所示。
圖4數(shù)碼管與單片機(jī)的連接圖
揚(yáng)聲器采用兩個(gè)三極管來放大音頻,串連著一個(gè)可調(diào)節(jié)電阻,用來調(diào)節(jié)聲音大小,整個(gè)模塊由單片機(jī)P1.0引腳控制。如圖5所示。
圖5揚(yáng)聲器的連接圖
經(jīng)由電解電容和非極性電容構(gòu)成的濾波網(wǎng)絡(luò)和三端穩(wěn)壓器LM7805的穩(wěn)壓作用后,輸出+5V的直流電壓。
圖6電源電路圖
時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。
AT89C51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,圖9是AT89S51內(nèi)部時(shí)鐘方式的電路,C1和C2的典型值通常選擇為30pF,石英晶體常選6MHz或12MHz的。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式做時(shí)鐘電路
圖7時(shí)鐘電路圖
本設(shè)計(jì)的基本流程是對初始化的單片機(jī)進(jìn)行鍵盤掃描,判斷其有無按鍵按下,若有則需要繼續(xù)判斷按鍵的類別,判斷它是功能選擇鍵還是獨(dú)立鍵盤上的音調(diào)鍵,若是獨(dú)立鍵盤,則通過P1.0發(fā)生頻率播放音調(diào),通過P0顯示數(shù)碼管數(shù)字。若是功能選擇鍵,則播放程序儲存好的音樂歌曲,然后檢測是否按下中斷鍵,若是則停止播放,不是則一直播放到結(jié)束。此設(shè)計(jì)使用的語言選擇中,匯編語言是面向特定機(jī)型的需要,在不同的計(jì)算機(jī)指令系統(tǒng)上和不同的微控制器上,指令結(jié)構(gòu)有著云泥之別,就算指令大同小異,它也不能夠移植。C語言是一種高級語言,可以結(jié)構(gòu)化編程,還可以 移植。使用標(biāo)準(zhǔn)C語言的程序編程,完全可以不作任何修改就能夠移植到不同的系統(tǒng)平臺上。基于以上對比,本設(shè)計(jì)系統(tǒng)更適合C語言來進(jìn)行編程。
Proteus是英國著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺。
利用Proteus仿真軟件將Keil軟件中的C語言程序?qū)敕抡骐娐分,燈泡D1亮,按下播放鍵,單片機(jī)存儲的音樂可自動播放,按下停止鍵,音樂播放停止。復(fù)位鍵按下后,系統(tǒng)復(fù)位,八個(gè)按鍵可隨按鍵者隨意按下彈奏音樂,同時(shí)數(shù)碼管顯示相對應(yīng)的節(jié)奏。
根據(jù)功能需求與電路結(jié)構(gòu)得知,當(dāng)開關(guān)按下時(shí),將可有其連接的輸入口讀取到低電平,再次制作的一個(gè)八鍵的電子琴,若按下S1,則發(fā)出中音DO,如按下S2,則發(fā)中Re,以此類推,按下的同時(shí)數(shù)碼管顯示相對應(yīng)的數(shù)字。此外,該電子琴不僅可以自己彈奏也可自動播放所存儲的音樂,數(shù)碼管顯示相對應(yīng)的音符。
本設(shè)計(jì)利用AT89S52單片機(jī)設(shè)計(jì)一個(gè)簡易電子琴,具備電子琴的基本功能,分析了利用單片機(jī)簡易電子琴設(shè)計(jì)的基本原理,并介紹了AT89S52單片機(jī)設(shè)計(jì)的電子琴統(tǒng)硬件系統(tǒng)。改變AT89S52的定時(shí)器里面的特殊功能寄存器TH0及TL0在模式1下的計(jì)數(shù)值,便會產(chǎn)生不同方波頻率,然后通過揚(yáng)聲器產(chǎn)生對應(yīng)的音調(diào)。最終將編寫的源程序轉(zhuǎn)換為機(jī)器碼導(dǎo)入單片機(jī)芯片,仿真調(diào)試運(yùn)行后,就可以實(shí)現(xiàn)利用按鍵彈奏想要的歌曲。與此同時(shí)仿真調(diào)試軟件用的是protues,源程序編譯軟件用的是keil,所以對這兩款軟件的掌握熟練度也增加了許多。
課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程,隨著科學(xué)技術(shù)發(fā)展的日新月異,大規(guī)模芯片已經(jīng)成為當(dāng)今計(jì)算機(jī)運(yùn)用中空前活躍的領(lǐng)域,在生活中可以說是無處不在。以此作為二十一世紀(jì)的大學(xué)生來說掌握開發(fā)技術(shù)是十分重要的。
通過本次實(shí)驗(yàn),我不僅可以鞏固以前學(xué)過的知識,如數(shù)電知識,系統(tǒng)設(shè)計(jì)和C語言,而且學(xué)到了很多在書本上所沒有學(xué)到的知識,如實(shí)踐經(jīng)驗(yàn)和操作技巧。我懂得了理論與實(shí)踐相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,光看書部進(jìn)行相關(guān)的聯(lián)系是行不通的,只有把所學(xué)的理論知識與實(shí)踐結(jié)合起來,從而提高自己的實(shí)際動手能力和獨(dú)立思考能力。在此次電子琴設(shè)計(jì)中也讓我學(xué)會了Proteus和Keil這兩個(gè)軟件的基本應(yīng)用,多掌握了兩門技術(shù),對自己以后要做此方面的設(shè)計(jì)打下了基礎(chǔ)。于此同時(shí)也讓我知道了,做任何事情都要學(xué)會團(tuán)隊(duì)合作要多學(xué)多問,知道請教,不能自己一味悶頭去做,應(yīng)該多請教老師和同伴的意見和建議。在設(shè)計(jì)過程難免會遇到各種各樣的問題,同時(shí)在設(shè)計(jì)的的過程中發(fā)現(xiàn)了自己的不足之處,對以前學(xué)過的知識理解的不夠深刻,掌握的不夠牢固,通過這次課程設(shè)計(jì)之后,把以前學(xué)過的知識重新溫故,全部整合,進(jìn)一步深刻理解。我們要學(xué)會學(xué)習(xí)的能力,能夠舉一反三,觸類旁通,這樣對自己以后的發(fā)展有很大的幫助,因此我們需要在學(xué)習(xí)中學(xué)習(xí),在實(shí)踐中找出答案!
仿真圖如下:
電路圖如下:
PCB圖如下:
實(shí)物圖如下:
代碼如下:
完整的Word格式文檔51黑下載地址:
基于51單片機(jī)的簡易電子琴設(shè)計(jì).doc
(5.11 MB, 下載次數(shù): 73)
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |