基于AT89C51單片機的電子琴設計含程序文件_第1頁
基于AT89C51單片機的電子琴設計含程序文件_第2頁
基于AT89C51單片機的電子琴設計含程序文件_第3頁
基于AT89C51單片機的電子琴設計含程序文件_第4頁
基于AT89C51單片機的電子琴設計含程序文件_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、. . . . 單片機電子琴設計題 目:學 院:專業:班 級:姓 名: 完成日期:可演奏的電子琴摘要:隨著社會的發展進步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會向惡。我們都會抽空欣賞世界名曲,作為對精神的洗禮。本論文設計一個基于單片機的簡易電子琴。電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本系統是以51系列單片機AT89C51為主控制器,附有矩陣鍵盤、LED顯示管、揚聲器組成。系統完成顯示輸入信息、播放相應音符等基本功能。本系統

2、運行穩定,其優點是硬件電路簡單,軟件功能完善,控制系統可靠,性價比較高等,具有一定的實用和參考價值。關鍵詞:AT89C51,矩陣鍵盤,LED顯示管,揚聲器。1 引言1.1 目的和意義單片微型計算機是大規模集成電路技術發展的產物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩定可靠、應用廣泛的特點。它的應用必定導致傳統的控制技術從根本上發生變革。因此,單片機的開發應用已成為高科技和工程領域的一項重大課題。電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的

3、一部分。本文的主要容是用AT89S51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個按鍵和揚聲器。本文主要對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴統硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理與各模塊的程序的調試來詳細闡述。本系統是簡易電子琴的設計,按下鍵盤矩陣中的按鍵會使數碼管顯示當前按鍵,揚聲器播放器對應的音符。通過設計本系統可了解單片機的基本功能。對單片機的了解有一個小的飛躍。1.2 本系統主要研究容本系統設計

4、制作一個可演奏的電子琴。綜合應用了兩項設計。(1)鍵盤矩陣識別。即矩陣掃描,顯示當前按鍵。(2)不同頻率音符播放。可以通過按鍵控制16種發音。1.3 主要芯片簡介AT89S51是一個低功耗,高性能CMOS 8位單片機,片含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統與80C51引腳結構,芯片集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。

5、0;   AT89S51具有如下特點:40個引腳(引腳圖如圖1-2所示),4k Bytes Flash片程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP

6、、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。2 系統分析2.1 系統組成本系統只要以51單片機為主控核心,與矩陣鍵盤、揚聲器、LED顯示管模塊一起組合而成。具體如下:2.2 系統工作原理本系統掃描鍵盤矩陣、顯示按鍵、揚聲器發出對應音符。4X4行列式鍵盤識別與顯示原理如下:組成鍵盤的按鍵有機械式、電容式、導電橡膠式、薄膜式多種,但不管什么形式,其作用都是一個使電路接通與斷開的開關。目前微機系統中使用的鍵盤按其功能不同,通常可分為編碼鍵盤和非編碼鍵盤兩種基本類型。編碼鍵盤:鍵盤本身帶有實現接口主要功能所需的硬件電路。不僅能自動檢測被按下的鍵,并完成去抖動、防串鍵等功能,而且能提供與被

7、按鍵功能對應的鍵碼(如ASCII碼)送往CPU。所以,編碼鍵盤接口簡單、使用方便。但由于硬件電路較復雜,因而價格較貴。非編碼鍵盤:鍵盤只簡單地提供按鍵開關的行列矩陣。有關按鍵的識別、鍵碼的確定與輸入、去抖動等功能均由軟件完成。目前微機系統中,一般為了降低成本大多數采用非編碼鍵盤。鍵盤接口必須具有去抖動、防串鍵、按鍵識別和鍵碼產生4個基本功能。(1)去抖動:每個按鍵在按下或松開時,都會產生短時間的抖動。抖動的持續時間與鍵的質量相關,一般為520mm。所謂抖動是指在識別被按鍵是必須避開抖動狀態,只有處在穩定接通或穩定斷開狀態才能保證識別正確無誤。去抖問題可通過軟件延時或硬件電路解決。(2)防串鍵:

8、防串鍵是為了解決多個鍵同時按下或者前一按鍵沒有釋放又有新的按鍵按下時產生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當有兩個或兩個以上的按鍵按下時,只把最后釋放的鍵當作有效鍵并產生相應的鍵碼。N鍵輪回,是當檢測到有多個鍵被按下時,能根據發現它們的順序依次產生相應鍵的鍵碼。 (3)被按鍵識別:如何識別被按鍵是接口解決的主要問題,一般可通過軟硬結合的方法完成。常用的方法有行掃描法和線反轉法兩種。行掃描法的基本思想是,由程序對鍵盤逐行掃描,通過檢測到的列輸出狀態來確定閉合鍵,為此,需要設置入口、輸出口一個,該方法在微機系統中被廣泛使用。線反轉法的基本思想是通過行列顛倒兩次掃描來識別閉

9、合鍵,為此需要提供兩個可編程的雙向輸入/輸出端口。 (4)鍵碼產生:為了從鍵的行列坐標編碼得到反映鍵功能的鍵碼,一般在存區中建立一個鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用AT89S51的并行口P1接4×4矩陣鍵盤,以P1.0P1.3作輸入線,以P1.4P1.7作輸出線;在數碼管上顯示每個按鍵的“0F”序號。總體電路具體原理如下:3 系統硬件設計3.1 系統硬件總體設計本系統由鍵盤矩陣、LED顯示管、揚聲器這幾個部分組成,LED顯示管顯示當前按鍵,揚聲器發出對應音符。硬件總體設計圖如下:3.2子系統(模塊)一LED顯示模塊如圖2-2所示,利用AT89S51單片機的P0端口的P0.0P

10、0.7連接到一個七段數碼管的ah的筆段上,數碼管的公共端接電源。矩陣掃描顯示當前按鍵模塊如下:3.3子系統(模塊)二矩陣掃描揚聲器發出對應音符模塊如下:4 系統軟件設計4.1 系統軟件總體設計本系統的軟件流程圖如下:4.2 子系統一七段LED顯示器部由七個條形發光二極管和一個小圓點發光二極管組成,根據各管的極管的接線形式,可分成共陰極型和共陽極型。 LED數碼管的ga七個發光二極管因加正電壓而發亮,因加零電壓而不以發亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼。本系統按鍵顯示模塊軟件流程圖如下:4.3子系統二一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可

11、以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系正確即可。利用AT89C51的部定時器使其工作計數器模式(MODE1)下,改變計數值TH0與TL0以產生不同頻率的方法產生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計數器計時956s/1s956,每計數956次時將I/O反相,就可得到中音DO(523Hz)。    計數脈沖值與頻率的關系式(如式2-1所示)是:  

12、0;                      Nfi÷2÷fr                         2-1式中,N是

13、計數值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產生的頻率。其計數初值T的求法如下:                        T65536N65536fi÷2÷fr    例如:設K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)

14、的計數值。    T65536N65536fi÷2÷fr655361000000÷2÷fr65536500000/fr    低音DO的T65536500000/26263627    中音DO的T65536500000/52364580    高音DO的T65536500000/104665059本系統按鍵發出對應音符模塊軟件流程圖如下:5 系統使用說明5.1 系統安裝與配置說明5.1.1系統運行環境WINDOWS XP PROTEU

15、S 7.1 SP2Keil uv3 2.125.1.2系統安裝與配置安裝Protues 和keil uVsision3。5.2 系統操作說明 (1)Keil下編譯,產生目標HEX文件,Proteus下Programme Files選擇產生的HEX文件,點擊運行開始模擬。(2)開啟本系統,數碼管顯示“-”。(3)按任意鍵盤,數碼管顯示所按下的鍵盤數,揚聲器發出相應的音符。6 結論通過這次課程設計,我學到了不少課本上沒有的知識,也鍛煉了自己的動手能力,將以前學過的零散的知識串到一起。經過我長時間的設計與調試,本系統基本能實現按下鍵盤矩陣中的按鍵會使數碼管顯示當前按鍵,揚聲器播放對應的音符

16、。但由于仿真系統原因,本設計音頻效果不是很好。不足之處有:1.可彈奏的音符數較少,只能在一定圍滿足用戶需要。可通過改進鍵盤識別模塊和發生模塊來增加其復雜度2.音量不可調。我的綜合設計主要涉與硬件和軟件兩方面的容,通過這些我的硬件和軟件開發能力都獲得了提高。首先硬件方面,基本了解了電子產品的開發流程和所要做的工作。基本掌握了Protel99SE原理圖的方法,并設計了一個單片機最小系統。通過開發板的設計和硬件搭建的過程,使我對51系單片機的接口有了更深層次的理解,熟悉了一些單片機常用的外圍電路引腳和連接方法,如LED數碼管,鍵盤等。并且我學會了分析問題解決問題的能力,加深了對所學理論知識的理解和運

17、用。我的動手能力得到了很大的提高,創新意識得到了鍛煉。參考文獻1 偉.單片機C語言程序設計實訓100例.電子工業.2009年2 吳運昌模擬電子線路基礎:華南理工大學,2004年3 閻石數字電子技術基礎:高等教育,1997年4 曉麗等數據結構與算法:機械工業,2002年5 馬忠梅等 ARM&Linux嵌入式系統教程:航空航天大學,2004年6建忠單片機原理與應用:電子科技大學,2002年7志軍等.單片機應用系統設計M.機械工業,20048周潤景等. Proteus在MCS-51&ARM7系統中的應用百例M.電子工業,20069馬忠梅等.單片機的C語言應用程序設計M.航空航天大學,

18、200610樹中,書膺,王春平.單片機和液晶顯示驅動器串行接口的實現J.微計算機信息,2007附錄本系統總體代碼如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code DSY_Table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF;uint code Tone_Delay_Table=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178;sbit BEEP=P30;uchar KeyNo;void DelayMS(uchar x)uchar i;while(x-) for(i=0;i<120;i+);void Keys_Scan()uchar Tmp,k;P1=0x0F;DelayMS(2);Tmp=P10x0F;switch(Tmp)case 1:k=0;break;case 2:k=1;break;case 4:k=2;break;case 8:k

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論