版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微機原理與接口技術(shù)課程設(shè)計 題 目_基于8086電子琴的設(shè)計與實現(xiàn) 學(xué)生姓名 專業(yè)班級 12級計算機科學(xué)與技術(shù)一班 學(xué) 號 院 (系) 信息工程 指導(dǎo)教師 完成時間 2015 年 1 月 11 日 目 錄1 引言12 設(shè)計方案與論證332.2 方案二3483 設(shè)計原理及功能說明993.1.1 8253簡介103.1.2 8255簡介123.2 軟件143.2.1 設(shè)計實驗總流程圖143.2.2 設(shè)計子程序流程圖154 調(diào)試與結(jié)果測試174.1 硬件調(diào)試174.2 軟件調(diào)試204.3測試方案和測試結(jié)果225 總結(jié)23參考文獻26附錄1:總體電路原理圖27附錄2:元器件清單28附錄3:源代碼291
2、 引言隨著電子技術(shù)的發(fā)展,計算機在現(xiàn)代科學(xué)技術(shù)的發(fā)展中起著越來越重要作用。多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、智能信息處理技術(shù)、自適用控制技術(shù)、數(shù)據(jù)挖掘與處理技術(shù)等都離不開計算機。本次課程設(shè)計是基于微機原理與接口技術(shù)的簡單應(yīng)用。微機技術(shù)目前運用最廣泛的就是單片機。單片機是隨著大規(guī)模集成電路的出現(xiàn)極其發(fā)展,將計算機的CPU、RAM、ROM定時/計數(shù)器和多種I/O接口集成在一片芯片上,形成了芯片級的計算機,因此單片機早期的含義稱為單片微型計算機。它擁有優(yōu)異的性價比、集成度高、體積小、可靠性高、控制功能強、低電壓、低功耗的顯著優(yōu)點.主要應(yīng)用于智能儀器儀表、工業(yè)檢測控制、機電一體化等方面,并且取得了顯著的成果。單片
3、機控制通用MIDI音源模塊制作制作出的電子琴,結(jié)構(gòu)簡單,可靠性高,并且價格低廉,具有實用的價值。這種電子琴能夠支持單音和復(fù)音彈奏,如果與高品質(zhì)的音源芯片連接,音質(zhì)更可與高檔電子琴相媲美。手機中通用的音樂芯片構(gòu)成音源模塊,效果不錯,價格更低廉,如韓國產(chǎn)的QS6400 等,這些芯片的驅(qū)動要復(fù)雜一些,需要對芯片進行初始化設(shè)置。此外還有音樂盒、附有生日歌的生日卡片等等。所以利用微機制作的簡易電子琴在我們的日常生活中隨處可見1。微機原理簡易電子琴設(shè)計主要是通過對電子琴主體部分的電路進行模仿設(shè)計,達到電子琴固有的基本功能,故叫簡易電子琴。利用定時器可發(fā)出不同頻率的方波,不同頻率的方波經(jīng)喇叭就會發(fā)出不同音調(diào)
4、。其次,定時器按設(shè)置的定時參數(shù)產(chǎn)生中斷,這一次中斷發(fā)出脈沖低電平,下一次反轉(zhuǎn)發(fā)出脈沖高電平,由于定時參數(shù)不同,就發(fā)出不同頻率的方波2,本設(shè)計中按鍵一次,會發(fā)出方波,松開后隨之延時,但在延時的期間繼續(xù)檢測按鍵,若此時又有鍵被按下,若被按下的仍為原鍵則聲音不變,否則鍵盤會譯出被按下的另一個鍵的音調(diào)。本次課程設(shè)計的目的是通過D/A轉(zhuǎn)換器產(chǎn)生摸擬信號,使PC機作為簡易電子琴。其主要任務(wù)有以下幾點:基于8086系統(tǒng);使用計算機的數(shù)字鍵1、2、3、4、5、6、7、8作為電子琴的按鍵,按下即可發(fā)出相應(yīng)的音階;音階通過揚聲器發(fā)出聲音。本次設(shè)計通過8255和8253來實現(xiàn)電子琴模擬,主要可以分成兩部分,分別為輸
5、入部分和發(fā)音部分。輸入部分:主要是由8255和8個常開型開關(guān)來完成。發(fā)音部分:CUP通過對定時器8253的通道2進行編程,使其I/O寄存器接收一個控制聲音頻率的16位計數(shù)值,端口61H的最低位控制通道2門控的開斷,以產(chǎn)生特殊的音響3。本文用到的是8253的方式3方波發(fā)生器。通過課程設(shè)計使學(xué)生更進一步掌握微機原理及應(yīng)用課程的有關(guān)知識,提高應(yīng)用微機解決問題的能力,加深對微機應(yīng)用的理解。通過查閱資料,結(jié)合所學(xué)知識進行軟、硬件的設(shè)計,使學(xué)生初步掌握應(yīng)用微機解決問題的步驟及方法。為以后學(xué)生結(jié)合專業(yè)從事微機應(yīng)用設(shè)計奠定基礎(chǔ)。2 設(shè)計方案與論證首先利用了編程程序,編輯8255芯片控制字, 對其進行
6、初始化,使其工作在方式0,即基本輸入輸出狀態(tài),將8255的A端口設(shè)置為輸出,C端口進行,經(jīng)CPU運算后, 輸出到8254芯片的A端口中,由此實現(xiàn)對其的初始化。將8254芯片設(shè)置為工作在方式3,即輸出對稱方波狀態(tài)。A端口為輸入,“OUT”指令可將輸出對應(yīng)一定頻率的方波送到揚聲器中,由此實現(xiàn)發(fā)聲4。本實驗頻率大小控制發(fā)出聲音的高低,通過對延時程序的調(diào)用控制發(fā)出聲音的長短。并通過所編程序?qū)崿F(xiàn)對鍵盤的重復(fù)掃描,從而可以彈奏多個音符的試驗?zāi)康摹?.2 方案二8253的CLK0接1MHz時鐘,GATE0接+5V,OUT0接8255的PA0,K8跳線連接喇叭,使用匯編語言設(shè)計一個運行于計算機的電子
7、琴程序,程序應(yīng)實現(xiàn)彈奏功能。其中彈奏:用戶每按一琴鍵彈奏相應(yīng)音符;軟件預(yù)想功能為:按數(shù)字18為彈奏功能,按下即發(fā)出相應(yīng)的音階。按鍵發(fā)音,當(dāng)從鍵盤上敲擊18時,音響發(fā)出哆、唻、咪、發(fā)、嗦、啦、唏、唗的音節(jié)。對比方案一,其實兩個方案差不多,但是我對于8254不熟悉,所以最終決定此方案為我選擇的最佳方案,并附上本次設(shè)計的設(shè)計框圖如圖2-1所示:系統(tǒng)總線8255芯片鍵盤8253芯片揚聲器發(fā)聲圖2-1 設(shè)計框圖電子琴的設(shè)計實際上就是要設(shè)計一個程序,能夠通過該程序控制PC機內(nèi)揚聲器的發(fā)聲規(guī)律,按下相應(yīng)的按鍵后,揚聲器能發(fā)出指定頻率的聲音。PC機內(nèi)的揚聲器是通過并行接口芯片8255和定時芯片8253來控制發(fā)
8、音的。在本次課程設(shè)計中,分析和確定程序總體設(shè)計目標:電子琴基本功能后,將總體目標確定為連接電路與編程來實現(xiàn)功能。程序設(shè)計的思路按以下順序進行:(1) 分析與確定程序總體設(shè)計目標;通過D/A轉(zhuǎn)換器產(chǎn)生摸擬信號,使PC機作為簡易電子琴。其總體原理圖如圖2-2所示:圖2-2 總體原理圖(2)按照電路圖連接實驗箱,如圖2-3所示:圖2-3 電路連接圖(3)編寫源程序,進行調(diào)試,包括: 發(fā)音部分功能實現(xiàn)由更件的連接形式可知,揚聲器的開斷是由8255的PB0和PB1以及8253通道2同時控制的,PB0和PB1同時為高電平時,揚聲器開,有一個為低電平時,揚聲器關(guān)斷,又知8255 B口地址為61H,
9、8253通道2地址為42H,控制口地址為43H。具體程序編寫5如下: 8253初始化程序段: mov al,10110110b ;選擇8253的通道2,并設(shè)置為工作方式3out 43h,al mov ax,bxout 42h,al ;將計數(shù)初值的低8位寫入計數(shù)通道m(xù)ov al,ahout 42h,al ;將計數(shù)初值的高8位寫入計數(shù)通道開揚聲器程序段:in al,61h ;讀入B口數(shù)據(jù)or al,03h ;將PB0 和PB1置1out 61h,al ;將設(shè)置好的數(shù)據(jù)送回B口關(guān)揚聲器程序段:in al,61h ;讀入B口數(shù)據(jù) and al,0fch ;將PB0 和PB1置0out 61h,a ;將
10、設(shè)置好的數(shù)據(jù)送回B口彈奏功能的實現(xiàn) 當(dāng)按鍵為數(shù)字1-8時,選擇彈奏功能,通過對按鍵的判斷,求得其偏移地址,然后通過查表得其相應(yīng)頻率值,再由上述計算計數(shù)初值的方法求得計數(shù)初值,然后將計數(shù)初值送人8253的通道2,最后調(diào)用發(fā)音子程序即實現(xiàn)彈奏功能。具體程序段如下:sub al,31h ;求偏移量 shl al,1 mov bl,al ;保存偏移量 mov bh,0 mov ax,num1 ;計算計數(shù)初值 mov dx,num2 div word ptrtab+bx mov bx,ax ;保存計數(shù)初值延時功能的實現(xiàn)當(dāng)彈奏完音樂之后,調(diào)用延時子程序,音樂延時播放。具體程序段6如下:delay proc
11、 near ;延時子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0為方式0工作mov al,10hout dx,almov dx,io8255b ;設(shè)8255A口輸入mov al,9bhout dx,almov al,num ;取相應(yīng)的時間常數(shù)xlatmov dx,io8253aout dx,al ;向8253通道0輸出kkk:mov dx,io8255ain al,dx ;從8255A口讀一字節(jié)test al,01 ;判PA0口是否為1jz kkk ;若不為1,則轉(zhuǎn)KKKret ;子程序返回delay endp(1)對于一個特定的D/A轉(zhuǎn)換接
12、口電路CPU執(zhí)行一條輸出指令將數(shù)據(jù)送入D/A即可在其輸出端得到一定的電壓輸出。給D/A轉(zhuǎn)換器輸入按正弦規(guī)律變化的數(shù)據(jù),在其輸出端即可產(chǎn)生正弦波。對于音樂,每個音階都有確定的頻率,如表2-1所示: 表2-1 各音階標稱頻率表音階12345678頻率(單位:Hz)對應(yīng)num取值(us)120106948979706359以 18 接 8255 的 A 口做為電子琴的鍵盤分別輸入哆、唻、咪、發(fā)、嗦、啦、唏、唗 的音,以 8255 的 B 口作為輸出。用 8253 定時器產(chǎn)生頻率控制揚聲器發(fā)聲。 以 8255 接八個開關(guān)18,做電子琴按鍵輸入。 以 8253 控制揚聲器,發(fā)出相應(yīng)的音階。 要求:1發(fā)
13、哆的音 2發(fā) 唻的音 293.7Hz 3發(fā)咪的音 4發(fā)發(fā)的音 349.2Hz 5發(fā)嗦的音 392.0Hz 6發(fā)啦的音 7發(fā)唏的音 493.9Hz 8發(fā)唗的音(2)產(chǎn)生一個正弦波的數(shù)據(jù)可取32個(小于亦可),不同頻率的區(qū)別,可通過調(diào)節(jié)向D/A轉(zhuǎn)換器輸出數(shù)據(jù)的時間間隔,例如:發(fā)"1"頻率為,周期為,輸出數(shù)據(jù)的時間間隔為。定時時間可以由8253配合8255來實現(xiàn)。按下某鍵后發(fā)音時間的長短可以由發(fā)出的正弦波的個數(shù)多少來控制。3 設(shè)計原理及功能說明通過8255 和8253來實現(xiàn)電子琴模擬,主要可以分成兩部分,分別為輸入部分和發(fā)音部分。 輸入部分:主要是由8255 和8 個常開型開關(guān)來
14、完成。 發(fā)音部分:CUP 通過對定時器的通道2 進行編程,使其I/O寄存器接收一個控制聲音頻率的16位計數(shù)值,端口61H的最低位控制通道2門控的開斷,以產(chǎn)生特殊的音響。 當(dāng)通道2用于發(fā)聲時,采用的是方式3,在方式3下,輸出線為“1”和為“0”的時間各占計數(shù)時間的一半,因而產(chǎn)生一系列間隔均勻的脈沖。從定時器輸出的方波信號,經(jīng)功率放大和濾波后驅(qū)動揚聲器。送到揚聲器的信號還受到了從并行接口芯片8255(端口地址為61H)來的雙重控制,端口61H的最低位控制通道2的門控開斷,以產(chǎn)生特殊的音頻信號端口61H的PB1位和定時器的輸出信號同時作為與門的輸入,PB0和PB1位可由程序決定為0還是為1。顯然只有
15、PB0和PB1都是1時,才能使揚聲器發(fā)出聲音??刂埔糸L的時間可以簡單地通過反復(fù)執(zhí)行指令來得到。 3.1.1 8253簡介(1)基本介紹8253芯片是常用的可編程計數(shù)器,在微機中有著極其重要的作用。常用于事件計數(shù)器,單穩(wěn)態(tài)觸發(fā)器,分頻器,方波發(fā)生器,硬件觸發(fā)的單脈沖發(fā)生器等。計數(shù)器/定時器8253包括3個獨立的16位計數(shù)器通道,而每個計數(shù)器都有6種工作方式,可以按二進制或十進制(BCD碼)進行計數(shù)。本文用到的是8253的方式3方波發(fā)生器來實現(xiàn)了簡易電子琴的設(shè)計。(2)工作原理8253芯片中有3個計數(shù)通道,稱為通道0,1,2,它們與外部電路相連的信號線有3根:CLK,GATE,OUT,CLK是脈沖
16、輸入端,GATE是門控信號,OUT是輸出信號,計數(shù)器工作在減1狀態(tài)。其內(nèi)部結(jié)構(gòu)圖,方式控制字格式,如圖3-1,圖3-2所示。其中當(dāng)計數(shù)器工作在方式3時,輸出信號為方波信號。內(nèi)部總線A1GATE0CLK0OUT0GATE1CLK1OUT1GATE2CLK2OUT2D0-D7計數(shù)器0計數(shù)器2計數(shù)器1控制寄存器A0數(shù)據(jù)總線緩沖器R/W邏輯電路圖3-1 8253內(nèi)部結(jié)構(gòu)圖D7D6D5D4D3D2D1D0計數(shù)器選擇00 計數(shù)器001計數(shù)器110 計數(shù)器211 不用00 計數(shù)器鎖存01 讀寫低8位10 讀寫高8位11 讀寫16位工作方式選擇000 方式0001 方式1×10 方式2×1
17、1 方式3100 方式4101 方式5計數(shù)方式0 二進制1 BCD計數(shù)圖3-2 8253控制字格式PC機內(nèi)8253的通道0,通道1,通道2,控制口的端口地址分別為:40H,41H,42,43H。因為揚聲器是由通道2來控制的,故應(yīng)選擇通道2,工作方式選為方式3,輸出的信號則為方波信號。(3)8253的工作方式3方波發(fā)生器其特點是:輸出為周期性的方波。若計數(shù)值為 N,則輸出方波的周期是 N 個 CLK 脈沖的寬度;寫入控制字后,輸出將變?yōu)楦唠娖?,?dāng)寫入計數(shù)初值后,就開始計數(shù),輸 出仍為高電平; 當(dāng)計數(shù)到初值的一半時, 輸出變?yōu)榈碗娖剑?直至計數(shù)到 0, 輸出又變?yōu)楦唠娖?,重新開始計數(shù);若計數(shù)值為偶
18、數(shù),則輸出對稱方波;如果計數(shù)值為奇數(shù),則前(N+1)/2 個 CLK 脈沖期間輸出為高電平,后(N-1)/2 個 CLK 脈沖期間輸出為低電 平;GATE 信號能使計數(shù)過程重新開始,GATE=1 允許計數(shù),GATE=0 禁止計數(shù)。 停止后 OUT 將立即變高電平,當(dāng) GATE 再次變高以后,計數(shù)器將自動裝入 計數(shù)初值,重新開始計數(shù)。3.1.2 8255簡介(1)基本介紹按功能可把8255分為三個邏輯電路部分。即:口電路、總線接口電路和控制邏輯電路。8255共有三個8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實現(xiàn)A口和B口的控制功能。
19、(2)工作原理8255的內(nèi)部結(jié)構(gòu)圖如圖3-3所示,它有3個數(shù)據(jù)端口,分為兩組,A組由A口和C口高四位組成,B組由B口和C口低四位組成。其方式控制字如圖3-4所示。圖3-3 8255內(nèi)部結(jié)構(gòu)圖圖3-4 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機內(nèi)8255的A口,B口,C口和控制口的端口地址分別為:60H,61H,62H,63H。3.2 軟件3.2.1 設(shè)計
20、實驗總流程圖結(jié)合實驗指導(dǎo)書的程序,實現(xiàn)簡單的電子琴功能。電子琴主程序流程圖如圖3-5所示:開始鍵盤讀入一個字符是ESC鍵嗎?YNN返回DOS是數(shù)字18鍵嗎?Y求出音階值保存賦相應(yīng)頻率值延時圖3-5 電子琴主程序流程圖3.2.2 設(shè)計子程序流程圖(1)發(fā)音子程序本子程序?qū)崿F(xiàn)放音功能。首先從鍵盤讀出一個字符,判斷,如果是ESC鍵,返回DOS,如果不是,判斷,如果鍵碼不是18,即仍然處于音階輸入準備狀態(tài),如果是,即求出音階值保存,取60次32個正弦波數(shù)據(jù),播放32個數(shù)據(jù),組成一個正弦波。播放60次后,然后判斷是否有按鍵,如果有就進入死循環(huán),直到下次按鍵為止。在彈奏時都需調(diào)用發(fā)音子程序,發(fā)音子程序的作
21、用是控制揚聲器的發(fā)音,其流程圖如圖3-6所示:8253初始化開揚聲器延時關(guān)揚聲器返回圖3-6 發(fā)音子程序流程圖(2)彈奏子程序當(dāng)按鍵為1-8時,調(diào)用演奏子程序。演奏子程序的流程圖如下圖3-7所示:查表得相應(yīng)頻率計算計數(shù)初值返回調(diào)用發(fā)音子程序圖3-7 演奏子程序的流程圖(3)延時子程序當(dāng)彈奏完音樂之后,音樂延時播放。延時子程序的流程圖如下圖3-8所示:取出音階值求出8253定時時間常數(shù)(計數(shù)器初值)8253初始化為方式0設(shè)置8253A口輸入PA0為1嗎?嗎?Y子程序返回 N圖3-8 延時子程序的流程圖4 調(diào)試與結(jié)果測試4.1 硬件調(diào)試利用實驗板上的8253計數(shù)/定時器和8255并行接口,定時器8
22、253利用工作方式3產(chǎn)生一定頻率信號,通過可編程的并行外圍接口芯片8255控制頻率信號的斷。8255的B口設(shè)置為輸出,8255的B口的低兩位用來控制揚聲器驅(qū)動,當(dāng)輸出端口的PB0位為“1”或為“0”時,將使控制驅(qū)動器的與門電路接通或關(guān)閉使8253所發(fā)出的音頻信號能到達驅(qū)動器或被阻斷。這樣通過控制PB0的變化,可使揚聲器接通和斷開,控制揚聲器是否能發(fā)出聲音。此外,通過控制PB0的通斷時間,就能發(fā)出不同的音長。8255的PB1位為“1”時,控制8253定時器產(chǎn)生驅(qū)動揚聲器發(fā)聲的音頻信號,該位為“0”則不發(fā)信號。8253有三個定時器,分為0號、1號和2號定時器,驅(qū)動揚聲器的是2號定時器,該定時器工作
23、在方式3,是一個頻率發(fā)生器,它負責(zé)向揚聲器發(fā)送指定頻率的脈沖信號。當(dāng)8255的PB0和PB1都為1時,8253發(fā)出指定頻率的聲音信號的前提下,聲音信號過與門到達驅(qū)動器驅(qū)動揚聲器發(fā)聲。連接簡易電子琴系統(tǒng)的電路圖如圖4-1所示圖4-1 電子琴系統(tǒng)的電路圖將實驗箱與微型計算機保持串口通訊成功。將匯編程序代碼輸入微型計算機進行硬件調(diào)試。4.2 軟件調(diào)試把彈奏功能的程序代碼輸入微型計算機;代碼:data segmentioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+283hio8255aequ ioport+288hio8255
24、bequ ioport+28bhio0832aequ ioport+290hdata1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波數(shù)據(jù)time db 120,106,94,89,79,70,63,59;發(fā)不同音時8253的計數(shù)器初值msg db 'Press 1,2,3,4,5,6,7,8,ESC:',0dh,0
25、ah,'$'num db ?;num為8253計數(shù)器初值的序號data endscode segment assume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset msgmov ah,9int 21h ;顯示提示信息sss:mov ah,7int 21h ;從鍵盤接收字符,不回顯cmp al,1bhje exit ;若為ESC鍵,則轉(zhuǎn)EXITcmp al,31hjl ssscmp al,38hjg sss ;若不在'1'-'8'之間轉(zhuǎn)ssssub al,31hmov num,al
26、;求出相應(yīng)的時間常數(shù)的序號mov cx,60 ;取60次32個正弦波數(shù)據(jù)ddd:mov si,0lll:mov al,data1si;取正弦波數(shù)據(jù)mov dx,io0832aout dx,al;放音call delay ;調(diào)延時子程序inc sicmp si,32;是否取完32個數(shù)據(jù)jl lll;若沒有,則繼續(xù)loop ddd;總循環(huán)次數(shù)60是否完,沒有,則繼續(xù)jmp sssexit:mov ah,4chint 21hdelay proc near ;延時子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0為方式0工作mov al,10hout d
27、x,almov dx,io8255b ;設(shè)8255A口輸入mov al,9bhout dx,almov al,num ;取相應(yīng)的時間常數(shù)xlatmov dx,io8253aout dx,al ;向8253通道0輸出kkk:mov dx,io8255ain al,dx ;從8255A口讀一字節(jié)test al,01 ;判PA0口是否為1jz kkk ;若不為1,則轉(zhuǎn)KKKret;子程序返回delay endpcode endsend start與硬件相結(jié)合進行修改調(diào)試,運行程序后,顯示如下界面,等待輸入字符,如圖4-2所示:圖4-2 運行界面從鍵盤上敲擊18時,音響發(fā)出哆、唻、咪、發(fā)、嗦、啦、唏、
28、唗的音節(jié),則調(diào)試成功。如表4-1所示:表4-1 測試表 測試方案 測試結(jié)果啟動程序,出現(xiàn)按鍵提示,按下18鍵機內(nèi)/實驗儀發(fā)出相應(yīng)的音階改變開關(guān)狀態(tài),按18鍵對應(yīng)發(fā)出相應(yīng)的音階“彈琴”發(fā)出優(yōu)美旋律按下ESC鍵退出程序5 總結(jié)在為期一周的微機原理課程設(shè)計中,我學(xué)會了制做項目的一般步驟。第一部是硬件設(shè)計主要是實現(xiàn)控制對象與被控制對象之間的聯(lián)系。第二步就是軟件設(shè)計,就是要完成各個可編程芯片與CPU之間的數(shù)據(jù)傳送和各個進程的邏輯順序。在本次設(shè)計中對硬件要求就要熟練掌握可編程器件8255A和8253的應(yīng)用。對軟件設(shè)計就要熟練掌握匯編語言。由于時間限制的問題和硬件的局限性也只能將電子琴的功能簡易化。另外,我
29、從中學(xué)到了許多從課本上學(xué)不到的東西,鍛煉了自己編程的能力,最后程序運行時能夠?qū)崿F(xiàn)目標,我感到很有成就感,從中也獲得了很多樂趣,當(dāng)然,最重要的是加深了我對課本理論知識的理解。當(dāng)剛看到這個課設(shè)題目時,我感到無從下手,因為我都不知道PC機的內(nèi)部具體結(jié)構(gòu),從理論課上只是了解了CPU的結(jié)構(gòu)和工作原理,以及幾個接口芯片的工作原理,還有匯編語言的一些基本指令。但我沒有被嚇到,我冷靜下來思考后,發(fā)現(xiàn)其本質(zhì)就是控制PC機內(nèi)揚聲器的發(fā)音,通過查閱資料我了解了PC機內(nèi)揚聲器的電路連接形式,發(fā)現(xiàn)它是由接口芯片8255和8253共同控制的,8255的PB0作為8253通道2的門信號,而8255的PB1和8253通道2的
30、輸出相與后的信號作為揚聲器的驅(qū)動信號,了解了其內(nèi)部接線方式后,思路也就有了,要想讓揚聲器發(fā)聲,8255的PB0和PB1必須同時為高電平,其中之一為低電平時,揚聲器就不能發(fā)聲,而發(fā)聲的音調(diào)則可通過改變8253的計數(shù)初值來實現(xiàn),接下來的任務(wù)就是通過編程來控制8255和8253,從而間接地控制揚聲器的發(fā)聲規(guī)律,而8255和8253這兩個接口芯片在理論課上都已介紹過,對其工作原理和編程方法都有一定的了解,看到這些熟悉的內(nèi)容時,我淡定了很多。有了思路之后,我并沒有急著寫程序,因為我懷疑是不是每臺PC機的揚聲器接線方式都是這樣的,所以我開始只編了一段控制揚聲器發(fā)音的程序,來看看程序運行時揚聲器到底發(fā)不發(fā)音
31、,結(jié)果發(fā)聲了,這讓我很驚喜,也很有動力,更加激發(fā)了我的興趣,接下來我就開始編寫實現(xiàn)指定功能的程序了,首先是最簡單的彈奏功能,通過對按鍵的判斷來發(fā)出相應(yīng)頻率的聲音,因為要判斷按鍵,所以很自然地就想到了CMP指令,在計算計數(shù)初值時,因為要用到相應(yīng)音符的頻率,所以需要將按鍵轉(zhuǎn)換為音符的頻率,我開始想用書上常見的XLAT換碼指令7,但AL存放的數(shù)最大為128,很明顯容量不夠,于是我采用了基址+變址的尋址方法,在編程的過程中,由于要程序?qū)崿F(xiàn)多個功能,所以用子程序的結(jié)構(gòu)會比較方便,需要完成某個功能時,只需調(diào)用相應(yīng)子程序就可以了,這樣會使得程序的結(jié)構(gòu)清楚明了。在完成基本功能后,我還試著加上一些附加功能,比如
32、延時,變調(diào),通過我的不斷嘗試,終于把延時功能實現(xiàn)了,但變調(diào)功能沒能像預(yù)期的那樣。總之,這次課程設(shè)計讓我學(xué)到了許多從課本上學(xué)不到的知識,加深了對理論知識的理解,激發(fā)了我對匯編語言的興趣。上理論課時,只是老師講,我們聽,那些指令讓我感到很枯燥,因為不知道它到底有什么作用,而這次課程設(shè)計剛好把這些指令應(yīng)用到了實際中來,加深了對各種指令功能的理解,最后功能實現(xiàn)時,感到很有成就感,覺得匯編語言很神奇,激發(fā)了我對它的興趣。參考文獻1專著.M.北京.清華大學(xué)出版社,20043專著.李芷.微機原理與接口技術(shù)M.電子工業(yè)出版社,2002 4專著.宋杰等.微機原理與接口技術(shù)課程設(shè)計M.機械工業(yè)出版社,20055專
33、著.小捷. 匯編語言程序設(shè)計(第二版)M.西安電子科技大學(xué)出版社,20036專著.錢曉捷.匯編語言程序設(shè)計(第二版)M.電子工業(yè)出版社,20037專著.楊立,鄧振杰等.微型計算機原理與接口技術(shù)(第二版)M.中國鐵道出版社,2006 附錄1:總體電路原理圖附錄2:元器件清單(1)計時器8253(2)并行控制器8255A(3)實驗臺 附錄3:源代碼data segmentioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+283hio8255aequ ioport+288hio8255bequ ioport+28bhio0832
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣體脫硫裝置操作工崗前潛力考核試卷含答案
- 淡水魚類養(yǎng)殖工安全生產(chǎn)規(guī)范知識考核試卷含答案
- 三氯氫硅還原工安全操作考核試卷含答案
- 反應(yīng)香精配制工安全素養(yǎng)考核試卷含答案
- 承包水溝合同范本
- 房屋退款合同范本
- 采購彈簧合同范本
- 路演執(zhí)行合同范本
- 超市廣告合同范本
- 車位沒寫協(xié)議合同
- 學(xué)堂在線 中國傳統(tǒng)藝術(shù)-篆刻、書法、水墨畫體驗與欣賞 章節(jié)測試答案
- 質(zhì)量5w2h培訓(xùn)課件
- 《職業(yè)性腕管綜合征診斷標準》解讀課件
- 賀州市高標準農(nóng)田建設(shè)耕地質(zhì)量評價報告書高標準農(nóng)田建設(shè)耕地質(zhì)量評價報
- 威寧草海景點介紹
- 化妝品日常監(jiān)管培訓(xùn)課件
- 乳制品基礎(chǔ)知識培訓(xùn)課件
- 實驗室生物安全管理體系文件目錄
- 上海民政局夫妻離婚協(xié)議書(2025版)
- 異型腳手架工程安全管理措施
- 2025年中藥學(xué)考博試題及答案
評論
0/150
提交評論