資源描述:
《proteus電子琴》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、1 任務(wù)及要求1.1設(shè)計(jì)任務(wù)1.設(shè)計(jì)一個(gè)4X4的16個(gè)按鍵矩陣,并且每個(gè)鍵對(duì)應(yīng)一個(gè)音。2.用AT89C51將鍵盤連接設(shè)計(jì)成為電子琴。3.編寫電子琴的程序,要達(dá)到可以隨意彈奏想要表達(dá)的音樂(lè)的目的。4.程序的分析與調(diào)試。1.2設(shè)計(jì)要求1.用匯編語(yǔ)言編程實(shí)現(xiàn)程序設(shè)計(jì)。2.利用查表,中斷等方式實(shí)現(xiàn)目的。3.系統(tǒng)的各各功能模塊要清楚,有序。4.程序運(yùn)行時(shí)有友好的用戶界面。2 設(shè)計(jì)思想2.1硬件設(shè)計(jì)思想電子琴的原理框圖如圖一所示。它由以下幾個(gè)部件組成:?jiǎn)纹瑱C(jī)AT89C51、電源、4*4的16個(gè)按鈕矩陣、音頻放大模塊。電源部分:電源部分有二部分組成。一部分是
2、由220V的市電通過(guò)變壓、整流穩(wěn)壓來(lái)得到+5V電壓,維持系統(tǒng)的正常工作;另一部分是由3V的電池供電,以保證停電時(shí)正常走時(shí)。正常情況下電池是不提供電能的,以保證電池的壽命。2.2軟件設(shè)計(jì)思想本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時(shí)計(jì)數(shù)中斷程序、時(shí)間調(diào)整或定鬧設(shè)置程序三大模塊。在程序設(shè)計(jì)過(guò)程中,加強(qiáng)了部分軟件抗干擾措施,下面對(duì)部分模塊作介紹。定時(shí)中斷模塊我們可以用語(yǔ)句:MOVTMOD,#01H寫控制數(shù)MOVTH0,#0XH寫定時(shí)常數(shù)SETBTR0啟動(dòng)TR0SETBET0允許T0SETBEA開放CPU中斷3 電路原理與電路圖3.1電路原理主要分為二個(gè)部
3、分:(1)4X4行列式鍵盤識(shí)別;(2)音樂(lè)產(chǎn)生的方法;①一首音樂(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)系弄正確即可?,F(xiàn)在以單片機(jī)12MHZ晶振為例,列出高中低音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表3.1所示.下面我們要為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù):低音0-19之間,中音在20-39之間,高音在4
4、0-59之間TABLE:DW0,63628,63835,64021,64103,64260,64400,64524,0,0DW0,63731,63928,0,64185,64331,64463,0,0,0DW0,64580,64684,64777,64820,64898,64968,65030,0,0DW0,64633,64732,0,64860,64934,64994,0,0,0DW0,65058,65110,65157,65178,65217,65252,65283,0,0DW0,65085,65134,0,65198,65235,6526
5、8,0,0,0DW0表3.1高中低音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值表音符頻率(HZ)簡(jiǎn)譜碼(T值)?音符頻率(HZ)簡(jiǎn)譜碼(T值)低1 DO26263628#4FA#74064860#1 DO#27763731中5SO78464898低2 RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564
6、331高2RE117565110低6LA44064400?#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283②音樂(lè)的音拍,一個(gè)節(jié)拍為單位(C調(diào))曲調(diào)值DELAY?曲調(diào)值DELA
7、Y調(diào)4/4125ms?調(diào)4/462ms調(diào)3/4187ms?調(diào)3/494ms調(diào)2/4250ms?調(diào)2/4125ms對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成的。其中T0用來(lái)產(chǎn)生音符頻率,T1用來(lái)產(chǎn)生音拍。3.2電路原理圖圖3.14 流程圖與算法描述4.1流程圖圖4.1系統(tǒng)主程序流程圖圖4.24.2算法描述(1)用T0做中斷MOVTMOD,#01H;寫控制字SETBET0;允許T0中斷SETBEA;開放CPU中斷(2)查表程序MOVDPTR,#TABLE;查表賦首地址MOVCA,@A+DP
8、TRMOVP0,A;P0口輸出MOVA,KEYBUFMOVB,#2;賦值給BMULAB;AB相乘MOVTEMP,A4.3 程序清單KEYBUFEQU3