版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄1. 題目介紹21.1 課程設(shè)計(jì)目的21.2 題目說明22. 硬件布局22.1 硬件介紹22.1.1 8253芯片22.1.2 8255芯片32.1.3 8259A芯片32.2 硬件連接42.2.1 電子琴模塊42.2.2 邏輯開關(guān)模塊53. 軟件設(shè)計(jì)64. 結(jié)果討論154.1 電子琴部分測試154.2 邏輯開關(guān)部分測試155. 體會16參考文獻(xiàn)161. 題目介紹1.1 課程設(shè)計(jì)目的本課程課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生學(xué)習(xí)完現(xiàn)代微機(jī)原理與接口技術(shù)課程后,進(jìn)行的一次以芯片的匯編語言編程為主,硬件設(shè)計(jì)為輔的綜合訓(xùn)練。本課程設(shè)計(jì)的目的在于加深對微機(jī)原理基本知識的理解,掌握匯編語言程序設(shè)計(jì)的基
2、本方法;掌握運(yùn)用微機(jī)原理開發(fā)系統(tǒng)的基本方法。1.2 題目說明本課程設(shè)計(jì)題目是音樂播放器,主要實(shí)現(xiàn)的功能是在脫離PC鍵盤控制下,通過電路實(shí)現(xiàn)音樂的自由切換,模擬按鍵切換歌曲的mp3功能。2. 硬件布局本實(shí)驗(yàn)中一共用到的芯片有8253、8255、8259A、74LS00、74LS32。其中8253和8255用來構(gòu)成電子琴,實(shí)現(xiàn)聲音的播放。74LS00和74LS32用來實(shí)現(xiàn)邏輯開關(guān)的輸入功能,8259A用來實(shí)現(xiàn)切換音樂時的中斷功能。下面對主要芯片及各部分連接電路進(jìn)行說明。2.1 硬件介紹各部分的功能由程序控制由電路實(shí)現(xiàn)。芯片封裝好了固定的電路,以便實(shí)驗(yàn)者能夠根據(jù)所需的功能通過芯片選擇來減去大量復(fù)雜的
3、電路連接。每種芯片都有各自能夠?qū)崿F(xiàn)的功能,一下簡單介紹實(shí)驗(yàn)中用上的一種芯片。2.1.1 8253芯片8253具有3個獨(dú)立的計(jì)數(shù)通道,采用減1計(jì)數(shù)方式。在門控信號有效時,每輸入1個計(jì)數(shù)脈沖,通道作1次計(jì)數(shù)操作。當(dāng)計(jì)數(shù)脈沖是已知周期的時鐘信號時,計(jì)數(shù)就成為定時。8253讀寫控制:讀/寫控制分別連接系統(tǒng)的IOR#和IOW#, 由CPU控制著訪問8253的內(nèi)部通道。接收CPU送入的讀/寫控制信號, 并完成對芯片內(nèi)部各功能部件的控制功能, 因此, 它實(shí)際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號,由CPU輸入。8253內(nèi)部有3個獨(dú)立的通道,加上控制字寄存器,構(gòu)成8253芯片的4個端口,CPU可
4、對3個通道進(jìn)行讀/寫操作3對控制字寄存器進(jìn)行寫操作。 這4個端口地址由最低2位地址碼A1和A0來選擇。如表所示。8253方式控制字:8253的初始化編程就是對其工作方式的確定。具體實(shí)現(xiàn)就是在8253上電后,由CPU向8253的控制寄存器寫入一個控制字,就可以規(guī)定8253的工作方式、計(jì)數(shù)值的長度以及計(jì)數(shù)所用的數(shù)制等,另外根據(jù)要求將計(jì)數(shù)值寫入8253的相應(yīng)通道。8253的一個方式控制字只決定一個技術(shù)通道的工作模式。2.1.2 8255芯片8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所
5、以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。8255是微機(jī)系統(tǒng)中廣泛應(yīng)用的可編程并行接口,它的基本功能如下:1)8255具有2個獨(dú)立的8位I/O口(A口和B口)和2個獨(dú)立的4位I/O口(C口上半部和C口下半部),提供與TTL兼容的并行接口。作為輸入時提供的三態(tài)緩沖器功能,作為輸出時提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。2)8255有3種工作方式,即方式0、方式1和方式2;能使用多種數(shù)據(jù)傳送方式完成CPU與I/O設(shè)備之間的數(shù)據(jù)交換,如無條件方式、查詢方式和中斷方式(方式1和方式2才有中斷方式)。3) B口和C口的引腳具有達(dá)林頓復(fù)合
6、晶體管驅(qū)動能力,在1.5V時輸出1mA電流,適用做輸出端口。4) C口除用做數(shù)據(jù)口外,當(dāng)8255工作在方式1和方式2時,C口的部分引腳作為固定的聯(lián)絡(luò)信號線。2.1.3 8259A芯片8259A是專門為了進(jìn)行中斷控制而設(shè)計(jì)的芯片,它是可以用程序控制的中斷控制器。單個的8259A能管理8級向量優(yōu)先級中斷。在不增加其他電路的情況下,最多可以級聯(lián)成64級的向量優(yōu)級中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設(shè)定是在初始化時通過軟件進(jìn)行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對8259A芯片進(jìn)行初始化編程的狀態(tài)。功能
7、:就是在有多個中斷源的系統(tǒng)中,接受外部的中斷請求,并進(jìn)行判斷,選中當(dāng)前優(yōu)先級最高的中斷請求,再將此請求送到CPU的INTR端;當(dāng)CPU響應(yīng)中斷并進(jìn)入中斷子程序的處理過程后,中斷控制器仍負(fù)責(zé)對外部中斷請求的管理。8259A的主要功能如下:一片8259A可以接受并管理8級可屏蔽中斷請求,通過8片8259A級聯(lián)可擴(kuò)展至63級可屏蔽中斷優(yōu)先控制。對每一級中斷都可以通過程序來屏蔽或允許。在中斷響應(yīng)周期,8259A可為CPU提供相應(yīng)的中斷類型碼。具有多種工作方式,并可通過編程來加以選擇。2.2 硬件連接2.2.1 電子琴模塊1) 設(shè)計(jì)原理對于一個特定的D/A轉(zhuǎn)換接口電路,CPU執(zhí)行一條輸出指令將數(shù)據(jù)送 入
8、D/A, 即可在其輸出端得到一定的電壓輸出。給D/A轉(zhuǎn)換器輸入按正弦規(guī)律變化的數(shù)據(jù),在其輸出端即可產(chǎn)生正弦波。對于音樂,每個音階都有確定的頻率。各音階標(biāo)稱頻率值如下表所示:表2-1 音階頻率表音階12345678頻率(單位:Hz)261.1293.7329.2349.2392.0440.0493.3529.7對應(yīng)N取值120106948979706359產(chǎn)生一個正弦波的數(shù)據(jù)可取32個(小于亦可),不同頻率的區(qū)別,可 通過調(diào)節(jié)向D/A轉(zhuǎn)換器輸出數(shù)據(jù)的時間間隔,例如:發(fā)""頻率為261。1Hz,周期為1/261.1=3.83ms,輸出數(shù)據(jù)的時間間隔為3.83ms/32
9、0.12ms. 定時時間可以由8253配合8255來實(shí)現(xiàn)。按下某鍵后發(fā)音時間的長短可以由發(fā)出的正弦波的個數(shù)多少來控制。本程序中設(shè)置默認(rèn)長度為60個正弦波。2) 電路連接圖8253和8255連接如圖2-1。圖2-1 電子琴邏輯電路圖3) 程序流程圖程序流程圖設(shè)計(jì)如圖2-2。圖2-2 電子琴程序流程圖2.2.2 邏輯開關(guān)模塊邏輯開關(guān)部分的電路連接與簡單串行接口極其類似,因此可以借鑒簡單穿行接口實(shí)驗(yàn)的連接方式。1) 電路連接圖邏輯開關(guān)模塊電路連接圖2-3。圖2-3 邏輯開關(guān)模塊電路圖2) 程序流程圖程序流程圖設(shè)計(jì)如圖2-4。圖2-4 邏輯開關(guān)模塊程序設(shè)計(jì)圖3. 軟件設(shè)計(jì)根據(jù)程序流程圖,匯總
10、兩部分的功能,最終編寫程序如下:;*;* 音樂播放器實(shí)驗(yàn) *;*;data segmentio8255a equ 288hio8255b equ 28bhio8253a equ 280hio8253b equ 283hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;-ls244 equ 2a0h;-table dw 524,588,660,698,784,880,988,1048;高音的;table dw 262,294,330,347,392,440,494,524;低音的FREQ_LIST1 DW 371,495,495,495,624,556
11、,495,556,624 ;歌曲友誼天長地久頻率表 dw 495,495,624,742,833,833,833,742,624 dw 624,495,556,495,556,624,495,416,416,371 dw 495,833,742,624,624,495,556,495,556,833 dw 742,624,624,742,833,990,742,624,624,495 dw 556,495,556,624,495,416,416,371,495,0 FREQ_LIST2 dw 330,294,262,294,3 dup(330);太湖曲 dw 294,294,294,330,3
12、92,392 dw 330,294,262,294,4 dup(330) dw 294,294,330,294,262,0ffffh,0 FREQ_LIST3 DW 495,556,624,495,495,556,624,495;兩只老虎 dw 624,680,742,624,680,742 dw 742,833,742,680,624,495 dw 742,833,742,680,624,495,0 TIME_LIST1 db 8,12,4,8,8,12,4,8,8 ;節(jié)拍時間表 db 12,4,8,8,24,2,6,12,4 db 8,8,12,6,8,8,12,4,8,8 db 24,8
13、,12,4,8,8,12,4,8,8 db 12,4,8,8,24,8,12,4,8,8 db 12,4,8,12,4,8,8,24TIME_LIST2 db 8,12,4,8,8,12,4,8,8 ;節(jié)拍時間表 db 12,4,8,8,24,2,6,12,4 db 8,8,12,6,8,8,12,4,8,8 db 24,8,12,4,8,8,12,4,8,8 db 12,4,8,8,24,8,12,4,8,8 db 12,4,8,12,4,8,8,24TIME_LIST3 db 8,12,4,8,8,12,4,8 ;節(jié)拍時間表 db 12,4,8,8,24,2,6,12,4 db 8,8,1
14、2,6,8,8,12,4,8,8 db 24,8,12,4,8,8,12,4,8,8 msg db 'Press 3,4,5,6,7,8,ESC:',0dh,0ah db 'Press 0,play <youyitianchangdijiu>!',0dh,0ah db 'Press 1,play <taihuqu>!',0dh,0ah db 'Press 2,play <two tigers>!',0dh,0ah,'$'msg1 db 0dh,0ah db 'play.&
15、#39;,0dh,0ah db 'press any key,stop play music!',0dh,0ah,'$' msg2 db 0dh,0ah db 'play switch!',0dh,0ah,'$' data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax ;- mov dx,io8255b ;使8255的A口為輸出方式 mov ax,80h out dx,al ;- mov dx,offset msg mov ah,9 int 2
16、1h ;顯示提示信息sing: ;- mov dx,ls244 in al,dx add al,30h ; mov ah,7 ; int 21h ;從鍵盤接收字符,不回顯 cmp al,1bh ;- je finish ;若為ESC鍵,則轉(zhuǎn)finish cmp al,'0' jz pll1 ;若為0鍵,則轉(zhuǎn)播放音樂 cmp al,'1' je pll4 ;若為1鍵,則轉(zhuǎn)播放音樂 cmp al,'2' je pll5 ;若為2鍵,則轉(zhuǎn)播放音樂 cmp al,'3' jl sing cmp al,'8' jg sing
17、 ;若不在'1'-'8'之間轉(zhuǎn)sing sub al,31h shl al,1 ;轉(zhuǎn)為查表偏移量 mov bl,al ;保存偏移到bx mov bh,0 mov ax,4240H ;計(jì)數(shù)初值 = 1000000 / 頻率, 保存到AX mov dx,0FH div word ptrtable+bx mov bx,ax mov dx,io8253b ;設(shè)置8253計(jì)時器0方式3, 先讀寫低字節(jié), 再讀寫高字節(jié) mov al,00110110B out dx,al mov dx,io8253a mov ax,bx out dx,al ;寫計(jì)數(shù)初值低字節(jié) mov al
18、,ah out dx,al ;寫計(jì)數(shù)初值高字節(jié) mov dx,io8255b ;設(shè)置8255 A口輸出 mov al,10000000B out dx,al mov dx,io8255a mov al,03h out dx,al ;置PA1PA0 = 11(開揚(yáng)聲器) call delay ;延時 mov al,0h out dx,al ;置PA1PA0 = 00(關(guān)揚(yáng)聲器) jmp sing pll1:call play1 jmp singpll3:call play2 jmp sing pll4:call play2 ; jmp pl2 jmp sing pll6: call play3
19、jmp sing pll5:call play3 ; jmp pl3 jmp singfinish: mov ax,4c00h int 21h play1 proc near mov ax,data mov ds,ax mov dx,offset msg1 mov ah,9 int 21h ;顯示提示信息 MOV dx,io8253b ;初始化8253工作方式 MOV al,00110110B ;定時器0、方式3 out dx,al st1:mov si,offset FREQ_LIST1 ;裝入頻率表初始地址 MOV di,offset TIME_LIST1 ;裝入時間表起始地址 PL: m
20、ov ax,4240H ;計(jì)數(shù)初值=1000000/頻率,保存到AX mov dx,0fh div word ptrsi ;取出頻率值計(jì)算計(jì)數(shù)初值,OF4240H/輸出頻率 mov dx,io8253a out dx,al mov al,ah out dx,al mov dx,io8255b ;設(shè)置8255 A口輸出 mov al,10000000B out dx,al mov dx,io8255a mov al,03h out dx,al ;置PA1PA0 = 11(開揚(yáng)聲器) ; call delay ;延時 固定時常的頻率 mov dl,di ; 取出演奏相對時間,調(diào)用延時子程序 cal
21、l DALLY mov dx,io8255a mov al,0h ;置PA1PA0 = 00(關(guān)揚(yáng)聲器) out dx,al add si,2 inc di mov dx,ls244 in al,dx cmp al,00h jnz exit1 ; mov ah,06 ;判斷是否有按鍵按下 ; mov dl,0ffh ; int 21h ; jnz exit1;pl cmp word ptrsi,0 ;判斷是否到曲末 jnz pl exit1: mov dx,offset msg2 mov ah,9 int 21h ;顯示提示信息 retplay1 endp;*play2 proc near m
22、ov ax,data mov ds,ax mov dx,offset msg1 mov ah,9 int 21h ;顯示提示信息 MOV dx,io8253b ;初始化8253工作方式 MOV al,00110110B ;定時器0、方式3 out dx,al st2:mov si,offset FREQ_LIST2 ;裝入頻率表初始地址 MOV di,offset TIME_LIST2 ;裝入時間表起始地址 PL2: mov ax,4240H ;計(jì)數(shù)初值=1000000/頻率,保存到AX mov dx,0fh div word ptrsi ;取出頻率值計(jì)算計(jì)數(shù)初值,OF4240H/輸出頻率 m
23、ov dx,io8253a out dx,al mov al,ah out dx,al mov dx,io8255b ;設(shè)置8255 A口輸出 mov al,10000000B out dx,al mov dx,io8255a mov al,03h out dx,al ;置PA1PA0 = 11(開揚(yáng)聲器) call delay ;延時 mov dl,di ;取出演奏相對時間,調(diào)用延時子程序 call DALLY mov dx,io8255a mov al,0h ;置PA1PA0 = 00(關(guān)揚(yáng)聲器) out dx,al add si,2 inc di mov dx,ls244 in al,d
24、x cmp al,01h jnz exit1 ; mov ah,06 ;判斷是否有按鍵按下 ; mov dl,0ffh ; int 21h ; jnz exit2 cmp word ptrsi,0 ;判斷是否到曲末 jnz pl2 exit2: mov dx,offset msg2 mov ah,9 int 21h ;顯示提示信息 retplay2 endpplay3 proc near mov ax,data mov ds,ax mov dx,offset msg1 mov ah,9 int 21h ;顯示提示信息 MOV dx,io8253b ;初始化8253工作方式 MOV al,001
25、10110B ;定時器0、方式3 out dx,al st3:mov si,offset FREQ_LIST3 ;裝入頻率表初始地址 MOV di,offset TIME_LIST3 ;裝入時間表起始地址 PL3: mov ax,4240H ;計(jì)數(shù)初值=1000000/頻率,保存到AX mov dx,0fh div word ptrsi ;取出頻率值計(jì)算計(jì)數(shù)初值,OF4240H/輸出頻率 mov dx,io8253a out dx,al mov al,ah out dx,al mov dx,io8255b ;設(shè)置8255 A口輸出 mov al,10000000B out dx,al mov
26、dx,io8255a mov al,03h out dx,al ;置PA1PA0 = 11(開揚(yáng)聲器) call delay ;延時 mov dl,di ;取出演奏相對時間,調(diào)用延時子程序 call DALLY mov dx,io8255a mov al,0h ;置PA1PA0 = 00(關(guān)揚(yáng)聲器) out dx,al add si,2 inc di ;- mov dx,ls244 in al,dx cmp al,02h jnz exit3 ; mov ah,06 ;判斷是否有按鍵按下 ; mov dl,0ffh ; int 21h ; jnz exit3 ;pl cmp word ptrsi
27、,0 ;判斷是否到曲末 jnz pl3 ;- exit3: mov dx,offset msg2 mov ah,9 int 21h ;顯示提示信息 retplay3 endp ;* delay proc near ;延時子程序 push cx push ax mov ax,15x1: mov cx,0ffffhx2: dec cx jnz x2 dec ax jnz x1 pop ax pop cx retdelay endp;*DALLY proc ; 對應(yīng)樂曲的 節(jié)拍 - 延時子程序D0:mov cx,10D1:mov AX,0FFFFHD2: dec ax jnz D2 LOOP D1 dec DL jnz D0 retDALLY endp;*code endsend start4. 結(jié)果討論由于該實(shí)驗(yàn)的運(yùn)行結(jié)果都是音樂播放的效果,文檔
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《癌癥疼痛診療規(guī)范》課件
- 《孔子的簡介》課件
- 人物訪談報(bào)告培訓(xùn)課件
- 單位管理制度集合大合集員工管理十篇
- 單位管理制度集粹匯編人事管理篇十篇
- 單位管理制度匯編大合集人力資源管理篇十篇
- 《神經(jīng)收集電子教案》課件
- 單位管理制度分享匯編【人力資源管理】
- 單位管理制度范例選集職員管理篇
- 單位管理制度呈現(xiàn)合集職員管理篇
- (滬教牛津版)深圳市小學(xué)1-6年級英語單詞默寫表(英文+中文+默寫)
- 樂山英文介紹
- 工程量清單清單計(jì)價封面
- 壓濾機(jī)產(chǎn)品質(zhì)量檢測報(bào)告
- 日產(chǎn)5000噸水泥生產(chǎn)線建筑工程施工組織設(shè)計(jì)
- 267條表情猜成語【動畫版】
- 三戰(zhàn)課件(輿論戰(zhàn)、法律戰(zhàn)、心理戰(zhàn))
- 農(nóng)民工工資專用賬戶資金管理協(xié)議
- 統(tǒng)編版語文二年級上冊 句子練習(xí)專項(xiàng)練習(xí)題(試題)( 無答案)
- 上海市歷年中考語文現(xiàn)代文閱讀真題40篇(2003-2021)
- 產(chǎn)品拆解:飛書多維表格怎么用
評論
0/150
提交評論