微機原理實驗4_第1頁
微機原理實驗4_第2頁
微機原理實驗4_第3頁
微機原理實驗4_第4頁
微機原理實驗4_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1實驗四、軟中斷、硬中斷程序設計一、實驗目的通過對軟中斷、可屏蔽硬中斷程序的編寫和調(diào)試,掌握IBM-PC機的軟中斷、可屏蔽硬中斷程序的編寫和調(diào)試,掌握IBMPC系列微機的中斷系統(tǒng)及中斷程序設計方法。2

二、實驗任務1.編寫一個類型為60H的中斷程序,其功能發(fā)出一陣鈴響, 在主程序中用中斷INT60H調(diào)用該中斷程序。2.可屏蔽硬中斷程序設計

(1)改寫鍵盤硬中斷子程 每按下一個鍵,在屏幕上將該鍵對應的掃描碼 以二進制形式顯示出來。

(2)利用鍵盤控制定時顯示功能

每隔1秒鐘顯示字符串’CanIhelpyou?’, 當按下一個鍵時,則停止定時顯示功能, 再按下一鍵時,恢復定時顯示功能。33.(選作)

用TPC-1型微機實驗箱上單脈沖電路產(chǎn)生的正脈沖信號做中斷源,

依次檢測PC總線上的中斷申請插孔IRQ2~IRQ7, 確定哪些未被微機系統(tǒng)占用。4三、實驗說明關于任務1 (1)進行軟中斷程序設計最好使用DOS系統(tǒng)保留給用戶應用的中斷類型,否則處理不當,會引起意想不到的后果。

(2)用INT60H即可調(diào)用60H中斷子程

60H屬于系統(tǒng)保留給用戶的軟中斷類型號, 只要在中斷向量表0:460H單元中存放用戶編寫的60H中斷程序入口地址,用INT60H即可調(diào)用60H中斷子程。

52.關于任務2(1)

鍵盤中斷類型號為09H,編寫鍵盤硬中斷程序要點是:(1) 鍵盤接口按下鍵和釋放鍵都向8259A發(fā)出中斷申請 若滿足響應條件:

對鍵盤上的一個按鍵操作(包括按下鍵和釋放鍵),

CPU將執(zhí)行兩次鍵盤中斷(按下鍵一次,釋放鍵一次)。(2) CPU響應鍵盤中斷時

可從60H端口讀取按下鍵的掃描碼, 可據(jù)掃描碼的最高位確定是按下鍵操作還是釋放鍵操作,

最高位為1(掃描碼為斷碼),則說明是釋放鍵引起的中斷; 最高位為0(掃描碼為通碼),則說明是按下鍵引起的中斷。6(3) 若在IBMPC和XT上 在讀取掃描碼后,應置鍵盤應答信號,鍵盤接口才能 為接收下一個鍵做好準備。置鍵盤應答位的方法是: 先將61H端口的最高位置1, 再將61H的最高位置0。 原理可參看鍵盤接口有關資料。 若在AT及以上微機做實驗, 在讀取掃描碼后,可不用鍵盤應答信號。7在PC和XT機上,鍵盤中斷處理程序中置鍵盤應答和判斷通碼、斷碼的過程:

PUSH AX ;保存寄存器值(保存現(xiàn)場) IN AL,60H ;讀掃描碼

MOV AH,AL ;保存在AH中

IN AL,61H ;置鍵盤應答

OR AL,80H OUT 61h,AL ;使61H口最高位為1 AND AL,7FH OUT 61H,AL ;使61H口最高位為0 TEST AH,80H ;檢查是按下鍵還是釋放鍵,即是通碼嗎? JNZ release ;不是通碼則轉(zhuǎn)去作釋放鍵處理

…… ;按下鍵處理release: ;釋放鍵處理

…… MOV AL,20H ;發(fā)中斷結(jié)束

OUT 20H,AL POP AX ;恢復寄存器值(恢復現(xiàn)場) IRET ;中斷返回8在AT及以上微機,去掉鍵盤應答部分,鍵盤中斷處理程序可簡化為:

PUSH AX ;保存寄存器值(保存現(xiàn)場) IN AL,60H ;讀掃描碼

TEST AL,80H;檢查是按下鍵還是釋放鍵,即是通碼嗎? JNZ release ;不是通碼則轉(zhuǎn)去作釋放鍵處理

…… ;按下鍵處理

release: ;釋放鍵處理 …… MOV AL,20H ;發(fā)中斷結(jié)束

OUT 20H,AL POP AX ;恢復寄存器值(恢復現(xiàn)場) IRET ;中斷返回9(4) 在鍵盤中斷處理程序的最后應發(fā)中斷結(jié)束命令, 否則將屏蔽鍵盤中斷。103. 關于任務2(2)

要用到定時和鍵盤兩個中斷源。 可在任務2(1)的基礎上完成,

在鍵盤中斷子程中,設置一個標志變量flag, 用以區(qū)分是奇數(shù)次按鍵還是偶數(shù)次按鍵。

對奇數(shù)次按鍵,可重置8259A的屏蔽字,屏蔽定時器中斷,使CPU不再響應定時中斷,從而停止了定時顯示功能;

對偶數(shù)次按鍵,則清除對定時中斷的屏蔽,以恢復定時顯示的功能。11關于任務3(選做)

計算機上實際配置的外設不同,8259A的IR2~IR7的占用情況也就會不同。 利用PC總線上的中斷申請插孔IRQ2~IRQ7,自編程序進行檢測。

(1)IRQ2~IRQ7對應的中斷類型號為0A~0FH。

(2)在中斷子程中,顯示字符串’InterruptisOK!’。

對可用的中斷申請插孔,運行的結(jié)果是能夠正常顯示該字符串;

對于發(fā)生沖突的不可用中斷申請插孔,運行的結(jié)果是不能夠正常顯示該字符串,甚至出現(xiàn)死機等異常情況。12有關8259A(1)IBMPC系列微機的可屏蔽中斷系統(tǒng)由主板上的8259A控制。(2)8259A是一個可編程中斷控制器

IBMPC和XT機使用1片8259A,可管理8個中斷申請,

IBMPC/AT及以上微機使用2片8259A級連,可管理15個中斷申請。主8259A的端口地址為20H和21H。(3)BIOS對主8259A的設置如下:邊沿觸發(fā)方式,當輸入端IR0~IR7出現(xiàn)上升沿信號時,發(fā)出中斷申請信號。中斷向量初值為08H,IR0~IR7對應的中斷類型號為08H~0FH。固定優(yōu)先級,IR0優(yōu)先級最高,IR7優(yōu)先級最低。一般屏蔽方式,用中斷屏蔽寄存器IMR控制各級中斷的允許或屏蔽。一般全嵌套方式,中斷服務結(jié)束時,需發(fā)中斷結(jié)束命令EOI,清除ISR中的記錄,否則屏蔽同級或低級的中斷。13(4)每片8259A有8個中斷申請輸入端IR0~IR7

主8259A的連接情況如下:

IR0與主板上的8253計數(shù)器0相連,該計數(shù)器輸出頻率為18.2hz的方波。

IR1與鍵盤接口發(fā)出的中斷申請相連。

IR2~IR7分配給其它外設,或未使用。在PC總線上可由插孔IRQ2~IRQ7引入中斷申請信號。14(5)有關8259A的編程:

設置中斷屏蔽字

中斷屏蔽寄存器的端口地址為21H。 通過改變中斷屏蔽寄存器各位的值實現(xiàn):

某位為0,允許該級中斷申請進入; 某位為1,禁止該級中斷申請進入。例:新增允許IR2的中斷申請

IN AL,21H ;讀入原IMR的內(nèi)容

AND AL,11111011B ;新增允許IR2的中斷申請

OUT 21H,AL ;寫入中斷屏蔽寄存器IMR例:屏蔽IR7的中斷申請

IN AL,21H ;讀入原IMR的內(nèi)容

OR AL,10000000B ;屏蔽IR7的中斷申請

OUT 21H,AL ;寫入中斷屏蔽寄存器IMR15(6) 發(fā)中斷結(jié)束命令EOI

通過往8259A的偶地址寫入20H實現(xiàn),

8259A的偶地址為20H,指令如下:

MOV AL,20H OUT 20H,AL16(7)可屏蔽硬中斷程序的編寫方法

保存原中斷向量可用DOS的35H功能調(diào)用。設置新中斷向量和恢復原中斷向量可用DOS的25H功能調(diào)用。 中斷向量的類型號由中斷源與8259A的連接關系確定。 主程完成與中斷有關的設置工作后, 即可進行其它工作的處理,通常此處可用一雙重循環(huán)延時程序段,或用計數(shù)中斷子程被執(zhí)行次數(shù),或用判斷是否有按鍵動作等代替。在結(jié)束主程,返回DOS之前,應據(jù)中斷源的不同情況做處理:或恢復原中斷向量,或通過設置8259A的中斷屏蔽字屏蔽對此級中斷源 的反應。 中斷子程中,處理中斷源請求的任務,在中斷返回前,應發(fā)中斷結(jié)束命令EOI。圖1和圖2分別是可屏蔽硬中斷的主程序和中斷子程序流程圖。17開始CLI關中斷

保存原中斷向量

設置新中斷向量

設置8259A的中斷屏蔽字

中斷子程有關量的初始化STI開中斷

主程其它工作處理

(可用雙重循環(huán)延時代替)

恢復原中斷向量返回DOS

圖1主程序流程圖開始

保存現(xiàn)場

完成中斷源申請的任務

發(fā)中斷結(jié)束命令EOI

恢復現(xiàn)場

IRET中斷返回圖2中斷子程流程圖18三、實驗箱上相關電路

參看附3,了解TPC-1型微機實驗系統(tǒng),掌握實驗箱上IBMPC/XT總線、單脈沖電路和8MHz脈沖電路。圖3-1TPC-1型實驗箱實物1、TPC-1型實驗箱實物1960芯扁平電纜插槽

電源開關J6PC總線插槽1PC總線插槽2PC總線插孔排

DAC0832U18U16U42CSAOUTU11RAM6116A9A10A8A7A6A5A4A3A2A1A0U39DMAU14U20U43U13U15U381J41J31J2JSDRQADC0809IN0IN1IN2IN3IN4IN5IN6IN7EOC500kHzCS8253CLK1CLK2CLK3CSOUT1OUT2OUT3GATE1GATE2GATE3U37U1074LS138U44U27U28U32U26ABQ3Q2Q1Q0Q7Q6Q5Q474LS393Q11Q10Q9Q8Q15Q14Q13Q1274LS393200-207208-20F210-217218-21F220-227228-22F230-237238-23FPB3PB4PB5PB6PB73PC0PC1PC2PC3PC4PC5PC6PC7WGO48CXM159DYP26AESR37BFPB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0CS8251ARxRDYTxCRxCCSTxRDYTxE14881489RTSDTRGNDRxDTxDU45L2L1L3L4L5L6L7L8L9L10L11L12K2K1K3K4K5K6K7K8K9K10K11K12GND+5v+12v-5v-12v8MHz

可調(diào)電阻12個邏輯電平開關12個發(fā)光二極管RESU33CSU9U1U2U3U6U4U7U40U41U29U30U31U34

面包板8255A圖3-2TPC-1型實驗箱面板布置圖2、實驗箱面板布置圖203、PC總線信號實驗箱上有兩個PC總線擴展插槽和一個PC總線信號引出插孔排。

B1A1B10A10B20A20B30A30圖3-3-PC總線信號引腳I/OCH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論