電子琴的設計-修改提交版.doc_第1頁
電子琴的設計-修改提交版.doc_第2頁
電子琴的設計-修改提交版.doc_第3頁
電子琴的設計-修改提交版.doc_第4頁
電子琴的設計-修改提交版.doc_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

課程題目:電子琴的設計 姓 名:張思揚 學 號: 201282250228 專業班級:電氣1202班 指導老師:賀勇老師 課程時間:2014年11.15-12.03課程設計任務書一、課程設計初始條件:1.用于調試程序的宏基兼容PC機一臺;2.安裝DOS/WIN98操作系統或運行于DOS/ WIN98兼容方式;3. EDIT 等文本編輯器輸入80x86匯編程序,MASM 5.0編譯及鏈接程序。二、要求完成的主要任務: 1.使用匯編語言設計一個運行于計算機的電子琴軟件,軟件應實現彈奏 功能。彈奏即用戶每按一琴鍵彈奏相應音符。三、時間安排: 1.程序框圖設計:3天 2.編程:4天 3.調試:3天 4.編寫設計報告:4天四、人員安排: 1.流程圖:孟雪巍、王紹文、李燈、柏衡祁 2.電路圖:章宇軒、張思揚、梁振、廖博斌 3.程序設計:孟雪巍、李燈(發音);周燕生、張思揚(關揚聲器); 廖博斌、柏衡祁(彈奏)、 4.調試:梁振、王紹文、章宇軒、孟雪巍、周燕生第 0 頁 共 12 頁長沙理工大學微機原理與接口技術課程設計目 錄摘 要3一、設計任務和思路41.設計任務42.設計思路4二、硬件部分工作原理51. 8255工作原理52. 8253工作原理6三、程序流程圖7四、各部分功能實現說明71. 發音部分功能實現72.彈奏功能的實現8結 束 語9本科生課程設計成績評定表10摘 要匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。利用匯編語言能夠直接訪問與硬件相關的存儲器或I/O端口,從而最大限度地發揮硬件的功能。本文主要介紹了利用匯編語言設計一個運行于計算機的電子琴軟件,軟件能夠實現彈奏的功能,當按下彈奏鍵時,實現彈奏功能,發出音符對應頻率的聲音。首先介紹了PC機內揚聲器的控制電路,接著介紹了相關接口芯片8255和8253的內部結構和工作原理,接著講述了各部分功能的具體實現方法。關鍵詞:匯編語言,8255,8253,揚聲器 電子琴的設計一、設計任務和思路1.設計任務使用匯編語言設計一個運行于計算機的電子琴軟件,軟件應實現彈奏功能。彈奏即用戶按照1-8按鍵則揚聲器發出對應聲音的音符。2.設計思路 電子琴的設計實際上就是要設計一個程序,能夠通過該程序控制PC機內揚聲器的發聲規律,按下相應的按鍵后,揚聲器能發出指定頻率的聲音。PC機內的揚聲器是通過并行接口芯片8255和定時芯片8253來控制發音的,其電路連接方式如下圖所示。 8255A PB1 PB0 CLK2 8253GATE2 OUT2 &揚聲器1.19318MHZ 圖1 PC機內揚聲器控制電路由圖可知,揚聲器是由8253通道2產生的方波信號和8255的PB1 相與后驅動發聲的,且通道2的門信號由8255的PB0提供,要想讓揚聲器發聲,PB0和PB1必須同時為高電平,因此,可以通過對8255的PB0和PB1的設置來控制揚聲器的開通和關斷,而其發音頻率可以通過對8253通道2的計數初值的設置來控制。所設計程序的任務就是要通過對按鍵的判斷來設置8255的PB0和PB1輸出電平的高低,以及8253通道2計數初值的設置。計數初值N=時鐘頻率/音階頻率.各音階的頻率如下表所示。表1 各音符頻率表音符1234567頻率262294330349392440494二、硬件部分工作原理1. 8255工作原理8255的內部結構圖如圖2所示,它有3個數據端口,分為兩組,A組由A口和C口高四位組成,B組由B口和C口低四位組成。其方式控制字如圖3所示。圖2 8255內部結構圖圖3 8255方式控制字方式控制字的特征位D0D7D6D5D4D3D2D1 1 A組工作方式0 0方式00 1方式11 方式2B組工作方式0方式01方式1A口輸入/輸出1輸入0輸出PC7PC4輸入/輸出1輸入0輸出B口輸入/輸出1輸入0輸出PC3PC0輸入/輸出1輸入0輸出 PC機內8255的A口,B口,C口和控制口的端口地址分別為:60H,61H,62H,63H。2. 8253工作原理 8253芯片中有3個計數通道,稱為通道0,1,2,它們與外部電路相連的信號線有3根:CLK,GATE,OUT,CLK是脈沖輸入端,GATE是門控信號,OUT是輸出信號,計數器工作在減1狀態。其內部結構圖和方式控制字格式如圖4,圖5所示。其中當計數器工作在方式3時,輸出信號為方波信號。內部總線A1GATE0CLK0OUT0GATE1CLK1OUT1GATE2CLK2OUT2D0-D7計數器0計數器2計數器1控制寄存器A0數據總線緩沖器R/W邏輯電路圖4 8253內部結構圖D7D6D5D4D3D2D1D0計數器選擇00 計數器001計數器110 計數器211 不用00 計數器鎖存01 讀寫低8位10 讀寫高8位11 讀寫16位工作方式選擇000 方式0001 方式110 方式211 方式3100 方式4101 方式5計數方式0 二進制1 BCD計數圖5 8253控制字格式PC機內8253的通道0,通道1,通道2,控制口的端口地址分別為:40H,41H,42,43H。因為揚聲器是由通道2來控制的,故應選擇通道2,工作方式選為方式3,輸出的信號則為方波信號。三、程序流程圖 軟件流程圖如下圖所示:計算初值查表的相應的頻率8253初始化開揚聲器延時關揚聲器結束讀取按鍵開始圖10 發音子程序流程圖四、各部分功能實現說明1. 發音部分功能實現由更件的連接形式可知,揚聲器的開斷是由8255的PB0和PB1以及8253通道2同時控制的,PB0和PB1同時為高電平時,揚聲器開,有一個為低電平時,揚聲器關斷,又知8255 B口地址為61H,8253通道2地址為42H,控制口地址為43H。具體程序編寫如下。 8253初始化程序段: mov al,10110110b ;選擇8253的通道2,并設置為工作方式3out 43h,al mov ax,bxout 42h,al ;將計數初值的低8位寫入計數通道mov al,ahout 42h,al ;將計數初值的高8位寫入計數通道開揚聲器程序段:in al,61h ;讀入B口數據or al,03h ;將PB0 和PB1置1out 61h,al ;將設置好的數據送回B口關揚聲器程序段:in al,61h ;讀入B口數據 and al,0fch ;將PB0 和PB1置0out 61h,a ;將設置好的數據送回B口2.彈奏功能的實現當按鍵為數字1-8時,選擇彈奏功能,通過對按鍵的判斷,求得其偏移地址,然后通過查表得其相應頻率值,再由上述計算計數初值的方法求得計數初值,然后將計數初值送人8253的通道2,最后調用發音子程序即實現彈奏功能。具體程序段如下: sub al,31h ;求偏移量 shl al,1 mov bl,al ;保存偏移量 mov bh,0 mov ax,num1 ;計算計數初值 mov dx,num2 div word ptrtab+bx mov bx,ax ;保存計數初值結 束 語本科生課程設計成績評定表姓 名孟雪巍性 別男專業、班級電氣1202班課程設計題目: 電子琴的設計課程設計答辯或質疑記錄:成績評定依據:評定項目1.選題

溫馨提示

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

評論

0/150

提交評論