![型鍵盤顯示控制器實(shí)驗(yàn)板教師實(shí)驗(yàn)指導(dǎo)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f1.gif)
![型鍵盤顯示控制器實(shí)驗(yàn)板教師實(shí)驗(yàn)指導(dǎo)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f2.gif)
![型鍵盤顯示控制器實(shí)驗(yàn)板教師實(shí)驗(yàn)指導(dǎo)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f/644b7cc6-aa14-4b2d-8a7f-0f819d5a491f3.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、清華大學(xué)微型計(jì)算機(jī)實(shí)驗(yàn)系統(tǒng)三型鍵盤顯示實(shí)驗(yàn)板教師用實(shí)驗(yàn)指導(dǎo)(匯編部分)清華大學(xué)科教儀器廠2008年 8月目錄實(shí)驗(yàn)板介紹.錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)一8255并行口鍵盤掃描實(shí)驗(yàn) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)二8255控制數(shù)碼管顯示實(shí)驗(yàn)(一) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)三8255控制數(shù)碼管顯示實(shí)驗(yàn)(二) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)四8255控制數(shù)碼管顯示實(shí)驗(yàn)(三) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)五8255控制數(shù)碼管顯示實(shí)驗(yàn)(四) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)六8255控制鍵盤、顯示綜合實(shí)驗(yàn) .錯(cuò)誤 ! 未定義書簽。實(shí)驗(yàn)板介紹一、實(shí)驗(yàn)板原理:實(shí)驗(yàn)板由可編程并行接口8255、 6個(gè)數(shù)碼管, 16鍵小
2、鍵盤組成。通過(guò)一個(gè) 20 芯扁平電纜與主實(shí)驗(yàn)臺(tái)相連。該實(shí)驗(yàn)板可以和TPC-2003A+、 TPC-USB+、TTC-2實(shí)驗(yàn)系統(tǒng)配套使用。原理圖如下:圖 1 8255 及 20芯電纜信號(hào)圖 2 數(shù)碼顯示圖3 16 鍵鍵盤實(shí)驗(yàn)板上的 20芯接口插座提供數(shù)據(jù)總線信號(hào) D0-D0,控制信號(hào) IOR、 IOW,低位地址 A0、 A1 等,實(shí)驗(yàn)時(shí)通過(guò) 20芯扁平電纜與主實(shí)驗(yàn)臺(tái)相連。這些信號(hào)在實(shí)驗(yàn)板上都有插線孔引出,也可以用自鎖緊導(dǎo)線直接連到實(shí)驗(yàn)臺(tái)上。 8255 與數(shù)碼管之間的連線已經(jīng)接好, 8255的 PA0-PA7接數(shù)碼管的段碼 a-dp,PB0-PB5 接數(shù)碼管的位碼 0 5,實(shí)驗(yàn)時(shí)不用再接線。 82
3、55 的PC0-PC7和鍵盤的行 0行 3、列 0列 3分別有插線孔引出,實(shí)驗(yàn)時(shí)需自己連線。實(shí)驗(yàn)一8255并行口鍵盤掃描實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握 8255A編程原理。2、了解鍵盤陣列結(jié)構(gòu),學(xué)會(huì)讀取按鍵的方法。二、實(shí)驗(yàn)內(nèi)容按圖 4接線, 8255C口接鍵盤( 8255的 C0C3接鍵盤的列 0列 3, C4 C7接鍵盤的行 0行 3),片選 CS接大板上地址譯碼輸出的288h28fh 。用 20芯扁平電纜連接實(shí)驗(yàn)板與主實(shí)驗(yàn)臺(tái)上的20芯擴(kuò)展插座。圖4鍵盤掃描實(shí)驗(yàn)原理圖8255端口 A地址為: 288H端口 C地址為:28AH控制口地址為:28BH編程使得在鍵盤陣列上每按一個(gè)鍵后,微機(jī)屏幕上有相應(yīng)字
4、符顯示出來(lái),按“三、編程指南E”退出程序。1 識(shí)別鍵盤上的閉合鍵,通過(guò)采用行掃描法或行翻轉(zhuǎn)法:行掃描法是使鍵盤上某一行線為低電平,而其余行接高電平,然后讀取列值;如果列值中有某位為低電平,則表明行列交點(diǎn)處的鍵被按下;否則掃描下一行,直到掃完全部的行線為止。行反轉(zhuǎn)法識(shí)別閉合鍵時(shí),要將行線接一個(gè)并行口,先讓它工作在輸出方式,將列線也接到一個(gè)并行口,先讓它工作在輸入方式;程序通過(guò)輸出端口向全部行線上送低電平,然后讀取列線的值;如果此時(shí)有某一鍵被按下,則必定會(huì)使某一列線值為零,程序再對(duì)兩個(gè)并行端口進(jìn)行方式設(shè)置,使行線工作在輸入方式,列線工作在輸出方式,并且將剛才讀到的列線值從列線所接的并行端口輸出,再
5、讀取行線上的值;那么,在閉合鍵所在的行線上的值必定為零。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀到一對(duì)唯一的行值和列值。在我們提供的程序中就采用行反轉(zhuǎn)法來(lái)識(shí)別鍵盤按鍵。2 在程序設(shè)計(jì)時(shí),將各個(gè)鍵對(duì)應(yīng)的代碼(列值,行值)放在一個(gè)表中,程序通過(guò)查表來(lái)確定具體按下的為哪一個(gè)鍵。四、參考流程主程序流程圖:鍵盤掃描子程序流程圖:( 見下頁(yè)圖 )五參考程序:;*;* 8255薄膜按鍵實(shí)驗(yàn) *;*;ioportequ 0cc00H-280Ha8255equ ioport+288H;8255 A 口b8255equ ioport+289H;8255 B 口c8255equ ioport+28aH;8255 C 口k
6、8255equ ioport+28bH;8255 控制口data segmenttable1dw 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0hdw 07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0hchar db09ABCDEF; 字符表mesdb 0ah,0dh,PLAY ANY KEY IN THE SMALL KEYBOARD! ,0ah,0dhdbIT WILL BE ON THE SCREEN! END WITH E ,0ah,0dh,$key_in db 0hdata endsstacks
7、 segment stack; 堆??臻gdb 100 dup (); 鍵盤掃描碼表stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datastart:climov ax,datamov ds,axmov es,ax參考程序:(接上頁(yè))mov ax,stacksmov ss,axmov dx,offset mes; 顯示提示信息mov ah,09int21hmain_key:callkey;get a char in (key_in) and display itcmp byte ptr key_in,Ejnzmain_key
8、mov ax,4c00h;if (dl)=E return to EXIT!int21h; 退出key proc nearkey_loop:mov ah,1int16hjnzexit;pc 鍵盤有鍵按下則退出MOVDX,k8255mov al,81houtdx,almov dx,c8255mov al,0fhoutdx,alin al,dx; 讀行掃描值and al,0fhcmp al,0fhjz key_loop; 未發(fā)現(xiàn)有鍵按下則轉(zhuǎn)calldelay;delay for amomentmov ah,alMOVDX,k8255mov al,88houtdx,almov dx,c8255mov
9、 al,ahor al,0f0houtdx,alin al,dx; 讀列掃描值and al,0f0hcmp al,0f0hjz key_loop; 未發(fā)現(xiàn)有鍵按下則轉(zhuǎn)mov si,offset table1; 鍵盤掃描碼表首址mov di,offset char; 字符表首址mov cx,16; 待查表的表大小key_tonext:cmp ax,si;cmp (col,row) with every wordjz key_findkey;in the tabledec cxjz key_loop; 未找到對(duì)應(yīng)掃描碼add si,2incdijmp key_tonextkey_findkey:m
10、ov dl,dimov ah,02int21h; 顯示查找到的鍵盤碼mov byte ptr key_in,dlkey_waitup:MOVDX,k8255mov al,81houtdx,almov dx,c8255mov al,0fhoutdx,alin al,dx; 讀行掃描值and al,0fhcmp al,0fhjnzkey_waitup; 按鍵未抬起轉(zhuǎn)calldelay;delay for amomentretexit:mov byte ptr key_in,Eretkey endpdelay proc nearpush ax;delay 50ms-100msmov ah,0int1
11、ahmov bx,dxdelay1:mov ah,0int1ahcmp bx,dxjz delay1mov bx,dxdelay2:mov ah,0int1ahcmp bx,dxjz delay2pop axretdelay endpcode endsend start實(shí)驗(yàn)二8255控制數(shù)碼管顯示實(shí)驗(yàn)(一)一、實(shí)驗(yàn)?zāi)康?、了解七段數(shù)碼管(LED)顯示數(shù)字的原理。2、掌握用一個(gè) 8255控制數(shù)碼管顯示數(shù)字的技術(shù)。二、實(shí)驗(yàn)內(nèi)容靜態(tài)顯示:電路原理如圖5。 8255CS接地址譯碼輸出的288h28fh 。用 20芯扁平電纜連接實(shí)驗(yàn)板與主實(shí)驗(yàn)臺(tái)上的 20芯擴(kuò)展插座。8255的A口(PA0 PA6)與七段
12、數(shù)碼管的段碼輸入端a, 8255的 B口(PB0PB5)與位碼驅(qū)動(dòng)輸入端已連好,不用再接線。編程從主機(jī)鍵盤輸入一位十進(jìn)制數(shù)字(09),在七段數(shù)碼管上顯示出來(lái)。圖 5數(shù)碼管顯示4.三、編程提示1、實(shí)驗(yàn)臺(tái)上的七段數(shù)碼管為共陰型,段碼采用同相驅(qū)動(dòng),輸入端加高電平, 選中的相應(yīng)段亮,位碼加反相驅(qū)動(dòng)器,位碼輸入端高電平選中。2 、七段數(shù)碼管的字型代碼表如下表:顯示字形gefdcba段碼001111113fh1000011006h210 10115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fha
13、f g bec d3、靜態(tài)顯示參考流程圖4、靜態(tài)顯示參考程序:(程序名:);*;* 鍵盤輸入數(shù)據(jù) (0-9) 控制 LED數(shù)碼管顯示*;* 2008 年 8月為三型鍵盤顯示板修改*;*data segmentioportequ 0cc00h-0280hio8255aequ ioport+288hio8255bequ ioport+289hio8255cequ ioport+28ahio8255kequ ioport+28bhleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1db0dh,0ah,Input a num (0-9),other key
14、 is exit:,0dh,0ah, $data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255k; 使 8255的A口 B口為輸出方式mov ax,80hout dx,almov dx,io8255bmov al,0ffhout dx,alsss:mov dx,offset mesg1mov ah,09hint21hmov ah,01int21hcmp al,0jlexit; 顯示提示信息; 從鍵盤接收字符; 是否小于 0; 若是則退出exit:cmp al,9jgexitsub al
15、,30hmov bx,offset ledxlatmov dx,io8255aout dx,aljmp sssmov ah,4chint21h; 是否大于 9; 若是則退出; 將所得字符的 ASCII 碼減 30H;bx 為數(shù)碼表的起始地址; 求出相應(yīng)的段碼; 從 8255的 A口輸出段碼; 轉(zhuǎn)SSS; 返回code endsend start實(shí)驗(yàn)三8255控制數(shù)碼管顯示實(shí)驗(yàn)(二)一、實(shí)驗(yàn)?zāi)康?、了解七段數(shù)碼管(LED)顯示數(shù)字的原理。2、掌握只用一個(gè)8255控制同時(shí)顯示多位數(shù)字的技術(shù)。二、實(shí)驗(yàn)內(nèi)容動(dòng)態(tài)顯示 1:接線同實(shí)驗(yàn)二,編程在數(shù)碼管上顯示5、 6兩位數(shù)字。三、動(dòng)態(tài)顯示 1參考流程四、 動(dòng)
16、態(tài)顯示 1參考程序 :(程序名:);*;*LED數(shù)碼管實(shí)驗(yàn)*;*動(dòng)態(tài)顯示“ 56”*;*data segmentioportequ 0cc00h-0280hio8255bequ ioport+289h;8255B 口io8255kequ ioport+28bh;8255 控制口io8255aequ ioport+288h;8255A 口leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh; 段碼buffer1 db6,5; 存放要顯示的個(gè)位和十位bzdw; 位碼data endscode segmentassume cs:code,ds:datastart:
17、mov ax,datamov ds,axmov dx,io8255k; 將8255設(shè)為 A口輸出mov al,80hout dx,almov di,offset buffer1; 設(shè)di 為顯示緩沖區(qū)loop2:mov bh,02lll:mov byte ptr bz,bhpush didec diadd di, bzmov bl,di;bl 為要顯示的數(shù)pop dimov al,0mov dx,io8255bout dx,almov bh,0mov si,offset led; 置led 數(shù)碼表偏移地址為 SIadd si,bx; 求出對(duì)應(yīng)的 led 數(shù)碼mov al,byte ptr si
18、mov dx,io8255a; 自8255A的口輸出out dx,almov al,byte ptr bz; 使相應(yīng)的數(shù)碼管亮mov dx,io8255bout dx,almov cx,3000delay:loop delay; 延時(shí)mov bh,byte ptr bzshr bh,1jnz lllmov dx,0ffhmov ah,06int21hjeloop2; 有鍵按下則退出mov dx,io8255bmov al,0; 關(guān)掉數(shù)碼管顯示out dx,almov ah,4ch; 返回int21hcode endsend start實(shí)驗(yàn)四8255控制數(shù)碼管顯示實(shí)驗(yàn)(三)一、實(shí)驗(yàn)?zāi)康?、了解七
19、段數(shù)碼管(LED)顯示數(shù)字的原理。2、掌握只用一個(gè)8255控制同時(shí)顯示多位數(shù)字的技術(shù)。二、實(shí)驗(yàn)內(nèi)容動(dòng)態(tài)顯示 2:接線不變,編程在數(shù)碼管上循環(huán)顯示000000 999999計(jì)數(shù)值。三、動(dòng)態(tài)顯示 2參考流程開始顯示提示信息8255初始化調(diào)用顯示子程序顯示字符否是否 300次是調(diào)用計(jì)數(shù)子程序計(jì)數(shù)值加一否是否有鍵按下是結(jié)束返回DOS動(dòng)態(tài)顯示 2主程序四、動(dòng)態(tài)顯示 2參考程序;*;* LED 段位控制顯示實(shí)驗(yàn)(I/O) * ;開始取段碼初始地址置位碼初始值獲取段碼8255輸出段碼8255輸出位碼延時(shí)是是否顯示完 6位否關(guān)閉顯示子程序返回段碼地址加 1位碼移位數(shù)碼顯示子程序;*;ioport equ0cc
20、00h-280hPORTSEG EQU ioport+289H ; 數(shù)碼管端口地址 , 段碼地址PORTBIT EQU ioport+288H; 數(shù)碼管端口地址 , 位碼地址P8255EQU ioport+28bHdata segmentBIT1DB0;1 段顯示數(shù)字BIT2DB0;2 段顯示數(shù)字BIT3DB0;3 段顯示數(shù)字BIT4DB0;4 段顯示數(shù)字BIT5DB0;5 段顯示數(shù)字BIT6DB0;6 段顯示數(shù)字LED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH;LED段碼表, 1,2,3,4,5,6,7,8,9,0MESDBDISPLAY THE LE
21、DS,PRESS ANY KEY TO EXIT! ,0AH,0DH, $data endsstacks segment stack; 堆棧空間db 100 dup ()stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datastart:.386climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axMOVDX,OFFSET MES; 顯示提示MOVAH,09INT 21Hloop1:mov dx,p8255mov al,80hout dx,al; 設(shè)置 8255A口、 B
22、口為輸出方式mov cx,300loop2:callDISP_proc; 調(diào)用顯示程序looploop2callCHG_proc; 調(diào)用計(jì)數(shù)子程序mov ah,1int16hjzloop1; 按任意鍵退出mov ax,4c00hint21h; 退出DISP_proc proc near;顯示子程序pushapush ds; 保存寄存器值MOVAX,DATAMOVDS,AXMOVDI,OFFSET BIT1; 獲取顯示段起始地址MOVCL,01; 設(shè)置顯示位碼DIS1:MOVAL,DI; 獲取顯示數(shù)字MOVBX,OFFSET LED; 獲取段碼表起始地址XLAT; 獲取待顯示數(shù)字的段碼MOVDX
23、,PORTSEGOUTDX,AL; 輸出顯示數(shù)據(jù),段碼MOVAL,CLMOVDX,PORTBITOUTDX,AL; 輸出顯示數(shù)據(jù),位碼,打開顯示PUSHCXMOVCX,65500; 顯示時(shí)間延遲DELAY:LOOPDELAYPOPCXCMPCL,20H; 段碼顯示完否 ,6 位JZ exitINC DISHLCL,1MOVAL,00OUTDX,AL; 關(guān)閉顯示JMP DIS1; 顯示下一段碼exit:MOVDX,PORTBITMOVAL,00OUTDX,AL; 關(guān)閉顯示pop dspopa; 恢復(fù)寄存器值retDISP_proc endpCHG_proc proc nearpush cxINC
24、 BIT1;1 段數(shù)字自增CMPBIT1,10; 進(jìn)位否JL QUIT; 不進(jìn)位則退出MOVBIT1,0; 進(jìn)位, 1段數(shù)字清零INC BIT2; 進(jìn)位, 2段數(shù)字自增CMPBIT2,10JL QUITMOVBIT2,0; 進(jìn)位, 2段數(shù)字清零INC BIT3; 進(jìn)位, 3段數(shù)字自增CMPBIT3,10JL QUITMOVBIT3,0; 進(jìn)位, 3段數(shù)字清零INC BIT4; 進(jìn)位, 4段數(shù)字自增CMPBIT4,10JL QUITMOVBIT4,0; 進(jìn)位, 4段數(shù)字清零INC BIT5; 進(jìn)位, 5段數(shù)字自增CMPBIT5,10JL QUITMOVBIT5,0; 進(jìn)位, 5段數(shù)字清零INC
25、BIT6; 進(jìn)位, 6段數(shù)字自增CMPBIT6,10JL QUITMOVBIT6,0; 進(jìn)位, 6段數(shù)字清零QUIT:pop cx; 恢復(fù)寄存器值retCHG_proc endpcode endsend start實(shí)驗(yàn)五8255控制數(shù)碼管顯示實(shí)驗(yàn)(四)一、實(shí)驗(yàn)?zāi)康?、了解七段數(shù)碼管(LED)顯示數(shù)字的原理。2、掌握只用一個(gè)8255控制同時(shí)顯示多位數(shù)字的技術(shù)。3 、學(xué)習(xí)用 8253( 4)中斷定時(shí)的方法。二、實(shí)驗(yàn)內(nèi)容動(dòng)態(tài)顯示 3:實(shí)驗(yàn)板接線不變,利用主實(shí)驗(yàn)臺(tái)上8253定時(shí)中斷制作電子鐘,在數(shù)碼管上顯示分、秒。增加 8253接線如圖 6:將主實(shí)驗(yàn)臺(tái)上8253( 4) CLK0 接 1MHZ,GAT
26、E0 和 GATE1接 5V, OUT0 接 CLK1,OUT1 接 IRQ , 8253CS接 280H 287H。圖 6 8253接線圖三、動(dòng)態(tài)顯示3 參考流程:開始初始化 8253計(jì)數(shù)器 1初始化 8253計(jì)數(shù)器 1顯示提示信息保存原中斷向量設(shè)置新中斷向量設(shè)置中斷掩碼開中斷調(diào)用顯示子程序顯示字符否是否有鍵按下是恢復(fù)中斷向量關(guān)中斷結(jié)束返回DOS主程序開始保存寄存器秒個(gè)位加 1否是否為 10是秒十位加 1,個(gè)位清零否是否為 6是分個(gè)位加 1否是否為 10是分十位加 1,個(gè)位清零否是否為 6是分清零中斷結(jié)束中斷返回中斷處理程序四、動(dòng)態(tài)顯示 3參考程序;386 以上微機(jī)適用; 純dos下才能使用
27、; 或以上編譯;*;* LED 段位控制計(jì)時(shí)顯示實(shí)驗(yàn)(中斷)*;*;ioportequ 0cc00h-280HTIM_CTLEQU ioport+283H;8253 端口地址 , 控制端口TIMER0EQU ioport+280HTIMER1EQU ioport+281HMODE03EQU 36H;8253 端口數(shù)據(jù)MODE12EQU 74Hio8255kEQU ioport+28bH;8255 端口地址 , 控制端口PORTSEGEQU ioport+288H;8255B口 , 段碼地址PORTBITEQU ioport+289H;8255A口 , 位碼地址int_vectEQU73H; 中
28、斷 0-7 的向量為 :08h-0fh,中斷 8-15 的向?yàn)?:70h-77hirq_mask_2_7 EQU0b; 中斷掩碼 , 中斷 0-7 時(shí)從低至高相應(yīng)位為零, 中斷 8-15 時(shí); 第2位為零irq_mask_9_15 equ0b; 中斷 0-7 時(shí)全一 , 中斷 8-15 時(shí)從低至高相應(yīng)位為零ioport_cent equ0d000h;tpc 卡中 9054芯片的 io 地址data segmentcsregdwipregdw; 舊中斷向量保存空間MESSDB8253A TIMER0 IN MODE3! COUNT=0400H,0AH,0DHDB8253A TIMER1 IN M
29、ODE2! COUNT=0400H,0AH,0DH, $sec2DB1; 分十位sec1DB2; 分個(gè)位GAP1DB10GAP2DB10min2DB3; 秒十位min1DB4; 秒個(gè)位INTMASK DBLEDDB3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40H;LED段碼表,MESDBDISPLAY THE LEDS,PRESS ANY KEY TO EXIT!DB0AH,0DH,$data endsstacks segment stack; 堆棧空間db 100 dup ()STADW512 DUP ()TOPEQULENGTH STAstacks end
30、scode segmentassume cs:code,ds:data,ss:stacks,es:datastart:climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axMOVDX,TIM_CTLMOVAL,MODE03OUT DX,AL; 初始化計(jì)數(shù)器 0MOVDX,TIMER0MOVAL,00HOUT DX,ALMOVAL,04HOUT DX,AL; 設(shè)計(jì)數(shù)器初值,0400h, 1024分頻MOVDX,TIM_CTLMOVAL,MODE12OUT DX,AL; 初始化計(jì)數(shù)器 1MOVDX,TIMER1MOVAL,0HOUT DX,AL
31、MOVAL,04HOUT DX,AL; 設(shè)計(jì)數(shù)器初值,0400h, 1024分頻MOVDX,OFFSET MESSMOVAH,09INT 21HMOVDX,OFFSET MES; 顯示提示MOVAH,09INT 21Hmov dx,ioport_centadd dx,68h; 設(shè)置 tpc 卡中 9054芯片 io 口 , 使能中斷in ax,dxor ax,0900houtdx,axmov al,int_vect; 保存原中斷向量mov ah,35hint21hmov ax,esmov csreg,axmov ipreg,bxmov al,int_vect; 設(shè)置新中斷向量mov cx,cs
32、mov ds,cxmov dx,offset int_procmov ah,25hint21hmov ax,datamov ds,axmov es,axin al, 21h; 設(shè)置中斷掩碼mov ah,irq_mask_2_7and al,ahout21h, alin al, 0a1hmov ah,irq_mask_9_15and al,ahout0a1h, alsti; 開中斷l(xiāng)oop1:calldisp_procmov ah,1int16hjz loop1; 按任意鍵退出exit:climov ah,irq_mask_2_7not ahin al,21hor al,ahout 21h,al
33、mov ah,irq_mask_9_15not ahin al,0a1hor al,ahout 0a1h,almov al,int_vectmov dx,ipregmov cx,csregmov ds,cxmov ah,25hint21hmov ax,datamov ds,axmov dx,ioport_centadd dx,68hinax,dxand ax,0f7ffhout dx,axmov ax,4c00hint21hdisp_proc proc nearpush axpush dsMOVAX,DATAMOVDS,AXMOVDI,OFFSET sec2MOVCL,01MOVDX,io82
34、55kMOVal,80hout dx,aldisp_proc_disp:MOVAL,DIMOVBX,OFFSET LEDXLATMOVDX,PORTSEGOUTDX,ALMOVAL,CLMOVDX,PORTBITOUTDX,ALPUSHCXMOVCX,0A000Hdisp_proc_delay:LOOPdisp_proc_delayPOPCXCMPCL,20H; 恢復(fù)中斷掩碼; 恢復(fù)原中斷向量; 設(shè)置 tpc卡中 9054芯片 io 口 , 關(guān)閉中斷; 退出; 時(shí)間延遲JZ disp_proc_exitINC DISHLCL,1MOVAL,00OUTDX,ALJMPdisp_proc_disp
35、disp_proc_exit:MOVDX,PORTBITMOVAL,00OUTDX,ALpop dspop axretdisp_proc endpint_proc proc far; 中斷調(diào)用clipush axpush ds; 保存寄存器值MOVAX,DATAMOVDS,AXINC SEC2CMPSEC2,10JL QUITMOVSEC2,0INC SEC1CMPSEC1,6JL QUITMOVSEC2,1MOVSEC1,0INC MIN2CMPMIN2,10JL QUITMOVMIN2,0INC MIN1CMPMIN1,6JL QUITMOVMIN1,0QUIT:mov al,20h;Se
36、nd EOIout 0a0h,almov cx,0ffffhloopx1:looploopx1; 延時(shí)out20h,almov cx,0ffffhloopx:looploopx; 延時(shí)pop dspop ax; 恢復(fù)寄存器值stiiret; 中斷返回int_proc endpcode endsend start實(shí)驗(yàn)六8255控制鍵盤、顯示綜合實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)集中了鍵盤、顯示實(shí)驗(yàn)的內(nèi)容,是一次綜合的復(fù)習(xí)和提高。二、實(shí)驗(yàn)內(nèi)容1、 8255C口接鍵盤( 8255的 C0C3接鍵盤的列 0列 3,C4C7接鍵盤的行 0行 3), CS接實(shí)驗(yàn)臺(tái)地址譯碼輸出的 288h28fh 。用 20芯扁平電纜
37、連接實(shí)驗(yàn)板與主實(shí)驗(yàn)臺(tái)上的20芯擴(kuò)展插座。8255A的端口 A地址為: 288H端口 B地址為:289H端口 C地址為:28AH控制口地址為:28BH2、編程 1:編程使得在鍵盤陣列上每按一個(gè)鍵,6位數(shù)碼管上顯示出相應(yīng)字符,它們的對(duì)應(yīng)關(guān)系如下:鍵盤顯示鍵盤顯示0088119922Aa33Bb44CC55Dd66EE77FF3、編程2:中斷編程在編程 1電路基礎(chǔ)上,增加電路連線如圖,將實(shí)驗(yàn)臺(tái)上GATE1接 5V,OUT0 接 CLK1, OUT1 接 IRQ , 8253CS接8253 CLK0280H 287H。接 1MHZ, GATE0 和編程設(shè)計(jì)一個(gè)電子年歷。由 8253中斷定時(shí)(每 1秒增加一天),鍵盤控制電子年歷的啟停及初始值的預(yù)置。電子年歷顯示格式如下:XX XX XX.由左向右分別為年、月、日要求具有如下功能:、 C鍵:清除,顯示全零。、 A鍵:?jiǎn)?dòng),電子年歷計(jì)時(shí)。、 D鍵:停止,電子年歷停止計(jì)時(shí)。、 F鍵:設(shè)置年、月、日值。輸入時(shí)依次為年、月、日,同時(shí)應(yīng)有判斷輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時(shí)工程承包合同模板()
- 個(gè)人信貸合同樣本「簡(jiǎn)化版」
- 中小企業(yè)投資合同模板及格式要求
- 臨時(shí)攤位租賃合同簡(jiǎn)易范本
- 二手車輛轉(zhuǎn)讓合同書
- 個(gè)人住宅租賃合同模板范本
- BOT項(xiàng)目合同風(fēng)險(xiǎn)管理
- 二手房交易合同(二)
- 二手房屋購(gòu)買合同標(biāo)準(zhǔn)文本
- 臨時(shí)工勞動(dòng)合同模板及管理規(guī)定
- 商業(yè)與公積金貸款政策
- 時(shí)政述評(píng)培訓(xùn)課件
- 2022屆高三體育特長(zhǎng)生家長(zhǎng)會(huì)
- 不對(duì)外供貨協(xié)議
- 2024屆高考作文主題訓(xùn)練:時(shí)評(píng)類(含解析)
- 260噸汽車吊地基承載力驗(yàn)算
- 公司新員工三級(jí)安全教育培訓(xùn)(車間級(jí))
- 北師大版高三數(shù)學(xué)選修4-6初等數(shù)論初步全冊(cè)課件【完整版】
- 老子道德經(jīng)全文講解學(xué)習(xí)課件
- 企業(yè)更名通知函
- 經(jīng)大量臨床實(shí)驗(yàn)證明,空氣負(fù)離子能有效治療心腦血管疾病
評(píng)論
0/150
提交評(píng)論