版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于STC89C52單片機(jī)的電子琴</p><p> 學(xué)院名稱: </p><p> 專 業(yè): </p><p> 班 級(jí): </p><p> 姓 名: </p><p
2、> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p><b> **年**月</b></p><p><b> 目錄</b></p><p><b> 摘要2</b>
3、</p><p><b> 第一章 引言3</b></p><p> 第二章 任務(wù)要求與總體設(shè)計(jì)方案3</p><p> 2.1 設(shè)計(jì)任務(wù)與要求3</p><p> 2.2 設(shè)計(jì)方案3</p><p> 2.2.1 播放模塊3</p><p> 2.2
4、.2 按鍵控制模塊4</p><p> 2.3 總體硬件組成框圖4</p><p> 三、硬件設(shè)計(jì)及說(shuō)明4</p><p> 3.1系統(tǒng)組成及總體框圖4</p><p><b> 3.2元件簡(jiǎn)介5</b></p><p> 3.2.1 STC89SC525</p>
5、<p> 3.2.2 LM3866</p><p> 3.3各功能模塊原理圖8</p><p> 3.4.1 STC89C2模塊電路原理圖8</p><p> 3.4.2鍵盤(pán)掃描模塊電路原理圖9</p><p> 3.4.3音頻處理模塊電路原理圖10</p><p><b>
6、 四、軟件設(shè)計(jì)11</b></p><p> 4.1 音樂(lè)相關(guān)知識(shí)11</p><p> 4.2如何用單片機(jī)實(shí)現(xiàn)音樂(lè)的節(jié)拍11</p><p> 4.3如何用單片機(jī)產(chǎn)生音頻脈沖12</p><p> 4.4系統(tǒng)總體功能流程圖12</p><p><b> 五、系統(tǒng)調(diào)試15&
7、lt;/b></p><p> 5.1硬件調(diào)試15</p><p> 5.2 軟件調(diào)試15</p><p> 六、課程設(shè)計(jì)總結(jié)以及心得體會(huì)15</p><p><b> 七、參考文獻(xiàn)16</b></p><p> 附錄1:元器件清單16</p><p&
8、gt; 附錄2:主要電路原理圖17</p><p> 附錄3:程序清單18</p><p><b> 摘 要 </b></p><p> 電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一
9、部分。本文的主要內(nèi)容是用STC89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可靠性價(jià)比較高等,具有一定的實(shí)用和參考價(jià)值。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 鍵盤(pán)揚(yáng)聲器 電子琴</p><p><b> Abstr
10、act</b></p><p> Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control fu
11、nctions and flexible programming characteristics. It has converged with modern people's lives, become an irreplaceable part. The main content is AT89S51 control of the core components, design of a electronic organ. S
12、CM as a host to the core, with the keyboard, speaker and other core modules. In the main control mod</p><p> Key words : SCM keyboard speaker electronic organ</p><p><b>
13、 引言</b></p><p> 單片微型計(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ī)的開(kāi)發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。</p><p> 電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重
14、要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89S51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。</p><p> 本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的
15、音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。</p><p> 一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。<
16、;/p><p> 第二章 任務(wù)要求與總體設(shè)計(jì)方案</p><p> 2.1 設(shè)計(jì)任務(wù)與要求</p><p> 利用所給鍵盤(pán)的4*4十六個(gè)鍵,能夠發(fā)出16個(gè)不同的音調(diào),并用P1.7的高低電平控制功能是為按鍵還是播放存在芯片中的音樂(lè)。當(dāng)接高電平時(shí)為音樂(lè)盒,接低電平時(shí)為按鍵的電子琴。當(dāng)系統(tǒng)掃描到鍵盤(pán)按下,則快速檢測(cè)出是哪一個(gè)按鍵被按下,然后單片機(jī)的定時(shí)器啟動(dòng),發(fā)出一定頻
17、率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動(dòng)電路放大濾波后,就會(huì)發(fā)出相應(yīng)的音調(diào)。如果在前一個(gè)按下的鍵發(fā)聲的同時(shí)有另一個(gè)按鍵被按下,則啟動(dòng)中斷系統(tǒng)。前面的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序。發(fā)出后按的鍵的音調(diào)。</p><p><b> 2.2 設(shè)計(jì)方案</b></p><p> 2.2.1 播放模塊</p><p> 播放模塊是由喇叭構(gòu)成,它幾乎不存在
18、噪聲,音響效果較好,而且由于所需驅(qū)動(dòng)功率較小,且價(jià)格低廉,所以,被廣泛應(yīng)用。</p><p> 2.2.2 按鍵控制模塊</p><p> 電子琴設(shè)有16個(gè)按鍵,其中16個(gè)作為音符輸入。16個(gè)按鍵分別代表167個(gè)音符,包括中音段的全部音符,低高音的部分音符。通過(guò)軟硬件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過(guò)查詢電子琴所按下的按鍵,讀取電子琴輸入
19、狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序入口,實(shí)現(xiàn)自編歌曲的輸入。</p><p> 2.3 總體硬件組成框圖</p><p> 該設(shè)計(jì)方案是通過(guò)按鍵隨意按下所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過(guò)識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過(guò)這樣可以不斷的彈奏我們想要的音符或者是音調(diào),電路由復(fù)位電路和功能按鍵電路組成,通過(guò)P1.7的高低電平可以選擇播放音樂(lè)或者彈奏音節(jié),硬件主要有下面幾
20、個(gè)部分組成。</p><p> 圖2-1電子琴硬件設(shè)計(jì)框圖</p><p> 用P2口的高四位和P2口的低四位作為按鍵的接口,用P1口做信號(hào)輸出口。</p><p> 第三章 硬件設(shè)計(jì)及說(shuō)明</p><p> 3.1系統(tǒng)組成及總體框圖</p><p> 硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,
21、具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。</p><p> 該設(shè)計(jì)要實(shí)現(xiàn)一種由單片機(jī)控制的電子琴,單片機(jī)工作于12MHZ時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0,工作模式為1,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào)。該設(shè)計(jì)具有16個(gè)音節(jié)的鍵盤(pán),用戶可以根據(jù)樂(lè)譜在鍵盤(pán)上進(jìn)行演奏,音樂(lè)發(fā)生器會(huì)根據(jù)用戶的彈奏,通過(guò)揚(yáng)聲器將音樂(lè)播放出來(lái)。由于本例實(shí)現(xiàn)的音樂(lè)發(fā)生器是由用戶通過(guò)鍵盤(pán)輸入彈奏樂(lè)曲
22、的,所以節(jié)拍由用戶掌握,不由程序控制。用單片機(jī)產(chǎn)生的音頻脈沖直接驅(qū)動(dòng)揚(yáng)聲器并不能產(chǎn)生所要實(shí)現(xiàn)的音樂(lè),因?yàn)樗鼪](méi)有足夠的驅(qū)動(dòng)能力,這就需要音頻功率放大電路。</p><p> 本例使用國(guó)家半導(dǎo)體公司的低壓音頻功率放大器LM386來(lái)實(shí)現(xiàn)音頻功放電路。</p><p> 圖3-1 系統(tǒng)結(jié)構(gòu)圖</p><p><b> 3.2元件簡(jiǎn)介</b>&
23、lt;/p><p> 3.2.1 STC89C52</p><p> STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容
24、。</p><p> 主要功能特性如表二所示:</p><p> 表二 STC89C52主要功能</p><p> 3.2.2 LM386</p><p> LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大 器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益
25、調(diào)為任意值,直至 200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場(chǎng)合。LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。</p><p> LM386的封裝形式有塑封8引線雙列直插式和貼片式。</p><p&
26、gt; 圖3-2 LM386的封裝形式</p><p> 特性(Features)</p><p> 靜態(tài)功耗低,約為4mA,可用于電池供電。 工作電壓范圍寬,4-12V or 5-18V。 外圍元件少。 電壓增益可調(diào),20-200。 低失真度。</p><p> 其典型應(yīng)用電
27、路如下:</p><p> 圖3-3 放大器增益=20(最少器件)</p><p> 圖3-4 放大器增益=50 </p><p> 圖3-5 低頻提升放大器</p><p> 3.4 各功能模塊原理圖</p><p> 3.4.1 STC89C52模塊電路原理圖</p><p>
28、單片機(jī)主程序模塊通過(guò)對(duì)鍵盤(pán)掃描程序信號(hào)的讀取,在通過(guò)對(duì)應(yīng)的表,取出數(shù)碼管顯示編碼和定時(shí)器初始值以產(chǎn)生不同的聲音信號(hào)。在這一過(guò)程中,對(duì)數(shù)碼管編碼是直接賦值,對(duì)聲音信號(hào)則是通過(guò)中斷程序進(jìn)行控制。</p><p> 圖3-7STC89C52模塊電路原理圖</p><p> 3.4.2鍵盤(pán)掃描模塊電路原理圖</p><p> 對(duì)鍵盤(pán)掃描電路的掃描方式有行掃描法和線反轉(zhuǎn)
29、法,在此次程序編寫(xiě)中,采用行掃描法,通過(guò)在p3.0~p3.3上循環(huán)送出0掃描信號(hào),p3.4~p3.7輸入按鍵上的高低電平信息給單片機(jī),經(jīng)處理程序,判斷出是哪個(gè)開(kāi)關(guān)按下,并送主程序以實(shí)現(xiàn)不同功能。</p><p> 圖3-8 鍵盤(pán)掃描模塊電路原理圖</p><p> 3.4.4音頻處理模塊電路原理圖</p><p> 由于單片機(jī)驅(qū)動(dòng)能力不夠,在處理音符信號(hào)時(shí),需
30、加功率放大裝置,因LM386芯片具有低功耗、高增益的特點(diǎn),這合適單片機(jī)低功耗輸出,所以加裝LM386音頻信號(hào)放大器對(duì)信號(hào)進(jìn)行放大。</p><p> 圖3-10 音頻處理模塊電路原理圖</p><p><b> 第四章 軟件設(shè)計(jì)</b></p><p> 本軟件設(shè)計(jì)關(guān)鍵是要實(shí)現(xiàn)一種由單片機(jī)控制的簡(jiǎn)單音樂(lè)發(fā)生器,它由16個(gè)音節(jié)組成的的鍵盤(pán),
31、用戶可以根據(jù)樂(lè)譜在鍵盤(pán)上進(jìn)行演奏,音樂(lè)發(fā)生器會(huì)根據(jù)用戶的彈奏,通過(guò)揚(yáng)聲器將音樂(lè)播放出來(lái)。</p><p> 4.1 音樂(lè)相關(guān)知識(shí)</p><p> 樂(lè)音聽(tīng)起來(lái)有的高,有的低,這就叫音高,音高是由發(fā)音物體振動(dòng)頻率的高低決定的,頻率高聲音就高,頻率低聲音就低,不同音商的樂(lè)音是用C、D、E、F、G、A、B表示的,這7個(gè)字母就是樂(lè)音的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、S
32、I,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫唱名。</p><p> 音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示,休止符表示暫停發(fā)音。</p><p> 一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同的頻率,這樣就可以利用不同頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。</p><p> 4.2如何用單片機(jī)實(shí)現(xiàn)音樂(lè)的節(jié)拍</p><p> 除
33、了音符以外,節(jié)拍也是音樂(lè)的關(guān)鍵組成部分。</p><p> 節(jié)拍實(shí)際上就是音持續(xù)時(shí)間的長(zhǎng)短,在單片機(jī)系統(tǒng)中可以用延時(shí)來(lái)實(shí)現(xiàn),如果1/4拍的延時(shí)是0.4秒,則1拍的延時(shí)是1.6秒,只要知道1/4拍的延時(shí)時(shí)間,其余的節(jié)拍延時(shí)時(shí)間就是它的陪數(shù)。如果單片機(jī)要自己播放音樂(lè),那么必須在程序設(shè)計(jì)中考慮到節(jié)拍的設(shè)置,由于本例實(shí)現(xiàn)的音樂(lè)發(fā)生器是由用戶通過(guò)鍵盤(pán)輸入彈奏樂(lè)曲的,所以節(jié)拍由用戶掌握,不由程序控制。對(duì)于不同的曲調(diào)我們也可
34、以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。音樂(lè)的音拍,一個(gè)節(jié)拍為單位(C調(diào))具體如下表:</p><p> 表4-1 音樂(lè)節(jié)拍表</p><p> 4.3如何用單片機(jī)產(chǎn)生音頻脈沖</p><p> 了解音樂(lè)的一些基本知識(shí)后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè),對(duì)于單片機(jī)而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào),因此,
35、需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。</p><p> 在本實(shí)驗(yàn)中,單片機(jī)工作于12MHZ時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0,工作模式為1,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào),在此情況下,C調(diào)的各音符頻率與計(jì)數(shù)值T的對(duì)照如下表:</p><p> 表4-2 音符頻率與計(jì)數(shù)值T的對(duì)照表</p><p> T的值決定了TH0
36、和TL0的值,其關(guān)系為:TH0=T/256,TL0=T%256</p><p> 4.4系統(tǒng)總體功能流程圖</p><p> 該程序設(shè)計(jì)思路比較清晰既從開(kāi)始到聲明變量與函數(shù)再到讀取按鈕開(kāi)關(guān),判斷是否按下,然后就是一個(gè)一個(gè)按鈕的動(dòng)作。其主程序如下: </p><p> 圖4-1 主程序框圖 </p><p> 按鍵子程序流程圖如下:
37、</p><p><b> 第五章 系統(tǒng)調(diào)試</b></p><p> 電路調(diào)試是整個(gè)系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個(gè)調(diào)試過(guò)程分為三大部分:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。</p><p><b> 5.1硬件調(diào)試</b></p><p> 硬件調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行調(diào)試。</
38、p><p> 在上電前,先確保電路中不在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是否存在斷路或者短路情況等。注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開(kāi)路以及短路的現(xiàn)象出現(xiàn)。</p><p> 在確保硬件電路正常,無(wú)異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否
39、接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì)中,上電調(diào)試主要鍵盤(pán)單片機(jī)控制部分和音頻轉(zhuǎn)換電路硬件調(diào)試。</p><p> 鍵盤(pán)單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤(pán)可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。</p><p><b> 5.2 軟件調(diào)試</b></p><p> 調(diào)試主要方法和技巧:</p><p> 通常一個(gè)
40、調(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)試。</p><p> 第六章 課程設(shè)計(jì)總結(jié)以及心得體會(huì)</p><p> 通過(guò)這周的單片機(jī)課程設(shè)計(jì),我學(xué)到了不少課本上沒(méi)有的知識(shí),也鍛煉了自己的
41、動(dòng)手能力,將以前學(xué)過(guò)的零散的知識(shí)串到一起。</p><p> 首先在課程設(shè)計(jì)剛開(kāi)始的調(diào)研階段,我學(xué)會(huì)了怎么通過(guò)各種方式查詢相關(guān)的資料。通過(guò)對(duì)這些資料的學(xué)習(xí),我大致了解了單片機(jī)的發(fā)展現(xiàn)狀以及未來(lái)的發(fā)展趨勢(shì),認(rèn)識(shí)到目前單片機(jī)方面的各種各樣的發(fā)展,和它們之間的競(jìng)爭(zhēng)。了解了單片機(jī)方面的先進(jìn)技術(shù),這些都為我的未來(lái)的學(xué)習(xí)指明了方向。</p><p> 我的課程設(shè)計(jì)主要涉及軟件方面的內(nèi)容,通過(guò)這些我
42、的軟件開(kāi)發(fā)能力都獲得了提高。設(shè)計(jì)了一個(gè)單片機(jī)最小系統(tǒng)。通過(guò)開(kāi)發(fā)板的設(shè)計(jì)和硬件搭建的過(guò)程,使我對(duì)51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如復(fù)位,鍵盤(pán)等。</p><p> 在軟件方面,通過(guò)串行口調(diào)試工具的開(kāi)發(fā),使我加深了對(duì)于封裝的理解,熟</p><p> 悉了51系列單片機(jī)內(nèi)部的寄存器和編程規(guī)則,以及如何控制外圍電路。</p>
43、<p> 最后,感謝老師的精心指導(dǎo),使我能夠完成這次課程設(shè)計(jì)。</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用(第二版)[M].西安電子科技大學(xué)出版社,2001年9月第1版</p><p> 【2】徐志軍,王金明,伊廷輝等. EDA技術(shù)與PLD設(shè)計(jì)[M].人民郵電出版社,
44、2006年2月第1版</p><p> 【3】趙鑫,蔣亮,齊兆群等.數(shù)字電路設(shè)計(jì)[M].北京機(jī)械工業(yè)出版社,2005年6月第一版.</p><p> 【4】蘇家健、曹柏榮、汪志鋒.單片機(jī)原理及應(yīng)用技術(shù)[M].高等教育出版社</p><p> 【5】[美]Ashish Wilfred Meeta Gupta Kartik Bhatnagar著,劉永明,賀民譯.
45、php專業(yè)項(xiàng)目實(shí)例開(kāi)發(fā)[J]. 水利水電出版社,2003</p><p> 【6】于海生. 微型計(jì)算機(jī)控制技術(shù)選編[M].清華大學(xué)出版社,1999.</p><p> 【7】李朝青. 單片機(jī)原理及接口技術(shù)[M]. 北京:北京航天航空大學(xué)出版色,2001.【8】胡漢才. 單片機(jī)原理及其接口技術(shù)[M]. 北京:清華大學(xué)出版社,2004.</p><p><
46、b> 附錄1:元器件清單</b></p><p> 揚(yáng)聲器 一只</p><p> 按鍵 16只</p><p> 電容: 0.1uf 五只</p><p> 晶振: 12M 一只 </p><p> 瓷片
47、電容: 20pf 二只 </p><p> 電解電容: 10uf 三只 </p><p><b> 47uf 一只</b></p><p> 電阻 10K 四只</p><p> 集成塊: LM386 一只</p><p&g
48、t; STC89C52 一只</p><p> 附錄2:主要電路原理圖</p><p><b> 附錄3:程序清單</b></p><p> MAIN: </p><p> KEYBUF EQU 30H</p><p> STH0 EQU 31H</p>
49、;<p> STL0 EQU 32H</p><p> TEMP EQU 33H </p><p><b> ORG 0000H</b></p><p> LJMP START</p><p><b> ORG 000
50、BH</b></p><p> LJMP INT_T0</p><p><b> ORG 1000h</b></p><p> LJMP SHENGRIGE</p><p><b> ORG 1100h</b></p><p> START: MO
51、V TMOD,#01H ;定時(shí)器0方式一</p><p> SETB EA ;開(kāi)中斷</p><p><b> SETB ET0</b></p><p> LOOP: MOV A,P1 ;判斷電子琴的功能為放置已存音樂(lè)還是按鍵電子琴,高電平為音樂(lè)盒,低電平為電子琴</p>
52、<p> ANL A,#80H</p><p> CJNE A,00H,LOOP1</p><p><b> JMP WAIT</b></p><p> LOOP1: LJMP SHENGRIGE</p><p> WAIT: MOV P3,#0FFH ;判斷是否有鍵按下?&
53、lt;/p><p> CLR P3.4 ;是否第一行有鍵按下?</p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY1</b>
54、</p><p> LCALL DELY10MS</p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY1</b></p><
55、p><b> MOV A,P3</b></p><p> ANL A,#0FH ;若有,則判斷是該行哪一列按下</p><p> CJNE A,#0EH,NK1</p><p> MOV KEYBUF,#0</p><p><b> LJMP DK1</b></p
56、><p> NK1: CJNE A,#0DH,NK2 </p><p> MOV KEYBUF,#1</p><p><b> LJMP DK1</b></p><p> NK2: CJNE A,#0BH,NK3</p><p> MOV KEYBUF,#2<
57、;/p><p><b> LJMP DK1</b></p><p> NK3: CJNE A,#07H,NK4</p><p> MOV KEYBUF,#3</p><p><b> LJMP DK1</b></p><p> NK4: NOP<
58、;/p><p> DK1: MOV A,KEYBUF ;判斷好后將初值裝入T0中</p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,KEY
59、BUF</p><p><b> MOV B,#2</b></p><p><b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p>
60、<p> MOV STH0,A</p><p><b> MOV TH0,A</b></p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV
61、 STL0,A</p><p><b> MOV TL0,A</b></p><p><b> SETB TR0</b></p><p> DK1A: MOV A,P3 ;判斷按鍵是否松開(kāi),若沒(méi)有繼續(xù)剛才的聲音,若松開(kāi)則音樂(lè)停止。</p><p> ANL A,#0
62、FH</p><p> XRL A,#0FH</p><p><b> JNZ DK1A</b></p><p><b> CLR TR0</b></p><p> NOKEY1: MOV P3,#0FFH ;是否第二行有鍵按下?</p><p>&l
63、t;b> CLR P3.5</b></p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY2</b></p><p> LCA
64、LL DELY10MS</p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p> JZ NOKEY2 ;若有則判斷該行哪一列按下?</p><p><b> MOV
65、 A,P3</b></p><p> ANL A,#0FH</p><p> CJNE A,#0EH,NK5</p><p> MOV KEYBUF,#4</p><p><b> LJMP DK2</b></p><p> NK5: CJNE A,#0DH,NK6
66、</p><p> MOV KEYBUF,#5</p><p><b> LJMP DK2</b></p><p> NK6: CJNE A,#0BH,NK7</p><p> MOV KEYBUF,#6</p><p><b> LJMP DK2</b>
67、</p><p> NK7: CJNE A,#07H,NK8</p><p> MOV KEYBUF,#7</p><p><b> LJMP DK2</b></p><p> NK8: NOP</p><p> DK2: MOV A,KEYBUF
68、 ;若有按下,重裝T0</p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,KEYBUF</p><p><b> MOV B,#2<
69、;/b></p><p><b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p>&l
70、t;b> MOV TH0,A</b></p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0
71、,A</b></p><p><b> SETB TR0</b></p><p> DK2A: MOV A,P3 ;是否鍵按彈開(kāi),若沒(méi)有繼續(xù),則繼續(xù)發(fā)出原來(lái)的聲音。</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p>
72、<p><b> JNZ DK2A</b></p><p><b> CLR TR0</b></p><p> NOKEY2: MOV P3,#0FFH ;判斷第三行是否有鍵按下?</p><p><b> CLR P3.6</b></p>
73、<p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY3</b></p><p> LCALL DELY10MS</p><p><b&g
74、t; MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY3</b></p><p><b> MOV A,P3</b></p><p> ANL A,#0
75、FH</p><p> CJNE A,#0EH,NK9 ;判斷該行哪一列按下?</p><p> MOV KEYBUF,#8</p><p><b> LJMP DK3</b></p><p> NK9: CJNE A,#0DH,NK10</p><p> MO
76、V KEYBUF,#9</p><p><b> LJMP DK3</b></p><p> NK10: CJNE A,#0BH,NK11</p><p> MOV KEYBUF,#10</p><p><b> LJMP DK3</b></p><p>
77、NK11: CJNE A,#07H,NK12</p><p> MOV KEYBUF,#11</p><p><b> LJMP DK3</b></p><p> NK12: NOP</p><p> DK3: MOV A,KEYBUF ;判斷好哪個(gè)按鍵按下后,重裝T
78、0</p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,KEYBUF</p><p><b> MOV B,#2</b></p>
79、;<p><b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0
80、,A</b></p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b><
81、/p><p><b> SETB TR0</b></p><p> DK3A: MOV A,P3 ;判斷按鍵是否彈開(kāi),若無(wú),繼續(xù)發(fā)出剛剛的聲音。</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b>
82、; JNZ DK3A</b></p><p><b> CLR TR0</b></p><p> NOKEY3: MOV P3,#0FFH ;是否第四行有鍵按下?</p><p><b> CLR P3.7</b></p><p><b>
83、MOV A,P3</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY4</b></p><p> LCALL DELY10MS</p><p><b> MOV A,P3</b&g
84、t;</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ NOKEY4</b></p><p> MOV A,P3 ;判斷改行哪一列按鍵按下</p><p> ANL A,#0FH</p&
85、gt;<p> CJNE A,#0EH,NK13</p><p> MOV KEYBUF,#12</p><p><b> LJMP DK4</b></p><p> NK13: CJNE A,#0DH,NK14</p><p> MOV KEYBUF,#13</p><
86、;p><b> LJMP DK4</b></p><p> NK14: CJNE A,#0BH,NK15</p><p> MOV KEYBUF,#14</p><p><b> LJMP DK4</b></p><p> NK15: CJNE A,#07H,NK16
87、</p><p> MOV KEYBUF,#15</p><p><b> LJMP DK4</b></p><p> NK16: NOP</p><p> DK4: MOV A,KEYBUF ;判斷好后重裝T0</p><p>
88、MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,KEYBUF</p><p><b> MOV B,#2</b></p><p><b> M
89、UL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b></p>
90、<p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p><p><b&g
91、t; SETB TR0</b></p><p> DK4A: MOV A,P3 ;判斷按鍵是否彈開(kāi),若無(wú),繼續(xù)發(fā)出原來(lái)的聲音。</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ DK4A</b>&l
92、t;/p><p><b> CLR TR0</b></p><p> NOKEY4: LJMP LOOP </p><p> DELY10MS: MOV R6,#10 ;延時(shí)子程序</p><p> C1: MOV R7,#248</p>
93、;<p><b> DJNZ R7,$</b></p><p> DJNZ R6,C1</p><p><b> RET</b></p><p> SHENGRIGE:mov tmod,#01h ;設(shè)定時(shí)方式 </p><p> mov ie,#82h ;開(kāi)中斷 </p
94、><p> start0: mov 30h,#00h ; 18 </p><p> next: mov a,30h </p><p> mov dptr,#table3 </p><p> movc a,@a+dptr ;查表取音調(diào)和節(jié)拍 </p><p><b> mov r2,a <
95、;/b></p><p> jz end0 ;為零,不進(jìn)行處理. </p><p> anl a,#0fh </p><p> mov r5,a ;將節(jié)拍存入R5 </p><p><b> mov a,r2 </b></p><p><b> swap a </b
96、></p><p> anl a,#0fh </p><p> jnz sing ;根據(jù)音調(diào)決定是否演奏. </p><p><b> clr tr0 </b></p><p><b> jmp d1 </b></p><p> sing: dec a
97、 </p><p> mov 22h,a ;將音調(diào)存入22H. </p><p><b> rl a </b></p><p> mov dptr,#table2 </p><p> movc a,@a+dptr ;根據(jù)音調(diào)決定定時(shí)器初值. </p><p> mov th0,a ;放入
98、TH0 </p><p> mov STH0,a </p><p> mov a,22h </p><p><b> rl a </b></p><p><b> inc a </b></p><p> movc a,@a+dptr </p><
99、p> mov tl0,a ;放入TL0 </p><p> mov STL0,a </p><p> setb tr0 ;啟動(dòng)定時(shí) </p><p> d1: Lcall delay </p><p><b> inc 30h </b></p><p><b>
100、; jmp next </b></p><p> end0: clr tr0 </p><p> jmp start0 </p><p> delay: mov r7,#02h ;延時(shí)子程序 </p><p> d2: mov r4,#187 </p><p> d3:
101、 mov r3,#248 </p><p> djnz r3,$ </p><p> djnz r4,d3 </p><p> djnz r7,d2 </p><p> djnz r5,delay </p><p><b> ret </b></p><p
102、> INT_T0: PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV TH0,STH0</p><p> MOV TL0,STL0</p><p><b> CPL P1.0</b></p><p><b&
103、gt; POP PSW</b></p><p> POP ACC </p><p><b> RETI</b></p><p> TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p> DB 7FH,6FH,77H,7CH,39H,5EH,7
104、9H,71H</p><p> TABLE1: DW 64021,64103,64260,64400</p><p> DW 64524,64580,64684,64777</p><p> DW 64820,64898,64968,65030</p><p> DW 65058,65110,65157,65178</p>
105、;<p> table2: DW 64260,64400,64524,64580</p><p> DW 64684,64777,64820,64898</p><p> DW 64968,65030,65058,65110</p><p> DW 65157,65178,65217</p><p> table3:
106、 DB 82H,01H,81H,94H,84H</p><p> DB 0B4H,0A4H,04H</p><p> DB 82H,01H,81H,94H,84H</p><p> DB 0C4H,0B4H,04H</p><p> DB 82H,01H,81H,0F4H,0D4H</p><p> DB
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于stc89c52單片機(jī)的電子密碼鎖畢業(yè)設(shè)計(jì)
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- STC89C52單片機(jī).doc
- stc89c52單片機(jī).pdf
- stc89c52單片機(jī)畢業(yè)論文
- 基于at89c52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)
- 基于stc89c52單片機(jī)的避障智能小車-畢業(yè)設(shè)計(jì)
- 基于stc89c52單片機(jī)紅外測(cè)溫系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論