久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

微機原理課程設計音樂播放器

時間:2019-05-13 23:56:39下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《微機原理課程設計音樂播放器》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《微機原理課程設計音樂播放器》。

第一篇:微機原理課程設計音樂播放器

《微機原理與接口技術》課程設計

關智杰

一、課程設計的任務和目的

課程設計題目:音樂播放器

課程設計的實現目的:本課程設計主要是通過匯編語言用軟件編程的方法實現簡單的音樂播放功能。通過在《微機原理與接口技術》課程上所學的匯編知識和8253/8254芯片相關知識,來完成本課程設計;用匯編程序完成鍵控音樂播放器的,用8253/8254定時器來產生聲音。該播放器有若干首歌曲可以選擇,開始時輸出說明,要用戶選擇要播放的歌曲,然后根據用戶按鍵進行播放、退出或出錯提示。通過課程設計環節來加強對所學知識的理解和應用。

二、課程設計相關知識

2.1 定時/計數器8253/58254

在微機及控制系統中,經常要用到定時信號。如系統的日歷時鐘,動態存儲器刷新。對外部執行機構控制時也需要定時中斷、定時檢測、定時查詢等。定時的方法主要是兩種:

軟件定時:利用指令的執行時間設計循環程序,使CPU 執行延遲子程序的時間就是定時時間。缺點:執行延遲時,CPU 一直被占用,降低了CPU 的效率。

硬件定時:用計數器/定時器作為主要硬件,在軟件簡單指令的控制下產生精確的時間延遲。突出優點為計數時不占用CPU 時間,如利用定時器/計數器產生中斷信號,可建立多作業環境,提高了CPU 效率。

作為定時器可用8253或者8254,二者功能基本相同,知識工作的最高頻率不一樣。本實驗就采用了8254,其主要功能為:

(1)每片上有3 個獨立的16 位的減計數器通道。

(2)對于每個計數器,都可以單獨作為定時器或計數器使用,并且都可以按照二進制或十進制來計數。

(3)每個通道都有6 種工作方式,都可以通過程序設置或改變。(4)每個計數器的速率可高達10MHz。

主要部分有:數據總線緩沖器、讀/寫控制邏輯、控制字寄存器、計數通道0#、1#、2#: 內部結構如下圖:

《微機原理與接口技術》課程設計

關智杰

8254內部結構

2.2 8254外部引腳

8254芯片是具有24個引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8254芯片的24個引腳分為兩組,一組面向CPU,另一組面向外部設備,各個引腳及其所傳送信號的情況,介紹如下:

8254的引腳

(1)D7~D0:雙向、三態數據線引腳,與系統的數據線連接,傳送控制、數據及狀態信息。

(2)RD:來自于CPU的讀控制信號輸入引腳,低電平有效。(3)WR:來自于CPU的寫控制信號輸入引腳,低電平有效。(4)CS:芯片選擇信號輸入引腳,低電平有效。

(5)A1、A0:地址信號輸入引腳,用以選擇8254芯片的通道及控制字寄存器。(6).VCC及GND:+5V電源及接地引腳。

(7)CLKi: i=0,1,2,第i個通道的計數脈沖輸入引腳,8254規定,加在CLK引腳的輸入時鐘信號的頻率不得高于2.6MHZ,即時鐘周期不能小于380ns。

《微機原理與接口技術》課程設計

關智杰

(8)GATEi: i=0,1,2,第i個通道的門控信號輸入引腳,門控信號的作用與通道的工作方式有關。

(9)OUTi:i=0,1,2,第i個通道的定時/計數到信號輸出引腳,輸出信號的形式由通道的工作方式確定,此輸出信號可用于觸發其它電路工作,或作為向CPU發出的中斷請求信號。

2.3 8254端口地址

8254控制字

說明 :(1)8254每個通道對輸入CLK按二進制或二十進制從預置值開始減1計數,減到0時從OUT輸出一個信號。

(2)8254編程時先寫控制字,再寫時間常數。

2.4 8254工作方式

《微機原理與接口技術》課程設計

關智杰

(1)方式0:計數結束產生中斷方式

當寫入控制字后,OUT變為低電平,當寫入初值后立即開始計數,當計數結束時,變成高電平。

(2)方式1:可編程單次脈沖方式

當初值裝入后且GATE由低變高時,OUT變為低電平,計數結束變為高電平。(3)方式2:頻率發生器方式

當初值裝入時,OUT變為高;計數結束,OUT變為低。該方式下如果計數未結束,但GATE為低時,立即停止計數,強制OUT變高,當GATE再變高時,便啟動一次新的計數周期。

(4)方式3:方波發生器

當裝入初值后,在GATE上升沿啟動計數,OUT 輸出高電平; 當計數完成一半時,OUT輸出低電平。方式3與方式2的工作方式類似,也是在初始化完成后能重復循環計數,只是輸出的波形不同。

(5)方式4:軟件出發選通方式

進入工作方式4,OUTi輸出高電平。裝入計數值n后,如果GATE為高電平,則立即開始減“1”計數,直到計數值減到“0”為止,OUTi輸出寬度為一個CLKi周期的負脈沖。由軟件裝入的計數值只有一次有效,如果要繼續操作,必須重新置入計數初值n。如果在操作的過程中,GATE變為無效,則停止減“1”計數,到GATE再次有效時,重新從初值開始減“1”計數。

(6)方式5:硬件觸發方式計數

進入工作方式5,OUTi輸出高電平,硬件觸發信號由GATE端引入。因此,開始時GATE應輸入為0,裝入計數初值n后,減“1”計數并不工作,一定要等到硬件觸發信號由GATE端引入一個正階躍信號,減“1”計數才會開始,待計數值計到“0”,OUTi將輸出負脈沖,其寬度固定為一個CLKi周期,表示定時時間到或計數次數到。

三、程序設計思路

所有音樂都是由各個不同頻率的音階和其延續時間的長短來實現的。不同的音樂是由各個音階按某種排列各自播放一定時間形成的,將各音樂音階和其延續時間存在數據段中,然后根據不同按鍵值選擇不同的音階和時間表,再使用計數器產生該音階頻率。

CPU通過對定時器的通道2(端口地址為42)進行編程,使其I/O寄存器接收一個控制聲音頻率的16位計數值,端口61H的最低控制通道2門控的開斷。以產生特殊的音響。當定時器接收的計數值為533H時,能產生896Hz的聲音,因此產生其他頻率的計數值就可算出來:

《微機原理與接口技術》課程設計

關智杰

533Hz×896÷頻率=1234DC÷頻率

在送出頻率計數值之前,還要給方式寄存器送一個方式值,該數決定對哪一個通道編程,采用什么模式,送入通道的計數值是一字節還是兩字節,是二進制碼還是BCD碼。其位組合的格式如下:

當通道2用于發聲時,采用的是模式3,在模式3下,輸出線為“1”和為“0”的時間各占計數時間的一半,因而產生一系列間隔均勻的脈沖。

產生指定頻率聲音的程序段如下:

MOV AL,0B6H OUT 43H,AL ;43H為8254的控制字端口 MOV DX,12H MOV AX,34DCH DIV DI ;(DI)=頻率

OUT 42H,AL ;42H為8254的通道2端口 MOV AL,AH MOV 42H,AL 從定時器輸出的方波信號,經功率放大和濾波后驅動揚聲器。送到揚聲器的信號還受到了從并行接口芯片8255(端口地址為61H)來的雙重控制,端口61H的最低位控制通道2的門控開斷,以產生特殊的音頻信號,端口61H的PA1位和定時器的輸出信號同時作為與門的輸入,PA0和PA1位可由程序決定為0還是為1。顯然只有PA0和PA1都是1時,才能使揚聲器發出聲音。控制音長的時間可以簡單地通過反復執行指令來得到。我們知道執行2801次LOOP指令約需要10MS的時間。因此用10MS的倍數值來控制揚聲器開關的時間間隔,就可控制發聲的音長了。實現程序如下:

IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL;開揚聲器 L: MOV CX,2801 DY:LOOP DY DEC BX JNZ L MOV AL,AH OUT 61H,AL;關揚聲器

《微機原理與接口技術》課程設計

關智杰

四、功能流程圖及子程序說明

1、總流程圖

MAIN程序:MAIN程序是總程序,輸出說明,等待用戶按鍵并讀取鍵值。根據不同的按鍵選擇調用播音子程序播放不同的歌曲。

開始輸出說明讀取按鍵是‘1’?N是‘2’?Y播放曲1Y播放曲2N是‘3’?Y播放曲3N是‘0’?Y結束Y選擇無效程序總流程圖

2、音樂播放子程序流程圖

PLAY子程序:PLAY子程序是播音子程序,SI指向音節表中的頻率,BP指向音節表中的時間。從SI的指向的音節表中取一個頻率,只要不是-1,即有效就再讀取時間,然后計算計數初值送入計數器,產生各種頻率。開啟揚聲器,根據所取的時間調用若干次延時子程序。這段時間揚聲器就發出該頻率的聲音,延時結束,就關閉揚聲器,調用音節之間的小延時程序。最后修改SI和BP,指向下一個頻率,重復上面的工作

DELAY子程序和DELAY_OFF子程序:兩個都是子程序,采用空操作循環多次的方法,只是第二個延時時間較短,大概為5ms。

《微機原理與接口技術》課程設計

關智杰

開始保護現場曲N各音符頻率設置曲N各音符時間設置讀取頻率F頻率是-1 ?Y恢復現場N讀取時間T結束返回計算機計數次數送計數器,產生該頻率F信號啟動喇叭延時T關閉喇叭音符間延時播音流程圖

五、試驗結果截屏:

初始界面:

如果按錯了鍵,會出現如下界面:

《微機原理與接口技術》課程設計

關智杰

如果選擇正確,將出現如下界面:

六、參考文獻

【1】李長青.微機原理與接口技術.徐州:中國礦業大學出版社,2006 【2】沈美明.匯編語言程序設計實驗教程.北京:清華大學出版社,2002年 【3】周明德.微機原理與接口技術.北京:人民郵電出版社,2002年

七、總結

在本次設計中,可以說是一次成功的經驗。在我們學完了《微型計算機原理與接口技術》這門課的基礎上來做這個設計,通過設計后,使我們對這門課的理論知識的理解有很大程度上的加強。微機原理這門課程本身是一門實驗性和工程性很強的專業技術課,因此不僅要重視理論教學,更應注意實踐技能的培養和訓練。課程設計是這門課程的一個重要環節,通過課程設計,鞏固、加深和拓寬了學習的理解,本課程設計的重點目標是使用匯編語言,而不過多涉及硬件方面的太多知識。

《微機原理與接口技術》課程設計

關智杰

在編程方面我通過本次課程設計學到了很多。一開始面對很長的程序往往有畏難情緒,感覺無法下手,沒辦法只能硬著頭皮啃下去,多看幾個和音樂播放有關的匯編程序,然后我就能慢慢看懂了并理解了別的作者的設計思路。然后再根據自己的思路,對照本人在圖書館借的匯編語言指導書慢慢編寫符合自己思路的程序。一次寫出來的程序肯定不會是正確的,還需要進一步調試它。檢查程序過程中,在充分思考的基礎上多次實驗是檢查改正程序的良方。編寫程序的過程中,體會最深的是子程序的調用和程序的條理問題,一個程序就算功能實現了,但是也要使主程序和子程序的條理分明,易讀性高,才能算一個比較好的程序。調試程序中,學習了DEBUG 的使用,DEBUG對檢查程序的錯誤作用很大。同時,也要靈活使用各種調試方法,來縮小尋找錯誤的范圍。

書到用時方恨少。在課程設計過程中,我才體會到這句話的深意。課堂上學的8254的知識和匯編語言都太少,還不足以完成本次課設,為此我經常跑圖書館借了各種各樣的工具書。有的書用處較大,有的書僅能用到一小塊知識,就是這樣,一步步在知識的海洋里我尋覓著自己需要的東西,確實克服了不少困難,解決了不少問題。或許坎坷才能更好的使人成長。在這次的課程設計中,我的收獲是不但做出了一個符合要求的音樂播放器,而且為自己積累了一些寶貴的經驗。同時我也對音樂方面的頻率知識有了一些認識,我想如果不是本次課程設計中用到這方面知識,我這輩子可能沒有機會去接觸這方面的知識了。這,或許也是我比別的同學多出的一點收獲吧!

六、附錄

1、源程序代碼:

SSEG SEGMENT PARA STACK 'stack'

dw 100h dup(0);Resize the stack by changing the number '100' SSEG ENDS

DSEG SEGMENT INFO1 DB 0DH,0AH,'--------------------------',0DH,0AH,'THERE ARE 3 SONGS:',0DH,0AH,0DH,0AH,'$' INFO2 DB '1.HAPPY BIRTHDAY',0DH,0AH,'$' INFO3 DB '2.SHEEP',0DH,0AH,'$' INFO4 DB '3.RIVER',0DH,0AH,'$' INFO5 DB '0.EXIT',0DH,0AH,'$' INFO6 DB 'YOU HAVE CHOSEN :$' INFO7 DB 'THANK YOU FOR YOUR USE',0DH,0AH,'$' INFO8 DB '---------------------------',0DH,0AH,'PRESS THE KEY TO SELECT SONG!',0DH,0AH,'$' INFO9 DB 0DH,0AH,'-------------------',0DH,0AH,'|INVALID

《微機原理與接口技術》課程設計

關智杰

SELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$' FREG1 DW 2 dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349

;曲1的頻率

DW 330,294,466,266,440,349,392,349,-1 TIME1 DW

1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4

;曲1的時間 FREG2 DW 330,294,262,294,3 DUP(330)

;曲2的頻率

DW 3 DUP(294),330,392,392 DW 330,294,262,294,4 DUP(330)DW 294,294,330,294,262,-1 TIME2 DW 6 DUP(1),2

;曲2的時間

DW 2 DUP(1,1,2)DW 12 DUP(1),4 FREG3 DW 330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294;曲3的頻率

DW 262,262,220,196,220,262,294,332,262,-1 TIME3 DW 3 DUP(2),1,1,2,1,1,4

;曲3的時間

DW 2 DUP(2,2,1,1),4 DW 3 DUP(2,1,1,1),4 DSEG ENDS

CSEG SEGMENT

assume cs:CSEG, ds:DSEG, es:DSEG, ss:SSEG

INIT PROC

;初始化程序

mov ax, dseg mov ds, ax mov es, ax

INIT ENDP

MAIN PROC

;程序入口

call INIT

RE: MOV DX,28BH

;關閉揚聲器

MOV AL,89H OUT DX,AL

MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL

LEA DX,INFO1

;輸出說明信息

MOV AH,09H INT 21H LEA DX,INFO2 INT 21H LEA DX,INFO3 INT 21H

《微機原理與接口技術》課程設計

關智杰

LEA DX,INFO4 INT 21H LEA DX,INFO5 INT 21H LEA DX,INFO8 INT 21H

MOV AH,01H

;讀取按鍵

INT 21H CMP AL,'1'

;根據不同的按鍵播放不同的曲子

JE MUSIC1 CMP AL,'2' JE MUSIC2 CMP AL,'3' JE MUSIC3 CMP AL,'0' JE EXIT

LEA DX,INFO9

MOV AH,09H INT 21H JMP RE

MUSIC1: MOV SI,OFFSET FREG1

MOV BP,OFFSET TIME1 CALL PLAY JMP RE MUSIC2: MOV SI,OFFSET FREG2

MOV BP,OFFSET TIME2 CALL PLAY JMP RE MUSIC3: MOV SI,OFFSET FREG3

MOV BP,OFFSET TIME3 CALL PLAY JMP RE EXIT: MOV DX,28BH

MOV AL,89H OUT DX,AL

MOV DX,28AH IN AL,DX

;無效選擇,輸出錯誤提示

;指向曲1的表;指向曲2的表;指向曲3的表;關閉揚聲器

《微機原理與接口技術》課程設計

關智杰

MOV DX,288H OUT DX,AL

LEA DX,INFO7

;輸出歡迎使用信息,增加界面友好度

MOV AH,09H INT 21H mov ax, 4c00h;The end of the program, return to the system

int 21h

MAIN ENDP

PLAY PROC

L1: MOV BX,DS:[SI]

CMP BX,-1

JE L0

MOV CX,DS:[BP]

MOV DL,CL

ADD DL,30H

MOV AH,02H

INT 21H

MOV DX,0FH

MOV AX,4240H

DIV BX

MOV BX,AX

MOV DX,283H

MOV AL,36H

OUT DX,AL

MOV DX,280H

MOV AX,BX

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV DX,28BH

MOV AL,89H OUT DX,AL MOV DX,28AH IN AL,DX NOT AL MOV DX,288H OUT DX,AL

ROD:CALL DELAY

LOOP ROD

MOV DX,28BH

MOV AL,89H

;PLAY子程序,功能上面介紹過

;取頻率

;看是否有效

;無效就退出

;讀取時間

;保存時間

;計算計數初值,1M的十六進制為0F4240H

;設置計數器工作方式

;輸入計數初值

;開揚聲器

;延時

;關揚聲器

《微機原理與接口技術》課程設計

關智杰

OUT DX,AL MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL

CALL DELAY_OFF

;音節間延時

ADD SI,2

ADD BP,2

JMP L1

L0: RET

PLAY ENDP

DELAY PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BX,09FH LL1:MOV CX,0FFFFH

LOP: LOOP LOP DEC BX JNZ LL1 POP DX

POP CX

POP BX

POP AX

RET

DELAY ENDP

DELAY_OFF PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BX,0FH LL2:MOV CX,0CFFFH LOP2: LOOP LOP2 DEC BX JNZ LL2 POP DX

POP CX

POP BX

POP AX

RET

;延時子程序

;循環這么多次

《微機原理與接口技術》課程設計

關智杰

DELAY_OFF ENDP CSEG ENDS END MAIN

2、各個音符的對應頻率表:

音符 頻率/HZ 半周期/us 音符 頻率/HZ 半周期/us 低1DO 262 1908 #4FA# 740 0676 #1DO# 277 1805 中5SO 784 0638 低2RE 294 1700 #5SO# 831 0602 #2RE# 311 1608 中6LA 880 0568 低3M 330 1516 #6LA# 932 0536 低4FA 349 1433 中7SI 988 0506 #4FA# 370 1350 高1DO 1046 0478 低5SO 392 1276 #DO# 1109 0451 #5SO# 415 1205 高2RE 1175 0426 低6LA 440 1136 #2RE# 1245 0402 #6LA# 466 1072 高3M 1318 0372 低7SI 494 1012 高4FA 1397 0358 中1DO 523 0956 #4FA# 1480 0338 #1DO# 554 0903 高5SO 1568 0319 中2RE 578 0842 #5S0# 1661 0292 #2RE# 622 0804 高6LA 1760 0284 中3M 659 0759 #6LA# 1865 0268 中4FA 698 0716 高7SI 1976 0253

第二篇:微機原理課程設計——音樂播放器

一. 課程設計目的

1.通過D/A裝換器產生模擬信號,使PC機作為簡易音樂播放器。2.了解利用數模轉換器產生音樂的基本方法。

二.課程設計任務

設計并實現一個鍵控音樂播放器。要求:

(1)自己選用合適的芯片,不少于兩種。

(2)自行設計電路并使用匯編語言編寫程序完成鍵控音樂播放器功能。

(3)該播放器有若干首歌曲可以選擇,開始時輸出說明,要用戶選擇要播放的歌曲,然后根據用戶按鍵進行播放、退出或出錯提示。

三、總體設計方案

1、總體設計方案一

所有音樂都是由各個不同頻率的音階和其延續時間的長短來實現的。不同的音樂是由各個音階按某種排列各自播放一定時間形成的,將各音樂音階和其延續時間存在數據段中,然后根據不同按鍵值選擇不同的音階和時間表,再使用計數器產生該音階頻率。而我們學過的有計數器可以產生各種頻率,所以我們主要采用計數器8253產生各音符,用8255并行接口來控制揚聲器的開關,達到播放音樂的功能。

2、總體設計方案二

可以使用0832(數模轉換器)來產生頻率,原理圖:

更連續,效果更好點。

提出這個方案是因為我想產生模擬信號,來驅動揚聲器,這樣產生的聲音更加圓潤感覺我們想把一個周期的波形分成32份,然后每份給8253一個值讓他轉換成模擬信號,不同的頻率可以用8253計數器控制,比如要產生261Hz的頻率,使用1MHz的話,周期就為1/261=3.83ms,分成32份,每份間隔時間就是3.83ms/32=0.12ms,換句話說就是送計數器0的初值為1M/261/32=120次。

3、各個音符的對應頻率表:

音符 頻率/HZ 半周期/us 音符 頻率/HZ 半周期/us 低1DO 262 1908 #4FA# 740 0676 #1DO# 277 1805 中5SO 784 0638 低2RE 294 1700 #5SO# 831 0602 #2RE# 311 1608 中6LA 880 0568 低3M 330 1516 #6LA# 932 0536 低4FA 349 1433 中7SI 988 0506 #4FA# 370 1350 高1DO 1046 0478 低5SO 392 1276 #DO# 1109 0451 #5SO# 415 1205 高2RE 1175 0426 低6LA 440 1136 #2RE# 1245 0402 #6LA# 466 1072 高3M 1318 0372 低7SI 494 1012 高4FA 1397 0358 中1DO 523 0956 #4FA# 1480 0338 #1DO# 554 0903 高5SO 1568 0319 中2RE 578 0842 #5S0# 1661 0292 #2RE# 622 0804 高6LA 1760 0284 中3M 659 0759 #6LA# 1865 0268 中4FA 698 0716 高7SI 1976 0253

四.部分電路設計及功能解說

1、頻率發生電路

使用8253產生音符頻率。8253采用方式3,產生方波信號,根據輸入計數初值的不同產生不同頻率的方波信號來驅動揚聲器。

2、揚聲器開關控制電路

使用8255并行接口芯片來控制揚聲器的開和關,PC0始終接低電平,PA0和8253的OUT0接在與門上,這樣只有PA0=1時揚聲器才有可能開通,否則不發聲。關閉的方法是,從PC口讀入數據再從PA口輸出;而開揚聲器時只要在輸出PA口數據前對數據進行一個取反操作就可以了。

設某音符頻率為fHz,而CLK脈沖是1MHz,則計數初值N=1M/f。8253的控制端口為28BH,控制字為36H。五.硬件接線圖

六.軟件設計流程圖

1、總流程圖

開始輸出說明讀取按鍵是‘1’?N是‘2’?Y播放曲1Y播放曲2N是‘3’?Y播放曲3N是‘0’?Y結束Y選擇無效程序總流程圖

2、音樂播放子程序流程圖

開始保護現場曲N各音符頻率設置曲N各音符時間設置讀取頻率F頻率是-1 ?Y恢復現場N讀取時間T結束返回計算機計數次數送計數器,產生該頻率F信號啟動喇叭延時T關閉喇叭音符間延時播音流程圖

七.程序段功能匯總

1、MAIN程序

MAIN程序是總程序,輸出說明,等待用戶按鍵并讀取鍵值。根據不同的按鍵選擇調用播音子程序播放不同的歌曲。

2、PLAY子程序

PLAY子程序是播音子程序,SI指向音節表中的頻率,BP指向音節表中的時間。從SI的指向的音節表中取一個頻率,只要不是-1,即有效就再讀取時間,然后計算計數初值送入計數器,產生各種頻率。開啟揚聲器,根據所取的時間調用若干次延時子程序。這段時間揚聲器就發出該頻率的聲音,延時結束,就關閉揚聲器,調用音節之間的小延時程序。最后修改SI和BP,指向下一個頻率,重復上面的工作。

3、DELAY子程序和DELAY_OFF子程序

兩個都是子程序,采用空操作循環多次的方法,只是第二個延時時間較短,大概為5ms。八.程序清單

SSEG SEGMENT PARA STACK 'stack'

dw 100h dup(0);Resize the stack by changing the number '100' SSEG ENDS

DSEG SEGMENT

;TO DO: Add your program's data here INFO1 DB 0DH,0AH,'--------------------------',0DH,0AH,'THERE ARE 3 SONGS:',0DH,0AH,0DH,0AH,'$' INFO2 DB '1.HAPPY BIRTHDAY',0DH,0AH,'$' INFO3 DB '2.SHEEP',0DH,0AH,'$' INFO4 DB '3.RIVER',0DH,0AH,'$' INFO5 DB '0.EXIT',0DH,0AH,'$' INFO6 DB 'YOU HAVE CHOSEN :$'

INFO7 DB 'THANK YOU FOR YOUR USE',0DH,0AH,'$' INFO8 DB '---------------------------',0DH,0AH,'PRESS THE KEY TO SELECT SONG!',0DH,0AH,'$' INFO9 DB 0DH,0AH,'-------------------',0DH,0AH,'|INVALID SELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$' FREG1 DW 2 dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349

;曲1的頻率

DW 330,294,466,266,440,349,392,349,-1 TIME1 DW

1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4

;曲1的時間 FREG2 DW 330,294,262,294,3 DUP(330)

;曲2的頻率

DW 3 DUP(294),330,392,392 DW 330,294,262,294,4 DUP(330)DW 294,294,330,294,262,-1 TIME2 DW 6 DUP(1),2

;曲2的時間

DW 2 DUP(1,1,2)DW 12 DUP(1),4 FREG3 DW 330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294 ;曲3的頻率

DW 262,262,220,196,220,262,294,332,262,-1 TIME3 DW 3 DUP(2),1,1,2,1,1,4

;曲3的時間

DW 2 DUP(2,2,1,1),4 DW 3 DUP(2,1,1,1),4 DSEG ENDS

CSEG SEGMENT

assume cs:CSEG, ds:DSEG, es:DSEG, ss:SSEG

INIT PROC;Initialize procedure

mov ax, dseg mov ds, ax

mov es, ax;TO DO: Add your initialize code here(as your requirement)ret

;return to the MAIN procedure

INIT ENDP

MAIN PROC

;Here is your program entry point

call INIT;call the INIT procedure to initialize the program

;**TO DO: Add your main code here**

RE: MOV DX,28BH

;關閉揚聲器

MOV AL,89H OUT DX,AL

MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL

LEA DX,INFO1 MOV AH,09H INT 21H LEA DX,INFO2 INT 21H LEA DX,INFO3 INT 21H LEA DX,INFO4 INT 21H LEA DX,INFO5 INT 21H LEA DX,INFO8 INT 21H

MOV AH,01H

INT 21H CMP AL,'1'

JE MUSIC1 CMP AL,'2' JE MUSIC2 CMP AL,'3' JE MUSIC3 CMP AL,'0' JE EXIT

LEA DX,INFO9 MOV AH,09H INT 21H JMP RE

;輸出說明信息

;讀取按鍵

;根據不同的按鍵播放不同的曲子

;無效選擇,輸出錯誤提示

MUSIC1: MOV SI,OFFSET FREG1

;指向曲1的表

MOV BP,OFFSET TIME1 CALL PLAY JMP RE MUSIC2: MOV SI,OFFSET FREG2

;指向曲2的表

MOV BP,OFFSET TIME2 CALL PLAY JMP RE MUSIC3: MOV SI,OFFSET FREG3

;指向曲3的表

MOV BP,OFFSET TIME3 CALL PLAY JMP RE EXIT: MOV DX,28BH

;關閉揚聲器

MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL LEA DX,INFO7

;輸出歡迎使用信息,增加界面友好度 MOV AH,09H INT 21H mov ax, 4c00h;The end of the program, return to the system MOV AL,89H OUT DX,AL

int 21h

MAIN ENDP

;TO DO: Add other procedures(PROC)here(as your requirement)

;THE PROGRAMME OF PLAYING THE MUSIC

PLAY PROC

;PLAY子程序,功能上面介紹過

L1: MOV BX,DS:[SI]

;取頻率

CMP BX,-1

;看是否有效

JE L0

;無效就退出

MOV CX,DS:[BP]

;讀取時間

MOV DL,CL

;保存時間

ADD DL,30H

MOV AH,02H

INT 21H

MOV DX,0FH

;計算計數初值,1M的十六進制為0F4240H

MOV AX,4240H

DIV BX

MOV BX,AX

MOV DX,283H

;設置計數器工作方式

MOV AL,36H

OUT DX,AL

MOV DX,280H

;輸入計數初值

MOV AX,BX

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV DX,28BH

MOV AL,89H OUT DX,AL MOV DX,28AH IN AL,DX NOT AL MOV DX,288H OUT DX,AL

ROD:CALL DELAY

LOOP ROD

MOV DX,28BH

MOV AL,89H OUT DX,AL MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL CALL DELAY_OFF

ADD SI,2

ADD BP,2

JMP L1

L0: RET

PLAY ENDP

DELAY PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BX,09FH LL1:MOV CX,0FFFFH

;開揚聲器 ;延時

;關揚聲器

;延時子程序

;循環這么多次

;音節間延時

LOP: LOOP LOP DEC BX JNZ LL1 POP DX

POP CX

POP BX

POP AX

RET

DELAY ENDP

DELAY_OFF PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BX,0FH LL2:MOV CX,0CFFFH LOP2: LOOP LOP2 DEC BX JNZ LL2 POP DX

POP CX

POP BX

POP AX

RET DELAY_OFF ENDP CSEG ENDS;TO DO: Add other segments here(as your requirement)

END MAIN

九.試驗結果和分析

1、試驗結果:

程序初始運行界面

如果按錯了鍵,會出現如下界面

如果選擇正確,將出現如下界面:

2、分析

這是按照方案一做的結果,按1~3分別播放“生日快樂”等歌,但由于本組人對音樂都是外行,各音階頻率的排序和延時時間搭配不好,導致音樂嚴重走調,但基本能聽出不是噪音。

按照方案二做的電路和程序,無論怎么樣都不出聲,后來我們直接送數據到0832產生三角波信號(程序在我們的一次作業中寫的)。還是無法讓揚聲器發出聲音,因此按這個方案失敗了。

十.課程設計總結和體會

1.實驗過程中碰到了很多的難題和障礙,我認識到平時基礎知識的重要性,只有能夠熟練的掌握才能在實驗過程中得心應手,否則一步錯則整個試驗都會陷入困境,因而,嚴謹的態度是試驗成功的重要保障!

2.通過這次課程設計,我們對各個芯片有了進一步的了解,對各個芯片的功能有了更深刻的認識和體會,平時上課的理論知識只是停留在理論的層面,只有通過了這樣的試驗才能更好的體會到,做到了理論和實際的相結合,使理論知識真正運用到了實踐中去。在課程設計過程中,同組人員之間相互合作,共同研究使我更加堅信了團體的力量。在團體的共同協作和努力下,任何的難題都可以被解決!

3.我們大家在實驗的時候都團結合作,遇到問題時候一起探討,增強了我們的合作精神。

十一.參考文獻

1、《〈微機原理與接口技術〉學生實驗指導書》 揚州大學 羅加奇

2、《微機原理及應用》 機械工業出版社 胡鋼 主編

第三篇:微機原理課程設計電子音樂播放器

武漢理工大學《微機原理與接口技術》課程設計

目錄

一、課程設計任務及要求...................................................1 1.1課程設計題目:....................................................1 1.2課程設計任務及要求:..............................................1

二、課程設計相關知識.....................................................1 2.1 定時/計數器8253/58254............................................1 2.2 8254外部引腳.....................................................2 2.3 8254端口地址....................................................3 2.4 8254工作方式....................................................4

三、程序設計思路.........................................................5

四、功能流程圖及子程序說明...............................................6 4.1總流程圖..........................................................6 4.2音樂播放子程序流程圖..............................................7 4.3部分源程序代碼....................................................9

五、調試結果截屏及結果分析..............................................10 5.1調試結果截屏.....................................................10 5.2結果分析.........................................................11

六、參考文獻............................................................11

七、附錄................................................................12 7.1源程序代碼:.....................................................13 7.2各個音符的對應頻率表:...........................................17

八、總結................................................................18

武漢理工大學《微機原理與接口技術》課程設計

一、課程設計任務及要求

1.1課程設計題目:

電子音樂播放器

1.2課程設計任務及要求:

設計一個音樂程序,演奏音樂按大寫字母“A”,唱樂曲“瑪麗有只小羔羊”;

按大寫字母“B”,唱樂曲“太湖船”

按大寫字母“C”,唱樂曲“祝福歌”

按“Q”鍵,退出

二、課程設計相關知識

2.1 定時/計數器8253/58254

在微機及控制系統中,經常要用到定時信號。如系統的日歷時鐘,動態存儲器刷新。對外部執行機構控制時也需要定時中斷、定時檢測、定時查詢等。定時的方法主要是兩種:

軟件定時:利用指令的執行時間設計循環程序,使CPU 執行延遲子程序的時間就是定時時間。缺點:執行延遲時,CPU 一直被占用,降低了CPU 的效率。

硬件定時:用計數器/定時器作為主要硬件,在軟件簡單指令的控制下產生精確的時間延遲。突出優點為計數時不占用CPU 時間,如利用定時器/計數器產生中斷信號,可建立多作業環境,提高了CPU 效率。

作為定時器可用8253或者8254,二者功能基本相同,知識工作的最高頻率不一樣。本實驗就采用了8254,其主要功能為:

(1)每片上有3 個獨立的16 位的減計數器通道。

(2)對于每個計數器,都可以單獨作為定時器或計數器使用,并且都可以按照二進制或十進制來計數。

武漢理工大學《微機原理與接口技術》課程設計

(3)每個通道都有6 種工作方式,都可以通過程序設置或改變。(4)每個計數器的速率可高達10MHz。

主要部分有:數據總線緩沖器、讀/寫控制邏輯、控制字寄存器、計數通道0#、1#、2#: 內部結構如下圖:

8254內部結構

2.2 8254外部引腳

8254芯片是具有24個引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8254芯片的24個引腳分為兩組,一組面向CPU,另一組面向外部設備,各個引腳及其所傳送信號的情況,介紹如下:

8254的引腳

(1)D7~D0:雙向、三態數據線引腳,與系統的數據線連接,傳送控制、數據及狀態信息。

(2)RD:來自于CPU的讀控制信號輸入引腳,低電平有效。

武漢理工大學《微機原理與接口技術》課程設計

(3)WR:來自于CPU的寫控制信號輸入引腳,低電平有效。(4)CS:芯片選擇信號輸入引腳,低電平有效。

(5)A1、A0:地址信號輸入引腳,用以選擇8254芯片的通道及控制字寄存器。(6).VCC及GND:+5V電源及接地引腳。

(7)CLKi: i=0,1,2,第i個通道的計數脈沖輸入引腳,8254規定,加在CLK引腳的輸入時鐘信號的頻率不得高于2.6MHZ,即時鐘周期不能小于380ns。

(8)GATEi: i=0,1,2,第i個通道的門控信號輸入引腳,門控信號的作用與通道的工作方式有關。

(9)OUTi:i=0,1,2,第i個通道的定時/計數到信號輸出引腳,輸出信號的形式由通道的工作方式確定,此輸出信號可用于觸發其它電路工作,或作為向CPU發出的中斷請求信號。

2.3 8254端口地址

8254控制字 武漢理工大學《微機原理與接口技術》課程設計

說明 :(1)8254每個通道對輸入CLK按二進制或二十進制從預置值開始減1計數,減到0時從OUT輸出一個信號。

(2)8254編程時先寫控制字,再寫時間常數。

2.4 8254工作方式

(1)方式0:計數結束產生中斷方式

當寫入控制字后,OUT變為低電平,當寫入初值后立即開始計數,當計數結束時,變成高電平。

(2)方式1:可編程單次脈沖方式

當初值裝入后且GATE由低變高時,OUT變為低電平,計數結束變為高電平。(3)方式2:頻率發生器方式

當初值裝入時,OUT變為高;計數結束,OUT變為低。該方式下如果計數未結束,但GATE為低時,立即停止計數,強制OUT變高,當GATE再變高時,便啟動一次新的計數周期。

(4)方式3:方波發生器

當裝入初值后,在GATE上升沿啟動計數,OUT 輸出高電平; 當計數完成一半時,OUT輸出低電平。方式3與方式2的工作方式類似,也是在初始化完成后能重復循環計數,只是輸出的波形不同。

(5)方式4:軟件出發選通方式

進入工作方式4,OUTi輸出高電平。裝入計數值n后,如果GATE為高電平,則立即

武漢理工大學《微機原理與接口技術》課程設計

開始減“1”計數,直到計數值減到“0”為止,OUTi輸出寬度為一個CLKi周期的負脈沖。由軟件裝入的計數值只有一次有效,如果要繼續操作,必須重新置入計數初值n。如果在操作的過程中,GATE變為無效,則停止減“1”計數,到GATE再次有效時,重新從初值開始減“1”計數。

(6)方式5:硬件觸發方式計數

進入工作方式5,OUTi輸出高電平,硬件觸發信號由GATE端引入。因此,開始時GATE應輸入為0,裝入計數初值n后,減“1”計數并不工作,一定要等到硬件觸發信號由GATE端引入一個正階躍信號,減“1”計數才會開始,待計數值計到“0”,OUTi將輸出負脈沖,其寬度固定為一個CLKi周期,表示定時時間到或計數次數到。

三、程序設計思路

所有音樂都是由各個不同頻率的音階和其延續時間的長短來實現的。不同的音樂是由各個音階按某種排列各自播放一定時間形成的,將各音樂音階和其延續時間存在數據段中,然后根據不同按鍵值選擇不同的音階和時間表,再使用計數器產生該音階頻率。

CPU通過對定時器的通道2(端口地址為42)進行編程,使其I/O寄存器接收一個控制聲音頻率的16位計數值,端口61H的最低控制通道2門控的開斷。以產生特殊的音響。當定時器接收的計數值為533H時,能產生896Hz的聲音,因此產生其他頻率的計數值就可算出來:

533Hz×896÷頻率=1234DC÷頻率

在送出頻率計數值之前,還要給方式寄存器送一個方式值,該數決定對哪一個通道編程,采用什么模式,送入通道的計數值是一字節還是兩字節,是二進制碼還是BCD碼。其位組合的格式如下:

當通道2用于發聲時,采用的是模式3,在模式3下,輸出線為“1”和為“0”的時間各占計數時間的一半,因而產生一系列間隔均勻的脈沖。

產生指定頻率聲音的程序段如下: MOV AL,0B6H OUT 43H,AL ;43H為8254的控制字端口 MOV DX,12H MOV AX,34DCH DIV DI ;(DI)=頻率

OUT 42H,AL ;42H為8254的通道2端口

武漢理工大學《微機原理與接口技術》課程設計

MOV AL,AH MOV 42H,AL 從定時器輸出的方波信號,經功率放大和濾波后驅動揚聲器。送到揚聲器的信號還受到了從并行接口芯片8255(端口地址為61H)來的雙重控制,端口61H的最低位控制通道2的門控開斷,以產生特殊的音頻信號,端口61H的PA1位和定時器的輸出信號同時作為與門的輸入,PA0和PA1位可由程序決定為0還是為1。顯然只有PA0和PA1都是1時,才能使揚聲器發出聲音。控制音長的時間可以簡單地通過反復執行指令來得到。我們知道執行2801次LOOP指令約需要10MS的時間。因此用10MS的倍數值來控制揚聲器開關的時間間隔,就可控制發聲的音長了。實現程序如下:

IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL;開揚聲器 L: MOV CX,2801 DY:LOOP DY DEC BX JNZ L MOV AL,AH OUT 61H,AL;關揚聲器

四、功能流程圖及子程序說明

4.1總流程圖

MAIN程序:MAIN程序是總程序,輸出說明,等待用戶按鍵并讀取鍵值。根據不同的按鍵選擇調用播音子程序播放不同的歌曲。武漢理工大學《微機原理與接口技術》課程設計

4.2音樂播放子程序流程圖

PLAY子程序:PLAY子程序是播音子程序,SI指向音節表中的頻率,BP指向音節表中的時間。從SI的指向的音節表中取一個頻率,只要不是-1,即有效就再讀取時間,然后計算計數初值送入計數器,產生各種頻率。開啟揚聲器,根據所取的時間調用若干次延時子程序。這段時間揚聲器就發出該頻率的聲音,延時結束,就關閉揚聲器,調用音節之間的小延時程序。最后修改SI和BP,指向下一個頻率,重復上面的工作

DELAY子程序和DELAY_OFF子程序:兩個都是子程序,采用空操作循環多次的方法,只是第二個延時時間較短,大概為5ms。武漢理工大學《微機原理與接口技術》課程設計

開始保護現場曲N各音符頻率設置曲N各音符時間設置讀取頻率F頻率是-1 ?Y恢復現場N讀取時間T結束返回計算機計數次數送計數器,產生該頻率F信號啟動喇叭延時T關閉喇叭音符間延時播音流程圖 武漢理工大學《微機原理與接口技術》課程設計

4.3部分源程序代碼

武漢理工大學《微機原理與接口技術》課程設計

五、調試結果截屏及結果分析

5.1調試結果截屏

初始界面:

如果按錯了鍵,會出現如下界面:

如果選擇正確,將出現如下界面: 武漢理工大學《微機原理與接口技術》課程設計

5.2結果分析

根據輸出結果顯示,此次試驗設計結果與預想設計方案想要達到的結果相一致,沒有出現任何偏差,此次設計較為成功。但在實驗過程中對程序不斷地進行了調試,將音頻頻率不斷地進行了改變,由原來的低頻通過同時擴大其倍數,最終使音頻達到預期的效果。武漢理工大學《微機原理與接口技術》課程設計

六、參考文獻

【1】李長青.微機原理與接口技術.徐州:中國礦業大學出版社,2006 【2】沈美明.匯編語言程序設計實驗教程.北京:清華大學出版社,2002年 【3】周明德.微機原理與接口技術.北京:人民郵電出版社,2002年 武漢理工大學《微機原理與接口技術》課程設計

七、附錄

7.1源程序代碼:

DATA SEGMENT DATA1 DB 0AH, 0DH, 'HELLEL!WELCOME YOU TO COME HERE!$' DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$' DB 0AH, 0DH, 'PLEASE SELECLT!$' DATA4 DB 0AH, 0DH, 'input ERROR!$' DATA5 DB 0AH, 0DH, 'input AGAIN!$'

MUSLIST DB 0AH, 0DH, 'PressA Ma li you zhi xiao yang gao' DB 0AH, 0DH, 'PressB Tai hu chuan' DB 0AH, 0DH, 'PressC zhu fu ge' DB 0AH, 0DH, '$' MUSFRQA DW 330,294,262,294,3 dup(330)DW 3 dup(294),330,392,392 DW 330,294,262,294,4 dup(330)DW 294,294,330,294,262,-1 MUSTIMA DW 6 dup(100),200 DW 2 dup(100,100,200)DW 12 dup(100),400 MUSFRQB DW 330,392,330,294,330,392,330,294,330 DW 330,392,330,294,262,294,330,392,294 DW 262,262,220,196,196,220,262,294,330,262 DW-1 MUSTIMB DW 3 dup(200),100,100,200,100,100,400 DW 2 dup(200,200,100,100),400 DW 3 dup(200,100,100),400 MUSFRQC DW 392, 262, 294, 330, 350, 392, 262, 262 DW 440, 350, 392, 440, 494, 524, 262, 262 DW 350, 392, 350, 330, 294, 330 DW 350, 330, 294, 262, 294, 330, 294, 262, 247, 262,-1 MUSTIMC DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200, 200, 200

武漢理工大學《微機原理與接口技術》課程設計

DW 200, 4 DUP(100), 200 DW 4 DUP(100), 200, 4 DUP(100), 400 DATA ENDS STACK SEGMENT PARA STACK 'STACK' STA DB 200 DUP('STACK')STACK ENDS CODE SEGMENT ASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATA START: MOV AX, DATA;MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AX SHOW MACRO B;MOV DX, OFFSET B MOV AH, 09H INT 21H;ENDM SHOW DATA1;L0: SHOW MUSLIST MOV AH, 01H;INT 21H CMP AL, 51H JZ RETURN CMP AL, 41H JNZ l1 CALL MUSICA JMP EXIT1 l1: CMP AL, 42H JNZ l2 CALL MUSICB JMP EXIT1 l2: CMP AL, 43H JNZ EXIT CALL MUSICC JMP EXIT1

設置段寄存器 顯示以B開始的字符串宏定義宏結束 提示信息 輸入并選擇

武漢理工大學《微機原理與接口技術》課程設計

EXIT1: SHOW DATA5 JMP L0 EXIT: SHOW DATA4 SHOW DATA5 JMP L0 RETURN: MOV AX, 4C00H;返回DOS INT 21H;******************************************************************* MUSICA PROC;音樂A LEA SI, MUSFRQA LEA BP,DS: MUSTIMA FREQA: MOV DI, [SI] CMP DI,-1 JE ENDMUSA MOV BX, DS: [BP] CALL SOUND ADD SI,2 ADD BP,2 JMP FREQA ENDMUSA:RET MUSICA ENDP;******************************************************************* MUSICB PROC;音樂B LEA SI, MUSFRQB LEA BP,DS: MUSTIMB FREQB: MOV DI, [SI] CMP DI,-1 JE ENDMUSB MOV BX, DS: [BP] CALL SOUND ADD SI,2 ADD BP,2 JMP FREQB ENDMUSB:RET MUSICB ENDP;*******************************************************************

武漢理工大學《微機原理與接口技術》課程設計

MUSICC PROC;音樂C LEA SI, MUSFRQC LEA BP,DS: MUSTIMC FREQC: MOV DI, [SI] CMP DI,-1 JE ENDMUSC MOV BX, DS: [BP] CALL SOUND ADD SI,2 ADD BP,2 JMP FREQC ENDMUSC:RET MUSICC ENDP SOUND PROC;發音程序 PUSH AX;保護寄存器 PUSH BX PUSH CX PUSH DX PUSH DI MOV AL, 0B6H;寫定時器模式 OUT 43H, AL MOV DX, 12H;時間因子 MOV AX, 348CH DIV DI;頻率

OUT 42H, AL;寫計數器2低八位 MOV AL, AH OUT 42H, AL;寫計數器2高八位 IN AL, 61H;獲取當前端口設置 MOV AH, AL;保存在AH中

OR AL, 3;打開揚聲器 OUT 61H, AL DELA1: LOOP DELA1 DEC BX JNZ WAIT1

16;******************************************************************* WAIT1: MOV CX, 2800;改變數值,用以設置播放速率 武漢理工大學《微機原理與接口技術》課程設計

MOV AL, AH;恢復端口信號 OUT 61H, AL POP DI;寄存器出棧 POP DX POP CX POP BX POP AX RET;返回 SOUND ENDP;******************************************************************* CODE ENDS END START 7.2各個音符的對應頻率表:

音符 頻率/HZ 半周期/us 音符 頻率/HZ 半周期/us 低1DO 262 1908 #4FA# 740 0676 #1DO# 277 1805 中5SO 784 0638 低2RE 294 1700 #5SO# 831 0602 #2RE# 311 1608 中6LA 880 0568 低3M 330 1516 #6LA# 932 0536 低4FA 349 1433 中7SI 988 0506 #4FA# 370 1350 高1DO 1046 0478 低5SO 392 1276 #DO# 1109 0451 #5SO# 415 1205 高2RE 1175 0426 低6LA 440 1136 #2RE# 1245 0402 #6LA# 466 1072 高3M 1318 0372 低7SI 494 1012 高4FA 1397 0358 中1DO 523 0956 #4FA# 1480 0338 #1DO# 554 0903 高5SO 1568 0319 中2RE 578 0842 #5S0# 1661 0292 #2RE# 622 0804 高6LA 1760 0284 中3M 659 0759 #6LA# 1865 0268 中4FA 698 0716 高7SI 1976 0253 武漢理工大學《微機原理與接口技術》課程設計

八、總結

在本次設計中,可以說是一次成功的經驗。在我們學完了《微型計算機原理與接口技術》這門課的基礎上來做這個設計,通過設計后,使我們對這門課的理論知識的理解有很大程度上的加強。微機原理這門課程本身是一門實驗性和工程性很強的專業技術課,因此不僅要重視理論教學,更應注意實踐技能的培養和訓練。課程設計是這門課程的一個重要環節,通過課程設計,鞏固、加深和拓寬了學習的理解,本課程設計的重點目標是使用匯編語言,而不過多涉及硬件方面的太多知識。

在編程方面我通過本次課程設計學到了很多。一開始面對很長的程序往往有畏難情緒,感覺無法下手,沒辦法只能硬著頭皮啃下去,多看幾個和音樂播放有關的匯編程序,然后我就能慢慢看懂了并理解了別的作者的設計思路。然后再根據自己的思路,對照本人在圖書館借的匯編語言指導書慢慢編寫符合自己思路的程序。一次寫出來的程序肯定不會是正確的,還需要進一步調試它。檢查程序過程中,在充分思考的基礎上多次實驗是檢查改正程序的良方。編寫程序的過程中,體會最深的是子程序的調用和程序的條理問題,一個程序就算功能實現了,但是也要使主程序和子程序的條理分明,易讀性高,才能算一個比較好的程序。調試程序中,學習了emu8086的使用,emu8086對檢查程序的錯誤作用很大。同時,也要靈活使用各種調試方法,來縮小尋找錯誤的范圍。

書到用時方恨少。在課程設計過程中,我才體會到這句話的深意。課堂上學的8254的知識和匯編語言都太少,還不足以完成本次課設,為此我經常跑圖書館借了各種各樣的工具書。有的書用處較大,有的書僅能用到一小塊知識,就是這樣,一步步在知識的海洋里我尋覓著自己需要的東西,確實克服了不少困難,解決了不少問題。或許坎坷才能更好的使人成長。在這次的課程設計中,我的收獲是不但做出了一個符合要求的音樂播放器,而且為自己積累了一些寶貴的經驗。同時我也對音樂方面的頻率知識有了一些認識,我想如果不是本次課程設計中用到這方面知識,我這輩子可能沒有機會去接觸這方面的知識了。這,或許也是我比別的同學多出的一點收獲吧!

第四篇:微機原理課程設計

電子信息科學與技術《微機原理》課程設計

一、本次課程設計的目的和意義

學習和掌握計算機中常用接口電路的應用和設計技術,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛煉。通過這次設計實踐能夠進一步加深對專業知識和理論知識學習的認識和理解,使自己的設計水平和對所學的知識的應用能力以及分析問題解決問題的能力得到全面提高。

二、設計時間、基本要求

(一)、設計時間:二周(二)、基本要求:

a.每題2人;b.設計出完整的接口電路;c.編寫出全部程序;d.在實驗系統上調試通過。

三、設計選題與要求

選題一:多路模擬數據采集系統設計

要求:設計一個2路以上的模擬數據采集系統。

1、用按鍵選擇那一路;

2、用LED顯示轉換結果(十進制數);

3、將每一路采集的100個數據存放到各自的存儲區中。

選題二:溫度測控系統的設計

要求:利用ADC0809設計一個溫度測控系統,在LED數碼顯示器上顯示溫度值,并對溫度進行測試和控制,當檢測溫度到達溫度上限60℃時開風扇(即開啟電動機,或以一個燈的亮滅表示),低于下限30℃時關閉風扇,LED上的顯示內容為:XX ℃(采用十進制顯示)。

選題三:函數發生器的設計(一)要求:利用DAC0832設計一個函數發生器,并利用按鍵選擇輸出波形,能分別產生三角波、階梯波(每階梯1V)、正向鋸齒波、負向鋸齒波和方波。并利用按鍵(自行定義)進行輸出波形選擇,同時將當前輸出波形代號顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負向鋸齒波、3 為三角波、4為階梯波。

選題四:函數發生器的設計(二)要求:設計一個三角波發生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1-5這5個數字鍵改變其輸出波形的幅值,當按下1-5數字鍵時使D/A輸出幅值從1V增加到5V。

選題五:電子音樂播放器

要求:設計要求:利用8253作為音階頻率發生器,應先對“2008年奧運會主題歌”進行編碼后存入音符表,并建立好音階表(只建立一個8度即可),音符長度不能少于60個,連續播放3遍后停止。

選題六:鍵盤電子樂器

要求:利用并行接口8155作為鍵盤接口,設計一個具有2個八度音階的鍵盤樂器,音階鍵不少于16個,采用掃描方式管理鍵盤,音域范圍自行定義。

選題七:電子時鐘設計

要求:利用8253定時器設計一個具有時、分、秒顯示的電子時鐘,并定義一個啟動鍵,當按下該

鍵時時鐘從當前設定值(可在顯示緩沖區中予置)開始走時。

選題八:壓力測控系統的設計(一)要求:對壓力傳感器的信號進行檢測并在LED數碼顯示器上顯示壓力值,當壓力低于30pa時,黃燈閃爍,閃爍周期為1秒。當壓力高于150pa時,紅燈閃爍。LED的顯示內容為P=XXX。X為測試值。

選題九:可變輸出頻率方波發生器設計

要求:設計一個輸出方波頻率可利用按鍵改變的方波信號發生器(可以使用D/A也可以直接使用8253產生方波),利用鍵盤選擇方波發生器的輸出頻率并驅動喇叭。輸出頻率=鍵號*100HZ

選題十:直流電機速度控制器設計

要求:利用D/A轉換器和按鍵設計一個直流電動機轉速控制器。按鍵定義如下:0 停止,1-1/10轉速,2-2/10轉速?? 9 最高速(D/A輸出滿量程),鍵號每加1,D/A輸出增加0.5V

選題十一:可任意啟動/停止的電子秒表設計

要求:6位LED數碼顯示,計時單位為1/100秒。利用功能鍵進行啟/停控制。其功能為:上電后計時器清0,當第一次(或奇數次)按下啟/停鍵時開始計數。第2次(或偶數次)按下該鍵時停止計時,再一次按啟/停鍵時清零后重新開始計時??

選題十二:溫度測試系統設計

要求:利用溫度傳感器和ADC0809設計一個溫度測試系統,將測試結果(十進制)在LED上顯示出來,并定義一個保持按鍵,當按下該鍵時,將當前測試值保持不變(按鍵不動作時為正常測量顯示)。溫度顯示格式為:XXX ℃。(可以每隔0.3秒測量一次)

選題十三:壓力測試系統設計(二)要求:利用壓力傳感器和ADC0809設計一個壓力測試系統,并將測試結果(十進制)在LED上顯示出來,并定義一個測試最大值按鍵,當按下該鍵時,可進行最大值測量(按鍵不動作時為正常測量顯示),即:只有當當前測量值大于上次測量值時才刷新顯示,顯示格式為:P=XXX。可以每隔0.3秒測量一次。

選題十四:簡易計算器系統設計

要求:設計一個可以進行2位數四則運算的計算器。

1、用按鍵輸入數和運算符號;

2、用LED顯示運算過程和結果(十進制數);

3、可以表示出當前的運算類型;

4、具有清零和復位功能;

5、具有連續運算功能。

選題十五:交通燈控制系統

要求:按照時間控制原則,利用并行接口和定時器,設計一套十字路口的交通燈管理系統,通行時間(或禁止時間)30秒,準備時間3秒,在準備時間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復始。可利用8255、8253等接口電路。

選題十六:計件系統設計

要求:利用8253計數,對外界脈沖技術,并將計數值在數碼管上顯示,可通過鍵盤控制重新計數。

四、設計任務及要求

1、接口設計:根據所選題目和所用的接口電路芯片設計出完整的接口電路,并在實驗系統上完成電路的連接和調試通過。

2、程序設計:要求畫出程序框圖,設計出全部程序并給出程序設計說明和程序注釋。

3、課程設計報告:(1)設計題目;

(2)系統的主要功能、作用以及主要技術性能指標;

(3)總體設計方案、工作和組成原理(框圖)或設計說明、采用的技術路線等;

(4)系統設計:接口電路設計,程序設計(程序框圖和程序清單及注釋)其他有關的理論分析和計算;

(5)設計總結:對整個設計工作過程進行歸納和綜合,對設計中所存在的問題和不足進行分析和總結,提出解決的方法、措施、建議和對這次設計實踐的認識、收獲和提高。

第五篇:微機原理課程設計

匯編程序設計題

題目一 密碼設置模擬

該程序可以進行密碼的設置(第一次)和修改(已設置密碼)。要求輸入的密碼不顯示。題目二 計算器

編輯程序可以實現鍵盤輸入數據與運算符,進行“加減乘除”運算。(提示:先輸入數據與運算符,保存,再按照運算符選擇對應的子程序;輸入的數據是用字符表示的,需要轉換;要有良好的界面(提示信息))

題目三工作周期判斷程序

輸入年、月、日,能夠判斷當日的星期數,并進行輸出。(以校歷為依照,可設某日為起點,根據相差的天數與7的關系進行判斷)。

題目四 PC揚聲器發聲

利用8253驅動PC機內揚聲器發聲,PC結構參考相關文獻資料。題目五 樂曲播放

利用PC機內8253實現樂曲播放。題目六 按鍵選擇樂曲播放

利用按鍵選擇播放不同樂曲。(★)(自制交互界面實現按鍵選擇★★)題目七 實現閃爍文字效果 編程提示:

提示信息于屏幕中央顯示出來,用光標定位子程序將光標定位于80*25顯示方式的第8行第10列,然后輸出一條提示信息,接著調用屏幕上卷子程序上卷一行,接著再定位光標,然后顯示下一條提示信息,直到所有信息顯示完畢,對于閃爍的信息,同樣是定位光標,然后用BIOS功能調用13H來顯示閃爍信息,當BL的高位為1時,字符閃爍。mov ah,00h mov al,03h ;設置顯示方式為80*25,16色文本 int 10h 題目八

數字秒表

設計可以顯示1~60秒的無存儲功能的秒表,最小單位為毫秒。題目九

倒計時牌

設計日期倒計時牌界面,可輸入設定日期,顯示當前日期的統計天數,如奧運計時牌。題目十

數字時鐘

編程實現時鐘功能,按秒刷新,要求定位在屏幕右上角。

硬件設計題

總體要求:根據題意自行設計電路,編寫相關匯編程序。題目一

交通燈控制系統

1.利用8253定時,8259中斷及8255設計電路,實現十字路口交通燈模擬控制。2.實現能自動控制和手動應急控制。

3.實現能隨時可以調整自動模式的綠燈和紅燈時間。題目二 實現特定功能的鍵盤及LED顯示

了解鍵盤及LED顯示接口原理,設計實驗電路圖完成以下功能: 1.按1鍵顯示年; 2.按2鍵顯示月日; 3.按3鍵顯示GOOD ;

4.按4鍵數碼管由左到右字符“0”循環顯示。5.自行設計特效顯示功能。題目三

LED七段數碼管數字鐘

設計并完成LED七段數碼管數字鐘電路,數字鐘顯示格式為:HH:MM:SS。要求:具有通過鍵盤能夠調整時、分、秒的功能。題目四

閃爍燈

利用8253和LED燈相結合實現閃爍燈效果。題目五

電子鐘

利用8253定時器設計一個電子鐘,并定義一個啟動鍵。當按下該鍵時電子時鐘從當前設定值開始走時。

附錄:實驗箱功能模塊電路圖

下載微機原理課程設計音樂播放器word格式文檔
下載微機原理課程設計音樂播放器.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    2008微機原理課程設計

    《微機原理及接口》課程設計任務書 適用專業:05電子信息工程 通信工程 一、 本次課程設計的目的和意義 學習和掌握計算機中常用接口電路的應用和設計技術,充分認識理論知識對......

    微機原理課程設計

    接口技術課程設計 一、 設計內容 設計一個投票統計器,完成投票、計票統計和票數顯示等功能。 二、設計原理及方案 在8086最小工作模式下,連接一塊8255A芯片。在 8255A的C端口......

    微機原理課程設計

    《微機原理》課程設計報告 時間 學 院 專業班級 姓 名 學 號 合 作 者 指導教師 成 績 2013 年 11 月摘要 本文針對可燃氣體檢測模塊MQ—K1,綜合運用《微機原理》所學知識......

    微機原理課程設計

    合肥工業大學 計算機與信息學院 課程設計 課程:微機原理與接口技術設計 專業班級:計算機科學與技術班 學號:2 姓名: 一、設計題目及要求: 利用 8259A中斷,實現對8253多種計數......

    微機原理課程設計

    一、設計題目 單片機綜合試驗儀——計數/中斷模塊 二、功能及性能指標 顯示計數,記到15就重新開始計數 三、設計目的 1 了解單片機綜合實驗儀基本構成和分模塊設計方法。掌......

    2012微機原理課程設計指導書

    微機原理課程設計 指 導 書 南通大學計算機科學與技術學院計算機科學與技術系 二零一二年五月 目 錄 1 課程設計的目的和任務 ....................................... 1......

    微機原理課程設計題目

    1. 匯編繪圖1 屏幕上出現隨機(隨機顏色,隨機邊長,隨機線寬)的正方形 2. 匯編繪圖2 屏幕上出現隨機(隨機顏色,隨機邊長,隨機線寬)的三角形 3. 匯編繪圖3 屏幕上出現隨機(隨機顏色,隨機......

    微機原理課程設計題目

    微機原理課程設計題目與要求 微機原理課程設計說明: 1. 要求使用 A4 紙打印,必須有封面和目錄。封面內容有課設題目、班級、 學號、 姓名、指導教師、日期等內容。設計題目可......

主站蜘蛛池模板: 亚洲爆乳成av人在线视菜奈实| 中文亚洲欧美日韩无线码| 女人扒开屁股桶爽30分钟| 国产高跟黑色丝袜在线| 国产精品一区二区av片| 国产精品交换| 中文无码日韩欧av影视| 精品熟女少妇av久久免费软件| 黑巨人与欧美精品一区| 少妇无码太爽了在线播放| 新妺妺窝人体色7777太粗| 免费人成在线观看网站品爱网| 久久久精品2019免费观看| 精品熟女少妇a∨免费久久| 精品丝袜人妻久久久久久| 色婷婷六月亚洲婷婷丁香| 亚洲午夜爱爱香蕉片| 精品亚洲aⅴ在线无码播放| 亚洲国产桃花岛一区二区| 亚洲制服丝袜精品久久| 日韩精品一区二区三区中文| 国产亚洲精品美女久久久m| 国产精品午夜在线观看体验区| 中文 在线 日韩 亚洲 欧美| 中文韩国午夜理伦三级好看| 国产精品白浆在线观看无码专区| 国产又大又粗又爽的毛片| 午夜免费无码福利视频麻豆| 亚洲国产精品无码专区成人| 亚洲精品高清无码视频| 久久久精品波多野结衣av| 中文国产成人精品久久app| 中文字幕人妻一区二区| 国产真人无遮挡作爱免费视频| 狠狠色噜噜狠狠狠狠av不卡| 日本aaaaa片爽快免费中国| 久久精品视频在线看99| 国产精品免费视频网站| 国产av天堂亚洲国产av天堂| 少妇无码av无码专区线y| 手机看片国产av无码|