畢業(yè)設(shè)計(jì)(論文)用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本科畢業(yè)設(shè)計(jì)題 目 用單片機(jī)設(shè)計(jì)及制作簡(jiǎn)易電子琴 學(xué) 院 管理科學(xué)與工程學(xué)院 專 業(yè) 電子信息工程 班 級(jí) 071信工(0)班 學(xué) 號(hào) 姓 名 指導(dǎo)老師 2011 年 6 月摘要電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器,它在音樂(lè)演奏中已成為不可缺少的一部分。單片機(jī)是一個(gè)具有功能強(qiáng)大和編程靈活性的控制器,它已廣泛應(yīng)用于現(xiàn)代人們的生活中,扮演著重要的角色。本設(shè)計(jì)主要是使用at89c51單片機(jī)及單片機(jī)c語(yǔ)言,在proteus仿真平臺(tái)上實(shí)現(xiàn)以單片機(jī)為核心控制元件的一個(gè)具有16個(gè)按鍵的電子琴,同時(shí)還增加了音樂(lè)播放功能。本文中給出了該系統(tǒng)設(shè)計(jì)的硬件電路,軟件設(shè)計(jì)等。其次,詳細(xì)闡述了程序的

2、各個(gè)模塊和實(shí)現(xiàn)過(guò)程。本設(shè)計(jì)具有硬件電路簡(jiǎn)單、功能完善、控制可靠、運(yùn)行穩(wěn)定等特點(diǎn),具有一定的實(shí)用性和參考價(jià)值。關(guān)鍵詞: 單片機(jī);電子琴;proteus;c語(yǔ)言abstractorgan music of modern electronic technology combined with the product of a new type of keyboard instruments in its music has become an indispensable part of it. scm is a powerful and programming flexibility of the

3、controller, which has been widely used in modern peoples lives, play an important role. this design mostly using at89c51 microcontroller and the microcontroller c, the proteus simulation platform to achieve a single chip as the core control element of an electronic keyboard with 16 keys, but also in

4、creased the music playback. this paper gives the design of the system hardware and software design. second, detail the various modules of the program and implementation process. this design has a simple hardware circuit, functional, control, reliable, stable performance, practicality and a certain r

5、eference value.keywords : scm;electronic;proteus;c language目錄1 引言11.1目的和意義21.2本系統(tǒng)的主要研究?jī)?nèi)容32 系統(tǒng)分析52.1 系統(tǒng)組成52.2 系統(tǒng)工作原理53 系統(tǒng)硬件設(shè)計(jì)63.1 系統(tǒng)硬件總體設(shè)計(jì)63.2 at89c51單片機(jī)73.2.1 at89c51簡(jiǎn)介73.2.2 at89c51主要特性73.2.3 at89c51管腳說(shuō)明83.2.4 芯片擦除103.3矩陣式鍵盤的識(shí)別和顯示103.3.1.矩陣式鍵盤的結(jié)構(gòu)與工作原理103.3.2矩陣式鍵盤的按鍵識(shí)別方法113.3.3鍵盤接口必須具有的4個(gè)基本功能123.4 按

6、鍵顯示模塊123.4.1數(shù)碼管的分類123.4.2數(shù)碼管的驅(qū)動(dòng)方式133.5 功能顯示模塊143.6 音樂(lè)播放裝置154 系統(tǒng)軟件設(shè)計(jì)194.1 系統(tǒng)整體程序處理流程圖194.2 i/o并行口直接驅(qū)動(dòng)led顯示204.3音樂(lè)播放設(shè)計(jì)204.4放歌子程序流程圖215 系統(tǒng)使用說(shuō)明225.1 系統(tǒng)安裝及配置說(shuō)明225.1.1系統(tǒng)運(yùn)行環(huán)境225.1.2系統(tǒng)安裝及配置225.2 系統(tǒng)操作說(shuō)明226 結(jié)論23參考文獻(xiàn)24致謝25附錄261 引言隨著電子科技的飛速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們多帶來(lái)一點(diǎn)生活上的樂(lè)趣?;诋?dāng)前市場(chǎng)上的玩具市場(chǎng)需求量大,其中電

7、子琴就是一個(gè)很好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以利用軟硬件實(shí)現(xiàn)電子琴的功能,從而實(shí)現(xiàn)電子琴的微型化,可以用作玩具琴、音樂(lè)轉(zhuǎn)盤以及音樂(lè)童車等等。并且可以進(jìn)行一定的功能擴(kuò)展。鑒于傳統(tǒng)電子琴可以用鍵盤上的“k0”到“k16”鍵演奏從低so到高do等16個(gè)音,從而可以用來(lái)彈奏喜歡的樂(lè)曲。電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器,它在現(xiàn)代音樂(lè)扮演著重要的角色。簡(jiǎn)易電子琴是電聲樂(lè)隊(duì)的中堅(jiān)力量,常用于獨(dú)奏主旋律并伴以豐富的和聲。還常作為獨(dú)奏樂(lè)器出現(xiàn),具有鮮明時(shí)代特色。但電子琴的局限性也是十分明顯:旋律與和聲缺乏音量變化,過(guò)于協(xié)和、單一;在模仿各類館、弦樂(lè)器時(shí),音色還不夠逼真,模仿提琴類樂(lè)器

8、的音色時(shí),失真度更大,還需要不斷改進(jìn)。單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89c51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們

9、就可以利用不同的頻率的組合,即可構(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)系弄正確即可。這次的電子琴是由4*4組成16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音。然后再用一個(gè)音頻放大模塊來(lái)使音樂(lè)播出的聲音變大。通過(guò)這16個(gè)鍵的隨意組合可隨意彈奏想要表達(dá)的音樂(lè),使用很簡(jiǎn)單。1.1目的和意義隨著生活水平的提高,在放松自己的同時(shí)又能提高各個(gè)方面的能力。學(xué)習(xí)和欣賞音樂(lè)可以在使人們得到放松的同時(shí),提高人們的精神品質(zhì)和個(gè)人素養(yǎng)。當(dāng)代,愛(ài)好音樂(lè)的年輕人越來(lái)越多,有不少人自己練習(xí)彈奏樂(lè)器,作為業(yè)余愛(ài)好和一

10、種放松的手段,鑒于一些樂(lè)器學(xué)習(xí)難度大,需要太多的學(xué)習(xí)時(shí)間,且其價(jià)格又太過(guò)于高昂,使得一部分有這種想法的人不得不放棄這種想法。而一些簡(jiǎn)易的電子樂(lè)器價(jià)格相對(duì)便宜,學(xué)習(xí)上手快,價(jià)格相對(duì)便宜,一般人容易負(fù)擔(dān)的起,能夠滿足一般愛(ài)好者的需求。故簡(jiǎn)易電子樂(lè)器的研制具有一定的社會(huì)意義。單片機(jī)是在一塊芯片內(nèi)集成了計(jì)算機(jī)的各個(gè)功能部件,構(gòu)成一種單片式的微型計(jì)算機(jī)。二十世紀(jì)八十年代以來(lái),單片機(jī)的發(fā)展迅速,應(yīng)用不斷深入,新技術(shù)層出不窮。并已廣泛應(yīng)用到人類生活的各個(gè)領(lǐng)域,如家電、通訊設(shè)備、玩具、智能卡、汽車及防盜、醫(yī)用保健、儀表、工業(yè)過(guò)程控制等,成為當(dāng)今科學(xué)技術(shù)現(xiàn)代化不可缺少的重要工具。之所以以單片機(jī)電子琴為選題,目的

11、在于從日常生活能接觸到的細(xì)微處著手,通過(guò)理論與實(shí)踐的結(jié)合,更明確自己的所學(xué)所用,也在實(shí)踐中發(fā)現(xiàn)理論的不足,對(duì)目前日益廣泛應(yīng)用的單片機(jī)有了更加理性化和感性化的認(rèn)識(shí),使理論和實(shí)踐相得益彰。通過(guò)單片機(jī)電子琴這個(gè)選題,更深層次的了解了單片機(jī)技術(shù),以前只是有理論,實(shí)踐的機(jī)會(huì)不是很多,在作單片機(jī)電子琴這個(gè)選題的過(guò)程中,更加熟練的掌握了一些單片機(jī)芯片的應(yīng)用,也解決了很多以前理論和實(shí)踐脫節(jié)的問(wèn)題,可謂對(duì)單片機(jī)的認(rèn)識(shí)有了一個(gè)小的飛躍。keil是德國(guó)開發(fā)的一個(gè)51單片機(jī)開發(fā)軟件平臺(tái),最開始只是一個(gè)支持c語(yǔ)言和匯編語(yǔ)言的編譯軟件。keil的vision3可以進(jìn)行純粹的軟件仿真(仿真軟件程序、不接硬件電路),也可以利

12、用硬件仿真器,搭接上單片機(jī)硬件系統(tǒng),在仿真器中載入項(xiàng)目程序后進(jìn)行實(shí)時(shí)仿真,在不需要額外的硬件仿真器的條件下,搭接單片機(jī)硬件系統(tǒng)對(duì)項(xiàng)目程序進(jìn)行實(shí)時(shí)仿真。proteus是英國(guó)labcenter electronics公司開發(fā)的多功能eda軟件。proteus是目前較先進(jìn)的單片機(jī)和嵌入式系統(tǒng)的設(shè)計(jì)與仿真平臺(tái)。它實(shí)現(xiàn)了在計(jì)算機(jī)上完成從原理圖與電路設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測(cè)試與功能驗(yàn)證到形成pcb的完整的電子設(shè)計(jì)、研發(fā)過(guò)程。由于proteus軟件包逼真、真實(shí)的協(xié)同仿真功能,得到了包括劍橋在內(nèi)的眾多大學(xué)用戶,作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實(shí)驗(yàn)和水平考試平臺(tái)。利用proteus

13、與keil整合構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)室,為解決電路設(shè)計(jì)以及仿真提供了很好的發(fā)展平臺(tái)。本設(shè)計(jì)是在keil使用89c51單片機(jī)及單片機(jī)c語(yǔ)言,在proteus仿真平臺(tái)上實(shí)現(xiàn)基于單片機(jī)的簡(jiǎn)易電子琴。對(duì)于提高和改進(jìn)電子琴功能的設(shè)計(jì)有著重要參考意義。1.2本系統(tǒng)的主要研究?jī)?nèi)容單片機(jī)因體積小、功能強(qiáng)、價(jià)格低廉而得到廣泛應(yīng)用。at89c51單片機(jī)設(shè)計(jì)微型電子琴的方法,僅需at89c51最小系統(tǒng),擴(kuò)展一組矩陣鍵盤,再接一組發(fā)光二極管用來(lái)指示電子琴的工作狀態(tài)。本系統(tǒng)分為兩個(gè)部分,一個(gè)是音樂(lè),另一個(gè)就是電子琴。音樂(lè)播放部分:樂(lè)音實(shí)際上是有固定周期的信號(hào)。本文介紹用at89c51的兩個(gè)定時(shí)器(如t0,t1)控制,在p3

14、.7腳上輸出方波周期信號(hào),產(chǎn)生樂(lè)音,通過(guò)矩陣鍵盤按鍵產(chǎn)生不同的音符,由此操作人員可以隨心所欲的彈奏自己所喜愛(ài)的樂(lè)曲,當(dāng)不想彈奏時(shí)通過(guò)按放歌鍵可以演奏事先存放在單片機(jī)中的幾首動(dòng)聽的曲子供消遣。當(dāng)歌曲演奏完時(shí),通過(guò)按復(fù)位鍵便可回到初始狀態(tài),這樣就做出了一臺(tái)微型電子琴。由于一首音樂(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)系弄正確即可。樂(lè)曲中,每一音符對(duì)應(yīng)著確定的頻率,我們將每一音符的時(shí)間

15、常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)?lè)曲中的所有常數(shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。電子琴?gòu)椬嗖糠郑簩?shí)際上就是把每個(gè)按鍵所對(duì)應(yīng)的值經(jīng)過(guò)處理后發(fā)給單片機(jī),再在單片機(jī)內(nèi)把數(shù)字當(dāng)作指針指向所對(duì)應(yīng)的音符。本設(shè)計(jì)要實(shí)現(xiàn)的功能有:由4x4組成16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音??呻S意彈奏想要表達(dá)的音樂(lè)。詳細(xì)過(guò)程:當(dāng)系統(tǒng)掃描到鍵盤上有鍵子被按下,則快速檢測(cè)出是那一個(gè)鍵子,然后單片機(jī)的定時(shí)器被啟動(dòng),發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動(dòng)電路放大濾波后,就會(huì)發(fā)出相應(yīng)的音調(diào)。假如在前一個(gè)按下的鍵發(fā)聲的同時(shí)有另一個(gè)鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停止,轉(zhuǎn)到后按

16、的鍵的發(fā)音程序,發(fā)出后按的鍵的音。2 系統(tǒng)分析2.1 系統(tǒng)組成該系統(tǒng)通過(guò)電子琴按鍵隨意鍵入所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過(guò)識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過(guò)這樣可以不斷的彈奏音樂(lè)。嵌入式電路,按鍵電路,led顯示電路和兩個(gè)功能鍵組成,通過(guò)功能鍵可以選擇播放音樂(lè)。其主要模塊由五個(gè)部分組成,具體關(guān)系如圖2.1所示。圖2.1 系統(tǒng)組成框圖本系統(tǒng)的電路基本模塊:51單片機(jī)中心、矩陣鍵盤模塊、顯示模塊、發(fā)音模塊、功能選擇模塊。2.2 系統(tǒng)工作原理 工作原理描述如下:打開電子琴電源開關(guān)后,電子琴默認(rèn)為彈奏狀態(tài),彈奏顯示燈點(diǎn)亮,數(shù)碼管顯示為0。按下矩陣鍵盤中的任意鍵,揚(yáng)聲

17、器發(fā)相應(yīng)的音調(diào),數(shù)碼管顯示對(duì)應(yīng)的數(shù)字。按下播放按鈕,電子琴處于自動(dòng)播放狀態(tài),播放顯示燈點(diǎn)亮,此時(shí),按下矩陣鍵盤中的任意鍵,揚(yáng)聲器發(fā)出存儲(chǔ)在單片機(jī)內(nèi)部的對(duì)應(yīng)的樂(lè)曲,數(shù)碼管顯示對(duì)應(yīng)的按鍵數(shù)字。再按彈奏/停止鍵,音樂(lè)停止。彈奏顯示燈點(diǎn)亮。此時(shí)系統(tǒng)又處于彈奏狀態(tài)。3 系統(tǒng)硬件設(shè)計(jì)3.1 系統(tǒng)硬件總體設(shè)計(jì)將設(shè)計(jì)的電子琴硬件部分進(jìn)行模塊化設(shè)計(jì),主要分以下模塊:(1)矩陣鍵盤模塊:系統(tǒng)采用4*4矩陣鍵盤。(2)顯示模塊:系統(tǒng)采用led顯示管顯示。(3)功能顯示模塊:采用發(fā)光二極管顯示彈奏、播放兩種狀態(tài)。(4)發(fā)音模塊:采用揚(yáng)聲器發(fā)音。(5)控制中心模塊:at89c51單片機(jī)。硬件整體電路圖如圖3.1所示。圖

18、3.1 硬件整體電路圖3.2 at89c51單片機(jī)3.2.1 at89c51簡(jiǎn)介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,俗稱單片機(jī)。at89c51它是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,at89c51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及

19、引腳排列如圖3.2所示。圖3.2 at89c51引腳分布圖3.2.2 at89c51主要特性與mcs-51 兼容 4k字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0hz-24mhz三級(jí)程序存儲(chǔ)器鎖定1288位內(nèi)部ram32可編程i/o線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路3.2.3 at89c51管腳說(shuō)明vcc:供電電壓。gnd:接地。p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地

20、址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上

21、拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問(wèn)外部存儲(chǔ)器

22、時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無(wú)效。psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)

23、。ea/vpp:當(dāng)保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為reset;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來(lái)自反向振蕩器的輸出。另外,p3口也可作為at89c51的一些特殊功能口,如下所示。l 口管腳 備選功能l p3.0 rxd(串行輸入口)l p3.1 txd(串行輸出口)l p3.2 /int0(外部中斷0)l p3.3 /int1(外部中斷1)l p3.4 t0(記時(shí)器0

24、外部輸入)l p3.5 t1(記時(shí)器1外部輸入)l p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)l p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)l p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。3.2.4 芯片擦除整個(gè)perom陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ale管腳處于低電平10ms 來(lái)完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram、定時(shí)器、計(jì)數(shù)器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ra

25、m的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3.3矩陣式鍵盤的識(shí)別和顯示3.3.1.矩陣式鍵盤的結(jié)構(gòu)與工作原理在鍵盤中按鍵數(shù)量較多時(shí),為了減少i/o口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如p1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一

26、些,本系統(tǒng)中的矩陣鍵盤中,列線通過(guò)電阻接正電源,并將行線所接的單片機(jī)的i/o口作為輸出端,而列線所接的i/o口則作為輸入。這樣,當(dāng)按鍵沒(méi)有按下時(shí),所有的輸出端都是高電平,代表無(wú)鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過(guò)讀入輸入線的狀態(tài)就可得知是否有鍵按下了。矩陣式鍵盤如圖3.3所示。圖3.3 矩陣式鍵盤3.3.2矩陣式鍵盤的按鍵識(shí)別方法確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤,介紹過(guò)程如下。1、判斷鍵盤中有無(wú)鍵按下。將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電

27、平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無(wú)鍵按下。2、判斷閉合鍵所在的位置。在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。3.3.3鍵盤接口必須具有的4個(gè)基本功能(1)去抖動(dòng):每個(gè)按鍵在按下或松開時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為520mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài),只有處在

28、穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別正確無(wú)誤。去抖問(wèn)題可通過(guò)軟件延時(shí)或硬件電路解決。(2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒(méi)有釋放又有新的按鍵按下時(shí)產(chǎn)生的問(wèn)題。常用的方法有雙鍵鎖定和n鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。n鍵輪回,是當(dāng)檢測(cè)到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。(3)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問(wèn)題,一般可通過(guò)軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤逐行掃描,通過(guò)檢測(cè)到的列輸出狀態(tài)來(lái)確定閉合鍵,為此,需要設(shè)置入

29、口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過(guò)行列顛倒兩次掃描來(lái)識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。(4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤編碼表,通過(guò)查表獲得被按鍵的鍵碼。用at89c51的并行口p0接44矩陣鍵盤,以p0.0p0.3作輸入線,以p0.4p0.7作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“0f”序號(hào)。3.4 按鍵顯示模塊3.4.1數(shù)碼管的分類數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管

30、;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(com)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。3.4.2數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們

31、要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5840根i/o端口來(lái)驅(qū)動(dòng),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加

32、位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o

33、端口,而且功耗更低。顯示模塊如圖3.4所示。圖3.4 顯示模塊3.5 功能顯示模塊當(dāng)按下彈奏/停止功能鍵時(shí),d1燈點(diǎn)亮,此時(shí),電子琴系統(tǒng)處于彈奏狀態(tài);當(dāng)按下播放鍵時(shí),d2燈點(diǎn)亮,此時(shí),電子琴系統(tǒng)處于自動(dòng)播放內(nèi)置音樂(lè)狀態(tài)。此系統(tǒng)的功能顯示模塊如圖3.5所示。圖3.5 功能顯示模塊3.6 音樂(lè)播放裝置一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能像電子琴那樣能演奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常

34、把中央c上方的a音定為標(biāo)準(zhǔn)音高,其頻率f=440hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與,2(來(lái))與正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1i八音區(qū)為例,12個(gè)半音是:11、12、22、23、34、44,45、5一5、56、66、67、7i。這12個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。知道了一個(gè)音符的頻率后,若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周

35、期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將p3.7反相,然后重復(fù)計(jì)時(shí)再反相。就可在p3.7引腳上得到此頻率的脈沖。為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器預(yù)置不同的定時(shí)值就可實(shí)現(xiàn)。利用at89c51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(mode1)下,改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523hz,其周期t1/5231912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s956,每計(jì)數(shù)956次時(shí)將i/o反相,就可得到中音do(523hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是: nfi2fr 式中,n是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12mhz

36、時(shí),其頻率為1mhz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值t的求法如下:t65536n65536fi2fr例如:設(shè)k65536,fi1mhz,求低音do(261hz)、中音do(523hz)、高音do(1046hz)的計(jì)數(shù)值。t65536n65536fi2fr6553610000002fr65536500000/fr低音do的t65536500000/26263628中音do的t65536500000/52364580高音do的t65536500000/104665058單片機(jī)12mhz晶振,高中低音符與計(jì)數(shù)t0相關(guān)的計(jì)數(shù)值如表2所示。表2 音符頻率表音符頻率(hz)簡(jiǎn)譜碼(t值)音符頻率(hz

37、)簡(jiǎn)譜碼(t值)休止00中 4 fa69864820低1 do26263628中 5 so78464898低2 re29463835中 6 la88064968低 3 m33064021中 7 si98865030低 4 fa34964103高 1 do104665058低 5 so39264260高 2 re117565110低 6 la44064400高 3 m131865157低 7 si49464524高 4 fa139765178中 1 do52364580高 5 so156865217中 2 re58764684高 6 la176065252中 3 m65964777高 7 si1

38、96765283我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù)。uint code tab=0,63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=c 、1=g 等等,這里1=c,1=g表示樂(lè)譜的曲調(diào), 、就是用來(lái)表示節(jié)拍的。以為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:其中1

39、 、2 為一拍,3、4、5為一拍,6為一拍,共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms??梢?jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十

40、六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類推。音樂(lè)的音拍,以一個(gè)節(jié)拍為單位(c調(diào)),如表3所示。 表3 曲調(diào)值表曲調(diào)值delay曲調(diào)值delay調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符

41、的相關(guān)參數(shù),如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。音樂(lè)播放裝置的工作原理:當(dāng)打開電子琴電源后,按下彈奏按鈕,再按下矩陣鍵盤任意鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)的單個(gè)音調(diào);若按下歌曲選擇按鈕,再按矩陣鍵盤任意鍵,揚(yáng)聲器便發(fā)出存儲(chǔ)在單片機(jī)內(nèi)的對(duì)應(yīng)的一段音樂(lè)。發(fā)聲裝置如圖3.6所示。圖3.6 發(fā)聲裝置4 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)整體程序處理流程圖系統(tǒng)整體程序處理流程圖4.1所示。圖4.1 整體程序處理流程圖在電子琴開始工作時(shí),系統(tǒng)默認(rèn)電子琴處于彈奏狀態(tài),歌曲選擇功能鍵的目的是賦予矩陣鍵盤第二功能,即對(duì)系統(tǒng)內(nèi)置的歌曲進(jìn)行選擇,在放歌時(shí)能且只能通過(guò)彈奏/停止鍵來(lái)結(jié)束放歌,選歌時(shí)必須先按下歌

42、曲選擇功能鍵,在通過(guò)矩陣鍵盤來(lái)選擇和切換曲目。4.2 i/o并行口直接驅(qū)動(dòng)led顯示把“at89c51”區(qū)域中的p2.0/a8p2.7/a15端口用8芯排線連接到一位數(shù)碼管的ah端口上;要求:p2.0/a8與a相連,p2.1/a9與b相連,p2.2/a10與c相連,p2.7/a15與h相連。表1 字形碼表及對(duì)應(yīng)的音符00x3f低 5 so80x7f中 6 la10x06低 6 la90x6f中 7 si20x5b低 7 sia0x77高 1 do30x4f中 1 dob0x7c高 2 re40x66中 2 rec0x39高 3 m50x6d中 3 md0x5e高 4 fa60x7d中 4 fa

43、e0x79高 5 so70x07中 5 sof0x71高 6 la在本設(shè)計(jì)中,數(shù)碼管的顯示通過(guò) p2=dsy_codek這句語(yǔ)言來(lái)查表并輸出,實(shí)現(xiàn)音符的顯示。4.3音樂(lè)播放設(shè)計(jì)在音樂(lè)播放程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器。其中t0用來(lái)產(chǎn)生音符頻率,t1用來(lái)產(chǎn)生音拍。音樂(lè)播放流程圖如圖4.2所示。圖4.2 音樂(lè)播放流程圖4.4放歌子程序流程圖放歌子程序流程圖如下圖4.3所示。圖4.3 放歌子程序流程圖該程序?qū)崿F(xiàn)的是單首曲目循環(huán)播放,無(wú)法在程序內(nèi)部實(shí)現(xiàn)歌曲的切換。只能通過(guò)外部功能鍵來(lái)實(shí)現(xiàn)曲目及功能的切換,是該電子琴設(shè)計(jì)的一個(gè)缺憾。相信如果有更多的時(shí)間來(lái)進(jìn)行調(diào)試和設(shè)計(jì),這個(gè)設(shè)計(jì)會(huì)更加好。5 系統(tǒng)使用說(shuō)明5

44、.1 系統(tǒng)安裝及配置說(shuō)明5.1.1系統(tǒng)運(yùn)行環(huán)境支持proteus和keil u v3運(yùn)行的操作系統(tǒng)為:windows 98/me/2000/xp,該軟件對(duì)pc硬件要求不高,當(dāng)前主流機(jī)器配置都可以滿足它的運(yùn)行要求,本系統(tǒng)所實(shí)用安裝軟件為proteus 7.4,實(shí)驗(yàn)過(guò)程中該軟件運(yùn)行流暢,反應(yīng)迅速。5.1.2系統(tǒng)安裝及配置步驟一:安裝proteus軟件。步驟二:安裝keil軟件。步驟三:keil和proteus的配置因?yàn)槔胟eil和proteus的結(jié)合可以搭建我們自己的仿真平臺(tái),所以我們還需要安裝vdmagdi.exe驅(qū)動(dòng)。為了讓系統(tǒng)運(yùn)行起來(lái),我們需要做一些配置工作,具體工作如下:(1)首先啟動(dòng)p

45、roteus,打開要仿真的工程文件,然后配置proteus軟件,選擇“debug”“use remote debug monitor”。(2)調(diào)出編輯at89c51屬性的對(duì)話框,將其程序文件設(shè)置為空。(3)keil uv3的設(shè)定,首先啟動(dòng)proteus仿真項(xiàng)目對(duì)應(yīng)的keil中的工程。(4)在工程工作區(qū)選中“target1”,并右擊選中“options for target target1”。選中“output”中“creat hex fi”和“debug”中“use remote debug monitor”。5.2 系統(tǒng)操作說(shuō)明熟悉keil集成開發(fā)環(huán)境和proteus仿真軟件的使用,完成兩個(gè)

46、軟件的聯(lián)機(jī)調(diào)試。6 結(jié)論將程序?qū)隺t89c51芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本課題通過(guò)制作電子琴,將幾個(gè)模塊很好的融合起來(lái),對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。說(shuō)明一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,于是我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來(lái)將音樂(lè)聲音放大,同時(shí)通過(guò)顯示模塊來(lái)確知自己所

47、彈的音符。通過(guò)這次課程設(shè)計(jì),我感覺(jué)收獲了很多:首先,通過(guò)實(shí)踐,加深對(duì)單片機(jī)系列知識(shí)及其系統(tǒng)的認(rèn)識(shí)。這個(gè)設(shè)計(jì)題目并不是新的,但從中能體現(xiàn)到一個(gè)系統(tǒng)開發(fā)設(shè)計(jì)的過(guò)程,足于讓我們受益。第二,通過(guò)設(shè)計(jì)學(xué)習(xí)到了很多軟件的使用。本次設(shè)計(jì),軟件部分用到了protues進(jìn)行硬件設(shè)計(jì),用keil進(jìn)行程系編譯,用protel進(jìn)行制板。第三,提高了自己的動(dòng)手能力。動(dòng)手在一定程度上反映了一個(gè)人的能力,作為當(dāng)代大學(xué)生,社會(huì)要求的我們不是只能說(shuō)而不能做的人才;作為安徽財(cái)經(jīng)大學(xué)的一員,“三能”人才標(biāo)準(zhǔn)更讓我清醒地認(rèn)識(shí)到,實(shí)際動(dòng)手能力無(wú)比重要。從這次實(shí)物制作中,我的動(dòng)手能力提高了。感謝我們的朱老師教育了我們單片機(jī)相關(guān)知識(shí)。 本

48、設(shè)計(jì)還可以擴(kuò)展其他功能,比如記憶功能,即可以存儲(chǔ)彈奏者所彈奏的音樂(lè)且保存,待彈奏完后播放給彈奏者聽。還可以做得更加娛樂(lè)一點(diǎn),增加一些彩燈使彩燈隨著音調(diào)變化而產(chǎn)生不同的樣式。參考文獻(xiàn)1 徐惠民,安德寧.單片微型計(jì)算機(jī)原理、接口及應(yīng)用.第二版 m, 北京:北京郵電大學(xué)出版社,20002 劉樂(lè)喜.微機(jī)計(jì)算機(jī)接口技術(shù)及應(yīng)用.華中科技大學(xué)出版社.2005.083 謝嘉奎.電子線路(線性部分).高等教育出版社.2004.044 潭浩強(qiáng).c語(yǔ)言程序設(shè)計(jì).清華大學(xué)出版社.2005.075 李群芳,肖看.單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ).清華大學(xué)出版社.2005.036 馮博琴.微型計(jì)算機(jī)原理與接口技術(shù)

49、.清華大學(xué)出版社.20047 長(zhǎng)德,李華,李東.mcs51/98系列單片機(jī)原理與應(yīng)用.機(jī)械工業(yè)出版社.19978 李群芳,張士軍,黃建.單片微型計(jì)算機(jī)原理與接口技術(shù).電子工業(yè)出版社.20029 石東海等.單片機(jī)數(shù)據(jù)通信技術(shù)從入門到精通.西安電子科技大學(xué)出版社.200210 馮建華,趙亮編.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)m. 北京:人民郵電出版社,2004.1111 劉午平,幸坤濤.小家電與洗衣機(jī)修理從入門到精通m.北京:國(guó)防工業(yè)出版社,2004.6.12 王曉明.電動(dòng)機(jī)的單片機(jī)控制m.北京:航天航空大學(xué)出版社,2002.513 曾璐,李明.基于at89c52單片機(jī)的洗衣機(jī)智能控制系統(tǒng)j. 家電科

50、技, 2007.0214 傅豐林,陳建編.低頻電子線路m.北京:高等教育出版社,200615 蔣力培.單片微機(jī)系統(tǒng)實(shí)用教程 m.北京:機(jī)械工業(yè)出版社, 2004致謝值此論文完成之際,謹(jǐn)向給予我指導(dǎo)、關(guān)心和幫助的老師、同學(xué)、朋友、親人表示最衷心的感謝。首先,要特別感謝我的指導(dǎo)老師朱其祥老師。 老師在我畢業(yè)論文的撰寫過(guò)程中,給我提供了極大的幫助和指導(dǎo)。從開始選題到中期修正,再到最終定稿, 老師給我提供了許多寶貴建議。老師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許

51、多待人接物與為人處世的道理。其次,要感謝所有曾經(jīng)給我們071信工0班任課的老師,老師們教會(huì)我的不僅僅是專業(yè)知識(shí),更多的是對(duì)待學(xué)習(xí)、對(duì)待生活的態(tài)度。第三,感謝我的父母親,你們是我力量的源泉,只要有你們,不管面對(duì)什么樣的困難,我都不會(huì)害怕,謝謝你們對(duì)我的支持與鼓勵(lì)!再次,感謝我的室友及其他好友,因?yàn)橛心銈兊膸椭?,我的論文得以順利完成。感謝你們,大學(xué)四年給我了那么多的幫助與鼓勵(lì),在我不開心的時(shí)候,總能讓我開心起來(lái)。不會(huì)忘記,大學(xué)四年里我們一起度過(guò)的歡樂(lè)時(shí)光,那些開心的日子,總是那么令人難以忘懷。最后對(duì)老師,同學(xué)和家人再次致以我最衷心的感謝!教導(dǎo)過(guò)我的老師,你們的人格魅力永記我心間。身邊的同學(xué)和朋友,

52、有你們,我的大學(xué)才算完整。寢室的好友,你們的天賦猶如上天恩賜,有了你們我的生活更加精彩。感謝那些同做畢業(yè)設(shè)計(jì)的戰(zhàn)友,那段光輝歲月不管成敗,友情最可貴。附錄本設(shè)計(jì)完整程序如下:#include #include #include #include #define uchar unsigned char#define uint unsigned intuchar sth0; /定時(shí)器計(jì)數(shù)初值uchar stl0; bit fy=0; /放樂(lè)曲時(shí)fy=1, 電子琴?gòu)椬鄷r(shí)fy=0uchar song_index=0,tone_index=0; /放音樂(lè)的參數(shù)uchar k, key;sbit spk=

53、p37;sbit led1=p10;sbit led2=p11;uchar code dsy_code= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;uchar code song100= /任意選幾首音樂(lè)的旋律10,16,10,9,10,9,10,10,9,6,8,10,9,9,8,6,8,9,10,12,9,10,13,12,5,9,8,9,8,6,8,9,10,12,9,10,13,12,10,9,10,9,8,12,13,10,6,10,9,9,8,10,12,15

54、,12,13,12,13,12,10,10,12,12,10,12,13,15,16,15,12,10,9,12,10,10,10,12,15,12,13,15,16,15,12,10,12,15,13,10,-1,8,9,10,8,8,9,10,8,10,11,12,10,11,12,12,13,12,11,10,8,12,13,12,11,10,8,8,12,8,8,12,8,-1,3,2,1,3,2,1,1,2,3,2,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1,10,10,10,9,10,9,10,9,9,6,6,7,8,9,8,7,6,5,6,-1,10,10,10,9,10,13,12,13,12,12,9,9,10,11,12,11,10,9,8,10,10,-1,13,14,13,12,12,10,12,10,12,9,13,12,10,9,10,10,-1,9,13,13,13,8,13,13,13,13,14,15,14,13,14,13,14,10,10,-1,13,14,13,12,12,10,12,10,12,13,14,13,14,13,14,10,-1,9,13,13,13

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論