版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 一、 設(shè)計(jì)要求………………………………………………….....1</p><p> 二、設(shè)計(jì)目的…………………………………………………....1</p><p> 三、設(shè)計(jì)的具體實(shí)現(xiàn)…………………………………………....1</p><p> 3
2、.1 系統(tǒng)概述……………………………………………...........1 </p><p> 單元電路設(shè)計(jì)……………………………………......1</p><p> 3.2.1 8086中央處理器……………………...…...………... 1</p><p> 3.2.2 74LS373地址鎖存電路............................
3、.................. 5</p><p> 3.2.3 74LS138 譯碼電路..................................................... 6</p><p> 3.2.4 定時(shí)/計(jì)數(shù)器8253A.................................................... 7 </p
4、><p> 3.3 軟件程序設(shè)計(jì)和調(diào)試................................................13</p><p> 四、 結(jié)論與展望.........................................................................17</p><p> 五、 心得體
5、會(huì)及建議.................................................................17</p><p> 六、附錄....................................................................................18</p><p> 七、參考文獻(xiàn).....
6、.......................................................................19</p><p> 電子音樂播放器設(shè)計(jì)報(bào)告</p><p><b> 一、設(shè)計(jì)要求</b></p><p> 利用8253作為音頻頻率發(fā)生器,應(yīng)先對(duì)一段音樂進(jìn)行編碼后存入音符表,并建立好音階表(
7、只建立一個(gè)8度即可,音階表見附錄),音符長(zhǎng)度不能少于60個(gè),連續(xù)播放3遍后停止。具體要求如下:</p><p> 1、系統(tǒng)硬件電路設(shè)計(jì):根據(jù)所選題目和所用的接口電路芯片設(shè)計(jì)出完整的系統(tǒng)硬件電路,并進(jìn)行電路連接和調(diào)試。</p><p> 2、程序設(shè)計(jì):要求畫出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說明和程序注釋。</p><p><b> 二、設(shè)計(jì)目的
8、</b></p><p> 本課程設(shè)計(jì)培養(yǎng)學(xué)生運(yùn)用該課程的理論知識(shí)和技術(shù)知識(shí)解決工程實(shí)際問題的能力,學(xué)習(xí)微機(jī)系統(tǒng)設(shè)計(jì)的方法;學(xué)生通過對(duì)實(shí)驗(yàn)室系統(tǒng)的實(shí)際調(diào)試,進(jìn)一步培養(yǎng)并提高了科學(xué)實(shí)驗(yàn)的能力。因此,本課程設(shè)計(jì)為學(xué)生提供一個(gè)良好的理論聯(lián)系實(shí)際的機(jī)會(huì)和場(chǎng)所,有利于為學(xué)生樹立微機(jī)整體的概念,同時(shí)加強(qiáng)了學(xué)生編制和調(diào)試程序的能力,進(jìn)一步培養(yǎng)學(xué)生的獨(dú)立工作能力。因此,課程設(shè)計(jì)是教學(xué)計(jì)劃中必不可少的重要一環(huán)。<
9、;/p><p><b> 三、設(shè)計(jì)的具體實(shí)現(xiàn)</b></p><p><b> 1.系統(tǒng)概述</b></p><p> 該音樂播放器通過用8086中央處理器、74LS373地址鎖存電路、74LS138譯碼電路、定時(shí)/計(jì)數(shù)器8253A來實(shí)現(xiàn)功能。</p><p> 8086中央處理器輸出地址碼A1
10、6-A19和數(shù)據(jù)AD0-AD15,將AD0-AD7輸入地址鎖存器輸出A0-A7,再將A0-A7通過譯碼器進(jìn)行譯碼輸出作為8253的片選信號(hào),8253產(chǎn)生不同頻率的脈沖來模擬音符,通過時(shí)間的長(zhǎng)短來模擬音長(zhǎng),從而設(shè)計(jì)出一個(gè)功能完整的音樂播放器。</p><p><b> 2.單元電路設(shè)計(jì)</b></p><p> 2.1 8086中央處理器</p>&l
11、t;p> 8086中央處理器是Intel系列的16位微處理器,有16根數(shù)據(jù)線和20跟地址線。它主要由執(zhí)行部件EU(Execution Unit)和總線接口部件BIU(Bus interface Unit)兩部分組成。8086擁有四個(gè)16位的通用寄存器,也能夠當(dāng)作八個(gè)8位寄存器來存取,以及四個(gè)16位索引寄存器(包含了堆棧指標(biāo))。資料寄存器通常由指令隱含地使用,針對(duì)暫存值需要復(fù)雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32
12、K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個(gè)內(nèi)存位址,所以其中一個(gè)操作數(shù)必須是一個(gè)寄存器。運(yùn)算結(jié)果會(huì)儲(chǔ)存在操作數(shù)中的一個(gè)。 </p><p> 8086有四個(gè) 內(nèi)存區(qū)段(segment) 寄存器,可以從索引寄存器來設(shè)定。區(qū)段寄存器可以讓 CPU 利用特殊的方式存取1 MB內(nèi)存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都認(rèn)為這是一個(gè)很不好的設(shè)計(jì),因?yàn)檫@樣的結(jié)果是會(huì)讓各分段
13、有重疊。盡管這樣對(duì)組合語言而言大部分被接受(也甚至有用),可以完全地控制分段,,使在編程中使用指針 (如C 編程語言) 變得困難。它導(dǎo)致指針的高效率表示變得困難,且有可能產(chǎn)生兩個(gè)指向同一個(gè)地方的指針擁有不同的地址。更壞的是,這種方式產(chǎn)生要讓內(nèi)存擴(kuò)充到大于 1 MB 的困難。而 8086 的尋址方式改變讓內(nèi)存擴(kuò)充較有效率。 </p><p> 8086處理器的時(shí)鐘頻率介于4.77MHz(在原先的IBM PC)和1
14、0 MHz之間。 8086 沒有包含浮點(diǎn)指令部分(FPU),但是可以通過外接數(shù)學(xué)輔助處理器來增強(qiáng)浮點(diǎn)計(jì)算能力。Intel 8087 是標(biāo)準(zhǔn)版本。</p><p> 為了能夠簡(jiǎn)單有效地進(jìn)行對(duì)8086操作,故采用最小模式進(jìn)行工作。要使8086處于最小模式,首先要將MN/MX*端假如高電平。具體各端口及其功能如下所示:</p><p> 圖3.2.1 8086引腳圖</p>
15、<p> ?。?)AD19 ~AD0(address data bus):地址/數(shù)據(jù)總線,雙向,三態(tài)。 </p><p> 這是一組采用分時(shí)的方法傳送地址或數(shù)據(jù)的復(fù)用引腳。根據(jù)不同時(shí)鐘周期的要求,決定當(dāng)前是傳送要訪問的存儲(chǔ)單元或I/O端口的低16位地址,還是傳送16位數(shù)據(jù),或是處于高阻狀態(tài)。 </p><p> ?。?)A19/S6~A16/S3(address/statu
16、s):地址/狀態(tài)信號(hào),輸出,三態(tài)。 </p><p> 這是采用分時(shí)的方法傳送地址或狀態(tài)的復(fù)用引腳。其中A19~A16為20位地址總線的高4位地址,S6~S3是狀態(tài)信號(hào)。S6表示CPU與總線連接的情況,S5指示當(dāng)前中斷允許標(biāo)志IF的狀態(tài)。S4, S3的代碼組合用來指明當(dāng)前正在使用的段寄存器。S4, S3的代碼組合及對(duì)應(yīng)段寄存器的情況。 </p><p> ?。?)BHE(低)/S7(bu
17、s high enable/status):允許總線高8位數(shù)據(jù)傳送/狀態(tài)信號(hào),輸出,三態(tài)。 </p><p> 為總線高8位數(shù)據(jù)允許信號(hào),當(dāng)?shù)碗娖接行r(shí),表明在高8位數(shù)據(jù)總線D15 ~D8上傳送1個(gè)字節(jié)的數(shù)據(jù)。S7為設(shè)備的狀態(tài)信號(hào)。 </p><p> ?。?)(read):讀信號(hào),輸出,三態(tài),低電平有效。 </p><p> 信號(hào)低電平有效時(shí),表示CPU正在進(jìn)
18、行讀存儲(chǔ)器或讀I/O端口的操作。 </p><p> ?。?)READY(ready):準(zhǔn)備就緒信號(hào),輸入,高電平有效。 </p><p> READY信號(hào)用來實(shí)現(xiàn)CPU與存儲(chǔ)器或I/O端口之間的時(shí)序匹配。當(dāng)READY信號(hào)高電平有效時(shí),表示CPU要訪問的存儲(chǔ)器或I/O端口已經(jīng)作好了輸入/輸出數(shù)據(jù)的準(zhǔn)備工作,CPU可以進(jìn)行讀/寫操作。當(dāng)READY信號(hào)為低電平時(shí),則表示存儲(chǔ)器或I/O端口還未
19、準(zhǔn)備就緒,CPU需要插入若干個(gè)“TW狀態(tài)”進(jìn)行等待。 </p><p> ?。?)INTR(interrupt request):可屏蔽中斷請(qǐng)求信號(hào),輸入,高電平有效。 </p><p> 8086 CPU在每條指令執(zhí)行到最后一個(gè)時(shí)鐘周期時(shí),都要檢測(cè)INTR引腳信號(hào)。INTR為高電平時(shí),表明有I/O設(shè)備向CPU申請(qǐng)中斷,若IF=1,CPU則會(huì)響應(yīng)中斷,停止當(dāng)前的操作,為申請(qǐng)中斷的I/O設(shè)
20、備服務(wù)。 </p><p> ?。?)(test):等待測(cè)試控制信號(hào),輸入,低電平有效。 </p><p> 信號(hào)用來支持構(gòu)成多處理器系統(tǒng),實(shí)現(xiàn)8086 CPU與協(xié)處理器之間同步協(xié)調(diào)的功能,只有當(dāng)CPU執(zhí)行WAIT指令時(shí)才使用。 </p><p> (8)NMI(non-maskable interrupt):非屏蔽中斷請(qǐng)求信號(hào),輸入,高電平有效。 </p
21、><p> 當(dāng)NMI引腳上有一個(gè)上升沿有效的觸發(fā)信號(hào)時(shí),表明CPU內(nèi)部或I/O設(shè)備提出了非屏蔽的中斷請(qǐng)求,CPU會(huì)在結(jié)束當(dāng)前所執(zhí)行的指令后,立即響應(yīng)中斷請(qǐng)求。 </p><p> ?。?)RESET(reset):復(fù)位信號(hào),輸入,高電平有效。 </p><p> RESET信號(hào)有效時(shí),CPU立即結(jié)束現(xiàn)行操作,處于復(fù)位狀態(tài),初始化所有的內(nèi)部寄存器。復(fù)位后各內(nèi)部寄存器的
22、狀態(tài),當(dāng)RESET信號(hào)由高電平變?yōu)榈碗娖綍r(shí),CPU從FFFF0H地址開始重新啟動(dòng)執(zhí)行程序。 </p><p> (10)CLK(clock):時(shí)鐘信號(hào),輸入。 </p><p> CLK為CPU提供基本的定時(shí)脈沖信號(hào)。8086 CPU一般使用時(shí)鐘發(fā)生器8284A來產(chǎn)生時(shí)鐘信號(hào),時(shí)鐘頻率為5MHz~8MHz,占空比為1:3。 </p><p> ?。?1)VCC電
23、源輸入引腳。 </p><p> 8086 CPU采用單一+5V電源供電。 </p><p> (12)GND:接地引腳。 </p><p> ?。?3)(minimum/maximum):最小/最大模式輸入控制信號(hào)。 </p><p> ?。?)(memory I/O select):存儲(chǔ)器、I/O端口選擇控制信號(hào)。 </p>
24、;<p> 信號(hào)指明當(dāng)前CPU是選擇訪問存儲(chǔ)器還是訪問I/O端口。為高電平時(shí),訪問存儲(chǔ)器,表示當(dāng)前要進(jìn)行CPU與存儲(chǔ)器之間的數(shù)據(jù)傳送。為低電平時(shí),訪問I/O端口,表示當(dāng)前要進(jìn)行CPU與I/O端口之間的數(shù)據(jù)傳送。 </p><p> (14)(write):寫信號(hào),輸出,低電平有效。 </p><p> 信號(hào)有效時(shí),表明CPU正在執(zhí)行寫總線周期,同時(shí)由信號(hào)決定是對(duì)存儲(chǔ)器還
25、是對(duì)I/O端口執(zhí)行寫操作。 </p><p> (15)(interrupt acknowledge):可屏蔽中斷響應(yīng)信號(hào),輸出,低電平有效。 </p><p> CPU通過信號(hào)對(duì)外設(shè)提出的可屏蔽中斷請(qǐng)求做出響應(yīng)。為低電平時(shí),表示CPU已經(jīng)響應(yīng)外設(shè)的中斷請(qǐng)求,即將執(zhí)行中斷服務(wù)程序。 </p><p> ?。?6)ALE(address lock enable):
26、地址鎖存允許信號(hào),輸出,高電平有效。 </p><p> CPU利用ALE信號(hào)可以把AD15 ~AD0地址/數(shù)據(jù)、A19/S6~A16/S3地址/狀態(tài)線上的地址信息鎖存在地址鎖存器中。 </p><p> ?。?7)DT/(data transmit or receive):數(shù)據(jù)發(fā)送/接收信號(hào),輸出,三態(tài)。 </p><p> DT/信號(hào)用來控制數(shù)據(jù)傳送的方向。
27、DT/為高電平時(shí),CPU發(fā)送數(shù)據(jù)到存儲(chǔ)器或I/O端口;DT/為低電平時(shí),CPU接收來自存儲(chǔ)器或I/O端口的數(shù)據(jù)。 </p><p> (18)(data enable):數(shù)據(jù)允許控制信號(hào),輸出,三態(tài),低電平有效。 </p><p> 信號(hào)用作總線收發(fā)器的選通控制信號(hào)。當(dāng)為低電平時(shí),表明CPU進(jìn)行數(shù)據(jù)的讀/寫操作。 </p><p> (19)HOLD(bus
28、hold request):總線保持請(qǐng)求信號(hào),輸入,高電平有效。 </p><p> 在DMA數(shù)據(jù)傳送方式中,由總線控制器8237A發(fā)出一個(gè)高電平有效的總線請(qǐng)求信號(hào),通過HOLD引腳輸入到CPU,請(qǐng)求CPU讓出總線控制權(quán)。 </p><p> ?。?0)HLDA(hold acknowledge):總線保持響應(yīng)信號(hào),輸出,高電平有效。 </p><p> HLD
29、A是與HOLD配合使用的聯(lián)絡(luò)信號(hào)。在HLDA有效期間,HLDA引腳輸出一個(gè)高電平有效的響應(yīng)信號(hào),同時(shí)總線將處于浮空狀態(tài),CPU讓出對(duì)總線的控制權(quán),將其交付給申請(qǐng)使用總線的8237A控制器使用,總線使用完后,會(huì)使HOLD信號(hào)變?yōu)榈碗娖?,CPU又重新獲得對(duì)總線的控制權(quán)。</p><p> 2.2 74LS373地址鎖存電路</p><p> 74LS373為八D鎖存器,AD0-AD7為輸入
30、數(shù)據(jù),輸出A0-A7。引腳圖如下所示:</p><p> 3.2.2 74LS373引腳圖</p><p> 74LS373 的輸出端 O0~O7 可直接與總線相連。 </p><p> 當(dāng)三態(tài)允許控制端 OE 為低電平時(shí),O0~O7 為正常邏輯狀態(tài),可用來驅(qū)動(dòng)負(fù)載或總線。當(dāng) OE 為高電平時(shí),O0~O7 呈高阻態(tài),即不驅(qū)動(dòng)總線,也不為總線的負(fù)載,但
31、鎖存器內(nèi)部的邏輯操作不受影響。 </p><p> 當(dāng)鎖存允許端 LE 為高電平時(shí),O 隨數(shù)據(jù) D 而變。當(dāng) LE 為低電平時(shí),O 被鎖存在已建立的數(shù)據(jù)電平。當(dāng) LE 端施密特觸發(fā)器的輸入滯后作用,使交流和直流噪聲抗擾度被改善 400mV。 </p><p><b> 引出端符號(hào): </b></p><p> D0~D7 數(shù)據(jù)輸入端 &l
32、t;/p><p> OE 三態(tài)允許控制端(低電平有效) </p><p><b> LE 鎖存允許端 </b></p><p> O0~O7 輸出端 </p><p> 3.2.3 74LS373真值表</p><p> 2.3 74LS138譯碼電路</p><
33、p> A0-A7通過譯碼電路輸出作為8253的片選信號(hào)。引腳圖如下所示:</p><p> 3.2.4 74LS138引腳圖</p><p> 其工作原理如下: </p><p> 1當(dāng)一個(gè)選通端(E1)為高電平,另兩個(gè)選通端(E2)和/(E3))為低電平時(shí),可將地址端(A0、A1、A2)的二進(jìn)制編碼在Y0至Y7
34、對(duì)應(yīng)的輸出端以低電平譯出。比如:A0A1A2=110時(shí),則Y6輸出端輸出低電平信號(hào)。 </p><p> 2利用 E1、E2和E3可級(jí)聯(lián)擴(kuò)展成 24 線譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成 32 線譯碼器。 </p><p> 3若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)分配器。 </p><p> 4可用在8086的譯碼電路中,擴(kuò)展內(nèi)存。
35、 </p><p> 在該電路中,除了A2A1其他幾位是11110**0的時(shí)候才能給CS送一個(gè)有效電平,而當(dāng)A1A2=00,01,10,11之時(shí)即為F0H,F2H,F4H,F6H分別對(duì)應(yīng)的是通道0,1,2,3的運(yùn)行。</p><p> 2.4 定時(shí)/計(jì)數(shù)器8253A</p><p><b> 主要功能:</b></p>&l
36、t;p> (1)每片上有3 個(gè)獨(dú)立的16 位的減計(jì)數(shù)器通道。</p><p> (2)對(duì)于每個(gè)計(jì)數(shù)器,都可以單獨(dú)作為定時(shí)器或計(jì)數(shù)器使用,并且都可以按照二進(jìn)制或十進(jìn)制來計(jì)數(shù)。</p><p> (3)每個(gè)通道都有6 種工作方式,都可以通過程序設(shè)置或改變。</p><p> (4)每個(gè)計(jì)數(shù)器的速率可高達(dá)2MHz。最高的計(jì)數(shù)時(shí)鐘頻率為2.6MHz。</
37、p><p> 8253的內(nèi)部結(jié)構(gòu)如圖所示,它主要包括以下幾個(gè)主要部分:</p><p> 圖3.2.5 8253的內(nèi)部結(jié)構(gòu)</p><p> (1).?dāng)?shù)據(jù)總線緩沖器</p><p> 實(shí)現(xiàn)8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器,用以傳送CPU向8253的控制信息、數(shù)據(jù)信息以及CPU從8253讀取的狀態(tài)信息,包括某時(shí)刻的實(shí)時(shí)計(jì)數(shù)
38、值。</p><p> ?。?).讀/寫控制邏輯</p><p> 控制8253的片選及對(duì)內(nèi)部相關(guān)寄存器的讀/寫操作,它接收CPU發(fā)來的地址信號(hào)以實(shí)現(xiàn)片選、內(nèi)部通道選擇以及對(duì)讀/寫操作進(jìn)行控制。</p><p> ?。?).控制字寄存器</p><p> 在8253的初始化編程時(shí),由CPU寫入控制字,以決定通道的工作方式,此寄存器只能寫入
39、,不能讀出。</p><p> ?。?).計(jì)數(shù)通道0#、1#、2#:</p><p> 這是三個(gè)獨(dú)立的,結(jié)構(gòu)相同的計(jì)數(shù)器/定時(shí)器通道,每一個(gè)通道包含一個(gè)16位的計(jì)數(shù)寄存器,用以存放計(jì)數(shù)初始值,一個(gè)16位的減法計(jì)數(shù)器和一個(gè)16位的鎖存器,鎖存器在計(jì)數(shù)器工作的過程中,跟隨計(jì)數(shù)值的變化,在接收到CPU發(fā)來的讀計(jì)數(shù)值命令時(shí),用以鎖存計(jì)數(shù)值,供CPU讀取,讀取完畢之后,輸出鎖存器又跟隨減1計(jì)數(shù)器變
40、化。</p><p> 8253芯片是具有24個(gè)引腳的雙列直插式集成電路芯片,其引腳分布如圖所示。8253芯片的24個(gè)引腳分為兩組,一組面向CPU,另一組面向外部設(shè)備,各個(gè)引腳及其所傳送信號(hào)的情況,介紹如下:</p><p> ?。?).D7~D0:雙向、三態(tài)數(shù)據(jù)線引腳,與系統(tǒng)的數(shù)據(jù)線連接,傳送控制、數(shù)據(jù)及狀態(tài)信息。</p><p> ?。?).:來自于CPU的讀
41、控制信號(hào)輸入引腳,低電平有效。</p><p> ?。?).:來自于CPU的寫控制信號(hào)輸入引腳,低電平有效。</p><p> ?。?).:芯片選擇信號(hào)輸入引腳,低電平有效。</p><p> 圖3.2.6 8253的引腳</p><p> ?。?).A1、A0:地址信號(hào)輸入引腳,用以選擇8253芯片的通道及控制字寄存器。(6).VCC及
42、GND:+5V電源及接地引腳</p><p> (7).CLKi:i=0,1,2,第i個(gè)通道的計(jì)數(shù)脈沖輸入引腳,8253規(guī)定,加在CLK引腳的輸入時(shí)鐘信號(hào)的頻率不得高于2.6MHZ,即時(shí)鐘周期不能小于380ns。</p><p> ?。?).GATEi:i=0,1,2,第i個(gè)通道的門控信號(hào)輸入引腳,門控信號(hào)的作用與通道的工作方式有關(guān)。</p><p> (9).
43、OUTi:i=0,1,2,第i個(gè)通道的定時(shí)/計(jì)數(shù)到信號(hào)輸出引腳,輸出信號(hào)的形式由通道的工作方式確定,此輸出信號(hào)可用于觸發(fā)其它電路工作,或作為向CPU發(fā)出的中斷請(qǐng)求信號(hào)。</p><p> 圖3.2.7 8253A端口地址</p><p> 8253 A既可作定時(shí)器又可作計(jì)數(shù)器:</p><p> (1) 計(jì)數(shù): 計(jì)數(shù)器裝入初值后,當(dāng)GATE為高
44、電平時(shí),可用外部事件作為CLK 脈沖對(duì)計(jì)數(shù)值進(jìn)行減1 計(jì)數(shù),每來一個(gè)脈沖減1,當(dāng)計(jì)數(shù)值減至0時(shí),由OUT 端輸出一個(gè)標(biāo)志信號(hào)。</p><p> (2) 定時(shí): 計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),由CLK 脈沖觸發(fā)開始自動(dòng)計(jì)數(shù),當(dāng)計(jì)數(shù)到零時(shí),發(fā)計(jì)數(shù)結(jié)束定時(shí)信號(hào)。</p><p> 除上述典型應(yīng)用外,8253A還可作頻率發(fā)生器、分頻器、實(shí)時(shí)鐘、單脈沖發(fā)生器等。</p>
45、<p> 圖3.2.8 8253A控制字</p><p><b> 說明 :</b></p><p> (1) 8253 A每個(gè)通道對(duì)輸入CLK按二進(jìn)制或二十進(jìn)制從預(yù)置值開始減1計(jì)數(shù),減到0時(shí)從OUT輸出一個(gè)信號(hào)。</p><p> (2) 8253 A編程時(shí)先寫控制字,再寫時(shí)間常數(shù)。</p>&l
46、t;p> 8253A工作方式如下:</p><p> (1) 方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷方式</p><p> 當(dāng)寫入控制字后,OUT變?yōu)榈碗娖?,?dāng)寫入初值后立即開始計(jì)數(shù),當(dāng)計(jì)數(shù)結(jié)束時(shí),變成高電平。</p><p> (2) 方式1:可編程單次脈沖方式</p><p> 當(dāng)初值裝入后且GATE由低變高時(shí),OUT變?yōu)榈碗娖?,?jì)數(shù)結(jié)
47、束變?yōu)楦唠娖健?lt;/p><p> (3) 方式2:頻率發(fā)生器方式</p><p> 當(dāng)初值裝入時(shí),OUT變?yōu)楦?;?jì)數(shù)結(jié)束,OUT變?yōu)榈汀T摲绞较氯绻?jì)數(shù)未結(jié)束,但GATE為低時(shí),立即停止計(jì)數(shù),強(qiáng)制OUT變高,當(dāng)GATE再變高時(shí),便啟動(dòng)一次新的計(jì)數(shù)周期。</p><p> (4) 方式3:方波發(fā)生器</p><p> 當(dāng)裝入初值后,在G
48、ATE上升沿啟動(dòng)計(jì)數(shù),OUT 輸出高電平; 當(dāng)計(jì)數(shù)完成一半時(shí),OUT輸出低電平。</p><p> 方式3與方式2的工作方式類似,也是在初始化完成后能重復(fù)循環(huán)計(jì)數(shù),只是輸出的波形不同。</p><p><b> <1> 計(jì)數(shù)過程</b></p><p> 當(dāng)把方式3的控制字寫入控制字寄存器后,輸出端OUT變成高電平,作為初始
49、電平。再將計(jì)數(shù)初值寫入計(jì)數(shù)初值寄存器CR中,再經(jīng)過一個(gè)時(shí)鐘周期,計(jì)數(shù)初值被移入計(jì)數(shù)執(zhí)行單元CE中,從下一個(gè)時(shí)鐘脈沖開始作減1 計(jì)數(shù),方式3的計(jì)數(shù)過程分為兩種情況:</p><p> 第一種情況:計(jì)數(shù)初值為偶數(shù),當(dāng)作減1計(jì)數(shù)減到N/2時(shí),輸出端OUT端變成低電平,減到0時(shí),輸出端OUT變成高電平,并重新從初值開始新的計(jì)數(shù)過程。若GATE為高電平,則一直重復(fù)同樣的計(jì)數(shù)過程??梢?,輸出端OUT輸出連續(xù)的方波,故稱方波
50、發(fā)生器。</p><p> 第二種情況:計(jì)數(shù)初值為奇數(shù),當(dāng)作減1計(jì)數(shù)減到(N+1)/2以后,輸出端OUT變成低電平,減到0時(shí),輸出端OUT又變成高電平。并重新從初值開始新的計(jì)數(shù)過程。這時(shí)輸出端的波形為連續(xù)的近似方波。</p><p> <2>門控信號(hào)的影響</p><p> 工作在方式3時(shí),門控信號(hào)GATE的功能與工作方式2一樣,即GATE 為高電
51、平時(shí),允許計(jì)數(shù);GATE為低電平時(shí)停止計(jì)數(shù)。GATE引腳上的信號(hào)從低電平跳到高電平時(shí),將會(huì)重新把計(jì)數(shù)初值寄存器CR中的內(nèi)容移入計(jì)數(shù)執(zhí)行單元CE中,并以新裝入的值重新開始計(jì)數(shù)。</p><p> <3>新的計(jì)數(shù)初值對(duì)計(jì)數(shù)過程的影響</p><p> 如果在計(jì)數(shù)過程中寫入新的初值,而GATE信號(hào)一直維持高電平,則新的初值不會(huì)影響當(dāng)前的計(jì)數(shù)過程,只有在計(jì)數(shù)結(jié)束后的下一個(gè)計(jì)數(shù)周期,
52、才按新的初值計(jì)數(shù)。若寫入新的初值后,遇到門控信號(hào)的上升沿,則結(jié)束現(xiàn)行的計(jì)數(shù)過程,從下一個(gè)時(shí)鐘脈沖下降沿開始按新的計(jì)數(shù)初值進(jìn)行計(jì)數(shù)。</p><p> 可見,工作在方式3時(shí),當(dāng)計(jì)數(shù)初值為偶數(shù),OUT端輸出連續(xù)的標(biāo)準(zhǔn)方波;當(dāng)計(jì)數(shù)初值為奇數(shù),在每個(gè)計(jì)數(shù)周期內(nèi),有(N+1)/2個(gè)周期輸出高電平,(N-1)/2個(gè)時(shí)鐘周期輸出低電平,OUT端輸出連續(xù)的近似的方波。 </p><p> 3.軟件程
53、序設(shè)計(jì)與調(diào)試</p><p> code segment</p><p> assume cs:code </p><p> ;;;;;;;;;;;;;;;;;;;音樂文件;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> freq dw 2 dup(262,294,330,262)</p>
54、;<p> dw 2 dup(330,349,392)</p><p> dw 2 dup(392,440,392,349,330,262)</p><p> dw 2 dup(294,196,262),0 ;歌曲頻率</p><p> time dw 8 dup (10000)</p><
55、p> dw 2 dup (10000,10000,20000)</p><p> dw 12 dup (9000)</p><p> dw 6 dup(18000) ;歌曲時(shí)間節(jié)拍值</p><p> dw 10000 </p><p> reg dw 3
56、</p><p> ;;;;;;;;;;;;;;;;;;;;;;計(jì)數(shù)器3遍;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> start1: </p><p> ;mov ch,2</p><p><b> jmp start</b></p><p&
57、gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> start: </b></p><p> dec reg ;減一計(jì)數(shù)</p><p><b> cmp reg,0</b></p><p>
58、; je endd ;循環(huán)三次結(jié)束</p><p> lea si,freq</p><p> lea bp,time</p><p> lea sp,reg </p><p> mov di,cs:[si];頻率</p><p> mov bx,[bp]</p><p&
59、gt; jmp music </p><p> music: </p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> mov dx,0F6h</p><p> mov al,10010110B</p><p><b&
60、gt; out dx,al</b></p><p> ;;;;;;;;;;;;;;;;;</p><p> mov dx,00h ;設(shè)置被除數(shù)</p><p> mov ax,5000</p><p><b> div di</b></p><p> mov dx,
61、0F4h</p><p><b> out dx,al</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;</p><p> ;mov ax,1 ;頻率</p><p> ;out dx,ax</p><p> ;mov bx,
62、20000 ; 時(shí)間</p><p> wait1:mov cx,6 ;設(shè)循環(huán)次數(shù)6</p><p> delay1:loop delay1</p><p> dec bx ;循環(huán)持續(xù)bx次,即傳進(jìn)來的節(jié)拍時(shí)間</p><p><b> jnz wait1</b>
63、;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;dec bx</b></p><p> ;jnz wait1</p><p> add si,2 </p><p><b>
64、; add bp,2</b></p><p> mov di,cs:[si]</p><p><b> cmp di,0</b></p><p><b> je start</b></p><p> mov bx,[bp] </p><p><b&
65、gt; jmp music</b></p><p><b> endd:</b></p><p> mov dx,0F6h</p><p> mov al,10010110B</p><p><b> out dx,al</b></p><p><
66、b> code ends</b></p><p><b> end start</b></p><p><b> 程序調(diào)試步驟如下:</b></p><p><b> 建立匯編源程序.</b></p><p><b> 建立連接。</
67、b></p><p><b> 編譯為目標(biāo)文件</b></p><p><b> 調(diào)試。</b></p><p> 不通過,重新修改(語句錯(cuò)誤、音調(diào)頻率不準(zhǔn)、音調(diào)節(jié)拍不符合)</p><p><b> 重新修改、調(diào)試。</b></p><p&g
68、t;<b> 正確運(yùn)行。</b></p><p><b> 四、結(jié)論與展望</b></p><p> 經(jīng)過兩周多的努力,總算設(shè)計(jì)出所要求的音樂播放器,硬件電路圖如下:</p><p> 圖 4.1.1 硬件電路圖</p><p> 將兩只老虎這首歌曲進(jìn)行播放,可以重復(fù)播放三遍,
69、但客觀的來說這個(gè)音樂播放器還不是特別好,音樂有一些失真,如果以后學(xué)了單片機(jī)來實(shí)現(xiàn)音樂播放,我想應(yīng)該會(huì)解決這個(gè)問題。</p><p><b> 五、心得體會(huì)及建議</b></p><p> 通過這次課程設(shè)計(jì)我得到了很大的收獲:首先,通過學(xué)習(xí)使自己對(duì)課本上的知識(shí)可以應(yīng)用于實(shí)際,使理論與實(shí)際相結(jié)合,加深自己對(duì)課本知識(shí)的更好理解,同時(shí)也鍛煉了我個(gè)人的學(xué)習(xí)思考和解決問題的能
70、力,能夠充分利用圖書館和網(wǎng)絡(luò)去查閱資料,增加了許多課本以外的知識(shí)。對(duì)Proteus、word等實(shí)用軟件的使用更加熟練,并且學(xué)會(huì)了很多使用的小技巧,比如:Proteus中的總線模式,雖然看起來是斷的,實(shí)際上是一根線。還有word中,學(xué)會(huì)了如何自動(dòng)生成目錄,既能保持左右對(duì)齊,又能使內(nèi)容不缺不漏。對(duì)我們學(xué)生來說,理論與實(shí)際同樣重要,這是我們以后在工作中說明自己能力的一個(gè)重要標(biāo)準(zhǔn)。</p><p> 此次課程設(shè)計(jì)能順利
71、圓滿的完成,除了依靠本人的堅(jiān)持不懈努力外,還得感謝那些一直在背后辛勤指導(dǎo)我們的xx老師,由于所學(xué)知識(shí)有限,有很多問題都不能正確的解答,多虧有xx老師耐心的指導(dǎo)和幫助,才使我的課程設(shè)計(jì)順利的完成,感謝您為我排除了思路上的障礙,感謝您辛勤地指導(dǎo), 請(qǐng)?jiān)试S我向您致意崇高的敬意,感謝您,老師!</p><p><b> 六、附錄</b></p><p> 圖 6.1.
72、1元器件清單</p><p><b> 每個(gè)音符的對(duì)應(yīng)頻率</b></p><p> 音符 頻率/HZ 半周期/us 音符 頻率/HZ 半周期/us低1DO 262 1908 #4FA#
73、 740 0676#1DO# 277 1805 中5SO 784 0638低2RE 294
74、; 1700 #5SO# 831 0602#2RE# 311 1608 中6LA 880
75、 0568低3M 330 1516 #6LA# 932 0536低4FA 349 1433
76、0;中7SI 988 0506#4FA# 370 1350 高1DO 1046 0478低5SO 392
77、0; 1276 #DO# 1109 0451#5SO# 415 1205 高2RE 1175
78、 0426低6LA 440 1136 #2RE# 1245 0402#6LA# 466 1072 高3M
79、; 1</p><p><b> 七、參考書目</b></p><p> 1.《微機(jī)原理與接口技術(shù)》(第二版) 人民郵電出版社 周明德主編</p><p> 2.《匯編語言程序設(shè)計(jì)》 中國水利水電出版社 相偉主編</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂播放器課程設(shè)計(jì)
- 音樂播放器課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)—音樂播放器
- java課程設(shè)計(jì)音樂播放器
- java課程設(shè)計(jì)---java音樂播放器
- 基于java的音樂播放器課程設(shè)計(jì)報(bào)告
- 安卓課程設(shè)計(jì)報(bào)告--個(gè)人音樂播放器
- 單片機(jī)音樂播放器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)音樂播放器課程設(shè)計(jì)
- 單片機(jī)音樂播放器課程設(shè)計(jì)報(bào)告
- 嵌入式系統(tǒng)課程設(shè)計(jì)---音樂播放器
- 課程設(shè)計(jì)(論文)基于fpga的音樂播放器設(shè)計(jì)
- 基于qt的音樂播放器課程設(shè)計(jì)報(bào)告
- 嵌入式系統(tǒng)課程設(shè)計(jì)音樂播放器
- 基于java的音樂播放器的設(shè)計(jì)課程設(shè)計(jì)
- android視頻播放器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——紅外遙控音樂播放器
- c_課程設(shè)計(jì)報(bào)告-- c#音樂播放器
- 基于單片機(jī)音樂播放器設(shè)計(jì)-課程設(shè)計(jì)論文
- 基于as3.0的音樂播放器設(shè)計(jì)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論