版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1實(shí)驗(yàn)四、軟中斷、硬中斷程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)對(duì)軟中斷、可屏蔽硬中斷程序的編寫(xiě)和調(diào)試,掌握IBM-PC機(jī)的軟中斷、可屏蔽硬中斷程序的編寫(xiě)和調(diào)試,掌握IBMPC系列微機(jī)的中斷系統(tǒng)及中斷程序設(shè)計(jì)方法。2
二、實(shí)驗(yàn)任務(wù)1.編寫(xiě)一個(gè)類(lèi)型為60H的中斷程序,其功能發(fā)出一陣鈴響, 在主程序中用中斷INT60H調(diào)用該中斷程序。2.可屏蔽硬中斷程序設(shè)計(jì)
(1)改寫(xiě)鍵盤(pán)硬中斷子程 每按下一個(gè)鍵,在屏幕上將該鍵對(duì)應(yīng)的掃描碼 以二進(jìn)制形式顯示出來(lái)。
(2)利用鍵盤(pán)控制定時(shí)顯示功能
每隔1秒鐘顯示字符串’CanIhelpyou?’, 當(dāng)按下一個(gè)鍵時(shí),則停止定時(shí)顯示功能, 再按下一鍵時(shí),恢復(fù)定時(shí)顯示功能。33.(選作)
用TPC-1型微機(jī)實(shí)驗(yàn)箱上單脈沖電路產(chǎn)生的正脈沖信號(hào)做中斷源,
依次檢測(cè)PC總線上的中斷申請(qǐng)插孔IRQ2~IRQ7, 確定哪些未被微機(jī)系統(tǒng)占用。4三、實(shí)驗(yàn)說(shuō)明關(guān)于任務(wù)1 (1)進(jìn)行軟中斷程序設(shè)計(jì)最好使用DOS系統(tǒng)保留給用戶(hù)應(yīng)用的中斷類(lèi)型,否則處理不當(dāng),會(huì)引起意想不到的后果。
(2)用INT60H即可調(diào)用60H中斷子程
60H屬于系統(tǒng)保留給用戶(hù)的軟中斷類(lèi)型號(hào), 只要在中斷向量表0:460H單元中存放用戶(hù)編寫(xiě)的60H中斷程序入口地址,用INT60H即可調(diào)用60H中斷子程。
52.關(guān)于任務(wù)2(1)
鍵盤(pán)中斷類(lèi)型號(hào)為09H,編寫(xiě)鍵盤(pán)硬中斷程序要點(diǎn)是:(1) 鍵盤(pán)接口按下鍵和釋放鍵都向8259A發(fā)出中斷申請(qǐng) 若滿(mǎn)足響應(yīng)條件:
對(duì)鍵盤(pán)上的一個(gè)按鍵操作(包括按下鍵和釋放鍵),
CPU將執(zhí)行兩次鍵盤(pán)中斷(按下鍵一次,釋放鍵一次)。(2) CPU響應(yīng)鍵盤(pán)中斷時(shí)
可從60H端口讀取按下鍵的掃描碼, 可據(jù)掃描碼的最高位確定是按下鍵操作還是釋放鍵操作,
最高位為1(掃描碼為斷碼),則說(shuō)明是釋放鍵引起的中斷; 最高位為0(掃描碼為通碼),則說(shuō)明是按下鍵引起的中斷。6(3) 若在IBMPC和XT上 在讀取掃描碼后,應(yīng)置鍵盤(pán)應(yīng)答信號(hào),鍵盤(pán)接口才能 為接收下一個(gè)鍵做好準(zhǔn)備。置鍵盤(pán)應(yīng)答位的方法是: 先將61H端口的最高位置1, 再將61H的最高位置0。 原理可參看鍵盤(pán)接口有關(guān)資料。 若在AT及以上微機(jī)做實(shí)驗(yàn), 在讀取掃描碼后,可不用鍵盤(pán)應(yīng)答信號(hào)。7在PC和XT機(jī)上,鍵盤(pán)中斷處理程序中置鍵盤(pán)應(yīng)答和判斷通碼、斷碼的過(guò)程:
PUSH AX ;保存寄存器值(保存現(xiàn)場(chǎng)) IN AL,60H ;讀掃描碼
MOV AH,AL ;保存在AH中
IN AL,61H ;置鍵盤(pán)應(yīng)答
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 ;恢復(fù)寄存器值(恢復(fù)現(xiàn)場(chǎng)) IRET ;中斷返回8在AT及以上微機(jī),去掉鍵盤(pán)應(yīng)答部分,鍵盤(pán)中斷處理程序可簡(jiǎn)化為:
PUSH AX ;保存寄存器值(保存現(xiàn)場(chǎng)) IN AL,60H ;讀掃描碼
TEST AL,80H;檢查是按下鍵還是釋放鍵,即是通碼嗎? JNZ release ;不是通碼則轉(zhuǎn)去作釋放鍵處理
…… ;按下鍵處理
release: ;釋放鍵處理 …… MOV AL,20H ;發(fā)中斷結(jié)束
OUT 20H,AL POP AX ;恢復(fù)寄存器值(恢復(fù)現(xiàn)場(chǎng)) IRET ;中斷返回9(4) 在鍵盤(pán)中斷處理程序的最后應(yīng)發(fā)中斷結(jié)束命令, 否則將屏蔽鍵盤(pán)中斷。103. 關(guān)于任務(wù)2(2)
要用到定時(shí)和鍵盤(pán)兩個(gè)中斷源。 可在任務(wù)2(1)的基礎(chǔ)上完成,
在鍵盤(pán)中斷子程中,設(shè)置一個(gè)標(biāo)志變量flag, 用以區(qū)分是奇數(shù)次按鍵還是偶數(shù)次按鍵。
對(duì)奇數(shù)次按鍵,可重置8259A的屏蔽字,屏蔽定時(shí)器中斷,使CPU不再響應(yīng)定時(shí)中斷,從而停止了定時(shí)顯示功能;
對(duì)偶數(shù)次按鍵,則清除對(duì)定時(shí)中斷的屏蔽,以恢復(fù)定時(shí)顯示的功能。11關(guān)于任務(wù)3(選做)
計(jì)算機(jī)上實(shí)際配置的外設(shè)不同,8259A的IR2~IR7的占用情況也就會(huì)不同。 利用PC總線上的中斷申請(qǐng)插孔IRQ2~IRQ7,自編程序進(jìn)行檢測(cè)。
(1)IRQ2~IRQ7對(duì)應(yīng)的中斷類(lèi)型號(hào)為0A~0FH。
(2)在中斷子程中,顯示字符串’InterruptisOK!’。
對(duì)可用的中斷申請(qǐng)插孔,運(yùn)行的結(jié)果是能夠正常顯示該字符串;
對(duì)于發(fā)生沖突的不可用中斷申請(qǐng)插孔,運(yùn)行的結(jié)果是不能夠正常顯示該字符串,甚至出現(xiàn)死機(jī)等異常情況。12有關(guān)8259A(1)IBMPC系列微機(jī)的可屏蔽中斷系統(tǒng)由主板上的8259A控制。(2)8259A是一個(gè)可編程中斷控制器
IBMPC和XT機(jī)使用1片8259A,可管理8個(gè)中斷申請(qǐng),
IBMPC/AT及以上微機(jī)使用2片8259A級(jí)連,可管理15個(gè)中斷申請(qǐng)。主8259A的端口地址為20H和21H。(3)BIOS對(duì)主8259A的設(shè)置如下:邊沿觸發(fā)方式,當(dāng)輸入端IR0~IR7出現(xiàn)上升沿信號(hào)時(shí),發(fā)出中斷申請(qǐng)信號(hào)。中斷向量初值為08H,IR0~IR7對(duì)應(yīng)的中斷類(lèi)型號(hào)為08H~0FH。固定優(yōu)先級(jí),IR0優(yōu)先級(jí)最高,IR7優(yōu)先級(jí)最低。一般屏蔽方式,用中斷屏蔽寄存器IMR控制各級(jí)中斷的允許或屏蔽。一般全嵌套方式,中斷服務(wù)結(jié)束時(shí),需發(fā)中斷結(jié)束命令EOI,清除ISR中的記錄,否則屏蔽同級(jí)或低級(jí)的中斷。13(4)每片8259A有8個(gè)中斷申請(qǐng)輸入端IR0~IR7
主8259A的連接情況如下:
IR0與主板上的8253計(jì)數(shù)器0相連,該計(jì)數(shù)器輸出頻率為18.2hz的方波。
IR1與鍵盤(pán)接口發(fā)出的中斷申請(qǐng)相連。
IR2~IR7分配給其它外設(shè),或未使用。在PC總線上可由插孔IRQ2~IRQ7引入中斷申請(qǐng)信號(hào)。14(5)有關(guān)8259A的編程:
設(shè)置中斷屏蔽字
中斷屏蔽寄存器的端口地址為21H。 通過(guò)改變中斷屏蔽寄存器各位的值實(shí)現(xiàn):
某位為0,允許該級(jí)中斷申請(qǐng)進(jìn)入; 某位為1,禁止該級(jí)中斷申請(qǐng)進(jìn)入。例:新增允許IR2的中斷申請(qǐng)
IN AL,21H ;讀入原IMR的內(nèi)容
AND AL,11111011B ;新增允許IR2的中斷申請(qǐng)
OUT 21H,AL ;寫(xiě)入中斷屏蔽寄存器IMR例:屏蔽IR7的中斷申請(qǐng)
IN AL,21H ;讀入原IMR的內(nèi)容
OR AL,10000000B ;屏蔽IR7的中斷申請(qǐng)
OUT 21H,AL ;寫(xiě)入中斷屏蔽寄存器IMR15(6) 發(fā)中斷結(jié)束命令EOI
通過(guò)往8259A的偶地址寫(xiě)入20H實(shí)現(xiàn),
8259A的偶地址為20H,指令如下:
MOV AL,20H OUT 20H,AL16(7)可屏蔽硬中斷程序的編寫(xiě)方法
保存原中斷向量可用DOS的35H功能調(diào)用。設(shè)置新中斷向量和恢復(fù)原中斷向量可用DOS的25H功能調(diào)用。 中斷向量的類(lèi)型號(hào)由中斷源與8259A的連接關(guān)系確定。 主程完成與中斷有關(guān)的設(shè)置工作后, 即可進(jìn)行其它工作的處理,通常此處可用一雙重循環(huán)延時(shí)程序段,或用計(jì)數(shù)中斷子程被執(zhí)行次數(shù),或用判斷是否有按鍵動(dòng)作等代替。在結(jié)束主程,返回DOS之前,應(yīng)據(jù)中斷源的不同情況做處理:或恢復(fù)原中斷向量,或通過(guò)設(shè)置8259A的中斷屏蔽字屏蔽對(duì)此級(jí)中斷源 的反應(yīng)。 中斷子程中,處理中斷源請(qǐng)求的任務(wù),在中斷返回前,應(yīng)發(fā)中斷結(jié)束命令EOI。圖1和圖2分別是可屏蔽硬中斷的主程序和中斷子程序流程圖。17開(kāi)始CLI關(guān)中斷
保存原中斷向量
設(shè)置新中斷向量
設(shè)置8259A的中斷屏蔽字
中斷子程有關(guān)量的初始化STI開(kāi)中斷
主程其它工作處理
(可用雙重循環(huán)延時(shí)代替)
恢復(fù)原中斷向量返回DOS
圖1主程序流程圖開(kāi)始
保存現(xiàn)場(chǎng)
完成中斷源申請(qǐng)的任務(wù)
發(fā)中斷結(jié)束命令EOI
恢復(fù)現(xiàn)場(chǎng)
IRET中斷返回圖2中斷子程流程圖18三、實(shí)驗(yàn)箱上相關(guān)電路
參看附3,了解TPC-1型微機(jī)實(shí)驗(yàn)系統(tǒng),掌握實(shí)驗(yàn)箱上IBMPC/XT總線、單脈沖電路和8MHz脈沖電路。圖3-1TPC-1型實(shí)驗(yàn)箱實(shí)物1、TPC-1型實(shí)驗(yàn)箱實(shí)物1960芯扁平電纜插槽
電源開(kāi)關(guān)J6PC總線插槽1PC總線插槽2PC總線插孔排
DAC0832U18U16U42CSAOUTU11RAM6116A9A10A8A7A6A5A4A3A2A1A0U39DMAU14U20U43U13U15U381J41J31J2JSDRQADC0809IN0IN1IN2IN3IN4IN5IN6IN7EOC500kHzCS8253CLK1CLK2CLK3CSOUT1OUT2OUT3GATE1GATE2GATE3U37U1074LS138U44U27U28U32U26ABQ3Q2Q1Q0Q7Q6Q5Q474LS393Q11Q10Q9Q8Q15Q14Q13Q1274LS393200-207208-20F210-217218-21F220-227228-22F230-237238-23FPB3PB4PB5PB6PB73PC0PC1PC2PC3PC4PC5PC6PC7WGO48CXM159DYP26AESR37BFPB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0CS8251ARxRDYTxCRxCCSTxRDYTxE14881489RTSDTRGNDRxDTxDU45L2L1L3L4L5L6L7L8L9L10L11L12K2K1K3K4K5K6K7K8K9K10K11K12GND+5v+12v-5v-12v8MHz
可調(diào)電阻12個(gè)邏輯電平開(kāi)關(guān)12個(gè)發(fā)光二極管RESU33CSU9U1U2U3U6U4U7U40U41U29U30U31U34
面包板8255A圖3-2TPC-1型實(shí)驗(yàn)箱面板布置圖2、實(shí)驗(yàn)箱面板布置圖203、PC總線信號(hào)實(shí)驗(yàn)箱上有兩個(gè)PC總線擴(kuò)展插槽和一個(gè)PC總線信號(hào)引出插孔排。
B1A1B10A10B20A20B30A30圖3-3-PC總線信號(hào)引腳I/OCH
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年浙江紹興市中醫(yī)院赴溫州醫(yī)科大學(xué)招聘應(yīng)屆醫(yī)學(xué)類(lèi)畢業(yè)生74人筆試備考題庫(kù)及答案解析
- 能級(jí)工資專(zhuān)項(xiàng)集體合同(2篇)
- 《孔乙己》說(shuō)課稿10篇
- 南京工業(yè)大學(xué)浦江學(xué)院《招聘與培訓(xùn)課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《社會(huì)學(xué)概論》2021-2022學(xué)年第一學(xué)期期末試卷
- 分?jǐn)?shù)的認(rèn)識(shí)說(shuō)課稿
- 內(nèi)蒙古自治區(qū)呼和浩特市蘭亭文苑C座住宅樓工程施工組織設(shè)計(jì)
- c語(yǔ)言維數(shù)組說(shuō)課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《計(jì)算機(jī)組成原理》2022-2023學(xué)年期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《前廳運(yùn)營(yíng)與管理》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年秋季新統(tǒng)編版七年級(jí)上冊(cè)道德與法治全冊(cè)教案
- 行政復(fù)議法-形考作業(yè)1-國(guó)開(kāi)(ZJ)-參考資料
- 錯(cuò)漏混料點(diǎn)檢稽核表空白模板
- 登高作業(yè)錯(cuò)題解析
- 天然氣脫硫(課堂運(yùn)用)
- 幼兒園教師師德師風(fēng)考核表(共2頁(yè))
- 城鎮(zhèn)職工醫(yī)療保險(xiǎn)運(yùn)行中的問(wèn)題分析及措施
- 學(xué)校食堂五常法管理制度
- 畢業(yè)設(shè)計(jì)500kv變電站設(shè)計(jì)
- 講故事社團(tuán)活動(dòng)教案
- 五四制新青島版二年級(jí)科學(xué)上冊(cè)14《身邊的動(dòng)植物資源》課件
評(píng)論
0/150
提交評(píng)論