版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機技術及系統(tǒng)設計</p><p><b> 課程設計</b></p><p> 題 目: 基于單片機的電子琴制作 </p><p> 專 業(yè): 電子電子信息工程 </p><p> 班 級: 電子1073班
2、 </p><p> 姓 名: xxx 學號: xxx </p><p> 組 員: xxx 學號: xxx </p><p> 實驗地點: 科技樓403 </p&
3、gt;<p> 指導老師: xxx </p><p> 設計時間 2010-5-30 至 2010-6-30 </p><p> 成 績: </p><p><b> 一、設計指標:</b></p&
4、gt;<p> (1)設計一個(4×4)的鍵盤,并將16個鍵設計成16個音;</p><p> ?。?)可彈奏想要表達的音樂;</p><p> (3)該電子琴包含1首示例音樂,接通電源可播放示例音樂。</p><p><b> 二、設計要求:</b></p><p> (1)按設計指標進
5、行電路設計;</p><p> ?。?)列出音階與單片機定時器輸出頻率關系表格;</p><p> ?。?)制作符合設計指標的硬件電路。</p><p><b> 三、設計說明:</b></p><p> 電子琴是高科技在音樂領域的一個代表,它是古典文化與現(xiàn)代文明的一個濃縮體。它不但可以幫助我們的音樂教師進行傳統(tǒng)音樂
6、文化的教育教學工作,而且由于它又具備現(xiàn)代音樂,特別是電子音樂、電腦音樂的基本結構、特征,因而使我們的教師在進行現(xiàn)代音樂、電子音樂、電腦音樂的教學時,更直接、更簡便。</p><p> 單片微型計算機是大規(guī)模集成電路技術發(fā)展的產物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應用廣泛的特點。它的應用必定導致傳統(tǒng)的控制技術從根本上發(fā)生變革。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項
7、重大課題。</p><p> 電子琴是現(xiàn)代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內容是用AT89C51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個彈奏按鍵、1個播放鍵和揚聲器。</p&
8、gt;<p> 四、設計簡單原理介紹</p><p> 一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。</p><p> 若要產生音頻脈沖,
9、只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P1.0反相,然后重復計時再反相。就可在P1.0引腳上得到此頻率的脈沖。</p><p> 利用AT89C51的內部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產生不同頻率的方法產生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時9
10、56μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。</p><p> 計數(shù)脈沖值與頻率的關系式(如式3-1所示)是:</p><p> N=fi÷2÷fr 3-1</p><p> 式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MH
11、z);fr是想要產生的頻率。</p><p> 其計數(shù)初值T的求法如下:</p><p> T=65536-N=65536-fi÷2÷fr</p><p> 例如:設K=65536,fi=1MHz,DO(523Hz)的計數(shù)值。</p><p> T=65536-N=65536-fi÷2÷fr=6
12、5536-1000000÷2÷fr=65536-500000/f</p><p> DO的T=65536-500000/523=64580</p><p> 單片機12MHZ晶振,高中低音符與計數(shù)T0相關的計數(shù)值如表4-2所示</p><p> 表3-2 音符頻率表</p><p> 我們要為這個音符建立一個表格,
13、單片機通過查表的方式來獲得相應的數(shù)據 低音0-19之間,中音在20-39之間,高音在40-59之間 TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0</p><p> DW 0,63731,63928,0,64185,64331,64463,0,0,0</p><p> DW 0,64580,64684
14、,64777,64820,64898,64968,65030,0,0</p><p> DW 0,64633,64732,0,64860,64934,64994,0,0,0</p><p> DW 0,65058,65110,65157,65178,65217,65252,65283,0,0</p><p> DW 0,65085,65134,0,65198,
15、65235,65268,0,0,0</p><p><b> DW 0 </b></p><p> 在這個程序中,彈奏音樂的程序是用定時/計數(shù)器T0來完成的,播放音樂程序則是用定時/計數(shù)器T1來完成的。</p><p> 五、軟件總體方案及設計流程</p><p> ?。?)鍵盤掃描程序:</p>
16、<p> 檢測是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉至功能轉移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢測</p><p> ?。?)功能轉移程序:</p><p> 對檢測到得按鍵值進行判斷,是琴鍵則跳轉至琴鍵處理程序,是功能鍵則跳轉至相應的功能程序,我們設計的功能程序有兩種,即音色調節(jié)功能和自動播放樂曲功能</p><p> (3)琴
17、鍵處理程序:</p><p> 根據檢測到得按鍵值,查詢音律表,給計時器賦值,使發(fā)出相應頻率的聲音</p><p> ?。?)自動播放歌曲程序:</p><p> 檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經存放好的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下</p><p><b
18、> 程序簡易流程圖</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b> 是</b></p><p><
19、b> 彈奏程序流程圖</b></p><p> 自動播放歌曲程序流程圖</p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N
20、</b></p><p> 六、硬件總體方案及說明</p><p> 51單片機P1口通過連接4*4的矩陣鍵盤,作為琴鍵鍵盤;P2.0接播放音樂鍵;P3.0口接喇叭,通過執(zhí)行相應的功能程序使電子琴發(fā)出不同音色的聲音。</p><p><b> ?。ㄒ唬┬酒榻B:</b></p><p> 在本次電子琴設
21、計中,我們組成員單片機芯片選用了AT89C51芯片,而89C51系列的兼容性也比較好。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p><b> ?。ǘ┯布泳€:</b></p><p> (1)利用
22、P1口為按鍵接入口,形成4×4組成16個按鍵矩陣,設計成16個音,下圖所示:</p><p> ?。?)p3.0口音頻輸出,接一個喇叭。</p><p> ?。?)復位電路我們本來在方案選擇的時候有兩種選擇的,上電復位和按扭復位,上電復位是利用電容充電來實現(xiàn)的,而按扭復位是電源對外節(jié)電容的充電使RST為高電平,復位松開后,電容通過下拉電阻放電,使RST恢復低電平。為了制作軟件的方
23、便我們還是選擇用按扭復位,因為它比較直觀。</p><p> ?。?)電路設計圖如下:</p><p> 七、設計儀器、設備和材料清單</p><p><b> 主要儀器設備:</b></p><p> 個人計算機和相關的軟件</p><p> 主要元器件: 獨立按鍵16個</p&
24、gt;<p> 單片機芯片AT80C51一片</p><p><b> 12MHz晶振一個</b></p><p> S8550三極管一個</p><p><b> 不同阻值電阻數(shù)個</b></p><p><b> 開關一個</b></p>
25、<p><b> USB電源插口一個</b></p><p><b> 喇叭一個</b></p><p> 10uF、30pF電容數(shù)個</p><p><b> 電路板一塊</b></p><p><b> 電烙鐵一個等</b>&l
26、t;/p><p><b> 八、設計源程序</b></p><p> BUFF EQU 30H</p><p> STH0 EQU 31H</p><p> STL0 EQU 32H</p><p> TEMP EQU 33H</p&g
27、t;<p><b> ORG 00H</b></p><p> LJMP START</p><p><b> ORG 0BH</b></p><p> LJMP INT_T0</p><p><b> ORG 001BH</b></p>
28、<p><b> LJMP TIM1</b></p><p> START: MOV TMOD,#01H ;設置T0工作方式</p><p><b> SETB ET0</b></p><p> SETB EA ;啟動T0</p><p><
29、b> MAIN: </b></p><p> MOV P1,#0FFH ;P1全置1</p><p> CLR P1.4 ;開始掃描第一行</p><p><b> MOV A,P1</b></p><p> ANL A,#0FH ;屏蔽
30、高四位</p><p> XRL A,#0FH ;低位 有”0”則有鍵按下,否則無</p><p> JZ KKEY1 ; 判斷有無鍵按下,有則繼續(xù),沒有則轉移到KKEY1</p><p> LCALL DELY10MS ;調用延時程序</p><p> MOV A,P1 ;重新開始判斷
31、有無鍵按下</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY1</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH ;求鍵值</p&
32、gt;<p> CJNE A,#0EH,CKK1 ;相等說明該行第一列有鍵按下,不等則轉移</p><p> MOV BUFF,#0 ;該鍵值為0</p><p> LJMP NDK1 ;跳到NDK1執(zhí)行相應的功能程序</p><p> CKK1: CJNE A,#0DH,KK2;相等說明該行第二列有鍵按下,不
33、等則轉移</p><p> MOV BUFF,#1;該鍵值為1</p><p> LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序</p><p> KK2: CJNE A,#0BH,KK3;相等說明該行第三列有鍵按下,不等則轉移</p><p> MOV BUFF,#2;該鍵值為2</p><p&
34、gt; LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序</p><p> KK3: CJNE A,#07H,KK4;相等說明該行第四列有鍵按下,不等則轉移</p><p> MOV BUFF,#3;該鍵值為2</p><p> LJMP NDK1;跳到NDK1執(zhí)行相應的功能程序</p><p> KK4:
35、 NOP</p><p> NDK1: MOV A,BUFF </p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,BUFF</p&
36、gt;<p><b> MOV B,#2</b></p><p><b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p>
37、; MOV STH0,A</p><p><b> MOV TH0,A</b></p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A<
38、;/p><p><b> MOV TL0,A</b></p><p><b> SETB TR0</b></p><p> NDK1A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p>
39、<p><b> JNZ NDK1A</b></p><p><b> CLR TR0</b></p><p><b> KKEY1: </b></p><p> MOV P1,#0FFH ;開始掃描第二行</p><p><b>
40、CLR P1.5</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY2</b></p><p> LCALL DELY10M
41、S</p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY2</b></p><p><b> MOV A,P1</b><
42、;/p><p> ANL A,#0FH</p><p> CJNE A,#0EH,KK5</p><p> MOV BUFF,#4</p><p><b> LJMP NDK2</b></p><p> KK5: CJNE A,#0DH,KK6</p><p
43、> MOV BUFF,#5</p><p><b> LJMP NDK2</b></p><p> KK6: CJNE A,#0BH,KK7</p><p> MOV BUFF,#6</p><p><b> LJMP NDK2</b></p><p
44、> KK7: CJNE A,#07H,KK8</p><p> MOV BUFF,#7</p><p><b> LJMP NDK2</b></p><p> KK8: NOP</p><p><b> NDK2: </b></p>&
45、lt;p> MOV A,BUFF</p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,BUFF</p><p><b> MOV B,#2&l
46、t;/b></p><p><b> MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p>&
47、lt;b> MOV TH0,A</b></p><p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL
48、0,A</b></p><p><b> SETB TR0</b></p><p> NDK2A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK2A</b
49、></p><p><b> CLR TR0</b></p><p><b> KKEY2:</b></p><p> MOV P1,#0FFH ;開始掃描第三行</p><p><b> CLR P1.6</b></p><p>&l
50、t;b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY3</b></p><p> LCALL DELY10MS</p><p><b> MOV A,P1
51、</b></p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY3</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p>
52、<p> CJNE A,#0EH,KK9</p><p> MOV BUFF,#8</p><p><b> LJMP NDK3</b></p><p> KK9: CJNE A,#0DH,KK10</p><p> MOV BUFF,#9</p><p>&l
53、t;b> LJMP NDK3</b></p><p> KK10: CJNE A,#0BH,KK11</p><p> MOV BUFF,#10</p><p><b> LJMP NDK3</b></p><p> KK11: CJNE A,#07H,KK12<
54、/p><p> MOV BUFF,#11</p><p><b> LJMP NDK3</b></p><p> KK12: NOP</p><p><b> NDK3:</b></p><p> MOV A,BUFF</p><p>
55、; MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p><b>
56、MUL AB</b></p><p> MOV TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b></p>
57、<p><b> INC TEMP</b></p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p><p><b&
58、gt; SETB TR0</b></p><p> NDK3A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK3A</b></p><p><b> CLR
59、TR0</b></p><p><b> KKEY3:</b></p><p> MOV P1,#0FFH;開始掃描第四行</p><p><b> CLR P1.7</b></p><p><b> MOV A,P1</b></p><
60、p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JZ KKEY4</b></p><p> LCALL DELY10MS</p><p><b> MOV A,P1</b></p><p> ANL A,#0FH
61、</p><p> XRL A,#0FH</p><p><b> JZ KKEY4</b></p><p><b> MOV A,P1</b></p><p> ANL A,#0FH</p><p> CJNE A,#0EH,KK13</p><
62、;p> MOV BUFF,#12</p><p><b> LJMP NDK4</b></p><p> KK13: CJNE A,#0DH,KK14</p><p> MOV BUFF,#13</p><p><b> LJMP NDK4</b></p>
63、<p> KK14: CJNE A,#0BH,KK15</p><p> MOV BUFF,#14</p><p><b> LJMP NDK4</b></p><p> KK15: CJNE A,#07H,KK16</p><p> MOV BUFF,#15</p>
64、;<p><b> LJMP NDK4</b></p><p> KK16: NOP</p><p><b> NDK4: </b></p><p> MOV A,BUFF</p><p> MOV DPTR,#TABLE</p><p>
65、MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> MOV A,BUFF</p><p><b> MOV B,#2</b></p><p><b> MUL AB</b></p><p> MO
66、V TEMP,A</p><p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV STH0,A</p><p><b> MOV TH0,A</b></p><p><b> INC TEMP</b>&l
67、t;/p><p> MOV A,TEMP</p><p> MOVC A,@A+DPTR</p><p> MOV STL0,A</p><p><b> MOV TL0,A</b></p><p><b> SETB TR0</b></p><p&
68、gt; NDK4A: MOV A,P1</p><p> ANL A,#0FH</p><p> XRL A,#0FH</p><p><b> JNZ NDK4A</b></p><p><b> CLR TR0</b></p><p> KKEY4
69、: MOV A,#0FFH</p><p><b> MOV P2,A </b></p><p><b> MOV A,P2</b></p><p> JB ACC.0, KKEY5</p><p> LCALL DELY10MS</p><p><b&g
70、t; MOV A,P2</b></p><p> JB ACC.0, KKEY5</p><p> MOV BUFF,#16</p><p> LJMP START22</p><p> START22: MOV A,BUFF</p><p> CJNE A,#16,KKEY5</p
71、><p> LJMP START2</p><p> KKEY5: LJMP MAIN </p><p> START2: MOV TMOD,#10H ;設T1在M1 </p><p> MOV IE,#88H ;中斷使能 </p><p><b> DELY10MS:</b></
72、p><p> MOV R6,#10</p><p> D10: MOV R7,#248</p><p><b> DJNZ R7,$</b></p><p> DJNZ R6,D10</p><p><b> RET</b></p><
73、p><b> INT_T0:</b></p><p> MOV TH0,STH0</p><p> MOV TL0,STL0</p><p><b> CPL P3.0</b></p><p><b> RETI</b></p><p>
74、 TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p> DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p> TABLE1: DW 64580,64684,64777,</p><p> 64820,64898,64968,65030</p><
75、;p><b> END</b></p><p><b> 九、心得體會:</b></p><p> 這次設計從軟件方面來講不是很難,程序相對長一點,但都是書本上所學的知識,主要是中端及其服務程序的編寫。在protues上仿真,則起到很好的效果,因為元器件都是理想狀態(tài)的,但做出實物來卻不是那么簡單啦。經過多次調試、修改才得以出結果。將程
76、序燒入芯片,調試成功后,可任意彈奏自己想要的旋律。同時可以播放一首示例歌曲,但是也有不足之處的,聲音雜音時而有點大,不穩(wěn)定。</p><p> 經過本次課程設計,我們比較好的把理論知識與實踐相結合,而我們在也本次設計中收獲不少。設計過程中,首先,對于匯編語言多了一層了解,其次,還有硬件的接線,還有8051芯片的引腳方面,都讓我們收獲不少。加強了自身的動手能力。</p><p><b
77、> 十、PCB電路圖</b></p><p><b> 十一、3D預覽</b></p><p><b> 十二、參考文獻</b></p><p> [1]周美娟 肖來勝 《單片機原理及系統(tǒng)設計》清華大學出版社</p><p> [2] 謝自美.《電子線路設計·實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的電子琴制作 課程設計
- 電子琴課程設計--基于單片機的電子琴設計
- 電子琴課程設計--基于單片機的電子琴設計
- 電子琴課程設計-- 基于單片機的電子琴設計
- 單片機課程設計—基于單片機的電子琴
- 基于單片機的電子琴課程設計
- 單片機課程設計---基于單片機的電子琴設計
- 基于單片機的電子琴課程設計
- 單片機課程設計---電子琴
- 單片機課程設計(電子琴)
- 單片機課程設計-電子琴
- 單片機課程設計——電子琴
- 基于單片機的電子琴設計課程設計
- 單片機課程設計---電子琴設計
- 單片機簡易電子琴單片機課程設計
- 單片機電子琴課程設計--基于單片機的可存儲式電子琴設計
- 單片機課程設計---電子琴設計
- 課程設計 ---基于單片機的電子琴設計
- 基于單片機的電子琴課程設計報告
- 單片機課程設計簡易電子琴
評論
0/150
提交評論