c51單片機(jī)課程設(shè)計(jì)-電子琴_第1頁(yè)
c51單片機(jī)課程設(shè)計(jì)-電子琴_第2頁(yè)
c51單片機(jī)課程設(shè)計(jì)-電子琴_第3頁(yè)
c51單片機(jī)課程設(shè)計(jì)-電子琴_第4頁(yè)
c51單片機(jī)課程設(shè)計(jì)-電子琴_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、 TOC o 1-5 h z目錄設(shè)計(jì)題目3設(shè)計(jì)目的3主要內(nèi)容3音符頻率與計(jì)數(shù)初值對(duì)照表3定時(shí)/計(jì)數(shù)器的工作原理4方式寄存器45.2啟/??刂萍拇嫫鱐CON6中斷控制6TCON用于中斷請(qǐng)求66.2中斷允許寄存器IE7系統(tǒng)分析7系統(tǒng)組成8系統(tǒng)工作原理8系統(tǒng)硬件設(shè)計(jì)8系統(tǒng)硬件總體設(shè)計(jì)8LED顯示模塊9揚(yáng)聲器模塊98.4子系統(tǒng)(模塊)電路圖10共陽(yáng)極電路圖10上位開(kāi)關(guān)10系統(tǒng)軟件設(shè)計(jì)10系統(tǒng)軟件總體設(shè)計(jì)10本系統(tǒng)總體代碼1110課程設(shè)計(jì)成果1511.個(gè)人總結(jié)15參考文獻(xiàn)17一、設(shè)計(jì)題目:簡(jiǎn)易電子琴二、設(shè)計(jì)目的:(1)熟悉單片機(jī)的內(nèi)部結(jié)構(gòu);(2)掌握C51編程方法;(3)掌握定時(shí)器與發(fā)聲的關(guān)系;(4)掌

2、握交流蜂鳴器的發(fā)聲原理和程序控制方法;(5)掌握串行控制鍵盤(pán)鍵的識(shí)別方法;(6)掌握聲音頻率的計(jì)算方法。三、主要內(nèi)容本系統(tǒng)設(shè)計(jì)制作一個(gè)可演奏的電子琴。綜合應(yīng)用了兩項(xiàng)設(shè)計(jì)(1)能產(chǎn)生純音,了解音調(diào)高低的控制方法。(2)用鍵盤(pán)代替電子琴的鍵盤(pán),控制演奏音樂(lè)。(a)掌握串彳丁控制鍵盤(pán)鍵的識(shí)別方法;(b)根據(jù)鍵值控制發(fā)聲。(3)至少演奏一支樂(lè)曲。四、音符頻率與計(jì)數(shù)初值對(duì)照表音符頻率計(jì)數(shù)處之音符頻率計(jì)數(shù)初值音符頻率計(jì)數(shù)初值低音1220Oxefa9中音14400 xf7d8冋曰1880Oxfbef低音22470 xf173中音24940 xf8bd冋曰29880 xfc62低音32770 xf307中音3

3、5540 xf987冋曰311090 xfcc7低音42940 xf3c8中音45870 xf9e4高音411750 xfcf6低音53300 xf51e中音56590 xfa90高音513180 xfd4b低音73700 xf64c中音67400 xfb29高音614800 xfd98低音74150 xf75a中音78310 xfbb1高音716610 xfddc五、定時(shí)/計(jì)數(shù)器原理MCS-51單片機(jī)內(nèi)部有2個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器0由計(jì)數(shù)器TH0和TL0組成,定時(shí)/計(jì)數(shù)器1由計(jì)數(shù)器TH1和TL1組成,THX和TLX(X=0,1)分別為兩個(gè)8位計(jì)數(shù)器,連接起來(lái)可組成16位計(jì)

4、數(shù)器。定時(shí)/計(jì)數(shù)器的工作方式由方式控制字TMOD選擇,定時(shí)/計(jì)數(shù)器的啟停由控制寄存器TCON控制,這兩個(gè)寄存器均屬于特殊功能寄存器。定時(shí)/計(jì)數(shù)器的工作原理圖如下:其核心是一個(gè)加1計(jì)數(shù)器,加1計(jì)數(shù)器的脈沖有兩個(gè)來(lái)源:一個(gè)是外部脈沖源,另一個(gè)是系統(tǒng)的時(shí)鐘振蕩器。當(dāng)脈沖源為時(shí)鐘振蕩器(等間隔脈沖序列)時(shí),由于計(jì)數(shù)器脈沖周期相同,所以脈沖數(shù)乘以脈沖周期就是定時(shí)時(shí)間,此時(shí)為定時(shí)功能。當(dāng)脈沖源為外部脈沖時(shí),就是外部事件的計(jì)數(shù)器,此時(shí)為計(jì)數(shù)功能。5.1方式寄存器TMODD7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0定時(shí)/計(jì)數(shù)器1方式字定時(shí)/計(jì)數(shù)器0方式字GATE=0時(shí),外部中斷

5、信號(hào)不參預(yù)控制,此時(shí),只要控制位,TRO(TRl)為1時(shí),定時(shí)/計(jì)數(shù)器就開(kāi)始計(jì)數(shù),而不管外部中斷信號(hào)的電平為高還是為低。C/T:計(jì)數(shù)方式還是定時(shí)方式選擇位,當(dāng)為0時(shí)為定時(shí)方式,當(dāng)為1時(shí)為計(jì)數(shù)方式。Ml和M0:操作方式選擇位。對(duì)應(yīng)4種操作方式,當(dāng)系統(tǒng)發(fā)生復(fù)位時(shí),TMOD各位為0。操作方式選擇如下圖:M1M0操作方式功能00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2可自動(dòng)再裝載的8位計(jì)數(shù)器11方式3定時(shí)/計(jì)數(shù)器0分為兩個(gè)獨(dú)立計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器1為串行口波特率發(fā)生器女口:若單片機(jī)晶振為12MHz,設(shè)定時(shí)/計(jì)數(shù)器1作定時(shí)器,以方式1工作,定時(shí)時(shí)間為5ms;定時(shí)/計(jì)數(shù)器0作計(jì)數(shù)器,以方式2工作

6、,外界發(fā)生一次事件(一個(gè)負(fù)脈沖)即產(chǎn)生溢出。解:定時(shí)/計(jì)數(shù)器0的初值為:X=281=255=FFH即:FFH裝入TH0,FFH裝入TL0。定時(shí)/計(jì)數(shù)器1的初值為:X=2165ms/lus=EC78H即:ECH裝入TH1,78H裝入TL1。方式寄存器TMOD=00010110B=16H。5.2啟/??刂萍拇嫫鱐CON定時(shí)/計(jì)數(shù)器的控制寄存器也是一個(gè)8位的特殊功能寄存器,字節(jié)地址為88H,可以位尋址。其格式如下:TF1TR1TF0TR0IE1IT1IE0IT0TFl(TFO):定時(shí)/計(jì)數(shù)器1(0)溢出標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器1(0)產(chǎn)生溢出時(shí),由硬件置1,可向CPU發(fā)中斷請(qǐng)求。CPU響應(yīng)中斷后被硬件自

7、動(dòng)清0,也可以由程序查詢后清0.TR1(TR0):定時(shí)/計(jì)數(shù)器1(0)啟/??刂莆?,由軟件置1或置0來(lái)啟動(dòng)或關(guān)閉定時(shí)/計(jì)數(shù)器1工作。六、中斷控制TCON用于中斷請(qǐng)求TF1TF0IE1IT1IE0IT0IT0:外部中斷請(qǐng)求觸發(fā)方式。當(dāng)IT0=0時(shí),低電平觸發(fā);當(dāng)IT0=1時(shí),下降沿觸發(fā)。IT1外部中斷請(qǐng)求觸發(fā)方式。作用同IT0。IE0:外部中斷請(qǐng)求標(biāo)志位。當(dāng)發(fā)中斷請(qǐng)求時(shí),置1,否則置0。IE1:外部中斷請(qǐng)求標(biāo)志位。作用同IE0。TF0:片內(nèi)定時(shí)/計(jì)數(shù)器0的溢出請(qǐng)求標(biāo)志位,定時(shí)/計(jì)數(shù)器0溢出時(shí),置1,否則置0.TF1:片內(nèi)定時(shí)/計(jì)數(shù)器1的溢出中斷請(qǐng)求標(biāo)志位,作用同TF0.6.2中斷允許寄存器IEE

8、AESET1EX1ET0EX0EA:開(kāi)中斷標(biāo)志位。當(dāng)EA=1時(shí),CPU開(kāi)中斷;EA=0時(shí),CPU關(guān)中斷。ES:串行口的中斷允許位。當(dāng)ES=1時(shí),串行口允許中斷;ES=0時(shí),則不允許中斷。ET0(ET1):定時(shí)/計(jì)數(shù)器0(1)的中斷允許位。當(dāng)ET0=1,定時(shí)/計(jì)數(shù)器0(1)溢出,允許中斷,否則不允許。EX0(EX1):INTO的中斷允許位,當(dāng)EX0=1時(shí),允許中斷,否則,不允許。七、系統(tǒng)分析:7.1系統(tǒng)組成本系統(tǒng)由矩陣鍵盤(pán)、揚(yáng)聲器、LED顯示管模塊一起組合而成。如下:揚(yáng)聲器鍵盤(pán)鼬陣小片機(jī)7.2系統(tǒng)工作原理本系統(tǒng)掃描鍵盤(pán)矩陣、顯示按鍵、揚(yáng)聲器發(fā)出對(duì)應(yīng)音符4X2行列式鍵盤(pán)識(shí)別及顯示原理如下:編碼鍵盤(pán)

9、:鍵盤(pán)本身帶有實(shí)現(xiàn)接口主要功能所需的硬件電路。不僅能自動(dòng)檢測(cè)被按下的鍵,并完成去抖動(dòng)、防串鍵等功能,而且能提供與被按鍵功能對(duì)應(yīng)的鍵碼送往CPU。所以,編碼鍵盤(pán)接口簡(jiǎn)單、使用方便。但由于硬件電路較復(fù)雜,因而價(jià)格較貴。鍵盤(pán)接口必須具有去抖動(dòng)、防串鍵、按鍵識(shí)別和鍵碼4個(gè)基本功能。(1)去抖動(dòng):所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開(kāi)抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開(kāi)狀態(tài)才能保證識(shí)別正確無(wú)誤。去抖問(wèn)題可通過(guò)軟件延時(shí)或硬件電路解決。(2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒(méi)有釋放又有新的按鍵按下時(shí)產(chǎn)生的問(wèn)題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。(3)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的

10、主要問(wèn)題,一般可通過(guò)軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。(4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤(pán)編碼表,通過(guò)查表獲得被按鍵的鍵碼。用AT89C52的并行口P1接4X2矩陣鍵盤(pán),以P1.0P1.3作輸入線,在數(shù)碼管上顯示每個(gè)按鍵的“18”序號(hào)。八、系統(tǒng)硬件設(shè)計(jì)8.1系統(tǒng)硬件總體設(shè)計(jì)本系統(tǒng)由鍵盤(pán)矩陣、LED顯示管、揚(yáng)聲器這幾個(gè)部分組成,LED顯示管顯示當(dāng)前按鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)音符,最終還要完整的演唱一首歌曲。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)

11、然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系正確即可。利用AT89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(M0DE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。LED顯示模塊LED顯示模塊如圖2-2所示,利用AT89S52單片機(jī)的P0端口的P0.0P0.7連接到一個(gè)七段數(shù)碼管的ah的筆段上,數(shù)碼管的公共端接電源。矩陣掃描顯示當(dāng)前按鍵模塊如下:mn.irvro.iiin|FoamPO.叫.4raairsra.nwrETn131RF1.JL.揚(yáng)聲器模塊矩陣掃描揚(yáng)聲器發(fā)出對(duì)應(yīng)音符模塊如下

12、:8.4子系統(tǒng)(模塊)電路圖8.4.1共陽(yáng)極電路圖8.4.2上位開(kāi)關(guān)9.系統(tǒng)軟件設(shè)計(jì)9.1系統(tǒng)軟件總體設(shè)計(jì)本系統(tǒng)的軟件流程圖如下摸塊剖始化”放發(fā)送擱描砒:一IL血9.2本系統(tǒng)總體代碼如下:#include#include#defineucharunsignedchar#defineuintunsignedintsbitBEEP=P1A7;sbitSDA=PMO;sbitCLK=P1A1;sbitP12=P1A2;sbitP13=P1A3;uintflag,t0,n;ucharm,q;codeucharTable8=0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf

13、8,0 x80;/數(shù)碼管顯示數(shù)據(jù)Codemusic=0 xfbef,0 xfbef,0 xfd4b,0 xfd4b,0 xfd98,0 xfd98,0 xfd4b,0,0,0,0 xfcf6,0 xfcf6,0 xfcc7,0 xfcc7,0 xfc62,0 xfc62,0 xfbef,0,0,0,0 xfd4b,0 xfd4b,0 xfcf6,0 xfcf6,0 xfcc7,0 xfcc7,0 xfc62,0,0,0,0 xfd4b,0,0;樂(lè)譜Codeuintfreq21=0 xefa9,0 xf173,0 xf307,0 xf3c8,0 xf51e,0 xf64c,0 xf75a,0 x

14、f7d8,0 xf8bd,0 xf987,0 xf9e4,0 xfa90,0 xfb29,0 xfbb1,0 xfbef,0 xfc62,0 xfcc7,0 xfcf6,0 xfd4b,0 xfd98,0 xfddc;/低中高音的頻率voiddelay()/延時(shí)函數(shù)uinti;for(i=0;i0 xd8fotimer0()interrupt1TH0=t0/256;TL0=t0%256;BEEP=BEEP;timer1()interrupt3n+;TH1=0 xd8;TL1=0 xf0;if(n=50)n=0;q+;TR0=0;TR1=0;voidsend(uchara)/串并轉(zhuǎn)換函數(shù)ucha

15、rj;for(j=0;j0 xd8f0/th1=0 xd8/thl=0 xf0BEEP=1;q=0;m=0;while(1)/歌曲自動(dòng)循環(huán)播放if(q=33)q=1;m=0;/自動(dòng)播放音樂(lè)if(key8_count=3&qm)t0=musicm+;if(t0=0)delay();q+;elseTH0=t0/256;TL0=t0%256;TH1=0 xd8;TL1=0 xf0;TR0=1;TR1=1;elsedelay();flag=0;/快速掃描a=0 x00;P13=1;send(a);if(P12=0)m=q=0;com=0 xfe;for(i=0;i8;i+)P13=1;send(com

16、);if(P12=0)flag=1;P13=1;send(Tablei);delay();P13=0;break;elsecom=_crol_(com,1);if(flag=1)for(j=0;j5;j+)delay();TR1=0;TR0=0;if(i=7)key8_count+;key8_count=key8_count%4;/由頻率判斷按鍵音或者播放歌曲if(key8_count=3)q+;elseswitch(key8_count)case0:t0=freqi;TH0=t0/256;TL0=t0%256;TH1=0 xd8;TL1=0 xf0;TR1=1;TR0=1;break;cas

17、e1:t0=freqi+7;TH0=t0/256;TL0=t0%256;TH1=0 xd8;TL1=0 xf0;TR1=1;TR0=1;break;case2:t0=freqi+14;TH0=t0/256;TL0=t0%256;TH1=0 xd8;TL1=0 xf0;TR1=1;TR0=1;break;case3:q+;break;十、課程設(shè)計(jì)成果:課程設(shè)計(jì)結(jié)果和要求一樣,能實(shí)現(xiàn)(1)能產(chǎn)生純音;(2)用鍵盤(pán)代替電子琴的鍵盤(pán),控制演奏音樂(lè),并根據(jù)鍵值控制發(fā)聲;(3)演奏一支樂(lè)曲。十一、個(gè)人總結(jié):通過(guò)兩周的課程設(shè)計(jì),我學(xué)到了很多,這些不僅僅局限于鞏固復(fù)習(xí)了課本上知識(shí)點(diǎn),還鍛煉了自己分析問(wèn)題以及動(dòng)

18、手實(shí)際操作的能力將以前學(xué)過(guò)的零散的知識(shí)串到一起冰學(xué)以致用。小組兩個(gè)人長(zhǎng)時(shí)間的討論以及調(diào)試,本系統(tǒng)基本上實(shí)現(xiàn)了按下鍵盤(pán)矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符,同時(shí)單個(gè)程序也能播放歌曲,不足之處在于不能將按鍵和播放音樂(lè)的程序不能完美融合,只能在一定范圍內(nèi)滿足按鍵或播放歌曲一種需要。本次綜合設(shè)計(jì)主要涉及硬件和軟件兩方面的內(nèi)容,通過(guò)這次課程,我的硬件和軟件開(kāi)發(fā)能力都獲得了提高。首先硬件方面,更加熟悉了51單片機(jī)的結(jié)構(gòu)以及它的實(shí)用,基本了解了電子產(chǎn)品的開(kāi)發(fā)流程和所要做的工作?;菊莆樟薈51并設(shè)計(jì)了一個(gè)單片機(jī)最小系統(tǒng)。通過(guò)C語(yǔ)言編程的過(guò)程,使我對(duì)C語(yǔ)言的編程能力和C51單片機(jī)的功能有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤(pán)等,并且我學(xué)會(huì)了遇到問(wèn)題要分析問(wèn)題及解決問(wèn)題的能力,加深了對(duì)所學(xué)理論知識(shí)的理解和運(yùn)用。我的動(dòng)手能力得到了很大的提高,尤其是團(tuán)隊(duì)合作和溝通交流能力得到明顯鍛煉。每次實(shí)際的經(jīng)歷都會(huì)給自己帶來(lái)很多技能的提升,雖然現(xiàn)在的自己還僅僅是一名學(xué)生,可也就是學(xué)生的不斷學(xué)習(xí)和創(chuàng)新,一個(gè)又一個(gè)創(chuàng)新和進(jìn)步帶來(lái)了生活的豐富,把握實(shí)踐,成就將來(lái),感謝老師的辛勤給我?guī)?lái)的收獲,以后更加努力。參考文獻(xiàn):彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例.電子工業(yè)出版社.2009年李建忠單

溫馨提示

  • 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)論