資源描述:
《8259a中斷控制器——利用irq2顯示中斷過程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、8259a中斷控制器:利用8259A的IRQ2顯示中斷過程目錄8259a屮斷控制器:利用8259A的IRQ2顯示屮斷過程1設(shè)計(jì)題目:1要求:1設(shè)計(jì)思路:1實(shí)驗(yàn)代碼:2實(shí)驗(yàn)心得體會:10設(shè)計(jì)題目:利用8259AIRQ2顯示中斷過程要求:1?主是在7段數(shù)碼管上循環(huán)顯示'8'從右到左顯示2.屮斷服務(wù)屮在7段數(shù)碼管上依次顯示全123456789要去顯示2秒左右時(shí)間可采用軟件Software延遲(時(shí)間可通過調(diào)試大致2秒左右)總計(jì)中斷9次結(jié)束返回DOS3?每次由手動(dòng)產(chǎn)生IRQ2屮斷請求信號引起屮斷設(shè)計(jì)思路:軟件Software方面有兩個(gè)主要部分:主
2、和中斷服務(wù)子主首先要完成是些和處理工作例如查找設(shè)備設(shè)置TPC卡中9054芯片10口,保存原來0AH號屮斷屮斷向量設(shè)置新屮斷向量設(shè)置屮斷掩碼顯示提示信息然后打開屮斷進(jìn)入主循環(huán)在主循壞中不斷在LED上從右向左顯示8直到被IRQ2中斷信號打斷此外在主中還對中斷執(zhí)行進(jìn)行計(jì)數(shù)當(dāng)計(jì)數(shù)滿9次后自動(dòng)跳出為了使主上8循壞對以看出來故將顯示8延遲設(shè)計(jì)比較長當(dāng)完成9次屮斷主還要完成些后續(xù)處理工作:恢復(fù)屮斷掩碼;恢復(fù)屮斷向量;設(shè)置TPC卡屮9054芯片10口,關(guān)閉中斷返回DOS屮斷子完成在6位數(shù)碼管上“同時(shí)”顯示個(gè)數(shù)功能這個(gè)數(shù)為1-9屮某個(gè)可以用循環(huán)次數(shù)作為參
3、數(shù)這里同時(shí)顯示實(shí)質(zhì)上是利用視覺上暫停效果即只要每秒能在同個(gè)數(shù)碼管上顯示信息超過24次看起來就是同時(shí)了而這點(diǎn)在現(xiàn)在計(jì)算機(jī)速度條件下很容易實(shí)現(xiàn)為了不發(fā)生混亂在中斷子執(zhí)行過程屮不允許再次屮斷另外屮還有兩個(gè)子:findtpc和dispword這些是為了完成查找設(shè)備等預(yù)處理硬件方面實(shí)驗(yàn)吋把總線上IRQ2引腳和撥鍵開關(guān)相連以手動(dòng)產(chǎn)生中斷信號另外再把LED片選信號CS和210-217相連(注:LED顯示是通過向LED數(shù)據(jù)端口送入數(shù)據(jù)再向LED位選端口送入位選信號來實(shí)現(xiàn))實(shí)驗(yàn)代碼:;386以上微機(jī)適用;純dos下才能使用;tasm4.1或以上編譯?**
4、*********************************************;*利用8259AIRQ2顯示中斷過程*;************************************************io_plx_device_idequ05406h;TPC卡設(shè)備IDio_plx_vendor_idequ010b5h;TPC卡廠商IDIO_PLX_SUB_IDEQU0905410B5H;TPC卡子設(shè)備及廠商IDportsegEQU211H-200H;數(shù)碼管端口地址portbitEQU210H-200Hdata
5、segmentcsregdw?[Page]ipregdw?;1日屮斷向量保存空間irq_timesdwlO;中斷計(jì)數(shù)msgldb0dh,0ah,'TPCpcicardInterrupt、',0dh,0ah,'$‘msg2db0dh,0ah,'Pressanykeytoexit!:0dh,0ah,‘$Tmsg3db0dh,0ah,'PressDMCorwaittoerrupt10timesandexit!'z0dh,0ahz'$'io_9054base_addressdb4DUP(O);TPC卡PCI接口芯片I/O基地
6、址暫存空間io_base_addressdb4DUP(O);TPC卡I/O基地址暫存空間erruptjinedb2DUP(O);TPC卡中斷號暫存空間pcicardnotfinddb0dh,0ah,'TPCpcicardnotfindoraddress/errupterror!!!:0dh,0ah,'$‘io9054baseaddressdb0dh,0ah,TPCpcicard9054ChipI/OBaseAddress:'z'$'iobaseaddressdb0dh,0ah,'TPCpcicardI/OBaseAdd
7、ress:'A'$'numberdb0dh,0ah,'TPCpcicardInterruptLine:enter_dbOdh,OahA'$'MESSDB'8253ATIMEROINMODE3!COUNT=0200HVz0AH,0DHDB'8253ATIMER1INMODE2!COUNT=OaH',OAH,ODH,'$‘irq_vectdb08hz09h,0ahz0bh,0ch,0dhz0eh,0fhz70h,71hz72h/73h,74hz75h,76h/77h;新中斷向量,中斷0-7向量為08h-0fh,中斷8-15
8、向量為:70h-77hirq_mask_0_7_tabledb011111110b,011111101b,011111011b,011110111bdbOlllOllll^OllOlllll^OlOllll