已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微機(jī)系統(tǒng)與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書李鶴喜張健金旺春五邑大學(xué)計(jì)算機(jī)學(xué)院2012-5目 錄目 錄I、系統(tǒng)認(rèn)識實(shí)驗(yàn)2一、8255并行接口實(shí)驗(yàn)7二、8251串行接口應(yīng)用實(shí)驗(yàn)12三、8254定時(shí)/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)22四、8259中斷控制實(shí)驗(yàn)27五、A/D轉(zhuǎn)換實(shí)驗(yàn)35六、D/A轉(zhuǎn)換實(shí)驗(yàn)38七、鍵盤掃描及顯示設(shè)計(jì)實(shí)驗(yàn)41八、電子發(fā)聲設(shè)計(jì)實(shí)驗(yàn)46、系統(tǒng)認(rèn)識實(shí)驗(yàn)0.1 實(shí)驗(yàn)?zāi)康恼莆誘D系列微機(jī)原理及接口技術(shù)教學(xué)實(shí)驗(yàn)系統(tǒng)的操作,熟悉Wmd86聯(lián)機(jī)集成開發(fā)調(diào)試軟件的操作環(huán)境。0.2 實(shí)驗(yàn)設(shè)備PC機(jī)一臺,TD-PITE實(shí)驗(yàn)裝置或TD-PITC實(shí)驗(yàn)裝置一套。0.3 實(shí)驗(yàn)內(nèi)容編寫實(shí)驗(yàn)程序,將00H0FH共16個(gè)數(shù)寫入內(nèi)存3000H開始的連續(xù)16個(gè)存儲單元中。0.4 實(shí)驗(yàn)步驟1. 運(yùn)行Wmd86軟件,進(jìn)入Wmd86集成開發(fā)環(huán)境。2. 根據(jù)程序設(shè)計(jì)使用語言的不同,通過在“設(shè)置”下拉列表來選擇需要使用的語言和寄存器類型,這里我們設(shè)置成“匯編語言”和“16位寄存器”,如圖0-1、圖0-2所示。設(shè)置選擇后,下次再啟動軟件,語言環(huán)境保持這次的修改不變。本章選擇16位寄存器。圖0-1 語言環(huán)境設(shè)置界面圖0-2 寄存器設(shè)置界面3. 語言和寄存器選擇后,點(diǎn)擊新建或按Ctrl+N組合鍵來新建一個(gè)文檔,如圖0-3所示。默認(rèn)文件名為Wmd861。圖0-3 新建文件界面4. 編寫實(shí)驗(yàn)程序,如圖0-4所示,并保存,此時(shí)系統(tǒng)會提示輸入新的文件名,輸完后點(diǎn)擊保存。圖0-4 程序編輯界面5. 點(diǎn)擊,編譯文件,若程序編譯無誤,則可以繼續(xù)點(diǎn)擊進(jìn)行鏈接,鏈接無誤后方可以加載程序。編譯、鏈接后輸出如圖0-5所示的輸出信息。圖0-5 編譯輸出信息界面6. 連接PC與實(shí)驗(yàn)系統(tǒng)的通訊電纜,打開實(shí)驗(yàn)系統(tǒng)電源。7. 編譯、鏈接都正確并且上下位機(jī)通訊成功后,就可以下載程序,聯(lián)機(jī)調(diào)試了??梢酝ㄟ^端口列表中的“端口測試”來檢查通訊是否正常。點(diǎn)擊下載程序。為編譯、鏈接、下載組合按鈕,通過該按鈕可以將編譯、鏈接、下載一次完成。下載成功后,在輸出區(qū)的結(jié)果窗中會顯示“加載成功!”,表示程序已正確下載。起始運(yùn)行語句下會有一條綠色的背景。如圖0-6所示。圖0-6 加載成功顯示界面8. 將輸出區(qū)切換到調(diào)試窗口,使用D0000:3000命令查看內(nèi)存3000H起始地址的數(shù)據(jù),如圖0-7所示。存儲器在初始狀態(tài)時(shí),默認(rèn)數(shù)據(jù)為CC。圖0-7 內(nèi)存地址單元數(shù)據(jù)顯示9. 點(diǎn)擊按鈕運(yùn)行程序,待程序運(yùn)行停止后,通過D0000:3000命令來觀察程序運(yùn)行結(jié)果。如圖0-8所示。圖0-8 運(yùn)行程序后數(shù)據(jù)變化顯示10. 也可以通過設(shè)置斷點(diǎn),斷點(diǎn)顯示如圖0-9所示,然后運(yùn)行程序,當(dāng)遇到斷點(diǎn)時(shí)程序會停下來,然后觀察數(shù)據(jù)??梢允褂肊0000:3000來改變該地址單元的數(shù)據(jù),如圖0-10所示,輸入11后,按“空格”鍵,可以接著輸入第二個(gè)數(shù),如22,結(jié)束輸入按“回車”鍵。 圖0-9 斷點(diǎn)設(shè)置顯示 圖0-10 修改內(nèi)存單元數(shù)據(jù)顯示界面 實(shí)驗(yàn)例程文件名為Wmd861.asm。1.5 操作練習(xí)編寫程序,將內(nèi)存3500H單元開始的8個(gè)數(shù)據(jù)復(fù)制到3600H單元開始的數(shù)據(jù)區(qū)中。通過調(diào)試驗(yàn)證程序功能,使用E命令修改3500H單元開始的數(shù)據(jù),運(yùn)行程序后使用D命令查看3600H單元開始的數(shù)據(jù)。一、8255并行接口實(shí)驗(yàn)1.1 實(shí)驗(yàn)?zāi)康?. 學(xué)習(xí)并掌握8255的工作方式及其應(yīng)用。2. 掌握8255典型應(yīng)用電路的接法。3. 掌握程序固化及脫機(jī)運(yùn)行程序的方法。1.2 實(shí)驗(yàn)設(shè)備PC機(jī)一臺,TD-PITE實(shí)驗(yàn)裝置或TD-PITC實(shí)驗(yàn)裝置一套。1.3 實(shí)驗(yàn)內(nèi)容1. 基本輸入輸出實(shí)驗(yàn)。編寫程序,使8255的A口為輸入,B口為輸出,完成撥動開關(guān)到數(shù)據(jù)燈的數(shù)據(jù)傳輸。要求只要開關(guān)撥動,數(shù)據(jù)燈的顯示就發(fā)生相應(yīng)改變。2. 流水燈顯示實(shí)驗(yàn)。編寫程序,使8255的A口和B口均為輸出,數(shù)據(jù)燈D7D0由左向右,每次僅亮一個(gè)燈,循環(huán)顯示,D15D8與D7D0正相反,由右向左,每次僅點(diǎn)亮一個(gè)燈,循環(huán)顯示。1.4 實(shí)驗(yàn)原理圖1-1 8255內(nèi)部結(jié)構(gòu)及外部引腳圖并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8位、16位或32位等。8255可編程外圍接口芯片是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A、B、C三個(gè)并行接口,用+5V單電源供電,能在以下三種方式下工作:方式0-基本輸入/輸出方式、方式1-選通輸入/輸出方式、方式2-雙向選通工作方式。8255的內(nèi)部結(jié)構(gòu)及引腳如圖1-1所示,8255工作方式控制字和C口按位置位/復(fù)位控制字格式如圖1-2所示。圖1-2 8255控制字格式8255實(shí)驗(yàn)單元電路圖如圖1-3所示:圖1-3 8255實(shí)驗(yàn)單元電路圖1.5 實(shí)驗(yàn)步驟1. 基本輸入輸出實(shí)驗(yàn)本實(shí)驗(yàn)使8255端口A工作在方式0并作為輸入口,端口B工作在方式0并作為輸出口。用一組開關(guān)信號接入端口A,端口B輸出線接至一組數(shù)據(jù)燈上,然后通過對8255芯片編程來實(shí)現(xiàn)輸入輸出功能。具體實(shí)驗(yàn)步驟如下述:(1)實(shí)驗(yàn)接線圖如圖1-4所示,按圖連接實(shí)驗(yàn)線路圖。(2)編寫實(shí)驗(yàn)程序,經(jīng)編譯、連接無誤后裝入系統(tǒng)。(3)運(yùn)行程序,改變撥動開關(guān),同時(shí)觀察LED顯示,驗(yàn)證程序功能。(4)點(diǎn)擊“調(diào)試”下拉菜單中的“固化程序”項(xiàng),將程序固化到系統(tǒng)存儲器中。(5)將短路跳線JDBG的短路塊短接到RUN端,然后按復(fù)位按鍵,觀察程序是否正常運(yùn)行;關(guān)閉實(shí)驗(yàn)箱電源,稍等后再次打開電源,看固化的程序是否運(yùn)行,驗(yàn)證程序功能。(6)實(shí)驗(yàn)完畢后,請將短路跳線JDBG的短路塊短接到DBG端。圖1-4 8255基本輸入輸出實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單(A82551.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1:MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY:PUSH CXMOV CX, 0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODEENDSEND START2. 流水燈顯示實(shí)驗(yàn)使8255的A口和B口均為輸出,數(shù)據(jù)燈D7D0由左向右,每次僅亮一個(gè)燈,循環(huán)顯示,D15D8與D7D0正相反,由右向左,每次僅點(diǎn)亮一個(gè)燈,循環(huán)顯示。實(shí)驗(yàn)接線圖如圖4.35所示。實(shí)驗(yàn)步驟如下所述:(1)按圖1-5連接實(shí)驗(yàn)線路圖。(2)編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng)。(3)運(yùn)行程序,觀察LED燈的顯示,驗(yàn)證程序功能。(4)自己改變流水燈的方式,編寫程序。(5)固化程序并脫機(jī)運(yùn)行。圖1-5 8255流水燈實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單(A82552.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, 0646HMOV AL, 80HOUT DX, ALMOV BX, 8001HAA1:MOV DX, 0640HMOV AL, BHOUT DX, ALROR BH, 1MOV DX, 0642HMOV AL, BLOUT DX, ALROL BL, 1 CALL DELAYCALL DELAYJMP AA1DELAY:PUSH CXMOV CX, 0F000HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODEENDSEND START二、8251串行接口應(yīng)用實(shí)驗(yàn)2.1 實(shí)驗(yàn)?zāi)康?. 掌握8251的工作方式及應(yīng)用。2. 了解有關(guān)串口通訊的知識。2.2 實(shí)驗(yàn)設(shè)備PC機(jī)兩臺,TD-PITE實(shí)驗(yàn)裝置或TD-PITC實(shí)驗(yàn)裝置兩套。2.3 實(shí)驗(yàn)內(nèi)容1. 數(shù)據(jù)信號的串行傳輸實(shí)驗(yàn),循環(huán)向串口發(fā)送一個(gè)數(shù),使用示波器測量TXD引腳上的波形,以了解串行傳輸?shù)臄?shù)據(jù)格式。2. 自收自發(fā)實(shí)驗(yàn),將3000H起始的10個(gè)單元中的初始數(shù)據(jù)發(fā)送到串口,然后自接收并保存到4000H起始的內(nèi)存單元中。3. 雙機(jī)通訊實(shí)驗(yàn),本實(shí)驗(yàn)需要兩臺實(shí)驗(yàn)裝置,其中一臺作為接收機(jī),一臺作為發(fā)送機(jī),發(fā)送機(jī)將3000H3009H內(nèi)存單元中共10個(gè)數(shù)發(fā)送到接收機(jī),接收機(jī)將接收到的數(shù)據(jù)直接在屏幕上輸出顯示。2.4 實(shí)驗(yàn)原理1. 8251的基本性能8251是可編程的串行通信接口,可以管理信號變化范圍很大的串行數(shù)據(jù)通信。有下列基本性能:(1)通過編程,可以工作在同步方式,也可以工作在異步方式。(2)同步方式下,波特率為064K,異步方式下,波特率為019.2K。(3)在同步方式時(shí),可以用58位來代表字符,內(nèi)部或外部同步,可自動插入同步字符。(4)在異步方式時(shí),也使用58位來代表字符,自動為每個(gè)數(shù)據(jù)增加1個(gè)啟動位,并能夠根據(jù)編程為每個(gè)數(shù)據(jù)增加1個(gè)、1.5個(gè)或2個(gè)停止位。(5)具有奇偶、溢出和幀錯(cuò)誤檢測能力。(6)全雙工,雙緩沖器發(fā)送和接收器。注意,8251盡管通過了RS-232規(guī)定的基本控制信號,但并沒有提供規(guī)定的全部信號。2. 8251的內(nèi)部結(jié)構(gòu)及外部引腳8251的內(nèi)部結(jié)構(gòu)圖如圖2-1所示,可以看出,8251有7個(gè)主要部分,即數(shù)據(jù)總線緩沖器、讀/寫控制邏輯電路、調(diào)制/解調(diào)控制電路、發(fā)送緩沖器、發(fā)送控制電路、接收緩沖器和接收控制電路,圖中還標(biāo)識出了每個(gè)部分對外的引腳。8251的外部引腳如圖2-2所示,共28個(gè)引腳,每個(gè)引腳信號的輸入輸出方式如圖中的箭頭方向所示。圖2-1 8251內(nèi)部結(jié)構(gòu)圖圖4.37 8251外部引腳圖3. 8251在異步方式下的TXD信號上的數(shù)據(jù)傳輸格式圖2-3 示意了8251工作在異步方式下的TXD信號上的數(shù)據(jù)傳輸格式。數(shù)據(jù)位與停止位的位數(shù)可以由編程指定。圖2-3 8251工作在異步方式下TXD信號的數(shù)據(jù)傳輸格式4. 8251的編程對8251的編程就是對8251的寄存器的操作,下面分別給出8251的幾個(gè)寄存器的格式。(1)方式控制字方式控制字用來指定通信方式及其方式下的數(shù)據(jù)格式,具體各位的定義如圖2-4所示。D7D6D5D4D3D2D1D0SCS/S2ESD/S1EPPENL2L1B2B1同步/停止位奇偶校驗(yàn)字符長度波特率系數(shù)同步(D1D000)X0內(nèi)同步X1外同步0X雙同步1X單同步異步(D1D00)00不用011位101.5位112位X0無校驗(yàn)01奇校驗(yàn)11偶校驗(yàn)005位016位107位118位異步00不用010110161164同步00同步方式標(biāo)志圖2-4 8251方式控制字(2)命令控制字命令控制字用于指定8251進(jìn)行某種操作(如發(fā)送、接收、內(nèi)部復(fù)位和檢測同步字符等)或處于某種工作狀態(tài),以便接收或發(fā)送數(shù)據(jù)。圖2-5所示的是8251命令控制字各位的定義。D7D6D5D4D3D2D1D0EHIRRTSERSBRKRxEDTRTxEN進(jìn)入搜索1允許搜索內(nèi)部復(fù)位1使8251返回方式控制字請求發(fā)送1使RTS輸出0錯(cuò)誤標(biāo)志復(fù)位使錯(cuò)誤標(biāo)志PE、OE、FE復(fù)位發(fā)中止字符1使TXD為低0正常工作接收允許1允許0禁止數(shù)據(jù)終端準(zhǔn)備好1使DTR輸出0發(fā)送允許1允許0禁止圖2-5 8251命令控制字格式(3)狀態(tài)字CPU通過狀態(tài)字來了解8251當(dāng)前的工作狀態(tài),以決定下一步的操作,8251的狀態(tài)字如圖2-6所示。D7D6D5D4D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRDY數(shù)據(jù)裝置就緒:當(dāng)DSR輸入為0時(shí),該位為1同步檢測幀錯(cuò)誤:該標(biāo)志僅用于異步方式,當(dāng)在任一字符的結(jié)尾沒有檢測到有效的停止位時(shí),該位置1。此標(biāo)志由命令控制字中的位4復(fù)位。溢出錯(cuò)誤:在下一個(gè)字符變?yōu)榭捎们?,CPU沒有把字符讀走,此標(biāo)志置1。此錯(cuò)誤出現(xiàn)時(shí)上一字符已丟失。奇偶錯(cuò)誤:當(dāng)檢測到奇偶錯(cuò)誤時(shí)此位置1。發(fā)送器空接收就緒為1表明接收到一個(gè)字符。發(fā)送就緒為1表明發(fā)送緩沖器空。圖2-6 8251狀態(tài)字格式(4)系統(tǒng)初始化8251的初始化和操作流程如圖2-7所示。圖2-7 8251初始化流程圖5. 8251實(shí)驗(yàn)單元電路圖圖2-8 8251實(shí)驗(yàn)單元電路圖2.5 實(shí)驗(yàn)步驟1. 自收自發(fā)實(shí)驗(yàn)通過自收自發(fā)實(shí)驗(yàn),可以驗(yàn)證硬件及軟件設(shè)計(jì),常用于自測試。具體實(shí)驗(yàn)步驟如下:(1)參考實(shí)驗(yàn)接線圖如圖2-9所示,按圖連接實(shí)驗(yàn)線路。(2)編寫實(shí)驗(yàn)程序,編譯、鏈接無誤后裝入系統(tǒng)。(3)使用E命令更改4000H起始的10個(gè)單元中的數(shù)據(jù)。(4)運(yùn)行實(shí)驗(yàn)程序,待程序運(yùn)行停止。(5)查看3000H起始的10個(gè)單元中的數(shù)據(jù),與初始化的數(shù)據(jù)進(jìn)行比較,驗(yàn)證程序功能。實(shí)驗(yàn)參考例程(A82512.ASM)M8251_DATAEQU 0600H;端口定義M8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV AX, 0000HMOV DS, AX;初始化8254,得到收發(fā)時(shí)鐘MOV AL, 0B6HMOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, AL;復(fù)位8251CALL INITCALL DALLY;8251方式字MOV AL,7EHMOV DX, M8251_CON 圖2-9 自收自發(fā)實(shí)驗(yàn)接線圖OUT DX, ALCALL DALLY;8251控制字 MOV AL, 34HOUT DX, ALCALL DALLYMOV DI, 3000HMOV SI, 4000HMOV CX, 000AHA1:MOV AL, SIPUSH AXMOV AL, 37HMOV DX, M8251_CONOUT DX, ALPOP AXMOV DX, M8251_DATAOUT DX, AL;發(fā)送數(shù)據(jù)MOV DX, M8251_CON A2:IN AL, DX;判斷發(fā)送緩沖是否為空AND AL, 01HJZ A2CALL DALLYA3:IN AL, DX;判斷是否接收到數(shù)據(jù)AND AL, 02HJZ A3MOV DX, M8251_DATAIN AL, DX;讀取接收到的數(shù)據(jù)MOV DI, ALINC DIINC SILOOP A1MOV AX,4C00HINT 21H;程序終止INIT:MOV AL, 00H;復(fù)位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX,3000HA5:PUSH AXPOP AXLOOP A5POP CXRETCODEENDSEND START3. 雙機(jī)通訊實(shí)驗(yàn)使用兩臺實(shí)驗(yàn)裝置,一臺為發(fā)送機(jī),一臺為接收機(jī),進(jìn)行兩機(jī)間的串行通訊。實(shí)驗(yàn)步驟如下:圖2-10 雙機(jī)通訊實(shí)驗(yàn)接線圖(1)按圖2-10連接實(shí)驗(yàn)線路。(2)為兩臺機(jī)器分別編寫實(shí)驗(yàn)程序,編譯、鏈接后裝入系統(tǒng)。(3)為發(fā)送機(jī)初始化發(fā)送數(shù)據(jù)。在發(fā)送機(jī)3000H3009H內(nèi)存單元寫入ASCII值:30,31,32,33,34,35,36,37,38,39共10個(gè)數(shù)。(4)首先運(yùn)行接收機(jī)上的程序,等待接收數(shù)據(jù),然后運(yùn)行發(fā)送機(jī)上的程序,將數(shù)據(jù)發(fā)送到串口。(5)觀察接收機(jī)端屏幕上的顯示是否與發(fā)送機(jī)端初始的數(shù)據(jù)相同,驗(yàn)證程序功能。屏幕將會顯示字符:0123456789實(shí)驗(yàn)參考例程(接收機(jī))(A82513.ASM)M8251_DATAEQU 0600HM8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV AL, 0B6H;初始化8254MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCLICALL INIT;復(fù)位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL CALL DALLYMOV AL, 34HOUT DX, AL CALL DALLYMOV AX, 0152H;輸出顯示字符 RINT 10HMOV DI, 3000HMOV CX, 000AHA1:IN AL, DXAND AL, 02HJZ A1MOV DX, M8251_DATAIN AL, DXAND AL, 7FHMOV DI,ALINC DILOOP A1MOV AL, 00HMOV SI, 300AHMOV SI, ALMOV AH, 06HMOV BX, 3000HINT 10H;輸出顯示接收到的數(shù)據(jù)STIA2:JMP A2INIT:MOV AL, 00H;復(fù)位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX, 3000HA3:PUSH AXPOP AXLOOP A3POP CXRETCODEENDSEND START實(shí)驗(yàn)參考程序(發(fā)送機(jī))(A82514.ASM)M8251_DATAEQU 0600HM8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV AL, 0B6H;初始化8254, 得到收發(fā)時(shí)鐘MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCALL INIT;復(fù)位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL;8251方式字CALL DALLYMOV AL, 34HOUT DX, AL;8251控制字CALL DALLYMOV DI, 3000HMOV CX, 000AHA1:MOV AL, DICALL SENDCALL DALLYINC DILOOP A1A2:JMP A2INIT:MOV AL, 00H;復(fù)位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX, 3000HA4:PUSH AXPOP AXLOOP A4POP CXRETSEND:PUSH AX;數(shù)據(jù)發(fā)送子程序PUSH DXMOV AL, 31HMOV DX, M8251_CONOUT DX, ALMOV DX, M8251_DATAOUT DX, ALMOV DX, M8251_CONA3:IN AL, DXAND AL, 01HJZ A3POP DXPOP AXRETCODEENDSEND START三、8254定時(shí)/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)3.1 實(shí)驗(yàn)?zāi)康?. 掌握8254的工作方式及應(yīng)用編程。2. 掌握8254典型應(yīng)用電路的接法。3.2 實(shí)驗(yàn)設(shè)備PC機(jī)一臺,TD-PITE實(shí)驗(yàn)裝置或TD-PITC實(shí)驗(yàn)裝置一套,示波器一臺。3.3 實(shí)驗(yàn)內(nèi)容1. 計(jì)數(shù)應(yīng)用實(shí)驗(yàn)。編寫程序,應(yīng)用8254的計(jì)數(shù)功能,使用單次脈沖模擬計(jì)數(shù),使每當(dāng)按動KK15次后,產(chǎn)生一次計(jì)數(shù)中斷,并在屏幕上顯示一個(gè)字符M。2. 定時(shí)應(yīng)用實(shí)驗(yàn)。編寫程序,應(yīng)用8254的定時(shí)功能,產(chǎn)生一個(gè)1ms的方波。3.4 實(shí)驗(yàn)原理8254是Intel公司生產(chǎn)的可編程間隔定時(shí)器。是8253的改進(jìn)型,比8253具有更優(yōu)良的性能。8254具有以下基本功能:(1)有3個(gè)獨(dú)立的16位計(jì)數(shù)器。(2)每個(gè)計(jì)數(shù)器可按二進(jìn)制或十進(jìn)制(BCD)計(jì)數(shù)。(3)每個(gè)計(jì)數(shù)器可編程工作于6種不同工作方式。(4)8254每個(gè)計(jì)數(shù)器允許的最高計(jì)數(shù)頻率為10MHz(8253為2MHz)。(5)8254有讀回命令(8253沒有),除了可以讀出當(dāng)前計(jì)數(shù)單元的內(nèi)容外,還可以讀出狀態(tài)寄存器的內(nèi)容。(6)計(jì)數(shù)脈沖可以是有規(guī)律的時(shí)鐘信號,也可以是隨機(jī)信號。計(jì)數(shù)初值公式為:n=fCLKifOUTi、其中fCLKi是輸入時(shí)鐘脈沖的頻率,fOUTi是輸出波形的頻率。圖3-1是8254的內(nèi)部結(jié)構(gòu)框圖和引腳圖,它是由與CPU的接口、內(nèi)部控制電路和三個(gè)計(jì)數(shù)器組成。8254的工作方式如下述:(1)方式0:計(jì)數(shù)到0結(jié)束輸出正躍變信號方式。(2)方式1:硬件可重觸發(fā)單穩(wěn)方式。(3)方式2:頻率發(fā)生器方式。 (4)方式3:方波發(fā)生器。(5)方式4:軟件觸發(fā)選通方式。 (6)方式5:硬件觸發(fā)選通方式。圖3-1 8254的內(nèi)部接口和引腳8254的控制字有兩個(gè):一個(gè)用來設(shè)置計(jì)數(shù)器的工作方式,稱為方式控制字;另一個(gè)用來設(shè)置讀回命令,稱為讀回控制字。這兩個(gè)控制字共用一個(gè)地址,由標(biāo)識位來區(qū)分??刂谱指袷饺绫?-13-3所示。表3-1 8254的方式控制字格式D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇讀/寫格式選擇工作方式選擇計(jì)數(shù)碼制選擇00計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211讀出控制字標(biāo)志00鎖存計(jì)數(shù)值01讀/寫低8位10讀/寫高8位11先讀/寫低8位 再讀/寫高8位000方式0001方式1010方式2011方式3100方式4101方式50二進(jìn)制數(shù)1十進(jìn)制數(shù)表3-2 8254讀出控制字格式D7D6D5D4D3D2D1D0110鎖存計(jì)數(shù)值0鎖存狀態(tài)信息計(jì)數(shù)器選擇(同方式控制字)0表3-3 8254狀態(tài)字格式D7D6D5D4D3D2D1D0OUT引腳現(xiàn)行狀態(tài)1高電平0低電平計(jì)數(shù)初值是否裝入1無效計(jì)數(shù)0計(jì)數(shù)有效計(jì)數(shù)器方式(同方式控制字)8254實(shí)驗(yàn)單元電路圖如圖3-2所示:圖3-2 8254實(shí)驗(yàn)電路原理圖3.5 實(shí)驗(yàn)步驟1. 計(jì)數(shù)應(yīng)用實(shí)驗(yàn)編寫程序,將8254的計(jì)數(shù)器0設(shè)置為方式3,計(jì)數(shù)值為十進(jìn)制數(shù)4,用單次脈沖KK1作為CLK0時(shí)鐘,OUT0連接MIR7,每當(dāng)KK1按動5次后產(chǎn)生中斷請求,在屏幕上顯示字符“M”。實(shí)驗(yàn)步驟:(1)實(shí)驗(yàn)接線如圖3-3所示。(2)編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng)。(3)運(yùn)行程序,按動KK1產(chǎn)生單次脈沖,觀察實(shí)驗(yàn)現(xiàn)象。(4)改變計(jì)數(shù)值,驗(yàn)證8254的計(jì)數(shù)功能。圖3-3 8254計(jì)數(shù)應(yīng)用實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單(A82541.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODE, SS:SSTACKSTART:PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7;取中斷入口地址MOV SI, 003CH;中斷矢量地址MOV SI, AX;填I(lǐng)RQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填I(lǐng)RQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H;計(jì)數(shù)器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTIAA1:JMP AA1IRQ7:MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AX, 014DHINT 10H;顯示字符MMOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中斷結(jié)束命令I(lǐng)RETCODEENDSEND START2. 定時(shí)應(yīng)用實(shí)驗(yàn)編寫程序,將8254的計(jì)數(shù)器0設(shè)置為方式3,用信號源1MHz作為CLK0時(shí)鐘,OUT0為波形輸出1ms方波。實(shí)驗(yàn)步驟:(1)接線圖如圖3-4所示。(2)根據(jù)實(shí)驗(yàn)內(nèi)容,編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng)。(3)運(yùn)行實(shí)驗(yàn)程序,用示波器測試OUT0輸出,驗(yàn)證程序功能。實(shí)驗(yàn)程序清單(A82542.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, CON8254;8254MOV AL, 36H;計(jì)數(shù)器0,方式3OUT DX, ALMOV DX, A8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, ALAA1:JMP AA1CODEENDSEND START圖3-4 8254定時(shí)應(yīng)用實(shí)驗(yàn)接線圖四、8259中斷控制實(shí)驗(yàn)4.1 實(shí)驗(yàn)?zāi)康?. 掌握8259中斷控制器的工作原理。2. 學(xué)習(xí)8259的應(yīng)用編程方法。3. 掌握8259級聯(lián)方式的使用方法。4.2 實(shí)驗(yàn)設(shè)備PC機(jī)一臺,TD-PITE實(shí)驗(yàn)裝置或TD-PITC實(shí)驗(yàn)裝置一套。4.3 實(shí)驗(yàn)內(nèi)容及步驟1. 中斷控制器8259簡介在Intel 386EX芯片中集成有中斷控制單元(ICU),該單元包含有兩個(gè)級聯(lián)中斷控制器,一個(gè)為主控制器,一個(gè)為從控制器。該中斷控制單元就功能而言與工業(yè)上標(biāo)準(zhǔn)的82C59A是一致的,操作方法也相同。從片的INT連接到主片的IR2信號上構(gòu)成兩片8259的級聯(lián)。在TD-PITE實(shí)驗(yàn)系統(tǒng)中,將主控制器的IR6、IR7以及從控制器的IR1開放出來供實(shí)驗(yàn)使用,主片8259的IR4供系統(tǒng)串口使用。8259的內(nèi)部連接及外部管腳引出如圖4-1:圖4-1 8259內(nèi)部連續(xù)及外部管腳引出圖表4-1列出了中斷控制單元的寄存器相關(guān)信息。表4-1 ICU寄存器列表寄存器口地址功能描述ICW1(主)ICW1(從)(只寫)0020H00A0H初始化命令字1:決定中斷請求信號為電平觸發(fā)還是邊沿觸發(fā)。ICW2(主)ICW2(從)(只寫)0021H00A1H初始化命令字2:包含了8259的基址中斷向量號,基址中斷向量是IR0的向量號,基址加1就是IR1的向量號,依此類推。ICW3(主)(只寫)0021H初始化命令字3:用于識別從8259設(shè)備連接到主控制器的IR信號,內(nèi)部的從8259連接到主8259的IR2信號上。ICW3(從)(只寫)00A1H初始化命令字3:表明內(nèi)部從控制器級聯(lián)到主片的IR2信號上。ICW4(主)ICW4(從)(只寫)0021H00A1H初始化命令字4:選擇特殊全嵌套或全嵌套模式,使能中斷自動結(jié)束方式。OCW1(主)OCW1(從)(讀/寫)0021H00A1H操作命令字1:中斷屏蔽操作寄存器,可屏蔽相應(yīng)的中斷信號。OCW2(主)OCW2(從)(只寫)0020H00A0H操作命令字2:改變中斷優(yōu)先級和發(fā)送中斷結(jié)束命令。OCW3(主)OCW3(從)(只寫)0020H00A0H操作命令字3:使能特殊屏蔽方式,設(shè)置中斷查詢方式,允許讀出中斷請求寄存器和當(dāng)前中斷服務(wù)寄存器。IRR(主)IRR(從)(只讀)0020H00A0H中斷請求:指出掛起的中斷請求。ISR(主)ISR(從)(只讀)0020H00A0H當(dāng)前中斷服務(wù):指出當(dāng)前正在被服務(wù)的中斷請求。POLL(主)POLL(從)(只讀)0020H0021H00A0H00A1H查詢狀態(tài)字:表明連接到8259上的設(shè)備是否需要服務(wù),如果有中斷請求,該字表明當(dāng)前優(yōu)先級最高的中斷請求。初始化命令字1寄存器(ICW1)說明見圖4-2所示。圖4-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)說明見圖4-3所示。圖4-3 初始化命令字2寄存器初始化命令字3寄存器(ICW3)說明,主片見圖4-4,從片見圖4-5。圖4-4 主片初始化命令字3寄存器圖4-5 從片初始化命令字3寄存器初始化命令字4寄存器(ICW4)說明見圖4-5。圖4-5 初始化命令字4寄存器操作命令字1寄存器(OCW1)說明見圖4-6。圖4-6 操作命令字1寄存器操作命令字2寄存器(OCW2)說明如圖4-7所示。圖4-7 操作命令字2寄存器操作命令字3寄存器(OCW3)說明如圖4-8所示。圖4-8 操作命令字3寄存器查詢狀態(tài)字(POLL)說明如圖4-9所示。圖4-9 程序狀態(tài)字寄存器在對8259進(jìn)行編程時(shí),首先必須進(jìn)行初始化。一般先使用CLI指令將所有的可屏蔽中斷禁止,然后寫入初始化命令字。8259有一個(gè)狀態(tài)機(jī)控制對寄存器的訪問,不正確的初始化順序會造成異常初始化。在初始化主片8259時(shí),寫入初始化命令字的順序是:ICW1、ICW2、ICW3、然后是ICW4,初始化從片8259的順序與初始化主片8259的順序是相同的。系統(tǒng)啟動時(shí),主片8259已被初始化,且4號中斷源(IR4)提供給與PC聯(lián)機(jī)的串口通信使用,其它中斷源被屏蔽。中斷矢量地址與中斷號之間的關(guān)系如下表所示:主片中斷序號01234567功能調(diào)用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH說明未開放未開放未開放未開放串口未開放可用可用從片中斷序號01234567功能調(diào)用30H31H32H33H34H35H36H37H矢量地址C0HC3HC4HC7HC8HCBHCCHCFHD0HD3HD4HD7HD8HDBHDCHDFH說明未開放可用未開放未開放未開放未開放未開放未開放2. 8259單中斷實(shí)驗(yàn)實(shí)驗(yàn)接線圖如圖4-10所示,單次脈沖輸出與主片8259的IR7相連,每按動一次單次脈沖,產(chǎn)生一次外部中斷,在顯示屏上輸出一個(gè)字符“7”。 圖4-10 8259單中斷實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單(INT1.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODE SEGMENT ASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中斷入口地址MOV SI, 003CH;中斷矢量地址MOV SI, AX;填I(lǐng)RQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填I(lǐng)RQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, ALSTIAA1:NOPJMP AA1MIR7:STICALL DELAYMOV AX, 0137HINT 10H;顯示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中斷結(jié)束命令I(lǐng)RETDELAY:PUSH CXMOV CX, 0F00HAA0:PUSH AXPOP AXLOOP AA0POP CXRETCODEENDSEND START實(shí)驗(yàn)步驟(1)按圖4.15連接實(shí)驗(yàn)線路。(2)編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng)。(3)運(yùn)行程序,重復(fù)按單次脈沖開關(guān)KK1,顯示屏?xí)@示字符“7”,說明響應(yīng)了中斷。3. 8259級聯(lián)實(shí)驗(yàn)實(shí)驗(yàn)接線圖如圖4-11所示,KK1連接到主片8259的IR7上,KK2連接到從片8259的IR1上,當(dāng)按一次KK1時(shí),顯示屏上顯示字符“M7”,按一次KK2時(shí),顯示字符“S1”。編寫程序。 圖4-11 8259級聯(lián)實(shí)驗(yàn) 實(shí)驗(yàn)程序清單(INTCAS1.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODE SEGMENT ASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中斷入口地址MOV SI, 003CH;中斷矢量地址MOV SI, AX;填I(lǐng)RQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填I(lǐng)RQ7的段地址矢量MOV AX, OFFSET SIR1MOV SI, 00C4HMOV SI, AXMOV AX, CSMOV SI, 00C6HMOV SI, AXCLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4;初始化從片8259MOV AL, 11HOUT 0A0H, AL;ICW1MOV AL, 30HOUT 0A1H, AL;ICW2MOV AL, 02HOUT 0A1H, AL;ICW3MOV AL, 01HOUT 0A1H, AL;ICW4MOV AL, 0FDHOUT 0A1H,AL;OCW1 = 1111 1101MOV AL, 6BHOUT 21H, AL;主8259 OCW1STIAA1:NOPJMP AA1MIR7:CALL DELAYMOV AX, 014DHINT 10H;MMOV AX, 0137HINT 10H;顯示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中斷結(jié)束命令I(lǐng)RETSIR1:CALL
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚柜定做合同模板(3篇)
- 抽糞車合同模板(3篇)
- 廚房菜品考核制度
- 兩規(guī)劃監(jiān)督考核制度
- 物業(yè)崗位考核制度
- 天車工管理考核制度
- 起重安拆工考核制度
- 學(xué)校鍋爐工考核制度
- 《GB-T 24400-2009食品冷庫HACCP應(yīng)用規(guī)范》專題研究報(bào)告
- 涼菜間衛(wèi)生考核制度
- 谷雨生物2024環(huán)境、社會及管治(ESG)報(bào)告
- 2025金風(fēng)變流器2.0MW故障代碼手冊V4
- 房地產(chǎn)估價(jià)試題及答案
- 龍湖物業(yè)培訓(xùn)課件
- 反詐知識競賽題庫附答案(150 題)
- 2025年注冊可靠性工程師資格認(rèn)證考試題庫500題(含真題、重點(diǎn)題)
- 個(gè)人購房合同樣本大全
- T-CBMF 91-2020 T-CCPA 17-2020 城市綜合管廊結(jié)構(gòu)混凝土應(yīng)用技術(shù)規(guī)程
- 電力配網(wǎng)工程各種材料重量表總
- 抗菌藥物臨床應(yīng)用指導(dǎo)原則
- 一點(diǎn)一策模板課件
評論
0/150
提交評論