電子琴微機原理基于8086課程設計_第1頁
電子琴微機原理基于8086課程設計_第2頁
電子琴微機原理基于8086課程設計_第3頁
電子琴微機原理基于8086課程設計_第4頁
電子琴微機原理基于8086課程設計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南科技大學瀟湘學院信息與電氣工程系課程設計報告題 目: 基于8086的電子琴設計 專 業(yè): 通信工程 班 級: 通信一班 姓 名: 羅婷 學 號: 1354040118 指導老師:歐青立 陳君 宋芳 管志利 李目 2015年 12 月 28 日信息與電氣工程系課程設計任務書20152016 學年第 1 學期專業(yè): 通信工程 學號: 1354040118 姓名: 羅婷 課程設計名稱: 微機原理與接口技術 設計題目: 基于8056的電子琴設計 完成期限:自 2015 年 12 月 14 日至 2015 年 12 月 26 日共 2 周設計內(nèi)容:通過 8255 和 8253 來實現(xiàn)電子琴模擬,主要

2、可以分成兩部分,分別為輸入部分和發(fā)音部分。輸入部分:主要是由 8255 和 8 個常開型開關來完成。 發(fā)音部分:CUP 通過對定時器 8253 的通道 2 進行編程,使其 I/O 寄存器接收一 個控制聲音頻率的 16 位計數(shù)值,端口 61H 的最低位控制通道 2 門控的開斷,以 產(chǎn)生特殊的音響。本文用到的是 8253 的方式 3方波發(fā)生器。基本要求:1. 以8255接八個開關K1K8,做電子琴按鍵輸入。2. 以8253控制揚聲器,撥動不同的開關,發(fā)出相應的音階。要求: 開 關K1K2K3K4K5K6K7K8對應頻率靜音silasofamirido對應數(shù)據(jù)0FEH0FDH0FBH0F7H0EFH

3、0DFH0BFH7FH指導教師(簽字): 批準日期: 年 月 日摘 要 定時器/ 計數(shù)器8253 可以產(chǎn)生不同頻率的信號, 經(jīng)過三極管放大驅(qū)動揚聲器發(fā)出不同的音階。硬件上以8086 作為核心處理單元, 將8253 的輸出端連接音頻模塊。軟件上檢測按鍵是否有鍵按下, 判斷按鍵并驅(qū)動對應發(fā)音子程序。通用MIDI音源模塊制作制作出的電子琴,結構簡單,可靠性高,并且價格低廉,具有實用的價值。這種電子琴能夠支持單音和復音彈奏,如果與高品質(zhì)的音源芯片連接,音質(zhì)更可與高檔電子琴相媲美。手機中通用的音樂芯片構成音源模塊,效果不錯,價格更低廉,如韓國產(chǎn)的QS6400 等,這些芯片的驅(qū)動要復雜一些,需要對芯片進行

4、初始化設置。此外還有音樂盒、附有生日歌的生日卡片等等。所以利用微機制作的簡易電子琴在我們的日常生活中隨處可見。關鍵詞:Altium Designer; ;8086;8255;8253定時器;目 錄1. 設計目的52. 元件與儀器63. 設計內(nèi)容64. 電路工作原理65.1 控制模塊工作原理75.2.0 8255A芯片:85.2.1 8255A的內(nèi)部結構85.2.2 8255的外部引腳85.2.3 8255的方式控制字96. 發(fā)聲模塊工作原理106.1.1 8253芯片106.1.2 8253的6種工作方式:117.整體電路圖138.主要程序與編譯軟件149. 軟件程序:1510. 心得體會19

5、1.設計目的檢驗和提高我在原理與接口綜合應用方面分析問題與解決問題的能力,同時也給我提供更多、更好的訓練機會。根據(jù)設計要求,盡可能完成設計要求的功能,選擇最合適的器件,構成最有效的硬件電路來完成。2. 元件與儀器1計時器82532并行控制器8255A3實驗臺4. PC機3.設計內(nèi)容根據(jù)揚聲器發(fā)聲原理可知:不同頻率的方波通過揚聲器可發(fā)出不同的聲音。由此構想運用8253通道二工作在方式3的狀態(tài)下控制其2#計數(shù)器對應寄存器中的數(shù)值,然后將輸出端口OUT2產(chǎn)生的方波通過揚聲器轉換成為聲音。為了實現(xiàn)彈奏按鍵來控制揚聲器,可以通過用開關改變8253(工作在方式3的狀態(tài)下)2#計數(shù)器對應寄存器中的數(shù)值,82

6、53輸出端口OUT2 通過74LS08后與揚聲器相連接。最后要實現(xiàn)的就是將開關對應的數(shù)字信號存入寄存器中采用8255A并行接口特點,使端口A工作在方式PB1并作為輸出口,端口B工作在方式0,并作為輸入口。將開關與8255A的輸入端口A相連接。4. 電路工作原理整個電路采用模塊化來進行設計,分為控制模塊和發(fā)聲模塊。主要的器件有一個并行接口8255,和一個8253定時器。輸入部分的硬件原理圖比較簡單,控制模塊其主要是由8個常開型開關和一個并行接口8255組成。8個開關一端接地,另一端接到8255的A口輸入,并且通過一個電阻接到+5V。因此,在開關不按下時,從8255A口輸入的是高電平,當開關按下時

7、,輸入的則是低電平,這樣通過低電平觸發(fā),既方便也對芯片起保護作用。通過軟件檢測輸入的數(shù)據(jù),然后給8253送相應頻率的計數(shù)值。發(fā)音模塊連接到揚聲器上的是8253定時器2,GATE2與端口61H的PB0相連,當PB0=1時,GATE2獲得高電平,使定時器2可以在模式3(方波)下工作。定時器2的OUT2與端口61H的PB1通過一個與門與揚聲器的驅(qū)動電路相連。當PB1=1時,允許OUT2的輸出信號到達揚聲器電路。因此,只有PB0和PB1同時為“1”時,才能驅(qū)動揚聲器鳴叫。5.1 控制模塊工作原理控制部分主要是由8255和8個常開型開關來完成。常開型開關如右圖。8個常開型開關K1K8與8255的A口PA

8、0PA7相接,不觸動開關時,為高電平輸入,當按下開關時,就接地,為低電平輸入。例如當K1鍵按下時,從8255中A口輸入的數(shù)為11111110B,十六進制為0FEH。每一個開關按下時,都對應一個ASCII碼,由于PC計算機的時鐘晶振為1.1931816MHz,根據(jù)頻率的公式:f=1/T 則頻率周期為T=1/f 定時器的計數(shù)器為16位計數(shù)器,則最大的計數(shù)值為65536,那么其定時時間為:t=65536*T=65536/f=0.0549254(秒) 即:PC定時器每秒可中斷18.2065次。開 關K1K2K3K4K5K6K7K8對應數(shù)據(jù)0FEH0FDH0FBH0F7H0EFH0DFH0BFH7FH對

9、應頻率靜音493 Hz440 Hz392 Hz349 Hz329 Hz293 Hz261 Hz 5.2 8255A芯片: 8255A是為Intel公司的微處理器配套的通用可編程并行接口芯片,其基本功能如下:8255A接口芯片有3個8位并行輸入/輸出端口,可利用編程方法設置3個端口是作為輸入端口還是作為輸出端口;8255A能適應CPU與I/O接口之間的多種數(shù)據(jù)傳送方式的要求。如無條件傳送,查詢方式傳送,中斷方式傳送 。與此相應,8255A設置了方式0、方式1以及方式2。5.2.1 8255A的內(nèi)部結構8255A的C口比較特殊,除作數(shù)據(jù)口外,在工作方式1和2下,它的部分信號線被分配作專用的聯(lián)絡應答

10、信號。8255A的內(nèi)部結構機外部引腳,它包括四個部分:數(shù)據(jù)總線緩沖器,讀寫控制邏輯,A組和B組控制電路。 1. 數(shù)據(jù)總線緩沖器 2. 讀寫控制邏輯 3. A組和B組控制A和端口C的高4位(PC7PC4)構成A組,由A組控制部件來對它進行控制;端口B和端口C的低4位(PC3PC0)構成B組,由B組控制部件對它進行控制。5.2.2 8255的外部引腳 8255的外部引腳 1. 與CPU相連的引腳 D7D0:數(shù)據(jù)線,雙向、三態(tài)。 :讀信號,輸入、低電平有效。 :寫信號,輸入、低電平有效信號。 :片選信號,輸入、低電平有效。 2. 8255A的數(shù)據(jù)線、 片選信號線、 地址線 、讀寫控制線等分別與系統(tǒng)總

11、線相連,其中A、 B、 C三個端口一排針形式引出。表1 8255A端口地址表信號線 寄存口 編址 IY03 A口60H B口 61H C口 62H控制寄存器 63H5.2.3 8255的方式控制字8255A的工作方式控制字格式和各位的含義。A組有三種工作方式,而B只有兩種工作方式。 方式0基本的輸入/輸出方式 方式1選通式輸入/輸出 方式2雙向選通輸入/輸出方式6. 發(fā)聲模塊工作原理要使揚聲器發(fā)出不同的音階, 就得輸入不同頻率的信號。通過給定時/ 計數(shù)器 8253 送入不同的初值, 可以從輸出端得到不同頻率的波形,在74LS08的作用下 經(jīng)過放大器三極管8550的放大作用, 便可驅(qū)動揚聲器發(fā)出

12、不同的音階。音階聲音的持續(xù)時間可以通過軟件延時程序?qū)崿F(xiàn)。17 某一按鍵被系統(tǒng)檢測到, 系統(tǒng)驅(qū)動PC對應子程序使揚聲器輸出對應的音階。6.1.1 8253芯片8253內(nèi)設三個計數(shù)器都獨立工作,用-65536之間的一個數(shù)去輸入頻率,可以實現(xiàn)每個計數(shù)器的獨立編程。每個計數(shù)器占有一個獨立的端口地址??梢酝ㄟ^A0、A1、和CS來尋址這些端口如下圖所示:6.1.2 8253的6種工作方式: 方式0-計數(shù)結束產(chǎn)生中斷 方式1-單穩(wěn)負脈沖信號發(fā)生器 方式2-分頻器 方式3-方波信號發(fā)生器 方式4-軟件觸發(fā)的選通信號發(fā)生器 方式5-硬件觸發(fā)的選通信號發(fā)生器本課題采用通道二方式3,當通道2用于發(fā)聲時,采用的是模式

13、3,在模式3下,輸出線為“1”和為“0”的時間各占計數(shù)時間的一半,因而產(chǎn)生一系列間隔均勻的脈沖。 從定時器輸出的方波信號,三極管驅(qū)動揚聲器。送到揚聲器的信號還受到了從并行接口芯片8255(端口地址為61H)來的雙重控制,端口61H的最低位控制通道2的門控開斷,以產(chǎn)生特殊的音頻信號,端口61H的PB1位和定時器的輸出信號同時作為與門的輸入,PB0和PB1位可由程序決定為0還是為1。顯然只有PB0和PB1都是1時,才能使揚聲器發(fā)出聲音??刂埔糸L的時間可以簡單地通過反復執(zhí)行指令來得到。我們知道執(zhí)行2801次LOOP指令約需要10MS的時間。因此用10MS的倍數(shù)值來控制揚聲器開關的時間間隔,就可控制發(fā)

14、聲的音長了。打開X86 PC揚聲器,GATE2必須設置為高電平,以便計數(shù)器2提供CLK信號。該端口61H的PB0來完成,由下圖還可以看到計數(shù)器2的OUT2和端口61H的PB1進行與操作,然后輸入到PNP三極管8550進行放大作用再到揚聲器中進行播放。為此,為了將OUT2傳送到揚聲器,端口61H的PB1也必須為高電平。IN AL, 61H ;獲得端口B的當前設置MOV AH, AL ;保存OR AL, 00000011B ;使PB0=1,PB1=1MON AL, AH ;獲得端口B的初始設置OUT 61H, AL ;關閉揚聲器7. 整體電路圖8.主要程序與編譯軟件編譯環(huán)境Masmforwindo

15、ws集成實驗環(huán)境是從事一線教學的大學教師針對匯編語言初學者的特點開發(fā)的一個簡單易用的匯編語言學習與實驗軟件,現(xiàn)在已全面支持最新操作系統(tǒng)VISTA,支持DOS的16/32位匯編程序和Windows下的32匯編程序(并提供調(diào)試通過的30個WINDOWS匯編程序?qū)嵗创a),它具有錯誤信息自動定位、關鍵字實時幫助并且在幫助中動畫演示匯編指令的執(zhí)行過程、語法著色、無限次撤消與恢復、WORD式的查找、替換、定位、支持中文、長文件名等功能。本課程設計采用Masmforwindows集成實驗環(huán)境極大方便了程序的編輯與調(diào)試。9. 軟件程序:DATA SEGMENT TABLE DW 493 ;K2發(fā)si的音4

16、93Hz DW 440 ;K3發(fā)la的音440Hz DW 392 ;K4發(fā)sol的音392Hz DW 349 ;K5發(fā)fa的音349Hz DW 329 ;K6發(fā)mi的音329Hz DW 293 ;K7發(fā)re的音293Hz DW 261 ;K8發(fā)do的音261HzDATA ENDS;定義堆棧段STACK SEGMENT PARA STACK 'STACK' STA DB 48 DUP(?) TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ;定義代碼段ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV

17、 AX,DATA MOV DS,AX ;初始化DS MOV AX,STACK MOV SS,AX ;初始化SS MOV AX,TOP MOV SP,AX MOV AL,90H ;初始化8255 OUT 63H,AL;從8255A口輸入一個數(shù)據(jù) K0: IN AL,60H ;以下為檢測哪個鍵按下 CMP AL,0FEH JZ K1 CMP AL,0FDH JZ K2 CMP AL,0FBH JZ K3 CMP AL,0F7H JZ K4 CMP AL,0EFH JZ K5 CMP AL,0DFH JZ K6 CMP AL,0BFH JZ K7 CMP AL,7FH JZ K8 JMP EXIT

18、;如沒有鍵按下,或不止一個鍵按下,則跳到EXIT K1: JMP K0 ;如果為K1按下,則返回繼續(xù)循環(huán),為靜音 K2: MOV BX,TABLE ;如為其它鍵則把相應的頻率送給BX JMP SOUNDF K3: MOV BX,TABLE+1 JMP SOUNDF K4: MOV BX,TABLE+2 JMP SOUNDF K5: MOV BX,TABLE+3 JMP SOUNDF K6: MOV BX,TABLE+4 JMP SOUNDF K7: MOV BX,TABLE+5 JMP SOUNDF K8: MOV BX,TABLE+6 SOUNDF: MOV DX,12H MOV AX,34

19、8CH DIV BX CALL SOUND ;調(diào)用發(fā)音子程序 CALL DELAY ;調(diào)用延時程序 EXIT: MOV AH,06H ;有無鍵盤動作 MOV DL,0FFH INT 21H JZ K0 ;如果沒有,則跳到KO循環(huán) MOV AH,4CH ;如果有,則結束返回 INT 21H ;以下是發(fā)音子程序 SOUND PROC NEAR PUSH AX MOV AL,10110110B ;初始化8253 OUT 43H,AL POP AX OUT 42H,AL ;送計數(shù)值 MOV AL,AH OUT 42H,AL IN AL,Y2 ;發(fā)音設置,打開揚聲器 OR AL,03H OUT Y2,AL RETSOUNDENDP;以下是延時子程序DELAY PROC NEAR PUSH CX PUSH AX MOV AX,0FFFHX11: MOV CX,2801X12: LOOP X12 DEC AX JNZ X11 POP AX POP CX RETDELAY ENDPCODE ENDSEND START10. 心得體會在為期兩周的課程設計中我學到了很多。其中知道了一個課題需要從硬件開始設計在進行軟件的設計。程序編好后,編譯,連接,運行,即可實現(xiàn)電子琴效果??梢栽谟嬎銠C鍵盤上彈奏出美妙

溫馨提示

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

評論

0/150

提交評論