版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
電子音樂播放器一、 課程設計的目的和意義學習和掌握計算機中常用接口電路的應用和設計技術,學會針對不同的要求設計匯編程序代碼,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛煉。通過這次設計實踐能夠進一步加深對專業(yè)知識和理論知識學習的認識和理解,使自己的設計水平和對所學知識的應用能力以及分析問題解決問題的能力得到全面提高。二、 設計要求利用8254作為音階頻率發(fā)生器,應先對至少兩段音樂進行編碼后存入音符表,并建立好音階表,每段音符長度不能少于60個,每首連續(xù)播放3遍后,自動播放下一段音樂,幾段音樂播完后,循環(huán)播放,直到有鍵盤輸入任意字符時停止,并且使用8255作為控制開關的并行輸入接口,輸入開關選擇的音樂控制信號。三、 設計總框圖
四、設計設計思路說明:電子音樂播放器屬于接口電路的連接使用,本設計是以8254芯片為核心的發(fā)生系統(tǒng)。8086CPU在形成系統(tǒng)總線后,通過和8254及8255的連接使用可以很好的驅動揚聲器發(fā)音。系統(tǒng)初始化后,8255通過B通道,從控制開關讀取所需的控制字,并送入8086CPU中進行判斷,選擇不同的播放音樂。使8254的通過0號計數器工作在“頻率發(fā)生器”方式3,向發(fā)生器發(fā)出不同頻率的方波。當給定不同的計數初值時可以使揚聲器發(fā)出不同頻率的音響。五、程序流程圖六、接口電路原理圖1、8254的基本知識8254占用4個端口,3個定時器各占1個,控制端口占1個。8254的內部結構如圖所示,它主要包括以下幾個主要部分:Dt~Do內部數據總線Dt~Do內部數據總線8254的內部結構(1).數據總線緩沖器實現8254與CPU數據總線連接的8位雙向三態(tài)緩沖器,用以傳送CPU向8254的控制信息、數據信息以及CPU從8254讀取的狀態(tài)信息,包括某時刻的
實時計數值。.讀/寫控制邏輯控制8254的片選及對內部相關寄存器的讀/寫操作,它接收CPU發(fā)來的地址信號以實現片選、內部通道選擇以及對讀/寫操作進行控制。.控制字寄存器在8254的初始化編程時,由CPU寫入控制字,以決定通道的工作方式,此寄存器只能寫入,不能讀出。.計數通道0#、1#、2#:這是三個獨立的,結構相同的計數器/定時器通道,每一個通道包含一個16位的計數寄存器,用以存放計數初始值,一個16位的減法計數器和一個16位的鎖存器,鎖存器在計數器工作的過程中,跟隨計數值的變化,在接收到CPU發(fā)來的讀計數值命令時,用以鎖存計數值,供CPU讀取,讀取完畢之后,輸出鎖存器又跟隨減1計數器變化。.8254外部引腳8254芯片是具有24個引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8254芯片的24個引腳分為兩組,一組面向CPU,另一組面向外部設備,各個引腳及其所傳送信號的情況,介紹如下:1.D7~D0:雙向、三態(tài)數據線引腳,與系統(tǒng)的數據線連接,傳送控制、數據及狀態(tài)信息。RD:來自于CPU的讀控制信號輸入引腳,低電平有效。WR:來自于CPU的寫控制信號輸入引腳,低電平有效。CS:芯片選擇信號輸入引腳,低電平有效。數據蠲控制絡電源,VCC地876543211O543867-MD數據蠲控制絡電源,VCC地876543211O543867-MD1111JIJIJIJIJIJ1CLKOGATEOOUTO計數器0號■*—CLK1■*—GATE1—*-OUTl計數器1號(6).8254端口地址ZCS/RD/WRAlA2寄存器選擇與操作01000寫九計數器#00r001寫理計數器#101010寫&計數器#201.01;1 寫衣控制寄存器00100讀計數器#000101讀計數器#100.11.0讀計數器#空00111.無操作(二烝卜1XXXX黑止1二忍缶:01.-1.XX無操作(二態(tài))8254端口地址(7).8254功能8253A既可作定時器又可作計數器:計數:計數器裝入初值后,當GATE為高電平時,可用外部事件作為CLK脈沖對計數值進行減1計數,每來一個脈沖減1,當計數值減至0時,由OUT端輸出一個標志信號。定時:計數器裝入初值后,當GATE為高電平時,由CLK脈沖觸發(fā)開始自動計數,當計數到零時,發(fā)計數結束定時信號。除上述典型應用外,8253A還可作頻率發(fā)生器、分頻器、實時鐘、單脈沖發(fā)生器等。(二)、系統(tǒng)設計(1).控制字8255利用端口B從音樂播放選擇端口讀入8位數據進行判斷,同時8254選擇通道0,方式3,二進制,先讀低位/后高位讀數。則輸入的控制字為:MOVDX,D8255_MODEMOVAL,10000010BOUTDX,ALMOVDX,D8254_MODEMOVAL,00110110BOUTDX,AL(2).演奏單音符8254芯片(口地址為40H—43H)的0號計數器工作在方式3作為頻率發(fā)生器發(fā)出方波。每一個音符對應一個頻率,將與一個頻率對應的計數初值寫入0號計數器,揚聲器就可以發(fā)出相應的音調。由于本實驗采用的時鐘是8086CPU時鐘,其頻率可選為1MHZ。故計數初值的計算公式如下:計數初值=1M/輸出頻率1MHZ轉換為16進制數為0F4240H,因此在打開揚聲器的情況下執(zhí)行以下子程序即可發(fā)出與輸出頻率對應的音調。MOV DX,4CHMOV AX,4B40HMOV CX,頻率值DIV CX ;AX=計數初值OUT 40H,ALMOV AL,AHOUT 40H,AL(3).演奏時間控制通過控制每個音符的演奏時間可以使樂曲更加有節(jié)奏感。最直觀的方法是按照樂譜為每一個音符規(guī)定一個演奏時間,但是利用這種方法調試程序特別困難。特別是在遇到一首不熟悉的歌曲時,初期很難確定每個音符的演唱時間,而調試程序的時候費時費力,效果很差。我們可以利用另外一種方法,即為每個音符規(guī)定一個“單位時間”單位時間XN二音符的演唱時間其中,N為調試參數,一首歌曲只有一個調試參數,它為常數。由于每個音符的節(jié)奏(即演唱時間)不同,所以各個音符的“單位時間”都不一樣。每個音符演奏的“單位時間”的確定:我們知道,音符的節(jié)奏分為一拍、半拍、1/4拍、1/8拍等等。如果在一首歌中,所有音符中演奏時間最短的為1/8拍,我們就規(guī)定1/8拍音符的“單位時間”為1,1/4拍音符的“單位時間”為2,半拍音符的“單位時間”為4,一拍音符的“單位時間”為8。調試參數N的確定:顯然,如果能測出一段樂譜的總的時間t,用T(i)來表示第i個音符的“單位時間”那么: N=—T(i)i、頻率表和時間表設計程序時,數據段設這兩張“表”一張是頻率表,將與音符對應的頻率值依次寫入表中,另一張是時間表,依次存放每個音符的單位時間。當然頻率表項和時間表項要一一對應,不能錯位,頻率表的最后一個表項為0作為重復演唱或者停止演唱的標志。在接通揚聲器的情況下,依次取出頻率表中的頻率值,轉換成計數初值寫入2號計數器,依次取出時間表中的單位時間和調試參數N相乘,然后再調用延時子程序即可得到延時時間,也就是音符的演奏時間。表一:音階頻率表音階頻率(HZ)TOC\o"1-5"\h\z247247(12〈2)2=2773113303704154661 247(12〈2)12=247*2=494表二:音符頻率表(HZ)247.247.277.311.311.330.330.311.311.277277,311,277,247,466,247,415,415,247,247277.311.311.330.330.311.311.370.415.370311.277.247.277.277.247.330.370.415.370330.247.247.311.311.330.311.277.247.277370,370,370,370,247,247,277,247,415,370,--1表三:單位時間表44 8448444224484442244844 844888444484444 1644444444444416七、設計總結(一)設計總結通過對電子音樂播放器的設計,從電路到匯編代碼,再到對程序的調試,在整個的設計過程中學到了很多,例如,對8254發(fā)生原理的理解,其工作原理就是對輸入相同的脈沖,通過計數器的控制作用,輸出需要的不同頻率的波。同時用到了8255的并行接口,將二進制的控制信息傳入8086CPU中處理,選擇是否對音樂播放進行調整。在使用8255和8254接口的時候,都要對其進行初始化,這初始化程序的編寫,有助于對這些接口芯片的工作原理的理解。同時在調試過程中對不同音階進行調試,加深了對發(fā)聲原理的理解與掌握??傊趯嶒炛凶约簞邮?,把理論知識用于實踐,從中能夠領會很多。(二)設計存在的問題和不足由于是初次設計這個微機課程設計,在設計中由于考慮不全或知識面的狹窄,導致了在實驗設計中出現一些不足和錯誤,主要有以下幾點:1、 實驗箱里面的線路連接和接線接頭不是很熟悉,在實驗連線中偶爾出現錯誤。2、 關于實驗中的芯片的使用方法,存在問題,不能準確的合理使用芯片功能。3、 寫程序代碼時,由于知識面的狹窄,會對一些步驟的編寫出現錯誤,不過查資料后都正確的改正了。4、 關于循環(huán)和聲音控制計數器中數的計算有點問題,不過經過老師的解答,也基本弄清楚了。5、 設計中最大的難處就是實現上面的對音節(jié)時間的控制方式,在最后的編程中沒有使用上面的時間控制方式,從而導致了最后輸出地音樂的聲音不是很標準,同時也難調試。(三)心得體會這次課程設用了一個星期,在這一個星期的日子里,雖然還要復習其他的學科知識以應對相應的期末考試,但在每天下午的設計實驗室里面還是靜下心來認認真真的編寫匯編代碼,學習連接線路芯片。在之前的書本理論知識的學習中對相應的芯片知識不是很了解,在課程設計的過程中,加深了其理解。同時,也對整個學科的知識進行了匯總學習。從8286CPU到8255并行接口再到8254可編程計數器的使用原來和連接方法進行深入的學習,關于8255和8254相應的程序控制字進行了理解與掌握,基本熟悉了其相關的用法,在把理論知識用在了實際問題的解答之中,即進一步學會了怎么將理論與實踐結合起來解決問題。雖然,認認真真的看書找資料,但還是會在設計過程中遇到一些問題,但在老師是指導下,問題一個一個的解決,知識和動手能力再一點一點的增加,相信只有把知識應用到實際中才算是真正的學習知識。八、匯編程序代碼D8255_MODEEQU0C003HD8255_B_DUEQU0C001HD8254_MODEEQU0C063HD8254_COUTEQU0C060HNAME DZYYBFPAGE 50,70DATA1 SEGMENTFREQ1DW247,247,277,311,311,330,330,311,311,277DW277,311,277,247,466,247,415,415,247,247DW277,311,311,330,330,311,311,370,415,370DW311,277,247,277,247,330,370,415,370,330DW247,247,311,311,330,311,277,247,415,370,0,0TIME1DW50,25,25,50,50,50,50,25,100,50DW25,25,50,50,50,50,25,100,50,25DW25,50,50,50,50,50,50,25,50,50DW25,25,50,50,50,25,100,75,25,25DW25,25,25,25,25,25,100,50,50,25,0,0FREQ2DW265,294,330,262,262,294,330,262,330,349DW392,330,349,392,392,440,392,349,330,262DW392,440,392,349,330,262,294,196,262,294DW196,262,0TIME2DW50,50,100,100,100,100,100,50,50,100DW100,100,100,100,50,50,100,100,100,100DW100,100,50,50,100,100,100,100,100,50DW100,100,0,0FREQ3DW7DUP(330),392,262,294,330,4DUP(349)DW2DUP(330),330,294,262,294,392DW7DUP(330),392,262,294,330,4DUP(349)第8頁DW2DUP(330),392,392,349,294,262,0,0TIME3DW2DUP(25,25,50),4DUP(25),100TIME3DWDW2DUP(25,25,50),4DUP(25)DW2DUP(50),2DUP(25,25,50),4DUP(25),100DW2DUP(25,25,50),4DUP(25),100,0,0DATA1ENDSSTACK1SEGMENTPARASTACKDW100DUP(?)STACK1ENDSCODESEGMENTASSUMEASSUMECS:CODE,DS:DATA1SS:STACK1START:MOVAX,DATA1MOVDS,AXMOVAX,0MOVSI,AXMOVDX,D8255_MODEMOVAL,10000010B;B端口方式0輸人OUTDX,ALMOVDX,D8254_MODE;連接8253的控制端口MOVAL,00110110B;定義8253為通道0,方式3,OUTDX,AL;二進制,先讀低位/后讀高位MUSIC1:MOVCX,4HCIRCUL1:DECCXJZMUSIC2LEADI,FREQ1;取偏移地址LEABP,TIME1
L00P1:MOVAX,[DI];取時間偏移地址CMPAX,0JECIRCUL1CALLSPEAKERXORAX,AXMOVDX,D8255_B_DU;連接8255_B端口INAL,DX;從手動控制端讀入控制選擇信息MOVAH,0CMPAX,SI;判斷輸入的信息變化沒有,JZAAA1;沒變則表示沒有改變原來的選擇MOVSI,AXCMPAL,1H;判斷輸入的信息,JNZAAA2:選擇播放那首音樂JMPMUSIC1AAA2:CMPAL,2HJNZAAA3JMPMUSIC2AAA3:CMPAL,4HJNZAAA1JMPMUSIC3AAA1:ADDDI,2ADDBP,2JMPLOOP1MUSIC2:MOVCX,4HCIRCUL2:DECCXJZMUSIC3LEADI,FREQ2LEABP,TIME2LOOP2:MOVAX,[DI]
CMPAX,0JECIRCUL2CALLSPEAKERXORAX,AXMOVDX,D8255_B_DU;連接8255_B端口INAL,DX;從手動控制端讀入控制選擇信息MOVAH,0HCMPAX,SI;判斷輸入的信息變化沒有,沒變JZAAA6;則表示沒有改變原來的選擇MOVSI,AXCMPAL,1H;判斷輸入的信息,選擇播放那首音樂JNZAAA4JMPMUSIC1AAA4:CMPAL,2HJNZAAA5JMPMUSIC2AAA5:CMPAL,4HJNZAAA6JMPMUSIC3AAA6:ADDDI,2ADDBP,2JMPLOOP2MUSIC3:MOVCX,4HCIRCUL3:DECCXJNZLOOOPCALLBREAKJMPMUSIC1LOOOP:LEADI,FREQ3;取偏移地址
LEABP,TIME3;取時間偏移地址L00P3:MOVAX,[D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度特色餐飲連鎖品牌授權合同3篇
- 2025年度生態(tài)修復工程承包商借款合同范本4篇
- 2025年度數據中心運維外包合同4篇
- 2025年度體育用品代理服務合同模板4篇
- 2025年度物流車輛環(huán)保排放檢測合同4篇
- 2025年度人工智能技術應用與開發(fā)合同2篇
- 2024版全新銷售擔保合同范本下載
- 2025年度新能源汽車充電站車位銷售與管理協(xié)議4篇
- 2024羊絨產業(yè)技術創(chuàng)新與成果轉化合作合同3篇
- 2025年度智能車棚建造與一體化安裝服務合同4篇
- 專升本英語閱讀理解50篇
- 施工單位值班人員安全交底和要求
- 中國保險用戶需求趨勢洞察報告
- 數字化轉型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現場工藝紀律檢查表
- 醫(yī)院品管圈與護理質量持續(xù)改進PDCA案例降低ICU病人失禁性皮炎發(fā)生率
- 新型電力系統(tǒng)研究
- 烘干廠股東合作協(xié)議書
- 法院服務外包投標方案(技術標)
評論
0/150
提交評論