




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、TPC-USB接口技術(shù)實驗-驗證實驗例子(依據(jù)TPC-USB實驗箱提供相應(yīng)匯編程序,并做了詳細(xì)注釋,供練習(xí)用。2015年3月12日驗證實驗一:I/O地址譯碼 (1驗證實驗二:簡單并行接口 (3驗證實驗三(1:可編程定時器/計數(shù)器(8253 (6驗證實驗三(2:可編程定時器/計數(shù)器(8253 (8驗證實驗四(1:可編并行接口(8255方式0 (10驗證實驗四(2:可編并行接口(8255方式0 (12驗證實驗五(1:七段數(shù)碼管 (17驗證實驗五(2:七段數(shù)碼管 (19驗證實驗五(3:七段數(shù)碼管 (22驗證實驗六:競賽搶答器 (25驗證實驗七:交通燈控制 (27驗證實驗八:中斷 (29驗證實驗九:模
2、/數(shù)轉(zhuǎn)換器 (32驗證實驗十:雙色點陣發(fā)光二極管顯示年字 (34驗證實驗一:I/O地址譯碼一、實驗?zāi)康恼莆誌/O地址譯碼電路的工作原理。二、實驗原理和內(nèi)容實驗電路如圖1所示,其中74LS74為D觸發(fā)器,可直接使用實驗臺上數(shù)字電路實驗區(qū)的D觸發(fā)器,74LS138為地址譯碼器。譯碼輸出端Y0Y7在實驗臺上“I/O地址“輸出端引出,每個輸出端包含8個地址,Y0:280H287H,Y1:288H28FH,當(dāng)CPU執(zhí)行I/O 指令且地址在280H2BFH范圍內(nèi),譯碼器選中,必有一根譯碼線輸出負(fù)脈沖。例如:執(zhí)行下面兩條指令MOV DX,2A0HOUT DX,AL(或IN AL,DXY4輸出一個負(fù)脈沖,執(zhí)行
3、下面兩條指令MOV DX,2A8HOUT DX,AL(或IN AL,DXY5輸出一個負(fù)脈沖。 利用這個負(fù)脈沖控制L7閃爍發(fā)光(亮、滅、亮、滅、,時間間隔通過軟件延時實現(xiàn)。三、編程提示1、實驗電路中D觸發(fā)器CLK端輸入脈沖時,上升沿使Q端輸出高電平L7(發(fā)光二極管發(fā)光,CD端加低電平L7滅。2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境outport1equ2A0H;outport2equ2A8H;code segmentassume cs:codestart:mov dx,outport1;將端口地址2A0HDX寄存器out dx,al;DX中存放的地址2A0HAR地址寄存器地址
4、總線,;地址信號通過USB接口線經(jīng)USB模塊分解出地址信號;送到TPC-USB實驗箱,這樣A5、A4、A3三根地址線經(jīng);三八譯碼器進(jìn)行譯碼輸出Y4一個負(fù)脈沖信號(接;時鐘信號CLK,沒選中的輸出全為高。;將AL寄存器中的內(nèi)容2A0h地址端口,但本操作在;本實驗中沒意義call delay;調(diào)延時子程序(亮燈mov dx,outport2;將端口地址2A8HDX寄存器out dx,al;同上理。端口地址2A8H。A5、A4、A3三根地址線經(jīng)三;八譯碼器進(jìn)行譯碼輸出Y5一個負(fù)脈沖信號(接清0信;號/CDcall delay;調(diào)延時子程序(滅燈mov ah,1;測試有無鍵被按下。ZF=0,表示按過任
5、意鍵,并在;AL中獲得該鍵的ASCII碼。ZF=1,未按過鍵int16h;BIOS系統(tǒng)功能調(diào)用je start;相等轉(zhuǎn)start,也ZF=1表示相等mov ah,4ch;返回DOSint21h;DOS系統(tǒng)功能調(diào)用delay proc near;延時子程序mov bx,200;初始化寄存器bx為200次循環(huán)lll:mov cx,0ll:loop lldec bx;減1jne lll;判斷是否為0,不為0,轉(zhuǎn)lll繼續(xù)循環(huán);為0,順序執(zhí);行下條指令retretdelay endpcode endsend start驗證實驗二:簡單并行接口一、實驗?zāi)康?、掌握簡單并行接口的工作原理及使用方法。2、掌
6、握基本I/O接口電路的設(shè)計方法。3、掌握匯編語言I/O端口操作指令的使用方法。二、實驗內(nèi)容1、按下面圖2-1簡單并行輸出接口電路圖連接線路(74LS273插通用插座,74LS32用實驗臺上的“或門”。74LS273為八D觸發(fā)器,8個D輸入端分別接數(shù)據(jù)總線D0D7,8個Q 輸出端接LED顯示電路L0L7。2、編程從鍵盤輸入一個字符或數(shù)字,將其ASC碼通過這個輸出接口輸出,根據(jù)8個發(fā)光二極管發(fā)光情況驗證正確性。3、按下面圖2-2簡單并行輸入接口電路圖連接電路(74LS244插通用插座,74LS32用實驗臺上的“或門”。74LS244為八緩沖器,8個數(shù)據(jù)輸入端分別接邏輯電平開關(guān)輸出K0 K7,8個數(shù)
7、據(jù)輸出端分別接數(shù)據(jù)總線D0D7。4、用邏輯電平開關(guān)預(yù)置某個字母的ASC碼,編程輸入這個ASC碼,并將其對應(yīng)字母在屏幕上顯示出來。 三、編程提示1、上述并行輸出接口的地址為2A8H,并行輸入接口的地址為2A0H,通過上述并行接口電路輸出數(shù)據(jù)需要3條指令:MOV AL,數(shù)據(jù)MOV DX,2A8HOUT DX,AL通過上述并行接口輸入數(shù)據(jù)需要2條指令:MOV DX,2A0HIN AL,DX2、參考流程圖 3、參考程序1:(輸出(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境 ls273equ2a8hcode segmentassume cs:codestart:mov ah,2mov dl,0dh;回
8、車符int21hmov ah,1;等待鍵盤輸入int21hcmp al,27;判斷是否為ESC鍵ascii十進(jìn)制數(shù)27 je exit;若是則退出mov dx,ls273;若不是,從2A8H輸出其ASCII碼out dx,aljmp start;轉(zhuǎn)startexit:mov ah,4ch;返回int21hcode endsend start4、參考程序2:(輸入(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境 ls244equ2a0hcode segmentassume cs:codestart:mov dx,ls244;從2A0輸入一數(shù)據(jù)in al,dxmov dl,al;將所讀數(shù)據(jù)保存在DL
9、中mov ah,02int21hmov dl,0dh;顯示回車符int21hmov dl,0ah;顯示換行符int21hmov ah,06;是否有鍵按下mov dl,0ffhint21hjnz exitje start;若無,則轉(zhuǎn)start exit:mov ah,4ch;返回int21hcode endsend start驗證實驗三(1:可編程定時器/計數(shù)器(8253一、實驗?zāi)康恼莆?253的基本工作原理和編程方法。二、實驗內(nèi)容按圖3-1虛線連接電路,將計數(shù)器0設(shè)置為方式0,計數(shù)器初值為N(N0FH,用手動逐個輸入單脈沖,編程使計數(shù)值在屏幕上顯示,并同時用邏輯筆觀察OUT0電平變化(當(dāng)輸入N
10、+1個脈沖后OUT0變高電平。三、編程提示1、8253控制寄存器地址:283H計數(shù)器0地址:280H計數(shù)器1地址:281HCLK0連接時鐘:1MHZ 2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;* ;*8253通道0:* ;*方式0計數(shù)器實驗,在單脈沖作用下循環(huán)顯示“F”“0”,有鍵按下時結(jié)束* ;* io8253a equ283h;控制寄存器端口地址io8253b equ280h;計數(shù)器0端口地址(那計數(shù)器1端口地址就是281H,.code segmentassume cs:codestart:mov al,14h;設(shè)置8253通道0為工作方式2,二進(jìn)制計數(shù)00010100
11、B,14h mov dx,io8253a;283hout dx,almov dx,io8253b;280hmov al,0fh;送計數(shù)初值為0FHout dx,al;lll:in al,dx;讀計數(shù)初值in al,dxcall disp;調(diào)顯示子程序push dxmov ah,06h;是否有鍵按下mov dl,0ffh;輸入請求int21h;有鍵按下,ZF=0,AL中放入字符的ASCII碼;若標(biāo)志ZF=1,表示;無鍵按下pop dxjz lll;無鍵按下繼續(xù)循環(huán),有鍵按下順序執(zhí)行退出DOSmov ah,4ch;退出int21h;退出DOSdisp proc near;顯示子程序push dxa
12、nd al,0fh;首先取低四位mov dl,alcmp dl,9;判斷是否alretInputB endp;*cls proc nearmov ah,6;mov al,0;全屏幕為空白mov ch,0;左上角行號mov cl,0;左上角列號mov dh,24;右下角行號mov dl,79;右下角列號mov bh,7;卷入行屬性,正常的黑底白字int10hretcls endp;*OutputC proc nearmov dx,28ah;C口輸入,C口接74138輸出端in al,dx;將74138的輸出送入8255的C口mov OutC,al;將74138的輸出送OutCmov dh,4;輸
13、出行號mov dl,16;輸出列號j:push dx;行列號壓棧mov ah,2;置光標(biāo)位置mov bh,0;頁號0int10hmov al,OutCmov bl,01h;為留下最低一位有效位做準(zhǔn)備and bl,al;取最右一位放入blmov cl,1;shr al,cl;為取次低位做準(zhǔn)備mov OutC,al;將余下的各位存回OutCadd bl,30h;將每一位轉(zhuǎn)換成ASCII碼xchg bl,dl;將轉(zhuǎn)換成的ASCII碼存入dl,準(zhǔn)備顯示輸出mov ah,2;字符輸出int21hpop dx;取原先行列號add dl,4;改變輸出列位置cmp dl,46jb j;輸出完八位結(jié)束,否則繼續(xù)
14、輸出retOutputC endp;*code endsend start驗證實驗五(1:七段數(shù)碼管一、實驗?zāi)康恼莆諗?shù)碼管顯示數(shù)字的原理二、實驗內(nèi)容靜態(tài)顯示:按圖5-1連接好電路,將8255的A口PA0PA6分別與七段數(shù)碼管的段碼驅(qū)動輸入端ag 相連,位碼驅(qū)動輸入端S1接+5V(選中,S0、dp接地(關(guān)閉。編程從鍵盤輸入一位十進(jìn)制數(shù)字(09,在七段數(shù)碼管上顯示出來。三、編程提示1、實驗臺上的七段數(shù)碼管為共陰極,段碼采用同相驅(qū)動,輸入端加高電平,選中的數(shù)碼管亮,位碼加反相驅(qū)動器,位碼輸入端高電平選中。 2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*;*鍵盤輸入數(shù)據(jù)(0-9控制L
15、ED數(shù)碼管顯示*;*data segmentio8255a equ288h;A口io8255b equ28bh;控制字端口地址led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;0123456789mesg1db0dh,0ah,Input a num(0-9,other key is exit:,0dh,0ah,$ data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b;使8255的A口為輸出方式0mov ax,80hout dx,alsss:
16、mov dx,offset mesg1;顯示提示信息mov ah,09hint21hmov ah,01;從鍵盤接收字符int21hcmp al,0;是否小于0jl exit;若是則退出cmp al,9;是否大于9jg exit;若是則退出sub al,30h;將所得字符的ASCII碼減30Hmov bx,offset led;bx為數(shù)碼表的起始地址xlat;獲取相應(yīng)的段碼mov dx,io8255a;從8255的A口輸出out dx,aljmp sss;轉(zhuǎn)SSSexit:mov ah,4ch;退出int21hcode endsend start驗證實驗五(2:七段數(shù)碼管一、實驗?zāi)康恼莆諗?shù)碼管顯
17、示數(shù)字的原理二、實驗內(nèi)容動態(tài)顯示:按圖5-2連接好電路,七段數(shù)碼管段碼連接不變,位碼驅(qū)動輸入端S1,S0接8255C口的PC1,PC0。編程在兩個數(shù)碼管上顯示“56” 三、編程提示1、實驗臺上的七段數(shù)碼管為共陰型,段碼采用同相驅(qū)動,輸入端加高電平,選中的數(shù)碼管亮,位碼加反相驅(qū)動器,位碼輸入端高電平選中。2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*;*LED數(shù)碼管實驗*;*動態(tài)顯示56*;*data segmentio8255a equ28ah;C口io8255b equ28bh;控制字端口地址io8255c equ288h;A口led db3fh,06h,5bh,4fh,6
18、6h,6dh,7dh,07h,7fh,6fh;段碼0、1、2、3、4、5、;6、7、8、9 buffer1db6,5;存放要顯示的個位數(shù)(6和十位數(shù)(5高位在高字節(jié)單元bz dw?;位碼data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,80h;將8255設(shè)為A口輸出,C口輸出out dx,almov di,offset buffer1;di保存緩沖區(qū)首地址,該緩沖區(qū)存放數(shù)字6、5loop2:mov bh,02;位碼。02=00000010,1代表十位數(shù)位置,十位數(shù)先
19、;輸出,先亮lll:mov byte ptr bz,bh;保存當(dāng)前數(shù)字位push di;dec di;buffer1后退一個字節(jié)add di,bz;offset buffer1-1+bz確定需顯示的數(shù)字地址mov bl,di;讀取要顯示的數(shù)-bl,如5或6pop di;恢復(fù)di原值mov al,0;C口輸出0,先關(guān)掉數(shù)碼管顯示mov dx,io8255aout dx,almov bh,0;將bx高8位清零mov si,offset led;置led段碼表偏移地址為siadd si,bx;led+(5或6,得出對應(yīng)的led段碼地址-simov al,byte ptrsi;讀取對應(yīng)的led段碼mo
20、v dx,io8255c;從8255A的A口輸出led數(shù)碼,顯示數(shù)字out dx,almov al,byte ptr bz;數(shù)碼管控制。C口輸出使相應(yīng)的數(shù)碼管亮mov dx,io8255aout dx,al;-mov cx,3000delay:loop delay;延時。這種延遲,感覺不到;-mov bh,byte ptr bz;當(dāng)前位碼-bhshr bh,1;bh右移一位,為下一位顯示做準(zhǔn)備jnz lll;不為零,繼續(xù)顯示下一位數(shù);為零順序執(zhí)行,按鍵判;斷,無按鍵,繼續(xù)重復(fù)顯示數(shù)字mov dx,0ffh;輸入請求mov ah,06;若標(biāo)志ZF=0,有鍵按下;若標(biāo)志ZF=1,無鍵按下int21
21、h;je loop2;有鍵按下則退出mov dx,io8255amov al,0;關(guān)掉數(shù)碼管顯示out dx,almov ah,4ch;退出int21hcode endsend start驗證實驗五(3:七段數(shù)碼管一、實驗?zāi)康恼莆諗?shù)碼管顯示數(shù)字的原理二、實驗內(nèi)容動態(tài)顯示(選作:使用圖5-2的電路,編程在兩個數(shù)碼管上循環(huán)顯示“00-99”。 三、編程提示1、實驗臺上的七段數(shù)碼管為共陰型,段碼采用同相驅(qū)動,輸入端加高電平,選中的數(shù)碼管亮,位碼加反相驅(qū)動器,位碼輸入端高電平選中。2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*;*LED數(shù)碼管實驗*;*動態(tài)循環(huán)顯示“00-99”*;*
22、data segmentio8255a equ28ah;C口地址io8255b equ28bh;控制字端口io8255c equ288h;A口地址led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段碼0、1、2、3、4、5、6、7、8、9 buffer1db0,0;存放要顯示的個位數(shù)和十位數(shù),高位在高字節(jié)單元bz dw?;位碼data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b;將8255設(shè)為工作方式0,A口輸出mov al,80hout
23、dx,almov di,offset buffer1;設(shè)di為顯示緩沖區(qū)loop1:mov cx,030h;循環(huán)次數(shù)。計數(shù)器cx旳值,是對指令loop loop2來說的;控制這段程序loop2loop loop2,執(zhí)行30H次,即一組數(shù)據(jù)重復(fù);30H次,起著延遲緩沖作用loop2:mov bh,02;位碼。02=00000010,1代表十位數(shù)位置,十位數(shù)先輸出,先亮lll:mov byte ptr bz,bh;保存當(dāng)前位碼push didec di;buffer1后退一個字節(jié)add di,bz;offset buffer1-1+bzmov bl,di;讀取要顯示的數(shù)-blpop dimov b
24、h,0;將bx高8位清零mov si,offset led;置led段碼表偏移地址為SIadd si,bx;獲取對應(yīng)的led段碼地址mov al,byte ptrsi;讀取段碼mov dx,io8255c;自8255A的A口輸出,顯示該數(shù)字out dx,almov al,byte ptr bz;使相應(yīng)的數(shù)碼管亮mov dx,io8255a;C口輸出out dx,alpush cx;-mov cx,100;delay:loop delay;延時。感覺不到延遲效果;-pop cxmov al,00h;關(guān)掉數(shù)碼管顯示,地址A口out dx,almov bh,byte ptr bz;當(dāng)前位碼-bhsh
25、r bh,1;bh右移一位,為下一位顯示做準(zhǔn)備jnz lll;不為零,繼續(xù)顯示下一位數(shù);為零順序執(zhí)行,繼續(xù)重復(fù)顯示數(shù)字loop loop2;循環(huán)。重復(fù)執(zhí)行;-mov ax,word ptrdi;獲取緩沖區(qū)數(shù)據(jù),以下判斷是否計數(shù)到99cmp ah,09jnz set;不到9,轉(zhuǎn)setcmp al,09jnz set;不到9,轉(zhuǎn)set;-mov ax,0000;已經(jīng)計數(shù)到99,清空緩沖區(qū),為重新開始計數(shù)準(zhǔn)備movdi,almovdi+1,ah;movdi,axjmp loop1set:mov ah,01;按鍵判斷int16hjne exit;有鍵按下則轉(zhuǎn)exit,退出mov ax,word ptr
26、di;讀取緩沖區(qū)數(shù)據(jù)-axinc al;計數(shù)。計數(shù)在這進(jìn)行aaa;使用aaa調(diào)整相加結(jié)果,會將進(jìn)位值保存到ah中;-將計數(shù)值保存到數(shù)據(jù)緩沖區(qū)中movdi,al;al為個位數(shù)movdi+1,ah;ah中為十位數(shù);movdi,axjmp loop1;繼續(xù)exit:mov dx,io8255a;C口輸出mov al,0;關(guān)掉數(shù)碼管顯示out dx,almov ah,4ch;返回int21hcode endsend start驗證實驗六:競賽搶答器一、實驗?zāi)康?、了解微機(jī)化競賽搶答器的基本原理。2、進(jìn)一步學(xué)習(xí)使用并行接口。二、實驗內(nèi)容圖6為競賽搶答器(模擬的原理圖,邏輯開關(guān)K0K7代表競賽搶答按鈕07
27、號,當(dāng)某個邏輯電平開關(guān)置“1”時,相當(dāng)某組搶答按鈕按下。在七段數(shù)碼管上將其組號(07顯示出來,并使微機(jī)揚聲器響一下。 三、編程提示1、設(shè)置8255為C口輸入、A口輸出,讀取C口數(shù)據(jù),若為0表示無人搶答,若不為0則有人搶答。根據(jù)讀取數(shù)據(jù)可判斷其組號。從鍵盤上按空格鍵開始下一輪搶答,按其它鍵程序退出。2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*;*本程序為競賽搶答器*;*data segmentio8255a equ28ah;C口io8255b equ28bh;控制字端口io8255c equ288h;A口led db3fh,06h,5bh,4fh,66h,6dh,7dh,07
28、h;相應(yīng)段碼表示數(shù)碼為:0,1,2,3,4,5,6,7data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b;設(shè)8255為A口輸出,C口輸入mov ax,89h;100010001Bout dx,almov bx,offset led;使bx指向段碼表首址sss:mov dx,io8255a;從8255的C口輸入數(shù)據(jù)in al,dxor al,al;比較是否為0je sss;若為0,則表明無鍵按下,轉(zhuǎn)sssmov cl,0ffh;cl作計數(shù)器,初值為-1rr:shr al,1;右移,
29、低位移進(jìn)CFinc cljnc rr;CF不為1轉(zhuǎn)移mov al,clxlat;BX指向段碼表首址,BX+AL-AL,取顯示碼mov dx,io8255c;a口輸出相應(yīng)段碼,點亮數(shù)碼管out dx,almov dl,7;響鈴ASCII碼為07mov ah,2int21hwai:mov ah,1;帶回顯的字符輸入int21hcmp al,20h;是否為空格jne eee;不是,轉(zhuǎn)eeemov al,0;是,關(guān)滅燈mov dx,io8255cout dx,aljmp ssseee:mov ah,4ch;退出int21hcode endsend start驗證實驗七:交通燈控制一、實驗?zāi)康耐ㄟ^并行接
30、口8255實現(xiàn)十字路口交通燈的模擬控制,進(jìn)一步掌握對并行口的使用。二、實驗內(nèi)容如圖7,L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律亮滅。 三、編程提示:十字路口交通燈的變化規(guī)律要求:1、(1南北路口的綠燈、東西路口的紅燈同時亮30秒左右。(2南北路口的黃燈閃爍若干次,同時東西路口的紅燈繼續(xù)亮。(3南北路口的紅燈、東西路口的綠燈同時亮30秒左右。(4南北路口的紅燈繼續(xù)亮、同時東西路口的黃燈亮閃爍若干次。(5轉(zhuǎn)(1重復(fù)。2、參考程序:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*
31、;*十字路口紅綠燈模擬演示程序*;*端口各燈的設(shè)置:*;*1紅1黃1綠002紅2黃2綠*;*data segmentio8255a equ28ah;C口地址io8255b equ28bh;控制字端口portc1db24h,44h,04h,44h,04h,44h,04h;六個燈可能db81h,82h,80h,82h,80h,82h,80h;的狀態(tài)數(shù)據(jù)db0ffh;結(jié)束標(biāo)志data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90h;設(shè)置8255為C口輸出out dx,al
32、mov dx,io8255a;C口地址re_on:mov bx,0on:mov al,portc1bx;從0開始取燈狀態(tài)數(shù)據(jù)cmp al,0ffh;結(jié)束判斷jz re_on;結(jié)束否out dx,al;繼續(xù)點亮相應(yīng)的燈(C口輸出inc bx;下個數(shù)據(jù)mov cx,200;參數(shù)賦初值test al,21h;是否有綠燈亮,8個燈順序:紅黃綠紅紅紅黃綠-00100001 jz de1;沒有,短延時mov cx,2000;有,長延時de1:mov di,9000;di賦初值9000de0:dec di;減1計數(shù)jnz de0;di不為0,轉(zhuǎn)de0loop de1push dxmov ah,06h;按鍵判
33、斷mov dl,0ffhint21hpop dxjz on;沒有按鍵,轉(zhuǎn)到on;否則轉(zhuǎn)exit退出exit:mov ah,4ch;退出int21hcode endsend start驗證實驗8:中斷一、實驗?zāi)康?、掌握PC機(jī)中斷處理系統(tǒng)的基本原理。2、學(xué)會編寫中斷服務(wù)程序。二、實驗原理與內(nèi)容1、實驗原理PC機(jī)用戶可使用的硬件中斷只有可屏蔽中斷,由8259中斷控制器管理。中斷控制器用于接收外部的中斷請求信號,經(jīng)過優(yōu)先級判別等處理后向CPU發(fā)出可屏蔽中斷請求。IBMPC、PC/XT機(jī)內(nèi)有一片8259中斷控制器對外可以提供8個中斷源:中斷源中斷類型號中斷功能IRQ008H時鐘IRQ109H鍵盤IRQ
34、20AH保留IRQ3OBH串行口2IRQ40CH串行口1IRQ50DH硬盤IRQ60EH軟盤IRQ70FH并行打印機(jī)8個中斷源的中斷請求信號線IRQ0IRQ7在主機(jī)的62線ISA總線插座中可以引出,系統(tǒng)已設(shè)定中斷請求信號為“邊沿觸發(fā)”,普通結(jié)束方式。對于PC/AT及286以上微機(jī)內(nèi)又?jǐn)U展了一片8259中斷控制,IRQ2用于兩片8259之間級連,對外可以提供16個中斷源:中斷源中斷類型號中斷功能IRQ8070H實時時鐘IRQ9071H用戶中斷IRQ10072H保留IRQ11O73H保留IRQ12074H保留IRQ13075H協(xié)處理器IRQ14076H硬盤IRQ15077H保留TPC-USB實驗板
35、上,固定的接到了3號中斷IRQ3上,即進(jìn)行中斷實驗時,所用中斷類型號為0BH。2、實驗內(nèi)容實驗電路如圖8,直接用手動產(chǎn)單脈沖作為中斷請求信號(只需連接一根導(dǎo)線。要求每按一次開關(guān)產(chǎn)生一次中斷,在屏幕上顯示一次“TPCA Interrupt!”,中斷10次后程序退出。IRQ位于實驗箱中上部分。 三、編程提示:(或請看TPC-USB微機(jī)實驗系統(tǒng)集成開發(fā)環(huán)境;*;*中斷實驗*;*data segmentmess dbTPCA interrupt!,0dh,0ah,$inta00equ20h;8259端口:讀/寫ICW1,OCW2,OCW3inta01equ21h;8259端口:讀/寫OCW1,ICW2
36、,ICW3,ICW4data endscode segmentassume cs:code,ds:datastart:cli;關(guān)中斷mov ax,cs;CS不能直接傳送DS,必須通過AXmov ds,ax;規(guī)定:中斷服務(wù)子程序入口段基址碼段CS送DSmov dx,offset int3;規(guī)定:中斷服務(wù)程序入口偏移地址送DXmov ax,250bh;ah=25h置中斷向量,al=0BH中斷類型號(串行口2,IR3:011,;之前必須設(shè)置DS、DXint21h;in al,inta01;21H端口,讀IMR(中斷屏蔽寄存器各位and al,0f7h;11110111B允許IR3請求中斷(0允許,其
37、它位為1,屏蔽,;(IR7-IR0out inta01,al;寫中斷屏蔽字OCW1mov cx,10;為LOOP next指令設(shè)置循環(huán)次數(shù)10次,10次中斷請求;sti;開中斷l(xiāng)l:jmp ll;等待int3:;以下是中斷服務(wù)程序mov ax,data;mov ds,ax;mov dx,offset mess;取mess字符串地址mov ah,09;輸出mess字符串int21hmov al,20h;初始化20H端口,00100000Bout inta00,al;寫OCW2,送中斷結(jié)束命令EOI為001普通結(jié)束方式loop next;(CX=CX-1,判斷CX不為0轉(zhuǎn)next,否則順序執(zhí)行in al,21h;讀IMRor al,08h;00001000B屏蔽IR3請求out inta01,al;寫中斷屏蔽字OCW1sti;mov ah,4ch;返回DOSint21hnext:iret;中斷返回code endsend start驗證實驗9:模/數(shù)轉(zhuǎn)換器一、實驗?zāi)康牧私饽?數(shù)轉(zhuǎn)換的基本原理,掌握ADC0809的使用方法。二、實驗內(nèi)容1、實驗電路原理圖如圖9。通過實驗臺左下角電位器RW1輸出05V直流電壓
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 期末綜合素質(zhì)評價(含答案)-湘教版七年級數(shù)學(xué)上冊
- 滬科版高一化學(xué)必修一學(xué)案:化學(xué)鍵(解析版)
- 湖南省永州市道縣2023-2024學(xué)年七年級下學(xué)期4月期中考試數(shù)學(xué)試卷(含答案)
- 2025至2030年中國海南省休閑農(nóng)業(yè)行業(yè)發(fā)展監(jiān)測及發(fā)展戰(zhàn)略規(guī)劃報告
- 2025至2030年中國地板建材行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報告
- 2025至2030年中國牛仔褲行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報告
- 2025至2030年中國液化天然氣行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報告
- 2025至2030年中國衣架衣夾行業(yè)發(fā)展監(jiān)測及投資前景預(yù)測報告
- 當(dāng)前鐵路客運走向市場的探討途徑分析研究 交通運輸專業(yè)
- 2025至2030年中國女裝電商行業(yè)市場運行現(xiàn)狀及投資戰(zhàn)略研究報告
- 2024年湖南省桑植縣事業(yè)單位公開招聘工作人員考試題含答案
- 簡單安全施工方案(3篇)
- 2025年北京信息職業(yè)技術(shù)學(xué)院單招筆試綜合素質(zhì)試題庫含答案解析(5套共100道單選合輯)
- 文化展廳使用管理辦法
- 打字員技能測試題庫及答案
- 產(chǎn)科DIC診斷及處理
- 農(nóng)業(yè)產(chǎn)學(xué)研合作問題及解決路徑
- 2025年營養(yǎng)師(初級)專業(yè)能力模擬試題
- 預(yù)防電信詐騙管理辦法
- 防沙治沙工程初步設(shè)計
- 駕校招生團(tuán)隊培訓(xùn)
評論
0/150
提交評論