《微機原理與接口技術(shù)》課程設(shè)計--簡易電子琴設(shè)計_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  微機原理與接口技術(shù)課程設(shè)計</p><p><b>  簡易電子琴的設(shè)計</b></p><p>  摘 要 </p><p>  本次設(shè)計主要是通過對電子琴主體部分的電路進(jìn)行模仿設(shè)計,達(dá)到電子琴固有的基本功能,故叫簡易電子琴。利用定時器可發(fā)出不同頻率的方波,不同頻率的方波經(jīng)喇叭就會發(fā)出

2、不同音調(diào)。其次,定時器按設(shè)置的定時參數(shù)產(chǎn)生中斷,這一次中斷發(fā)出脈沖低電平,下一次反轉(zhuǎn)發(fā)出脈沖高電平,由于定時參數(shù)不同,就發(fā)出不同頻率的方波,本設(shè)計中按鍵一次,會發(fā)出方波,松開后隨之延時,但在延時的期間繼續(xù)檢測按鍵,若此時又有鍵被按下,若被按下的仍為原鍵則聲音不變,否則鍵盤會譯出被按下的另一個鍵的音調(diào)。 單片機控制通用MIDI音源模塊制作出的電子琴,結(jié)構(gòu)簡單,可靠性高,并且價格低廉,具有實用的價值。這種電子琴能夠支持單音和復(fù)音彈奏,

3、如果與高品質(zhì)的音源芯片連接,音質(zhì)更可與高檔電子琴相媲美。手機中通用的音樂芯片構(gòu)成音源模塊,效果不錯,價格更低廉,如韓國產(chǎn)的QS6400 等,這些芯片的驅(qū)動要復(fù)雜一些,需要對芯片進(jìn)行初始化設(shè)置。此外還有音樂盒、附有生日歌的生日卡片等等。所以利用微機制作的簡易電子琴在我們的日常生活中隨處可見。</p><p>  第一章 簡易電子琴的硬件設(shè)計方案</p><p>  簡易電子琴的設(shè)計構(gòu)想&l

4、t;/p><p>  ⑴采用8個撥碼開關(guān)為輸入(其中SB1~SB7為簡易電子琴的彈奏按鍵,另外一個SB0作為控制自動彈奏預(yù)存琴譜的開關(guān));</p><p><b> ?、茡P聲器為輸出 ;</b></p><p> ?、怯奢斎肟刂戚敵?,即撥碼開關(guān)控制揚聲器;</p><p>  1.2 簡易電子琴的功能與要求</p&g

5、t;<p> ?、殴δ芤粡椬啵河脩裘堪匆粋€鍵盤琴鍵就彈奏相應(yīng)的音符;</p><p> ?、乒δ芏葑啵喊聪骆I盤上某一個指定的建后自動彈奏預(yù)存琴譜功能;</p><p>  1.3 簡易電子琴硬件設(shè)計方案的確定</p><p> ?、鸥鶕?jù)揚聲器發(fā)聲原理可知:不同頻率的方波通過揚聲器可發(fā)出不同的聲音。</p><p> ?、朴纱?/p>

6、構(gòu)想運用8253工作在方式3的狀態(tài)下控制其2#計數(shù)器對應(yīng)寄存器中的數(shù)值,然后將輸出端口OUT2產(chǎn)生的方波通過揚聲器轉(zhuǎn)換成為聲音。</p><p> ?、菫榱藢崿F(xiàn)彈奏按鍵(即撥碼開關(guān))來控制揚聲器,可以通過用撥碼開關(guān)改變8253(工作在方式3的狀態(tài)下)2#計數(shù)器對應(yīng)寄存器中的數(shù)值,8253輸出端口OUT2 通過反相器后與揚聲器相連接。</p><p> ?、茸詈笠獙崿F(xiàn)的就是將撥碼開關(guān)對應(yīng)的數(shù)

7、字信號存入寄存器中</p><p>  采用8255A并行接口特點,使端口A工作在方式0并作為輸出口,端口B工作在方式0,并作為輸入口。將撥碼開關(guān)與8255A的輸入端口B相連接。</p><p><b>  ⑸可編程接口芯片</b></p><p><b>  8255A芯片:</b></p><p&g

8、t;  8255A的數(shù)據(jù)線、 片選信號線、 地址線 、讀寫控制線等分別與系統(tǒng)總線相連,其中A、 B、 C三個端口一排針形式引出,如下圖⑴所示,端口地址如表2</p><p>  表1 8255A端口地址表</p><p><b>  8253芯片:</b></p><p>  系統(tǒng)中,8253的0通道輸出線與8253的0#中斷請求線作為時鐘中斷

9、信號。1#通道入口接1.8432MHz的信號源,輸出接8251的收發(fā)時鐘端,供串行通訊使用,這里的13計數(shù)器僅當(dāng)作一個分頻器使用。2#通道以排針形式引出,開放給用戶使用,如下圖⑵,所示系統(tǒng)中的8253端口地址如表2</p><p>  表2 8253端口地址表</p><p>  圖⑴

10、 </p><p><b>  圖⑵</b></p><p>  61H 端口是8255并行接口B口的地址,由它來控制揚聲器的.實際上由PB還加上一個8253定時器,通過與門之后才連到揚聲器上的。 </p><p>  第二章 簡易電子琴的軟件設(shè)計</p><p>  2.1 主程序流

11、程圖</p><p>  2.2 彈奏程序功能設(shè)計 </p><p>  DATA SEGMENT</p><p>  TABLE1 DB 4DH,45H,3DH,39H,33H,2DH,28H ;1,2,3,4,5,6,7的頻率</p><p>  DATAENDS </p><p>  STACK S

12、EGMENT STACK</p><p>  DW 64 DUP(?) </p><p>  STACK ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:STACK</p><p>  START: MOV AX, DATA</p>

13、<p>  MOV DS, AX</p><p>  MOV AL,82H ;8255初始化</p><p>  OUT 63H,AL</p><p>  A0: IN AL,61H</p><p>  OUT 60H,AL</p><p>  CMP AL,00H

14、 </p><p><b>  JZ A0</b></p><p>  CMP AL,02H ;1,2,3,4,5,6,7的發(fā)音判斷</p><p><b>  JZ F1</b></p><p>  CMP AL,04H </p><

15、p><b>  JZ F2</b></p><p>  CMP AL,08H</p><p><b>  JZ F3</b></p><p>  CMP AL,10H</p><p><b>  JZ F4</b></p><p>  CMP

16、 AL,20H</p><p><b>  JZ F5</b></p><p>  CMP AL,40H</p><p><b>  JZ F6</b></p><p>  CMP AL,80H</p><p><b>  JZ F7</b><

17、;/p><p><b>  LOOP A0</b></p><p>  F1: MOV BX, OFFSET TABLE1 ;發(fā)音1</p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>

18、  JMP A0</b></p><p>  F2: MOV BX, OFFSET TABLE1 ;發(fā)音2</p><p><b>  INC BX</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p>

19、;<p><b>  JMP A0</b></p><p>  F3: MOV BX, OFFSET TABLE1 ;發(fā)音3</p><p><b>  ADD BX,2</b></p><p><b>  CALL FY</b></p><p>

20、;  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F4: MOV BX, OFFSET TABLE1 ;發(fā)音4</p><p><b>  ADD BX,3</b></p><p><b>  CALL FY</b&

21、gt;</p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F5: MOV BX, OFFSET TABLE1 ;發(fā)音5</p><p><b>  ADD BX,4</b></p><p>&

22、lt;b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F6: MOV BX, OFFSET TABLE1 ;發(fā)音6</p><p><b>  ADD BX,5</b>

23、;</p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F7: MOV BX, OFFSET TABLE1 ;發(fā)音7</p><p><

24、b>  ADD BX,6</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  FY PROC ;發(fā)音子程序 &

25、lt;/p><p>  A7: MOV AL, 0B6H ;8253初始化</p><p>  OUT 43H, AL</p><p>  MOV AL, [BX]</p><p>  MOV AH, 00H </p><p>  MOV DL, 25H</p><p>  MUL

26、 DL </p><p>  OUT 42H, AL </p><p>  MOV AL, AH</p><p>  OUT 42H, AL</p><p><b>  RET</b></p><p><b>  FY ENDP</b>

27、</p><p>  DELAY PROC ;延時子程序</p><p><b>  PUSH CX</b></p><p><b>  PUSH AX</b></p><p>  MOV CX,0040H</p><p> 

28、 A5: MOV AX,056CH</p><p>  A6: DEC AX</p><p><b>  JNZ A6</b></p><p><b>  LOOP A5</b></p><p><b>  POP AX</b></p><p>&l

29、t;b>  POP CX</b></p><p>  MOV AL,0BAH ;改變8253的控制字1011 1010,工作于方式5</p><p>  MOV DX,43H</p><p><b>  OUT DX,AL</b></p><p><b>  RET</b>

30、;</p><p>  DELAY ENDP</p><p>  CODEENDS </p><p><b>  END START</b></p><p>  2.3 自動播放預(yù)存琴譜功能程序設(shè)計</p><p>  DATA SEGMENT</p><p

31、>  TABLE2 DB 4DH,4DH,33H,33H,2DH,2DH,33H,01H</p><p>  DB 39H,39H,3DH,3DH,45H,45H,4DH,01H</p><p>  DB 33H,33H,39H,39H,3DH,3DH,45H,01H</p><p>  DB 33H,33H,39H,39H,3DH,3DH,45H,01H&l

32、t;/p><p>  DATA ENDS </p><p>  STACK SEGMENT STACK</p><p>  DW 64 DUP(?) </p><p>  STACK ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE

33、,DS:STACK</p><p>  START: MOV AX, DATA</p><p>  MOV DS, AX</p><p>  MOV AL,82H ;8255初始化</p><p>  OUT 63H,AL</p><p>  CMP AL,01H ;

34、擴展功能</p><p><b>  JZ F0</b></p><p>  F0: MOV BX, OFFSET TABLE2</p><p><b>  JZ A1</b></p><p>  A1: IN AL,61H </p><

35、;p>  CMP AL,01H</p><p><b>  JNZ A4</b></p><p>  CALL FY ;在彈奏程序中已編入可直接調(diào)用</p><p>  CALL DELAY</p><p><b>  INC BX</b></p>&l

36、t;p>  MOV AL, [BX]</p><p>  TEST AL, 0FFH ;唱完一遍自動停止</p><p><b>  JZ A3</b></p><p><b>  JMP A1</b></p><p>  A3: PUSH AX

37、 ;延時</p><p><b>  POP AX</b></p><p><b>  LOOP A3</b></p><p>  JMP A4 </p><p>  A4: MOV AL,0BAH ;改變8253的控制字,工作在方式5,使不發(fā)聲</p><p&g

38、t;  MOV DX,43H</p><p>  OUT DX,AL </p><p>  JMP A0 </p><p>  CODE ENDS </p><p><b>  END START</b></p><p>  2.4 簡易電子琴主程序設(shè)計</p>

39、<p>  DATA SEGMENT</p><p>  TABLE1 DB 4DH,45H,3DH,39H,33H,2DH,28H ;1,2,3,4,5,6,7的頻率</p><p>  TABLE2 DB 4DH,4DH,33H,33H,2DH,2DH,33H,01H</p><p>  DB 39H,39H,3DH,3DH,45H,45H

40、,4DH,01H</p><p>  DB 33H,33H,39H,39H,3DH,3DH,45H,01H</p><p>  DB 33H,33H,39H,39H,3DH,3DH,45H,01H</p><p>  DATAENDS </p><p>  STACK SEGMENT STACK</p><p> 

41、 DW 64 DUP(?) </p><p>  STACK ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:STACK</p><p>  START: MOV AX, DATA</p><p>  MOV DS, AX</p>&

42、lt;p>  MOV AL,82H ;8255初始化</p><p>  OUT 63H,AL</p><p>  A0: IN AL,61H</p><p>  OUT 60H,AL</p><p>  CMP AL,00H </p><p><b>  

43、JZ A0</b></p><p>  CMP AL,01H ;擴展功能</p><p><b>  JZ F0</b></p><p>  CMP AL,02H ;1,2,3,4,5,6,7的發(fā)音判斷</p><p><b>  JZ F1&l

44、t;/b></p><p>  CMP AL,04H </p><p><b>  JZ F2</b></p><p>  CMP AL,08H</p><p><b>  JZ F3</b></p><p>  CMP AL,10H</p>

45、;<p><b>  JZ F4</b></p><p>  CMP AL,20H</p><p><b>  JZ F5</b></p><p>  CMP AL,40H</p><p><b>  JZ F6</b></p><p&g

46、t;  CMP AL,80H</p><p><b>  JZ F7</b></p><p><b>  LOOP A0</b></p><p>  F1: MOV BX, OFFSET TABLE1 ;發(fā)音1</p><p><b>  CALL FY</b>

47、</p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F2: MOV BX, OFFSET TABLE1 ;發(fā)音2</p><p><b>  INC BX</b></p><p><b&g

48、t;  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F3: MOV BX, OFFSET TABLE1 ;發(fā)音3</p><p><b>  ADD BX,2</b></p

49、><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F4: MOV BX, OFFSET TABLE1 ;發(fā)音4</p><p><b>  A

50、DD BX,3</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F5: MOV BX, OFFSET TABLE1 ;發(fā)音5</p>

51、;<p><b>  ADD BX,4</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F6: MOV BX, OFFSET TABLE1

52、 ;發(fā)音6</p><p><b>  ADD BX,5</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b></p><p>  F7

53、: MOV BX, OFFSET TABLE1 ;發(fā)音7</p><p><b>  ADD BX,6</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  JMP A0</b>

54、</p><p>  F0: MOV BX, OFFSET TABLE2</p><p><b>  JZ A1</b></p><p>  A1: IN AL,61H </p><p>  CMP AL,01H</p><p><b>  J

55、NZ A4</b></p><p><b>  CALL FY</b></p><p>  CALL DELAY</p><p><b>  INC BX</b></p><p>  MOV AL, [BX]</p><p>  TEST AL, 0FFH

56、 ;唱完一遍自動停止</p><p><b>  JZ A3</b></p><p><b>  JMP A1</b></p><p>  A3: PUSH AX ;延時</p><p><b>  POP AX</b><

57、;/p><p><b>  LOOP A3</b></p><p>  JMP A4 </p><p>  A4: MOV AL,0BAH ;改變8253的控制字,工作在方式5,使不發(fā)聲</p><p>  MOV DX,43H</p><p>  OUT DX,AL &l

58、t;/p><p>  JMP A0 </p><p>  FY PROC ;發(fā)音子程序 </p><p>  A7: MOV AL, 0B6H ;8253初始化</p><p>  OUT 43H, AL</p><p>  MOV AL, [BX]&l

59、t;/p><p>  MOV AH, 00H </p><p>  MOV DL, 25H</p><p>  MUL DL </p><p>  OUT 42H, AL </p><p>  MOV AL, AH</p><p>  OUT 42H, AL&

60、lt;/p><p><b>  RET</b></p><p><b>  FY ENDP</b></p><p>  DELAY PROC ;延時子程序</p><p><b>  PUSH CX</b></p>

61、<p><b>  PUSH AX</b></p><p>  MOV CX,0040H</p><p>  A5: MOV AX,056CH</p><p>  A6: DEC AX</p><p><b>  JNZ A6</b></p><p><b

62、>  LOOP A5</b></p><p><b>  POP AX</b></p><p><b>  POP CX</b></p><p>  MOV AL,0BAH ;改變8253的控制字1011 1010,工作于方式5</p><p>  MOV DX,43H&

63、lt;/p><p><b>  OUT DX,AL</b></p><p><b>  RET</b></p><p>  DELAY ENDP</p><p>  CODEENDS </p><p><b>  END START</b>&

64、lt;/p><p>  第三章 簡易電子琴的安裝與調(diào)試</p><p><b>  3.1 硬件調(diào)試</b></p><p>  ⑴連接簡易電子琴系統(tǒng)的電路圖</p><p>  撥碼開關(guān)SB0~SB7與8255A的PB輸入端口連接,將8253的CLK2與試驗箱上的脈沖源連接,最后把82553的輸出端OUT2通過反相器后

65、接到揚聲器。(由于GATE2端空載時保持高電平,所以不必連接)。</p><p> ?、茖嶒炏渑c微型計算機保持串口通訊成功。</p><p>  ⑶將匯編程序代碼輸入微型計算機進(jìn)行硬件調(diào)試。</p><p><b>  3.2 軟件調(diào)試</b></p><p> ?、虐褟椬喙δ艿某绦虼a輸入微型計算機,與硬件相結(jié)合進(jìn)

66、行修改調(diào)試(其中主要運用跳轉(zhuǎn)、循環(huán)和條用指令)。</p><p> ?、圃趯崿F(xiàn)彈奏功能的程序中再加入自動播放預(yù)存琴譜功能的程序程序,進(jìn)行調(diào)試。</p><p><b>  心得與體會:</b></p><p>  在為期一周的微機原理課程設(shè)計中,我學(xué)會了制做項目的一般步驟。第一部是硬件設(shè)計主要是實現(xiàn)控制對象與被控制對象之間的聯(lián)系。第二步就是軟件

67、設(shè)計,就是要完成各個可編程芯片與CPU之間的數(shù)據(jù)傳送和各個進(jìn)程的邏輯順序。在本次設(shè)計中對硬件要求就要熟練掌握可編程器件8255A和8253的應(yīng)用。對軟件設(shè)計就要熟練掌握匯編語言。由于時間限制的問題和硬件的局限性也只能將電子琴的功能簡易化。</p><p><b>  參考文獻(xiàn):</b></p><p>  1.《微機原理里與接口技術(shù)》(第2版) 彭虎、周佩玲

68、、傅忠謙、編著</p><p><b>  電子工業(yè)出版社</b></p><p>  2.《匯編語言與接口技術(shù)》 王讓定 陳金兒 葉富樂 史旭華 編著</p><p><b>  清華大學(xué)出版社</b></p><p>  3. 《匯編語言程序設(shè)計》 相偉 主編 徐

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論