基于AT89C51單片機(jī)簡易電子琴_第1頁
基于AT89C51單片機(jī)簡易電子琴_第2頁
基于AT89C51單片機(jī)簡易電子琴_第3頁
基于AT89C51單片機(jī)簡易電子琴_第4頁
基于AT89C51單片機(jī)簡易電子琴_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄基于 AT89C51 單片機(jī)簡易電子琴的設(shè)計(jì) 2小組分工 2一 、概述 31.1課程設(shè)計(jì)的題目:基于 AT89C51 單片機(jī)簡易電子琴 31.2 設(shè)計(jì)任務(wù) 31.3 引言 31.4 基于 AT89C51 單片機(jī)簡易電子琴的設(shè)計(jì)思想 41.5 設(shè)計(jì)功能 4二、方案比較與論證 52.1 舉例方案 52.2 系統(tǒng)組成 52.3流程圖 6三、電路設(shè)計(jì) 73.2 矩陣鍵盤模塊 83.3 主控模塊 93.4 音樂設(shè)計(jì) “音調(diào) ”和“節(jié)拍 ” 103.5 工作原理 123.6 創(chuàng)新部分 123.7 LED 數(shù)碼顯示管與單片機(jī)的連接 133.8 源程序 14四、心得與體會 26基于 AT89C51 單片機(jī)

2、簡易電子琴的設(shè)計(jì)小組分工 :*負(fù)責(zé):資料收集與整理 QXP2004電路板的繪制,數(shù)碼管顯示負(fù)責(zé):矩陣鍵盤上實(shí)現(xiàn) 7 種不同的音調(diào) 負(fù)責(zé):音樂播放實(shí)現(xiàn)、概述1.1 課程設(shè)計(jì)的題目:基于 AT89C51 單片機(jī)簡易電子琴摘要:如今隨著社會的發(fā)展進(jìn)步, 音樂逐漸成為我們生活中很重要的一部分, 生 活中的我們都會欣賞世界名曲,作為對精神的洗禮。本論文設(shè)計(jì)一個(gè)基于AT89C51單片機(jī)的簡易電子琴。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一 種新型的鍵盤樂器。 它在現(xiàn)代音樂扮演著重要的角色, 單片機(jī)具有強(qiáng)大的控制功 能和靈活的編程實(shí)現(xiàn)特性, 它已經(jīng)溶入現(xiàn)代人們的生活中, 成為不可替代的一部 分。本系統(tǒng)是以

3、51系列單片機(jī)AT89C51為主控制器,附有矩陣鍵盤、LED顯示 管、揚(yáng)聲器組成。系統(tǒng)完成顯示輸入信息、播放相應(yīng)音符等基本功能。本設(shè)計(jì)的 系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價(jià)比 較高等,具有一定的實(shí)用和參考價(jià)值。關(guān)鍵詞:AT89C51矩陣鍵盤;LED顯示管;揚(yáng)聲器1.2 設(shè)計(jì)任務(wù)1) 查閱相關(guān)電子琴的資料,了解熟悉單片機(jī)控制單音喇叭發(fā)聲原理。2) 利用鍵盤的 16鍵,能夠發(fā)出 1 , 2, 3, 4, 5, 6, 7等 7個(gè)音符,具有一般 演奏功能,要求按下鍵發(fā)聲,松開則延時(shí)一段時(shí)間停止,中間再按別的 鍵,則發(fā)出另一個(gè)音調(diào)的。3) 存儲有一首歌的音樂,設(shè)置按鍵按

4、下具有自動播放已存曲目功能。1.3 引言單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī), 它具有高性能、 高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。 AT89C51 是美國ATMEI公司生產(chǎn)的低功耗,高性能CMOS位單片機(jī),片內(nèi)含4k字節(jié)的可系 統(tǒng)編程的Flash只讀程序存器,器件采用ATME公司的高密度、非易失性存儲技 術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。由于將多功能8位CPU和閃爍存器組合 在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡 版本。 AT89C51 單片機(jī)為很多嵌入式制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案

5、, 可為您提供許多高性價(jià)比的應(yīng)用場合 , 可靈活應(yīng)用于各種控制領(lǐng)域。單片機(jī)具有 強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性, 它已經(jīng)溶入現(xiàn)代人們的生活中, 成為不 可替代的一部分。電子琴已為人們所熟知 , 它可以演奏出非常動聽的樂曲 , 它在現(xiàn)代音樂扮演 著重要的角色。它是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。 在許多專用的電子琴電路中 , 都采用了特殊的集成電路來完成電子電路的設(shè)計(jì) , 利用專用電路產(chǎn)生的聲音信號驅(qū)動揚(yáng)聲器發(fā)音 , 通過演奏者不同的操作 , 彈奏出 美妙的樂曲。但是,以單片機(jī)作為主控核心,與鍵盤、蜂鳴器等模塊組成核心主 控制模塊就可以達(dá)到設(shè)計(jì)一個(gè)簡易電子琴的目的。1.4

6、 基于 AT89C51 單片機(jī)簡易電子琴的設(shè)計(jì)思想單片機(jī)產(chǎn)生音樂的要素一般說來 , 單片機(jī)演奏音樂基本都是單音頻率 , 它不 包含相應(yīng)幅度的諧波頻率 , 也就是說不能像電子琴那樣能奏出多種音色的聲音。 因此, 單片機(jī)奏樂只需弄清楚兩個(gè)概念 , 也就是“音調(diào)”和“節(jié)拍”。 音調(diào)表示一 個(gè)音符唱多高的頻率 , 節(jié)拍表示一個(gè)音符唱多長的時(shí)間。一首音樂是由許多不同的音符組成的, 而每個(gè)音符對應(yīng)著不同的頻率, 這樣 我們就可以利用不同的頻率的組合, 加上與拍數(shù)對應(yīng)的延時(shí), 即可構(gòu)成我們所想 要的音樂了。所以本課程設(shè)計(jì)的主要內(nèi)容是用 AT89C52單片機(jī)為核心控制元件,設(shè)計(jì)一 個(gè)電子琴。以單片機(jī)作為主控核

7、心, 與鍵盤、蜂鳴器等模塊組成核心主控制模塊, 在主控模塊上設(shè)有 16 個(gè)按鍵和蜂鳴器,用不同的頻率和延時(shí)的時(shí)間來產(chǎn)生音樂 的要素“音調(diào)”和“節(jié)拍”。1.5 設(shè)計(jì)功能(1)由4X4組成16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音,可隨意彈奏想要表達(dá)的聲音。( 2)設(shè)計(jì)有音樂存儲,按鍵按下后播放。( 3)鍵盤矩陣識別,即矩陣掃描在數(shù)碼管上可以顯示矩陣鍵盤按下哪個(gè)按鍵。1、方案比較與論證2.1 舉例方案方案一:用VHDL語言編程來實(shí)現(xiàn)系統(tǒng)整體基本原理圖如下:利用我們實(shí)驗(yàn)室先進(jìn)的 數(shù)字電路實(shí)驗(yàn)設(shè)備,我們可以采用 VHDL語言編程來實(shí)現(xiàn)。我們可以通過 VDHL 語言,對實(shí)驗(yàn)原理圖的各個(gè)部分進(jìn)行設(shè)計(jì), 通過編譯,可以

8、在計(jì)算機(jī)上下載此實(shí) 驗(yàn)原理圖,利空電路學(xué)習(xí)機(jī)上的芯片。利用AT89C51單片機(jī)為核心控制元件,以單片機(jī)作為主控核心,與鍵盤、 蜂鳴器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和蜂鳴器來設(shè)計(jì)一個(gè)電子琴。方案一顯得比較籠統(tǒng),只是把整個(gè)系統(tǒng)分為了若干個(gè)模塊,而不牽涉到具體的硬件電路。而方案二,利用單片機(jī) 4X4組成16個(gè)按鈕矩陣,設(shè)計(jì)成 16個(gè)音對應(yīng)音樂音符。每 按一個(gè)鍵,單片機(jī)檢測按下的那個(gè)鍵并查表查找相應(yīng)的音符, 輸出到音頻處理模塊驅(qū)動蜂鳴 器發(fā)出音符。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階, 最終可隨意彈奏想要表達(dá)的 音樂。所以本次設(shè)計(jì)采用方案二。2.2系統(tǒng)組成本系統(tǒng)只要以51單

9、片機(jī)為主控核心,與矩陣鍵盤、揚(yáng)聲器、LED顯示管模塊 一起組合而成。具體如下:2.3流程圖TO中斷入口重裝THiL TIM值中斷返回三、電路設(shè)計(jì)3.1、蜂鳴器模塊單片機(jī)實(shí)驗(yàn)板蜂鳴器原理圖如下圖表 1 所示:圖表 1蜂鳴器發(fā)聲原理是電流通過電磁線圈, 使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā) 聲的,因此需要一定的電流才能驅(qū)動它,單片機(jī) IO 引腳輸出的電流較小,單片 機(jī)輸出的 TTL 電平基本上驅(qū)動不了蜂鳴器, 因此需要增加一個(gè)電流放大的電路。如圖一所示,蜂鳴器的正極接到 VCC(+ 5V)電源上面,蜂鳴器的負(fù)極接到 三極管的發(fā)射極E,三極管的基級B經(jīng)過限流電阻R1后由單片機(jī)的P3.6引腳控 制,當(dāng) P

10、3.6 輸出高電平時(shí), 三極管 T1 截止,沒有電流流過線圈, 蜂鳴器不發(fā)聲; 當(dāng) P3.6 輸出低電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。 因此,我們可以通過程序控制 P3.6 腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。用延時(shí)程序或者定時(shí)器控制接蜂鳴器的端口輸出頻率在2KHZ左右的矩形波就能讓蜂鳴器發(fā)聲了。程序中改變單片機(jī) P3.6 引腳輸出波形的頻率,就可以調(diào)整控 制蜂鳴器音調(diào),生各種不同音色、音調(diào)的聲音。另外,改變 P3.6 輸出電平的高 低電平占空比,則可以控制蜂鳴器的聲音大小。3.2矩陣鍵盤模塊在單片機(jī)組成的各種系統(tǒng)中,本次試驗(yàn)用的是非編碼鍵盤,矩陣鍵盤。矩陣鍵盤:由單片機(jī)I

11、/O 口構(gòu)成的行列式鍵盤,優(yōu)點(diǎn):掃描速度快,按鍵數(shù) 量多缺點(diǎn):按鍵間存在關(guān)聯(lián),不能級聯(lián)。矩陣式結(jié)構(gòu)的鍵盤識別要復(fù)雜一些,列線通過電阻接正電源,并將行線 所接的單片機(jī)的I/O 口作為輸出端,而列線所接的I/O 口則作為輸入。這樣, 當(dāng)按鍵沒有按下時(shí),所有的輸入端都是高電平,代表無鍵按下。行線輸出是 低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀 態(tài)就可得知是否有鍵按下了。單片機(jī)實(shí)驗(yàn)板鍵盤原理圖如下圖表 2所示:鍵盤原理圖的PCB圖如圖表3所示:尸 nF nririi- nTQLprnrrir TEEY 舀 SCMJZC sdsu蟲 22 一H TT址T圖表3獨(dú)立鍵盤模塊獨(dú)立鍵

12、盤:單片機(jī)一個(gè)I/O 口連接一個(gè)按鍵。獨(dú)立鍵盤的原理圖如圖表4所示:圖表43.3主控模塊最小系統(tǒng)的原理圖如圖表5所示:圖表5總的原理圖如圖表6所示:JJII3DFL-!圖表6Pt冷JPL fil.M0.5D)PL 7(SCK)R5TP3 DP2 j|TjZ-jP3 2(W5)P3P34(TD)F3 5fjl) Pj til.TO:F、衛(wèi)P【i4PD.5PD.AP0?FA/-TPALLTF.ZiGM? P3 6PJ.5F24F13XTAL2FI 2-in 1U-18 UT1Z珀Rn齊GE IDF2 0TCSCCSX-ES:引 | J30 ALEF17亙P2上IdF2.Srn-ij3F21-rEC

13、 M*-盼盡才3.4音樂設(shè)計(jì)音調(diào)”和節(jié)拍(1)本設(shè)計(jì)的控制矩陣鍵盤使用定時(shí)器 TO方式1的音調(diào)的計(jì)算方法如下 矩陣鍵盤的音調(diào)計(jì)算:計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fj - 2-fr式中,N是計(jì)數(shù)值:fj是機(jī)器頻率(晶體振蕩器為11.0592MH時(shí),其頻率為1MHz); fr 是想要產(chǎn)生的頻率。本設(shè)計(jì)定時(shí)器工作方式1, 16個(gè)鍵的頻率音階對應(yīng)頻率(音調(diào)的頻率)表如圖表 7所示:鍵k01k02k03k04k05k06k07kl5音低低低低低低低高頻率(HQ計(jì)數(shù)值a音頻率(Hz:計(jì)蛙值DO2621759k08:二 DO554232RE屈1567k09LJ RE587785330136klO23 N6

14、59699FA3491320kll:FA 693660SO2921578kl23 SO _734587LA4401047klS:】LA8S0524SI咖933kl4In SI98346601046441kl6RE1174392圖表7(2)節(jié)拍的計(jì)算方法本設(shè)計(jì)使用定時(shí)器T0的中斷控制播放音樂一閃一閃亮晶晶,T0工作方式0, 圖表8列出了 C音調(diào)與頻率的對應(yīng)關(guān)系。1、C音調(diào)與頻率的對應(yīng)關(guān)系表C音調(diào)與頻率的對應(yīng)關(guān)系表音調(diào)低 1 (“dao”)低2低3低4低5低6低7頻率262294330349392440494音調(diào)1 (中音“dao”)234567頻率523587659698784880988音調(diào)高

15、1高2高3高4高5高6高7頻率1064117513181397158617601967圖表82. 定時(shí)常數(shù)C計(jì)算公式106 usC= 2f 4608301.085us fT0工作方式0.最大計(jì)數(shù)為8192,在已知定是常數(shù)為C的條件下,13位計(jì)算器的 高8位和低5的初值可由以下公式設(shè)定TH0=(8192-C)/32;TL0=(8192-C)%32;3. 簡單樂譜|1 1 5 5| 6 6 5 -| 4 4 3 3| 2 2 1 -| 5 5 4 4 | 3 3 2 -| 5 5 4 4 |3 3 2-| 1 1 5 5 | 6 6 5 -| 4 4 3 3|2 2 1 -|4.節(jié)拍控制本例簡譜的

16、節(jié)拍為每分鐘72拍,則每個(gè)節(jié)拍需時(shí)間(1000*60ms)/72=833ms“ 1 “為1拍,需延時(shí)833ms“2”為1/2拍,需延時(shí)833/2ms“$ 為 1/4,需延時(shí) 833/4ms3.5工作原理矩陣鍵盤的工作原理:通過 AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)能 發(fā)出電子音調(diào)的簡易電子琴。在控制模塊上設(shè)有 16個(gè)矩陣鍵盤按鍵,通過按下 矩陣鍵盤K01 一 K7鍵,可發(fā)出DO RE M FA SO LA SI 7個(gè)低音符的聲音; 矩陣鍵盤K08 K14鍵,可發(fā)出D0 RE M FA SO LA SI 7個(gè)中音符的聲音; K15鍵是高音符DO的聲音,K16鍵是高音符RE的聲音。當(dāng)我們隨

17、意按下矩陣鍵 盤上的一個(gè)按鍵時(shí),可以發(fā)出相應(yīng)的聲音。本設(shè)計(jì)有一個(gè)功能選擇鍵(選擇使用矩陣鍵盤選擇鍵或者選擇自動播放音 樂選擇鍵),一個(gè)矩陣鍵盤選擇鍵、一個(gè)自動播放音樂選擇鍵,通過按下功能選 擇鍵,可以實(shí)現(xiàn)按鍵發(fā)音功能和音樂播放功能之間的切換。在矩陣按鍵發(fā)音的功 能下,可以通過音調(diào)選擇鍵來選擇三個(gè)不同的音階進(jìn)行發(fā)音;在音樂播放功能下,可以自動播放音樂。3.6創(chuàng)新部分當(dāng)我們選擇矩陣鍵盤選擇鍵的時(shí)候,在矩陣按鍵發(fā)音的功能下,可以通過音 調(diào)選擇鍵來選擇三個(gè)不同的音階進(jìn)行發(fā)音, 同時(shí)在主板的數(shù)碼管上可以同時(shí)顯示你在矩陣鍵盤上按下哪一個(gè)鍵。例如你按下K01鍵,同時(shí)在數(shù)碼管顯示01這個(gè)數(shù)字。3.7 LED數(shù)

18、碼顯示管與單片機(jī)的連接led數(shù)碼管(LED Segment Displays )是由多個(gè)發(fā)光二極管圭寸裝在一起 組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為 7段有的另加一個(gè)小數(shù)點(diǎn),還有一種 是類似于3位“+T型。位數(shù)有半位,1 ,2,3,4,5, 6, 8,10位等等., led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異 外,編程方法也是不同的。數(shù)碼管動態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛 的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個(gè)顯示筆劃

19、a,b,c,d,e,f,g,dp 的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會 顯示出字形,取決于單片機(jī)對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的 數(shù)碼管就不會亮。透過分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間 為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上 各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度

20、足夠快,給人的印象就是一 組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的, 能夠節(jié)省大量的I/O埠,而且功耗更低。由此本實(shí)驗(yàn)是將P2 口通過芯片與數(shù)碼管連接,以達(dá)到點(diǎn)亮數(shù)碼管的效果。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。 這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測和控制。3.8 源程序主函數(shù):#include#includemusic.h#includepiano.h void main() InterruptPiano();while(1)P1=0xfe;temp=P1; t

21、emp=temp&0xf0; PlaySelect();#endif 播放音樂的程序: /* #define MUSIC_GLOBALS#includemusic.h#includepiano.h/*#define dao 523 #define re 587#define mi 659#define fa 698#define sao 784#define la 880#define xi 987unsigned int code f=dao,dao,sao,sao, la,la,sao,fa,fa,mi,mi, re,re,dao, sao,sao,fa,fa, mi,mi,re, sao

22、,sao,fa,fa, mi,mi,re, dao,dao,sao,sao, la,la,sao, fa,fa,mi,mi, re,re,dao, 0xff;unsigned char code JP=4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4,4,4,8 ,4,4,4,4,4,4,8,;/*延時(shí)子程序 200ms */ void Musicdelay() unsigned char i,j;for(i=0;i250;i+)for(j=0;j250;j+)J/*定時(shí)器TO的中斷服務(wù)子程序,使P3.6引腳輸出音頻

23、的方波*/void TimeO(void) interrupt 1 using 1 sound=!sound; THO=(8192-C)/32;TLO=(8192-C)%32;/*主函數(shù)*/void MusicInit()EA=1;ETO=1;TMOD=0x00;while(Music_count=1) i=0;if(key1=0)Music_count=0;Piano_count=0;while(fi!=0xff&Music_count=1) if(key1=0)Music_count=0;Piano_count=0;C=460830/fi;TH0=(8192-C)/32;TL0=(8192

24、-C)%32;TR0=1;for(j=0;j0;x-)for(y=110;y0;y-);/*中斷初始化函數(shù)*/void InterruptPiano()TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;ET0=1;TR0=0; /* 選擇電子琴或者音樂播放函數(shù)*/void PlaySelect()if(PianoKey=0)Piano_count=1;if( Piano_count=1&Music_count=0) Piano();if(MusicKey=0)Music_count=1;if(Music_count=1&Piano_count=0)MusicInit();if(

25、key1=0)Music_count=0;Piano_count=0;/*鍵盤驅(qū)動電子琴函數(shù)*/void Piano()while(temp!=0xf0)delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0)temp=P1;switch(temp)case 0xee:a=13;break;case 0xde:a=14;break;case 0xbe:a=15;break;case 0x7e:a=16;break;while(temp!=0xf0) P1=0xfe; temp=P1; temp=temp&0xf0; TR0=1;p36=1;TR0=0;

26、P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0)delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0)temp=P1;switch(temp)case 0xed:a=9; break;case 0xdd:a=10;break;case 0xbd:a=11;break;case 0x7d:a=12;break;while(temp!=0xf0) P1=0xfd; temp=P1; temp=temp&0xf0; TR0=1;p36=1;TR0=0;P1=0xfb;temp=P1;temp=temp&0xf

27、0;while(temp!=0xf0)delay(5);temp=P1; temp=temp&0xf0;while(temp!=0xf0)temp=P1;switch(temp)case 0xeb:a=5;break;case 0xdb:a=6;break;case 0xbb:a=7;break;case 0x7b:a=8;break; while(temp!=0xf0) P1=0xfb; temp=P1; temp=temp&0xf0; TR0=1;p36=1;TR0=0;P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0)delay(5);tem

28、p=P1;temp=temp&0xf0;while(temp!=0xf0)temp=P1;switch(temp)case 0xe7:a=1;break;case 0xd7:a=2;break;case 0xb7:a=3;break;case 0x77:a=4;break; while(temp!=0xf0) P1=0xf7; temp=P1; temp=temp&0xf0; TR0=1;p36=1;TR0=0;p36=1;P2=0xfe;P0=numa/10;delay(5);P2=0xfd;P0=numa%10;delay(5);P0=0xff;/* 中斷服務(wù)子函數(shù),編號為 1,即為定時(shí)器 T1 中斷*/void timer0() interrupt 1num1=taba; TH0=(65536-num1)/256;TL0=(65536-num1)%256;p36=p36;#endif四、心得與體會在課程設(shè)計(jì)過程中, 其中涉及到鍵盤的驅(qū)動和無源蜂鳴器, 利用所給矩陣鍵 盤的鍵,能夠發(fā)出 7個(gè)不同的音調(diào), 并且要求按下按鍵發(fā)聲, 松開延時(shí)一段時(shí)間 停止,中間再按別的鍵, 則發(fā)出另一個(gè)音調(diào)的聲音 . 通過學(xué)習(xí)老師給的驅(qū)動資料, 自己摸索著進(jìn)行設(shè)計(jì),過程中也遇到一些錯(cuò)誤,例如中音的時(shí)候, 7 個(gè)音調(diào)發(fā)出 的聲音是一樣的, 但是通過詢問同學(xué)和查閱資料, 最終

溫馨提示

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

最新文檔

評論

0/150

提交評論