版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微機(jī)原理與接口技術(shù)實(shí)驗(yàn)課指導(dǎo)教師郝立新接口技術(shù)是把由處理器、存儲器等組成的基本系統(tǒng)與外部設(shè)備連接起來,從而實(shí)現(xiàn)CPU與外部設(shè)備通信的一門技術(shù)。微機(jī)的應(yīng)用是隨著外部設(shè)備的不斷更新和接口技術(shù)的不斷發(fā)展而深入到各行各業(yè),任何微機(jī)應(yīng)用開發(fā)工作都離不開接口的設(shè)計(jì)、選用及連接。微機(jī)應(yīng)用系統(tǒng)需要設(shè)計(jì)的硬件是一些接口電路,所要編寫的軟件是控制這些接口電路按要求工作的驅(qū)動程序。微機(jī)原理與接口技術(shù)實(shí)驗(yàn)課
實(shí)驗(yàn)一字符串排序?qū)嶒?yàn)二基本輸入輸出接口實(shí)驗(yàn)三8259中斷控制器實(shí)驗(yàn)四8254定時/計(jì)數(shù)器實(shí)驗(yàn)五8255并行接口控制器實(shí)驗(yàn)六ADC0809模/數(shù)轉(zhuǎn)換器實(shí)驗(yàn)七DAC0832數(shù)/模轉(zhuǎn)換器*實(shí)驗(yàn)八8251串行接口控制器*實(shí)驗(yàn)一字符串排序?qū)嶒?yàn)?zāi)康?.熟悉匯編語言程序的框架結(jié)構(gòu),掌握匯編語言上機(jī)操作過程。2.學(xué)會INT21H功能調(diào)用,掌握人機(jī)對話的設(shè)計(jì)方法。3.進(jìn)一步掌握主、子程序的設(shè)計(jì)方法。4.學(xué)會Tddebug調(diào)試環(huán)境和Turbodebug的使用。字符串排序?qū)嶒?yàn)內(nèi)容設(shè)計(jì)一字符串排序程序:(1)當(dāng)屏幕上顯示“PLESAEENTRYSTRING”提示信息,從鍵盤輸入一字符串;(2)對該字符串以ASCII碼從小到大進(jìn)行排序;(3)在屏幕上顯示排好序的字符串。字符串排序程序?qū)嶒?yàn)方法(1)用INT21H的09號顯示字符串功能調(diào)用
顯示提示信息(2)用INT21H的0A號輸入字符串功能調(diào)用
輸入字符串至輸入緩沖區(qū)(3)對輸入緩沖區(qū)的字符串以ASCII碼
從小到大進(jìn)行排序(4)用INT21H的09號顯示字符串功能調(diào)用
顯示排好序的字符串字符串選擇排序設(shè)計(jì)思想(1)將第一個數(shù)取出作為當(dāng)前最小值,與其余N-1個數(shù)比較;若其余數(shù)比當(dāng)前最小值小則兩者交換,否則不交換;全部比較完,則得到N個數(shù)中的最小值,寫到串前列。(2)對剩下的N-1個數(shù)重復(fù)(1)這一步,找到N-1個數(shù)中的最小值。(3)再重復(fù)(2),直到N個數(shù)全部排列好為止。實(shí)驗(yàn)程序清單
;TITLEBUBBLFSORTSTACK1SEGMENTSTACKDB64DUP(0)STACK1ENDSDATASEGMENTPROMPTDB0DH,0AH,'PLEASEENTRYSTRING',0DH,0AH,'$'CRLFDB0DH,0AH,'$' CHARLABELBYTECHARHDB60CHARNDB?CHARFDB60DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1BEGINPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXAGAIN:LEADX,PROMPTMOVAH,9INT21HLEADX,CHARMOVAH,0AHINT21HMOVCL,CHARNORCL,CLJZDONECALLSORTJMPAGAINDONE:RETBEGINENDPSORTPROCXORCH,CHMOVBX,CXMOVSI,OFFSETCHARFMOVBYTEPTR[SI+BX],‘$’CLDBIGLOOP:MOVAL,[SI]DECCXJCXZDISPPUSHCXINCSIPUSHSISMALLOOP:CMPAL,[SI]JBENEXTXCHGAL,[SI]NEXT:INCSILOOPSMALLOOPPOPSIMOV[SI-1],ALCALLDISPPOPCXJMPBIGLOOPDISP:MOVDX,OFFSETCRLFMOVAH,9INT21HMOVDX,OFFSETCHARFMOVAH,9INT21HRETSORTENDPCODEENDSENDBEGIN實(shí)驗(yàn)步驟及要求
(1)輸入源程序
.ASM文件(2)編譯程序
.OBJ文件(3)連接程序
.EXE文件(4)調(diào)試運(yùn)行程序運(yùn)行當(dāng)前可執(zhí)行程序調(diào)試程序1:實(shí)模式調(diào)試窗口進(jìn)行調(diào)試調(diào)試程序2:DOS環(huán)境進(jìn)行調(diào)試實(shí)模式調(diào)試窗口進(jìn)行調(diào)試(1)
View\Cpu
(2)代碼顯示區(qū)單擊右鍵\點(diǎn)擊為MixedBoth,為MixedNo,(3)在寄存器顯示區(qū)點(diǎn)擊
Ctrl+R
切換16位/32位通用寄存器顯示(4)執(zhí)行完MOVDS,AX,點(diǎn)擊View\Cpu,使屏幕下方的數(shù)據(jù)顯示區(qū)為DS的內(nèi)容(5)F7單步執(zhí)行F4執(zhí)行到光標(biāo)處F9運(yùn)行程序
Ctrl+Break
終止程序執(zhí)行
Alt+X
退出TDDOS環(huán)境進(jìn)行調(diào)試輸入命令:DEBUG文件名.EXE
a.反匯編命令U格式:U[地址]或U[地址范圍]
b.檢查和修改寄存器內(nèi)容命令R格式:R或R[寄存器名]
c.顯示內(nèi)存命令D格式:D[地址]或D[地址范圍]d.修改存儲單元內(nèi)容命令E格式:E[地址][內(nèi)容表]或E[地址]e.跟蹤與顯示命令T格式:T[=地址][條數(shù)]f.運(yùn)行命令G格式:G[=地址][地址1[地址2…]]
h.結(jié)束DEBUG返回到DOS命令QDOS狀態(tài)再返回到windows狀態(tài),輸入EXIT命令實(shí)驗(yàn)二基本輸入輸出接口1.了解微機(jī)PCI系統(tǒng)總線的結(jié)構(gòu)。2.掌握地址譯碼電路的一般設(shè)計(jì)方法。3.掌握基本I/O接口電路的設(shè)計(jì)方法,熟練匯編語言I/O端口操作指令的使用。實(shí)驗(yàn)內(nèi)容
1.利用三態(tài)緩沖器74LS245、鎖存器74LS574設(shè)計(jì)微機(jī)總線和外部設(shè)備的數(shù)據(jù)通道,實(shí)現(xiàn)微機(jī)對外部輸入數(shù)據(jù)的讀取和對輸出數(shù)據(jù)的輸出。用開關(guān)及LED顯示單元和數(shù)據(jù)燈作為輸入和輸出顯示設(shè)備,將讀到開關(guān)的數(shù)據(jù)顯示在數(shù)據(jù)燈上。
2.在完成實(shí)驗(yàn)內(nèi)容1的基礎(chǔ)上,自行編制程序完成:根據(jù)輸入開關(guān)的某一位的開關(guān)狀態(tài),決定LED顯示單元數(shù)據(jù)燈的不同顯示方式。TD-PIT++實(shí)驗(yàn)系統(tǒng)硬件環(huán)境
PCI總線擴(kuò)展卡和TD-PIT++實(shí)驗(yàn)平臺USB總線PCI總線內(nèi)存總線AGP總線CPU北橋芯片顯卡顯示器內(nèi)存PCI槽PCI槽南橋芯片IED接口硬盤鍵盤鼠標(biāo)FlashBIOSUSB設(shè)備PCI卡微機(jī)實(shí)驗(yàn)箱...TD-PIT++實(shí)驗(yàn)平臺系統(tǒng)總線單元電路和實(shí)驗(yàn)單元電路系統(tǒng)總線單元電路
信號名稱含義XD[31:0]32位數(shù)據(jù)總線XA[31:2]32位地址總線XMER、XMEW、XIOR、XIOW存儲器讀寫信號、I/O讀寫信號IOY0、IOY1、IOY2、IOY3I/O空間片選信號MYO、MY1、MY2、MY3存儲器空間片選信號BE0、BE1、BE2、BE332位數(shù)據(jù)字節(jié)使能信號HOLD、HLDA總線保持請求和總線保持響應(yīng)信號INTR中斷請求信號(上升沿有效)CLK系統(tǒng)時鐘信號CLK=1.041667MHz片選信號同偏移地址空間對應(yīng)關(guān)系I/O片選信號偏移地址范圍實(shí)際地址范圍MEM片選信號實(shí)際地址范圍IOY000-3FH3000-303FHMY0D80000-D8FFFFIOY140-7FH3040-307FHMY1IOY280-BFH3080-30BFHMY2IOY3C0-FFH30C0-30FFHMY3實(shí)驗(yàn)系統(tǒng)向PC機(jī)申請了接口實(shí)驗(yàn)所需的配置資源。其中包括:256字節(jié)的I/O地址空間16MB的存儲地址空間一個中斷請求線實(shí)驗(yàn)系統(tǒng)的I/O地址的設(shè)計(jì)32位系統(tǒng)總線IOM/信號,該信號為低電平時指示當(dāng)前操作為I/O操作,為高電平指示當(dāng)前操作為存儲器操作,它和譯碼器不同的連接可以用來區(qū)分是I/O端口譯碼還是存儲器端口譯碼32位總線地址是由A2開始,所以地址是以4字節(jié)邊界對齊的?,F(xiàn)在本機(jī)分配的I/O端口起始地址為3000H,設(shè)計(jì)地址譯碼電路,主要是針對低8位地址線譯碼,得到偏移在00H~FFH之間的端口微機(jī)接口電路中,常采用74LS138譯碼器來實(shí)現(xiàn)I/O端口或存儲器的地址譯碼。輸入輸出接口設(shè)計(jì)
輸入接口一般用三態(tài)緩沖器實(shí)現(xiàn),外部設(shè)備輸入數(shù)據(jù)通過三態(tài)緩沖器,通過數(shù)據(jù)總線傳送給微機(jī)系統(tǒng)。輸出接口一般用鎖存器實(shí)現(xiàn)
輸入輸出接口設(shè)計(jì)
32位I/O接口單元
實(shí)驗(yàn)說明及步驟
將開關(guān)K[7:0]的數(shù)據(jù)通過輸入數(shù)據(jù)通道讀入CPU的寄存器,然后再通過輸出數(shù)據(jù)通道將該數(shù)據(jù)輸出到數(shù)據(jù)燈顯示,該程序循環(huán)運(yùn)行,直到按動鍵盤上任意按鍵再退出程序。(1)確認(rèn)從PC機(jī)引出的兩根扁平電纜已經(jīng)連接在實(shí)驗(yàn)平臺上。(2)自行設(shè)計(jì)并連接實(shí)驗(yàn)線路。
a.32位I/O接口單元與系統(tǒng)總線單元的連接
1.CS
IOY0,BE3-BE0
BE3-BE02.IOR
XIOR,IOW
XIOW(數(shù)據(jù)線已內(nèi)部連接)b.32位I/O接口單元與開關(guān)及LED顯示單元的連接1.I7-I0
K7-K02.O7-O0
D7-D0(3)編輯ASM程序,注意使用正確的端口地址,然后編譯鏈接。(4)運(yùn)行程序,撥動開關(guān),觀看數(shù)據(jù)燈顯示是否正確。參考程序清單
IOY0EQU3000HSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,IOY0
INAL,DXOUTDX,ALMOVAH,1INT16HJZSTARTQUIT:MOVAX,4C00H
INT21HCODEENDSENDSTARTDEBUG常用命令輸出命令O格式:O[端口地址][字節(jié)值]向指定端口地址輸出一個字節(jié)。輸入命令I(lǐng)格式:I[端口地址]從指定端口地址輸入一個字節(jié)。自行編制程序完成:根據(jù)輸入開關(guān)的某一位的開關(guān)狀態(tài),決定LED顯示單元數(shù)據(jù)燈的不同顯示方式。K7=1右移,k6=1左移IOY0EQU3000HSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,IOY0
INAL,DXTestal,10000000b
Jnz
aaTestad,01000000b
JnzbbCc:MOVAH,1INT16HJZSTARTQUIT:MOVAX,4C00H
INT21Haa:movcx,8MOVDX,IOY0
moval,10000000baa1:outdx,alCalldelay
Roral,1Loopaa1
Jmpccbb:movcx,8MOVDX,IOY0
moval,00000001bbb1:outdx,alCalldelay
Rolal,1Loopbb1
JmpccDelay:pushcx
movcx,07ffhDd1:pushcx
movcx,0fffffhloop$popcx loopdd1 popcxretCODEENDSENDSTART
點(diǎn)陣LED選作實(shí)驗(yàn)R0~R15為行控制,L0~L15為列控制,給行送一個“1”,給列送一個“0”,則相應(yīng)的LED點(diǎn)亮。L0L1L2L3L4L5L6L7L8L9101112131415R0R1R2R3R4R5R6R7R8R9101112131415NUAADW0000H,0000H,7C7FH,1206H,110CH,1218H,7C7FH,0000HDW0000H,7C3FH,1240H,1140H,1240H,7C3FH,0000H,0000H;HLXLED.ASMIOY0EQU3000H;片選IOY0對應(yīng)的端口始地址I032_1EQU3000HI032_2EQU3001HI032_3EQU3002HI032_4EQU3003H
STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTNUAADW0000H,0000H,7C7FH,1206H,110CH,1218H,7C7FH,0000HDW0000H,7C3FH,1240H,1140H,1240H,7C3FH,0000H,0000HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMAIN:MOVCX,500DISP: PUSHCXMOVSI,OFFSETNUAAMOVBX,1111111111111110BMOVCX,16
DISP1:MOVAX,[SI]MOVDX,I032_1OUTDX,ALMOVDX,I032_2MOVAL,AHOUTDX,AL
MOVAX,BXMOVDX,I032_3OUTDX,ALMOVDX,I032_4MOVAL,AHOUTDX,AL
CALLDALLY
ROLBX,1INCSIINCSILOOPDISP1POPCXLOOPDISP
MOVAH,1;判斷是否有按鍵按下
INT16HJZMAIN;無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT:MOVAX,4C00H;結(jié)束程序退出
INT21HDALLYPROCNEAR;軟件延時子程序
PUSHCXMOVCX,50D1:MOVAX,0FFFFHD2:DECAXJNZD2LOOPD1POPCX RET DALLYENDPCODEENDSENDSTART
實(shí)驗(yàn)三8259中斷控制器實(shí)驗(yàn)?zāi)康?/p>
(1)學(xué)習(xí)中斷控制器8259的工作原理。(2)掌握可編程控制器8259的應(yīng)用編程方法。實(shí)驗(yàn)內(nèi)容
利用PC機(jī)給實(shí)驗(yàn)系統(tǒng)分配的中斷線,設(shè)計(jì)一個單中斷應(yīng)用。使用單次脈沖模擬中斷產(chǎn)生。編寫中斷處理程序,在顯示器屏幕上顯示一個字符。實(shí)驗(yàn)原理--8259控制器的介紹
實(shí)驗(yàn)原理--8259A的命令字管理8級中斷,通過級連,能構(gòu)成多達(dá)64級的矢量中斷系統(tǒng)。選擇中斷請求方式和中斷優(yōu)先模式。管理功能包括:1)記錄各級中斷源請求,2)判別優(yōu)先級,確定是否響應(yīng)及響應(yīng)哪一級中斷,3)響應(yīng)中斷時,向CPU傳送中斷類型號。初始化命令字ICW1-ICW4操作命令字OCW1-OCW3初始化命令字ICW1-ICW4ICW1決定中斷請求信號為電平觸發(fā)還是邊沿觸發(fā)。ICW28259的基址中斷向量號
初始化命令字ICW1-ICW4ICW3識別主8259設(shè)備連接到從8259的級聯(lián)信號
ICW4選擇特殊全嵌套或全嵌套模式,使能中斷自動結(jié)束方式。
操作命令字OCW1-OCW3OCW1中斷屏蔽操作寄存器,可屏蔽相應(yīng)的中斷信號。OCW2改變中斷優(yōu)先級和發(fā)送中斷結(jié)束命令。OCW3使能特殊屏蔽方式,設(shè)置中斷查詢方式,允許讀出中斷請求寄存器和當(dāng)前中斷服務(wù)寄存器。
實(shí)驗(yàn)原理--PC微機(jī)系統(tǒng)中的8259
80x86系列PC微機(jī)系統(tǒng)中兩片8259A中斷控制器,經(jīng)級連可以管理15級硬件中斷。主片8259端口地址使用020H和021H;從片8259端口地址使用0A0H和0A1H。中斷號功能中斷向量號中斷向量地址主8259IRQ0日時鐘/計(jì)數(shù)器008H0020H~0023H主8259IRQ1鍵盤09H0024H~0027H主8259IRQ2接從片82590AH0028H~002BH主8259IRQ3串行口20BH002CH~002FH主8259IRQ4串行口10CH0030H~0033H主8259IRQ5并行口20DH0034H~0037H主8259IRQ6軟盤0EH0038H~003BH主8259IRQ7并行口10FH003CH~003FH從8259IRQ8實(shí)時鐘70H01C0H~01C3H從8259IRQ9保留71H01C4H~01C7H從8259IRQ10保留72H01C8H~01CBH從8259IRQ11保留73H01CCH~01CFH從8259IRQ12保留74H01D0H~01D3H從8259IRQ13協(xié)處理器中斷75H01D4H~01D7H從8259IRQ14硬盤控制器76H01D8H~01DBH從8259IRQ15保留77H01DCH~01DFH8259單中斷應(yīng)用實(shí)驗(yàn)實(shí)驗(yàn)程序清單INTR_IVADDEQU01C8H;INTR對應(yīng)的中斷矢量地址
INTR_OCW1EQU0A1H;INTR對應(yīng)的OCW1地址
INTR_OCW2EQU0A0H;INTR對應(yīng)的OCW2地址INTR_IMEQU0FBH;中斷屏蔽字11111011BSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示退出提示
MOVAH,09HINT21HCLI;關(guān)中斷
MOVAX,0000H;替換INTR的中斷矢量MOVES,AXMOVDI,INTR_IVADD
;INTR對應(yīng)的中斷矢量地址01C8H
MOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址
MOVAX,OFFSETMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口偏移地址
ADDDI,2MOVAX,ES:[DI]MOV
CS_BAK,AX;保存INTR原中斷處理程序入口段地址
MOVAX,SEGMYISR
MOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口段地址
MOVDX,INTR_OCW1;設(shè)置中斷屏蔽寄存器,打開INTR的屏蔽位
INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字
ANDAL,INTR_IMOUTDX,AL
STI;開中斷WAIT1:MOVAH,1;判斷是否有按鍵按下
INT16HJZWAIT1;無按鍵則跳回繼續(xù)等待,有則退出QUIT:CLI;關(guān)中斷
MOVAX,0000H;恢復(fù)INTR原中斷矢量
MOVES,AXMOVDI,INTR_IVADD;INTR對應(yīng)的中斷矢量地址
MOVAX,IP_BAK;恢復(fù)INTR原中斷處理程序入口偏移地址
MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址
MOVES:[DI],AXMOVDX,INTR_OCW1;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字
MOVAL,IM_BAKOUTDX,ALSTI;開中斷
MOVAX,4C00H;返回到DOS
INT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXMOVAL,39HMOVAH,0EHINT10HMOVAL,20HINT10HOVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令
MOVAL,20HOUTDX,ALMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART實(shí)驗(yàn)四8254定時/計(jì)數(shù)器實(shí)驗(yàn)內(nèi)容(1)定時應(yīng)用實(shí)驗(yàn)。編寫程序,應(yīng)用8254的定時功能,實(shí)現(xiàn)一個1Hz的輸出。(2)計(jì)數(shù)應(yīng)用實(shí)驗(yàn)*。編寫程序,應(yīng)用8254的計(jì)數(shù)功能,用開關(guān)模擬計(jì)數(shù),使每當(dāng)按動KK1-5次后,產(chǎn)生一次計(jì)數(shù)中斷,并在屏幕上顯示一個字符‘5’。8254---可編程定時/計(jì)數(shù)器8254的工作方式(1)方式0:計(jì)數(shù)到0結(jié)束,輸出正躍變信號方式。(2)方式1:硬件可重觸發(fā)單穩(wěn)方式。(3)方式2:頻率發(fā)生器方式。(4)方式3:方波發(fā)生器方式。(5)方式4:軟件觸發(fā)選通方式。(6)方式5:硬件觸發(fā)選通方式。
8254---方式控制字D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇讀/寫格式選擇工作方式選擇計(jì)數(shù)碼制選擇00-計(jì)數(shù)器001-計(jì)數(shù)器110-計(jì)數(shù)器211-讀出控制字標(biāo)志00-鎖存計(jì)數(shù)值01-讀/寫低8位10-讀/寫高8位11-先讀/寫低8位再讀/寫高8位000-方式0001-方式1010-方式2011-方式3100-方式4101-方式50-二進(jìn)制數(shù)1-十進(jìn)制數(shù)定時應(yīng)用實(shí)驗(yàn)
編寫程序,將8254的計(jì)數(shù)器2設(shè)置為方式3,用1.8432mHz作為CLK2時鐘。計(jì)數(shù)初值為18432,相當(dāng)對CLK2進(jìn)行18432分頻,在OUT2輸出頻率為100Hz的時鐘。再將OUT2連接到計(jì)數(shù)器0的CLK0,設(shè)置計(jì)數(shù)器0也工作在方式3,計(jì)數(shù)初值為100,相當(dāng)是進(jìn)行100分頻。則在OUT0得到1Hz的輸出。8254定時應(yīng)用實(shí)驗(yàn)接線計(jì)數(shù)初值公式為n=fCLKi÷fOUTifCLKi是輸入時鐘脈沖的頻率,fOUTi是輸出波形的頻率。定時應(yīng)用實(shí)驗(yàn)程序清單
IOY0EQU3000H;片選IOY0對應(yīng)的端口始地址MY8254_COUNT0EQUIOY0+00H*4;8254計(jì)數(shù)器0端口地址MY8254_COUNT1EQUIOY0+01H*4;8254計(jì)數(shù)器1端口地址MY8254_COUNT2EQUIOY0+02H*4;8254計(jì)數(shù)器2端口地址MY8254_MODEEQUIOY0+03H*4;8254控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8254_MODE;初始化8254工作方式
MOVAL,0B6H;10110110計(jì)數(shù)器2,方式3OUTDX,ALMOVDX,MY8254_COUNT2;裝入計(jì)數(shù)初值
MOVAL,00H;18432分頻
OUTDX,ALMOVAL,48HOUTDX,ALMOVDX,MY8254_MODE;初始化8254工作方式
MOVAL,36H;00110110計(jì)數(shù)器0,方式3OUTDX,ALMOVDX,MY8254_COUNT0;裝入計(jì)數(shù)初值
MOVAL,64H;100分頻
OUTDX,ALMOVAL,00HOUTDX,ALQUIT:MOVAX,4C00H;結(jié)束程序退出
INT21HCODEENDSENDSTART計(jì)數(shù)應(yīng)用實(shí)驗(yàn)
編寫程序,將8254的計(jì)數(shù)器0設(shè)置為方式0,計(jì)數(shù)值為十進(jìn)制5,用微動開關(guān)KK1+作為CLK0時鐘,OUT0連接INTR,每當(dāng)KK1-按動5次后產(chǎn)生中斷請求,在屏幕上顯示字符“5”。參考程序流程圖計(jì)數(shù)應(yīng)用實(shí)驗(yàn)程序清單INTR_IVADDEQU01C8H;INTR對應(yīng)的中斷矢量地址INTR_OCW1EQU0A1H;INTR對應(yīng)PC機(jī)內(nèi)部8259的OCW1地址INTR_OCW2EQU0A0H;INTR對應(yīng)PC機(jī)內(nèi)部8259的OCW2地址INTR_IMEQU0FBH;INTR對應(yīng)的中斷屏蔽字IOY0EQU3000H;片選IOY0對應(yīng)的端口始地址MY8254_COUNT0EQUIOY0+00H*4;8254計(jì)數(shù)器0端口地址MY8254_COUNT1EQUIOY0+01H*4;8254計(jì)數(shù)器1端口地址MY8254_COUNT2EQUIOY0+02H*4;8254計(jì)數(shù)器2端口地址MY8254_MODEEQUIOY0+03H*4;8254控制寄存器端口地址
STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTCS_BAKDW?;保存INTR原中斷處理程序入口段地址的變量IP_BAKDW?;保存INTR原中斷處理程序入口偏移地址的變量IM_BAKDB?;保存INTR原中斷屏蔽字的變量STR1DB'COUNT:$';顯示的字符串DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCLIMOVAX,0000H;替換INTR的中斷矢量
MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中斷處理程序入口偏移地址
MOVAX,OFFSETMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口偏移地址
ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中斷處理程序入口段地址
MOVAX,SEGMYISRMOVES:[DI],AX;設(shè)置當(dāng)前中斷處理程序入口段地址
MOVDX,INTR_OCW1;設(shè)置中斷屏蔽寄存器,打開INTR的屏蔽位
INAL,DXMOVIM_BAK,AL;保存INTR原中斷屏蔽字
ANDAL,INTR_IMOUTDX,ALSTIMOVDX,OFFSETSTR1;顯示字符串
MOVAH,9INT21H
MOVDX,MY8254_MODE;初始化8254工作方式
MOVAL,10H;00010000計(jì)數(shù)器0,方式0OUTDX,ALMOVDX,MY8254_COUNT0;裝入計(jì)數(shù)初值
MOVAL,4OUTDX,ALWAIT1:MOVAH,1;判斷是否有按鍵按下
INT16HJZWAIT1;無按鍵則跳回繼續(xù)等待,有則退出QUIT:CLIMOVAX,0000H;恢復(fù)INTR原中斷矢量
MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢復(fù)INTR原中斷處理程序入口偏移地址
MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢復(fù)INTR原中斷處理程序入口段地址
MOVES:[DI],AXMOVDX,INTR_OCW1;恢復(fù)INTR原中斷屏蔽寄存器的屏蔽字
MOVAL,IM_BAKOUTDX,ALSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中斷處理程序MYISRPUSHAXMOVAL,35HMOVAH,0EHINT10HMOVAL,20HINT10H
MOVDX,MY8254_COUNT0;重裝計(jì)數(shù)初值
MOVAL,4OUTDX,ALOVER:MOVDX,INTR_OCW2;向PC機(jī)內(nèi)部8259發(fā)送中斷結(jié)束命令
MOVAL,20HOUTDX,ALMOVAL,20HOUT20H,ALPOPAXIRET
MYISRENDP
CODEENDSENDSTART實(shí)驗(yàn)五8255并行接口控制器(1)掌握8255的工作方式及應(yīng)用編程。(2)學(xué)習(xí)按鍵掃描的原理及電路接法。(3)掌握利用8255完成按鍵掃描及顯示。實(shí)驗(yàn)內(nèi)容連接8255與鍵盤掃描單元,編寫程序完成按鍵掃描功能,并將讀到的按鍵值依次顯示在數(shù)碼管上。
8255并行接口控制器簡介方式0--基本輸入/出方式方式1--選通輸入/出方式方式2--雙向選通工作方式D7D6D5D4D3D2D1D01A組方式選擇00方式001方式110方式2A口0輸出1輸入C口高4位0輸出1輸入B組方式選擇0方式01方式1B口0輸出1輸入C口低4位0輸出1輸入8255工作方式控制字格式D7D6D5D4D3D2D1D00不用C口的位選擇位0000位1001位2010位3011位4100位5101位6110位7111置位/復(fù)位0復(fù)位1置位8255C口按位置/復(fù)位控制字格式
LED數(shù)碼顯示單元
字符01234567段碼3FH06H5BH4FH66H6DH7DH07H字符89ABCDEF段碼7FH6FH77H7CH39H5EH79H71HLED共陰極數(shù)碼管段碼表
LED數(shù)碼管有共陰極與共陽極兩種。
共陰極數(shù)碼管的8個發(fā)光二極管陰極接在一起。其共陰極端接地平,其余八個引腳加高電平才能點(diǎn)亮發(fā)光二極管;
共陽極數(shù)碼管的8個發(fā)光二極管陽極接在一起。其共陽極端接高電平,其余八個引腳加低電平才能點(diǎn)亮發(fā)光二極管。LED數(shù)碼管靜態(tài)顯示和動態(tài)顯示方式
靜態(tài)顯示方式:共陰極或共陽極點(diǎn)連接在起接地(低電平)或+5V(高電平);每位的段碼線(a-dp)與一外8位的并行口相連。
每一位可獨(dú)立顯示,只要在該位的段碼線上保持段碼電平,該位就能保持相應(yīng)的顯示字符。動態(tài)顯示方式將所有位的段碼線并聯(lián)在一起,由一個8位并行口控制顯示字符;各位共陰極或共陽極點(diǎn)則由另一并行口控制所顯示的位。要想每位顯示不同的字符,就必須采用動態(tài)掃描方式,即在每一瞬間只使某位數(shù)碼管顯示相應(yīng)字符。在此期間,段碼的并行口輸出相應(yīng)字符段碼,位碼的并行口輸出該位共陰極或共陽極點(diǎn)的控制電平,以保證該位顯示相應(yīng)字符。
LED數(shù)碼顯示單元
LED數(shù)碼顯示單元4X4小鍵盤單元簡介
鍵盤的工作方式有編程掃描方式、定時掃描方式和中斷掃描方式。鍵盤接口編程的四個基本功能1.去抖動2.被按鍵的識別和鍵碼的產(chǎn)生按鍵識別有掃描法和反轉(zhuǎn)法兩種方法3.確定所按下的鍵進(jìn)行相應(yīng)處理4.判別鍵是否釋放實(shí)驗(yàn)步驟及要求
(1)確認(rèn)從PC機(jī)引出的兩根扁平電纜已經(jīng)連接在實(shí)驗(yàn)平臺上。(2)根據(jù)實(shí)驗(yàn)內(nèi)容設(shè)計(jì)實(shí)驗(yàn)電路并進(jìn)行連接:a.8255單元與系統(tǒng)總線單元的連線
1.D7-D0
XD7-XD02.CS
IOY0,A1-A0
XA3-XA23.RD
XIOR,WR
XIOWb.8255的端口與鍵盤及數(shù)碼管顯示單元的連線
1.PA7-PA0
Dp-A(段碼線)2.PB7-PB2
L1-L6(位碼線)3.PC7-PC4
Y4-Y1(行線)4.PC3-PC0
X4-X1(列線)(3)根據(jù)實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)電路編寫程序,然后編譯鏈接。(4)運(yùn)行程序,按動實(shí)驗(yàn)臺小鍵盤,觀察CRT、數(shù)碼管顯示是否正確。參考實(shí)驗(yàn)程序清單
IOY0EQU3000H;片選IOY0對應(yīng)的端口始地址PA55EQUIOY0+00H*4;8255的A口地址PB55EQUIOY0+01H*4;8255的B口地址PC55EQUIOY0+02H*4;8255的C口地址P55CTLEQUIOY0+03H*4;8255的控制寄存器地址DATA SEGMENTTABLE1DB11H,12H,14H,18H;鍵盤的各鍵的鍵值(行值、列值)DB21H,22H,24H,28HDB41H,42H,44H,48HDB81H,82H,84H,88HLEDDB3FH,06H,5BH,4FH;LED數(shù)碼管的共陰極段碼DB66H,6DH,7DH,07HDB7FH,6FH,77H,7CHDB39H,5EH,79H,71H,00HCHARDB‘0123456789ABCDEF’;字符的ASCII碼表MESDB'Pressanykeyonthesmallkeyboard!',0DH,0AHDB'Presskeytodisplayontheled!',0DH,0AH,'$'MESSDB'Pressmainkeyboardanykeytoexit!',0DH,0AH,0DH,0AH,'$'KEYCDB?;控制功能鍵的鍵值KEYNDB?;數(shù)字鍵的序號KEYBUFDB6DUP(10H)DATAENDSSTACSEGMENTPARASTACKDB256DUP(?)STACENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;顯示提示信息MOVAH,9INT21HMOVDX,OFFSETMESSMOVAH,9INT21HLOP1:CALLTESTKEY;調(diào)用鍵盤掃描子程序CALLDISP;調(diào)用數(shù)碼管顯示程序MOVAH,0BH;檢查鍵盤輸入狀態(tài)INT21HORAL,ALJZLOP1QUIT:MOVAX,4C00HINT21HTESTKEYPROC;鍵盤掃描子程序KEY0:MOVAL,81H;10000001B,8255的A口、B口輸出MOVDX,P55CTL;行PC4-7輸出、列PC0-3輸入OUTDX,ALWAIT1:CALLDISPMOVDX,PC55;使行線全為低MOVAL,00000000BOUTDX,ALINAL,DX;取列線值CMPAL,00001111B;有鍵按下嗎?JZWAIT1;無鍵按下,繼續(xù)等待
PUSHAX;暫存列值MOVCX,0FFFFH;延時去抖動LP2:LOOPLP2KEY1:MOVDX,P55CTLMOVAL,88H;10001000BOUTDX,AL;行線PC4-7為輸入,列線PC0-3為輸出MOVDX,PC55;列線值反轉(zhuǎn)輸出
POPAX
OUTDX,ALINAL,DX;再取行值NOTAL;取反形成鍵值MOVKEYC,AL;存入KEYC單元MOVSI,OFFSETTABLE1;識別被按鍵MOVCX,16MOVDL,00HKEY2:CMPAL,[SI]JZKEY3INCSIINCDLLOOPKEY2JMPKEYENDKEY3:MOVKEYN,DL;數(shù)字鍵存入KEYN單元MOVBX,OFFSETCHAR;在CRT上顯示鍵號字符MOVAL,KEYNXLATMOVDL,ALMOVAH,02HINT21HMOVSI,OFFSETKEYBUF+1;存放數(shù)字鍵到輸入緩沖區(qū)MOVDI,OFFSETKEYBUFMOVCX,5KEY4:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPKEY4MOVAL,KEYNMOV[DI],AL;判斷鍵釋放MOVAL,81H;10000001B,8255的A口、B口輸出MOVDX,P55CTL;行PC4-7輸出、列PC0-3輸入OUTDX,ALWAIT2:CALLDISPMOVDX,PC55;使行線全為低MOVAL,00000000B OUTDX,ALINAL,DX;取列線值CMPAL,00001111B;鍵釋放嗎?JNZWAIT2;鍵未釋放,繼續(xù)等待KEYEND:RETTESTKEYENDPDISPPROC;數(shù)碼管顯示子程序MOVCL,10000000B;顯示初位L1=1MOVSI,OFFSETKEYBUF;指向鍵盤輸入緩沖區(qū)DIS2:MOVAL,[SI]LEABX,LEDXLAT;換碼MOVDX,PA55OUTDX,AL;輸出段碼MOVDX,PB55MOVAL,CLOUTDX,AL;輸出位碼CALLDELAYINCSIRORCL,1;下一位輸出
CMPCL,02HJNZDIS2RETDISPENDPDELAYPROCNEAR;延時子程序PUSHCXMOVCX,0FFFFHLOOP$POPCXRETDELAYENDPCODEENDSENDSTART實(shí)驗(yàn)五_2步進(jìn)電機(jī)實(shí)驗(yàn)
所謂步進(jìn),就是指每給步進(jìn)電機(jī)一個遞進(jìn)脈沖,步進(jìn)電機(jī)各繞組的通電順序就改變一次,即電機(jī)轉(zhuǎn)動一次。根據(jù)步進(jìn)電機(jī)控制繞組的多少可以將電機(jī)分為三相、四相和五相。實(shí)驗(yàn)平臺連接的步進(jìn)電機(jī)為四相八拍電機(jī),電壓為DC12V,其勵磁線圈及其勵磁順序如圖及表所示。
四相:AABBBCCCDDDA
對步進(jìn)電機(jī)的轉(zhuǎn)動方向、速度、角度進(jìn)行調(diào)節(jié)
步進(jìn)電機(jī)轉(zhuǎn)動方向速度角度的調(diào)節(jié)步距角
對應(yīng)一個脈沖信號,電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示實(shí)驗(yàn)平臺連接的步進(jìn)電機(jī)為四相八拍電機(jī),電壓為DC12Vθ=360度/96步=3.75度步進(jìn)電機(jī)正轉(zhuǎn):以步序遞增依次輸出表中數(shù)據(jù)
反轉(zhuǎn):以步序遞減依次輸出表中數(shù)據(jù)速度:改變每步的停留時間角度:步序輸出的次數(shù)x
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)老機(jī)構(gòu)派遣護(hù)理人員勞務(wù)合同范本4篇
- 2025版美容院面部護(hù)理產(chǎn)品獨(dú)家銷售合同4篇
- 二零二五版美容院智能設(shè)備租賃服務(wù)合同4篇
- 2025年《家居布置服務(wù)合同》
- 2025年教科新版選擇性必修1歷史下冊月考試卷含答案
- 2025年人教新起點(diǎn)選修6歷史下冊月考試卷含答案
- 二零二五年度智能家電采購合同框架2篇
- 二零二五年度臨時避雨設(shè)施防雨棚租賃合同
- 2025年人教版選修歷史下冊月考試卷
- 2025年冀少新版選修4歷史下冊階段測試試卷含答案
- 射頻在疼痛治療中的應(yīng)用
- 和平精英電競賽事
- 四年級數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來投資可行性研究報告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會
- 彈簧分離問題經(jīng)典題目
- 部編版高中歷史中外歷史綱要(下)世界史導(dǎo)言課課件
評論
0/150
提交評論