微型計算機原理與接口技術(shù)實驗課講義_第1頁
微型計算機原理與接口技術(shù)實驗課講義_第2頁
微型計算機原理與接口技術(shù)實驗課講義_第3頁
微型計算機原理與接口技術(shù)實驗課講義_第4頁
微型計算機原理與接口技術(shù)實驗課講義_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗一 匯編語言編輯環(huán)境與調(diào)試命令的認識一、實驗?zāi)康?、熟悉EDIT編寫匯編程序的環(huán)境;2、學(xué)習(xí)debug調(diào)試命令。二、實驗儀器TDN86/51教案實驗系統(tǒng),計算機三、實驗內(nèi)容與步驟<1)、用記事本或 EDIT進行匯編程序編輯可編輯匯編程序的環(huán)境很多,記事本和 EDIT是其中常用的兩種方法。進入記事本很簡單,這里不再介紹。進入EDIT的方法:開始→運行→ command→進入DOS界面→edit回車→進入 EDIT編輯環(huán)境→編輯匯編程序→程序完成后以“文件名 .asm”<文件名不能是中文,一定要是字母,而字母不能超過 8個,asm是擴展名)存盤。 b5E2RGbCAP.asm文件是不能運行的,需要把它變成可執(zhí)行文件 <.exe)。它的變化過程是:Masm

link.asm→→→.obj→→→.exe練習(xí)1:在EDIT中編寫一個程序,實現(xiàn)數(shù)據(jù)段中的兩個段Z中。并以 dadd.asm文件名保存。 p1EanqFDPw

32位數(shù)

X、Y

相加,結(jié)果存到數(shù)據(jù)<2)、目標(biāo)文件 <.obj)、可執(zhí)行文件 <.exe)的產(chǎn)生運行masm程序,產(chǎn)生 .obj文件,并且檢查程序是否有語法錯誤。如果有語法錯誤,會有提示,在哪一行有什么樣的錯誤 <是英文提示)。根據(jù)提示,再進入 EDIT中,打開源文件進行修改,直到?jīng)]有語法錯誤為止。 DXDiTa9E3d運行 link程序,產(chǎn)生 .exe可執(zhí)行文件。通過運行可執(zhí)行文件,觀察該程序是否能實現(xiàn)相應(yīng)的功能。如若不能,進入 debug進行調(diào)試。RTCrpUDGiT<3)、debug調(diào)試工具debug是為匯編語言設(shè)計的一種調(diào)試工具,它通過單步、設(shè)置斷點等方式為匯編語言程序員提供了非常有效的調(diào)試手段。 5PCzVD7HxA1、debug程序的調(diào)用在DOS的提示符下,可鍵入命令:C>debug

路徑文件名.exe<回車)其中,文件名是被調(diào)試文件的名字 <注意:該文件一定要是 .exe文件)。如用戶鍵入文件名,則 debug將指定的文件裝入存儲器中,用戶可對其進行調(diào)試。如果未鍵入文件名,則用戶可以用debug命令N和L把需要的文件裝入存儲器后在進行調(diào)試。 jLBHrnAILg在debug程序調(diào)入后,將出現(xiàn)提示符 -,此時就可用 debug命令來調(diào)試程序。2、debug的主要命令① 顯示存儲單元的命令 D,格式為:-D地址 從指定地址起顯示 80個字節(jié)的內(nèi)容;-D范圍 顯示所指定范圍內(nèi)的內(nèi)容,指定范圍為起始地址和終止地址;-D顯示從上一個 D命令的最后一個單元后面的 80個字節(jié)的內(nèi)容,或者在 D未使用過的情況下,顯示 DS:0100為起始的內(nèi)容。 xHAQX74J0X例如,按指定范圍顯示存儲單元內(nèi)容的方法為:-d100120其中100120給出顯示存儲單元的范圍。這里沒有指定段地址, D命令自動顯示 DS段的內(nèi)容。② 修改存儲單元內(nèi)容的命令輸入命令 E,有兩種格式如下:-E地址[內(nèi)容表]用指定的內(nèi)容表去修改指定地址開始的存儲器中內(nèi)容例如-EDS:120F3A5’XYZ’96表示用F3、A5、’X’、’Y’、’Z’、96共6個字節(jié)代替了 DS:120至DS:125中的內(nèi)容-E地址 逐個單元修改內(nèi)容例如-ECS:100屏幕顯示為:18E4:010089.-用戶可以鍵入 ’78’,修改次內(nèi)容,再鍵入空格鍵顯示下一個內(nèi)容,不修改時可用空格鍵跳過,逐個修改存儲器內(nèi)容,直到回車鍵結(jié)束。 LDAYtRyKfE③ 填入命令格式 F-F范圍<內(nèi)容表) 將內(nèi)容表中內(nèi)容填入所指定的范圍。例如-F18E4:0200L1000將0200H單元開始的 16個字節(jié)全部填入 0。若內(nèi)容表中字節(jié)數(shù)超過指定范圍,則忽略超過項,若內(nèi)容表中字節(jié)數(shù)小于指定范圍,則反復(fù)填入,直到填滿所有單元為止。 Zzz6ZB2Ltk④ 檢查和修改寄存器命令 R格式有三種:-R顯示CPU內(nèi)所有寄存器內(nèi)容和標(biāo)志位狀態(tài)-R寄存器名 顯示和修改某一個寄存器內(nèi)容例如-RAX 屏幕顯示:AX1200: ;AX當(dāng)前內(nèi)容為 1200,若不修改則按回車鍵,否則鍵入要修改的內(nèi)容。如:-RBXBX0369059F則把BX寄存器的內(nèi)容修改為 059F。RF顯示和修改標(biāo)志位內(nèi)容例如 -RF屏幕顯示:OVDNEINGZRACPECY —此時,如不修改其內(nèi)容可按 Enter鍵,否則,可鍵入欲修改的內(nèi)容,如:OVDNEINGZRACPECY —PONZDINV即可,可見鍵入的順序可以是任意的。⑤ 運行命令 G格式為:-G[=地址1][地址2[地址3 ]]其中,地址 1指定了運行的起始地址,如不指定則從當(dāng)前的 CS:IP開始運行。后面的地址為斷點地址,當(dāng)指令執(zhí)行到斷點時,就停止執(zhí)行并顯示當(dāng)前所有寄存器及標(biāo)志位的內(nèi)容,和下一條將要執(zhí)行的指令。dvzfvkwMI12/35⑥ 跟蹤命令 T格式有兩種:-T=地址 單條指令跟蹤,執(zhí)行指定地址的一條指令,并顯示 CPU所有寄存器內(nèi)容,標(biāo)志位的狀態(tài),及下條指令的地址和內(nèi)容。若命令中沒有指定地址,則從當(dāng)前 CS:IP開始執(zhí)行。rqyn14ZNXI-T=地址N,N為多條指令跟蹤,從指定地址開始執(zhí)行指令,共執(zhí)行指定的 N條后停止,每執(zhí)行一條就顯示 CPU中所有寄存器內(nèi)容,標(biāo)志位的狀態(tài)及下條指令的地址和內(nèi)容。EmxvxOtOco⑦匯編命令 A格式為:-A地址該命令允許鍵入?yún)R編語言語句,并能把它們匯編成機器代碼,相繼地存放在從指定地址開始的存儲區(qū)中,必須注意: debug把鍵入的數(shù)字均看成十六進制數(shù),所以如要鍵入十進制數(shù),則其后應(yīng)加以說明。 SixE2yXPq5⑧反匯編命令 U有兩種格式:-U地址 從指定地址開始,反匯編 32個字節(jié),若沒有指定地址,則接著上一個 U命令繼續(xù)向下反匯編,若沒有用過 U命令,則從 CS:0100開始反匯編。 6ewMyirQFL-U范圍 對指定范圍的存儲單元反匯編,可指定起始地址,結(jié)束地址,也可指定起始地址及長度。例如:–U1CE2:0110011A或–U1CE2:0110L0B 效果是一樣的。⑨命名命令 N命名命令 N常與裝入命令 L一起使用如:–N路徑文件名.exe–L–可把文件名.exe裝入存儲器。⑩退出debug命令Q格式為:–Q它退出debug,返回DOS。例:在debug中,匯編一段程序,實現(xiàn)兩個 32位數(shù)的加法,12345678H+3456789AH=?用E命令在 DS:0120存儲單元開始存放 78H、56H、34H、12H、9AH、78H、56H、34H,kavU42VRUs用匯編命令 A編寫一段程序如下:Movax,[0120h]Movdx,[0122h]Addax,[0124h]Adcdx,[0126h]Mov[0128h],axMov[012ah],dx然后用G命令運行該程序段3/35G=起始地址 終止地址最后用D命令查看結(jié)果DDS:0120012C練習(xí)2:在debug中,匯編一段程序,實現(xiàn)兩個32位數(shù)的減法,3456789Ah-12345678h=?y6v3ALoS89實驗二 匯編語言程序的編輯與調(diào)試實驗一、實驗?zāi)康?、學(xué)會用EDIT編寫匯編語言程序;2、學(xué)會使用 MASM產(chǎn)生目標(biāo)文件和可執(zhí)行文件;3、掌握在DEBUG下匯編程序的調(diào)試。二、實驗儀器TDN86/51教案實驗系統(tǒng),計算機三、實驗內(nèi)容與步驟1、內(nèi)容在BCD1單元中,壓縮存放著兩個 BCD碼?,F(xiàn)編寫一程序,將壓縮的 BCD碼轉(zhuǎn)變成兩個非壓縮的BCD碼,分別存放到 result和result+1單元中。M2ub6vSTnP2、步驟①在EDIT環(huán)境下編寫能實現(xiàn)上述功能的匯編源程序,并以文件名為 BCD1.ASM保存。②執(zhí)行 MASM.EXE 文件,檢查程序中是否有語法錯誤;若有錯,則返回到 EDIT中,打開源程序進行修改,直到無語法錯誤為止,同時產(chǎn)生相應(yīng)的目標(biāo)文件。 0YujCfmUCw③執(zhí)行LINK.EXE 文件,產(chǎn)生相應(yīng)的可執(zhí)行文件;④打開 DEBUG 調(diào)試環(huán)境,裝入相應(yīng)的可執(zhí)行文件,并用反匯編命令檢查可執(zhí)行文件是否已裝入;⑤單步運行每條指令,觀察運行結(jié)果;⑥整個程序運行完成后,到指定的存儲單元中觀察運行結(jié)果是否符合要求。四、思考題1、執(zhí)行MASM.EXE 文件的主要作用是什么?2、在實驗中,你用了哪些 DEBUG命令,目的是什么?實驗三 綜合程序的設(shè)計、編制及調(diào)試一、實驗?zāi)康?、掌握分支、循環(huán)、子程序調(diào)用等基本的程序結(jié)構(gòu);2、學(xué)習(xí)綜合程序的設(shè)計、編制及調(diào)試。二、實驗儀器TDN86/51教案實驗系統(tǒng),計算機三、實驗內(nèi)容與步驟1、內(nèi)容在數(shù)據(jù)段的 buffer字單元中存放著一個 16位二進制數(shù),編寫一個程序把 buffer中的內(nèi)容用十六進制顯示出來。 eUts8ZQVRd2、步驟①程序流程圖②按流程圖編寫程序4/35③上機調(diào)試,實現(xiàn)題目要求的功能四、思考題編程顯示 F000:0000存儲單元的內(nèi)容,顯示形式為:“ F000:0000 90”。畫出流程圖,寫出源代碼,上機調(diào)試通過,實現(xiàn)相應(yīng)功能。 sQsAEJkW5T附件1:實驗源程序datasegmentstring1db0dh,0ah,'pleaseinput16-bitbinarynumber',0dh,0ah,'$'string2db0dh,0ah,'yourinputhasmistake.'string3db0dh,0ah,'doyouwanttoinputagain(Y/N>?',0dh,0ah,'$'string4db'binarytohexadecimal:',0dh,0ah,'$'

GMsIasNXkATIrRGchYzgdata endsstacksegmentstack again:movdx,offsetstring2dw256dup(?> movah,09htoplabelword int21hstackends l5:movah,08hcodesegment int21hassumecs:code,ds:data,ss:stack andal,0dfhstart:movax,data cmpal,'Y'movds,ax jznextmovax,stack jmpexitmovss,ax l4:callhtodismovsp,offsettop movdx,offsetstring3next:movdx,offsetstring1 movah,09hmovah,09h int21hint21h jmpl5movcx,16 exit:movah,4chxorbx,bx int21hrota:shlbx,1 htodisprocmovah,01h movdx,offsetstring4int21h movah,09handal,0fh int21hjzrota1 movch,4cmpal,1 l2:movcl,4jnzagain rolbx,clorbx,01h moval,blrota1:looprota andal,0fhmovdl,'B' addal,30hmovah,02h cmpal,39hint21h jbel1movdl,0dh addal,07hint21h l1:calldisplaymovdl,0ah decchint21h jnzl2jmpl4 movdl,'H'5/35movah,2movah,2int21hint21hretrethtodisendpdisplayendpdisplayproccodeendsmovdl,alendstart附件2:思考題源程序datasegmentstringdb0dh,0ah,'pleaseinputaddress',0dh,0ah,'$'7EqZcWLZNXstring1db0dh,0ah,0dh,0ah,'doyouwanttoinputagain(y/n>?',0dh,0ah,'$'lzq7IGf02Edataendsstacksegmentstackdw256dup(?>toplabelwordstackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovdl,''movds,axint21hmovax,stackmovdi,8movss,axl6:movbl,es:[si]movsp,offsettopcallhtodisbnext:movdx,offsetstringincsimovah,9decdiint21hjnzl6callrecimovdx,offsetstring1moves,bxmovah,9movdl,':'int21hmovah,2movah,8int21hint21hcallreciandal,0dfhmovsi,bxcmpal,'Y'movdl,''jnzexitmovah,2jmpnextint21hexit:movah,4chmovdi,8int21hl5:movbl,es:[si]htodisbproccallhtodisbmovch,2incsimovcl,4decdil3:rolbl,cljnzl5moval,blmovdl,'-'andal,0fhmovah,2addal,30hint21hcmpal,39h2/35jbel4 l8:shlbx,claddal,07h movah,1l4:movdl,al int21hmovah,2 subal,30hint21h cmpal,9hdecch jbel7jnzl3 andal,0dfhmovdl,'' subal,7movah,2 l7:orbl,alint21h decchret jnzl8htodisbendp retreciproc reciendpxorbx,bx codeendsmovch,4 end startmovcl,4實驗四 DOS系統(tǒng)功能調(diào)用實驗一、實驗?zāi)康?、學(xué)習(xí)DOS系統(tǒng)功能調(diào)用的使用方法;2、重點掌握鍵盤輸入和輸出顯示的 DOS系統(tǒng)功能調(diào)用的方法。二、實驗儀器TDN86/51教案實驗系統(tǒng),計算機三、實驗內(nèi)容和步驟無論是用戶程序還是 DOS系統(tǒng)本身,都離不開輸入 /輸出操作,為了方便用戶, PCDOS系統(tǒng)將輸入/輸出管理程序編成一系列子程序,不僅系統(tǒng)可以使用,用戶也可以像調(diào)子程序一樣方便地使用它們。調(diào)用系統(tǒng)提供的子程序,通常稱為系統(tǒng)功能調(diào)用。 DOS系統(tǒng)功能調(diào)用的方式是通過執(zhí)行一條軟中斷指令 INT 21H 實現(xiàn)的。當(dāng)寄存器 AH中設(shè)置不同的值時,該指令將完成不同的功能,我們稱 AH中設(shè)置的內(nèi)容為功能號。通過下面的編程練習(xí),學(xué)會 DOS系統(tǒng)功能 1、2、7、8、9、A的調(diào)用方法。 zvpgeqJ1hk1、內(nèi)容從鍵盤上輸入一組字符串,將其送入輸入緩沖區(qū),把字符串中小寫的字符轉(zhuǎn)換成大寫后,再顯示這組字符串。流程圖如下:NrpoJac3v12、步驟①按流程圖編寫程序②上機調(diào)試,實現(xiàn)題目要求的功能思考題:把上題中輸入字符串中的最小字符和最大字符分別顯示出來。附件:datasegmentstring1db0dh,0ah,'pleaseinputstring',0ah,0dh,'$'1nowfTG4KIstring2db0dh,0ah,'doyouwanttoinputstringagain(Y/N>?',0ah,0dh,'$'fjnFLDa5Zobufferdb40h,?buffer1db40hdup(?>dataends2/35codesegmentassumecs:code,ds:datastart:movax,datamovds,axagain:movdx,offsetstring1movah,9int21hmovdx,offsetbuffermovah,0ahint21hmoval,buffer+1cbwmovbx,offsetbuffer1addbx,axmovcx,axmovdl,0dhmovbyteptr[bx],'$'movah,2movdx,offsetbuffer1int21hmovah,9movdx,offsetbuffer1int21hmovah,9movbx,offsetbuffer1int21hl1:moval,[bx]movdx,offsetstring2cmpal,'a'movah,9jbl2int21hcmpal,'z'movah,1jal2int21hsubal,20handal,0dfhmovbyteptr[bx],alcmpal,'Y'l2:incbxjzagainloopl1movah,4chmovdl,0ahint21hmovah,2codeendsint21hendstart實驗五綜合編程練習(xí)一、實驗?zāi)康木C合運用分支、循環(huán)、子程序和 DOS系統(tǒng)功能調(diào)用編寫程序;二、實驗儀器TDN86/51教案實驗系統(tǒng),計算機三、實驗內(nèi)容和步驟1、內(nèi)容從鍵盤輸入一個夾帶有若干個空格的字符串,顯示第一個空格的位置 <thefirstblankpositionis:)和字符串長度(thelengthofthestringis:>,開始的空格不計算在字符串長度內(nèi)。若輸入的字符串中沒有空格,顯示“thereisn’tanyblankinthestring”提示,同時顯示該字符串的長度。完成后提示是否還要繼續(xù)<doyouwanttoinputstringagain(Y/N>?),按Y繼續(xù),其他退出。編寫一程序?qū)?/35現(xiàn)上述功能。tfnNhnE6e52、步驟自己畫出流程圖,寫出符合要求的程序,上機調(diào)試通過。四、思考題如若要顯示字符串中空格的個數(shù),上述程序如何修改。假定有一最大長度為80個字符的字符串已定義為字節(jié)變量STRING,試編寫一程序段,找出第一個空格的位置<00H至4FH表示),并顯示出來。統(tǒng)計該串不包括前導(dǎo)空的實際長度<不包括回車符),統(tǒng)計結(jié)果顯示出來。HbmVN777sLdatasegmentstring1db0dh,0ah,'pleaseinputstring',0dh,0ah,'$'V7l4jRB8Hsstring2db80db?string3db80dup(?>string4db0dh,0ah,'thestringhasnotblank',0dh,0ah,'$'83lcPA59W9string5db0dh,0ah,'doyouwanttoinputstringagain(Y/N>?',0dh,0ah,'$'mZkklkzaaPstring6db0dh,0ah,'thefirstblankpositionis:$'string7db0dh,0ah,'thelengthofthestringis:$'dataendsstacksegmentstackmovdx,offsetstring4dw256dup(?>movah,9toplabelwordint21hstackendsjmpl4codesegment。*************************************assumecs:code,ds:data,ss:stackl1:movdx,offsetstring6start:movax,datamovah,9movds,axint21hmovax,stackcalldisplaymovss,ax。************************************movsp,offsettopl4:movdx,offsetstring7again:movdx,offsetstring1movah,9movah,9int21hint21hcalllength1movdx,offsetstring2movdx,offsetstring5movah,0ahmovah,9int21hint21hmoval,string2+1movah,1cbwint21hmovcx,axandal,0dfhmoval,''cmpal,'Y'xorbx,bxjzagainnext:cmpal,string3[bx]exit:movah,4chjzl1int21hincbx。***********************************loopnextdisplayproc2/35pushcxpushbxmovch,2pushsil3:movcl,4pushaxrolbl,clmovbl,string2+1movdl,blmovsi,offsetstring3anddl,0fhmoval,''cmpdl,9l7:cmpal,[si]jal2jnzl6adddl,30hdecbljmpdis1incsil2:adddl,37hcmpbyteptr[si],'$'dis1:movah,2jzl6int21hjmpl7decchl6:calldisplayjnzl3popaxmovdl,'H'popsimovah,2popbxint21hretpopcxlength1endpretcodeendsdisplayendpendstartlength1proc實驗六中斷特性及8259應(yīng)用編程實驗一、實驗?zāi)康?、認識TDN86/51系統(tǒng)的中斷特性。2、掌握8259中斷控制器的工作原理。3、掌握8259可編程中斷控制器的應(yīng)用編程。4、學(xué)習(xí)掌握 8259級聯(lián)方式的使用方法。5、學(xué)習(xí)在接口實驗單元上構(gòu)造連接實驗電路的方法。二、實驗設(shè)備1、TDN86/51教案實驗系統(tǒng),計算機2、排線、導(dǎo)線若干三、實驗內(nèi)容及步驟(一) 系統(tǒng)中的 8259芯片1、8259可編程中斷控制器介紹中斷控制器8259A是Intel公司專為控制優(yōu)先級中斷而設(shè)計開發(fā)的芯片。它將中斷源優(yōu)先級排隊、辨別中斷源以及提供中斷向量的電路集于一片中,因此無需附加任何電路,只需對8259A進行編程,就可以管理8級中斷,并選擇優(yōu)先模式和中斷請求方式,即中斷結(jié)構(gòu)可以由用戶編程來設(shè)定。同時,在不需增加其他電路的情況下,通過多片 8259A的級聯(lián),能構(gòu)成多達64級的矢量中斷系統(tǒng)。 AVktR43bpw8259A 的編程,就是根據(jù)應(yīng)用需要將初始化命令字 ICW1~ICW4 和工作命令字OCW1~OCW3分別寫入初始化命令寄存器組和工作命令寄存器組。寫初始化命令字 ICW的流程如圖 6-1所示,ICW1~ICW4 各命令字格式如表 6-1所示,OCW1~OCW3各命令字格式如圖2/356-2所示ORjBnOwcEdICW1D01:需要ICW40:不要ICW4D11:單片82590:多片8259D28086/8088中不各用,設(shè)為0中斷請求信號位觸發(fā)方式含D3義1:電平觸發(fā)0:邊沿觸發(fā)D4ICW1標(biāo)志位:1D58086/8088中不D6用,設(shè)為0D7系統(tǒng)設(shè)13H定值系統(tǒng)口20H地址2、系統(tǒng)中的 8259A芯片

表6-18259A的初始化命令字ICWICW2ICW3<主)ICW3<從)ICW41:8086/8088與主片IRQi對模式應(yīng)的從片的識0:8080/8085設(shè)為0別碼,IRQ0為模式000,IRQ1為1:自動EOI001,IRQ70:正常EOI為1111:主82591:IRQi線上0:從8259有級聯(lián)從片1:緩沖方式0:無級聯(lián)從片0:非緩沖方式T7~T3中斷類1:特殊嵌套方型號的高5位不用式由用戶來設(shè)定0:一般嵌套方式不用08H--0DH21H21H21H系統(tǒng)中的 8259A芯片工作于單片方式,但可由用戶擴展接成級聯(lián)方式。其線路如圖 6-3所示。圖中的圈點表示此為排針形式引出腳。系統(tǒng)啟動時, 8259A被初始化,其初始化是通過系統(tǒng)中的初始化程序設(shè)置初始化命令字 ICW來實現(xiàn)的。系統(tǒng)初始化時,規(guī)定 0#和4#中斷源分別提供給時鐘和與PC微機聯(lián)機的串口通訊,用戶可以使用其余的中斷源。在進入監(jiān)控后,只有 4#中斷源處于開啟狀態(tài),其他中斷源都被屏蔽了。中斷向量地址于中斷號之間的關(guān)系如表 6-2。2MiJTy0dTT表6-2中斷請求IR0IR1IR2IR3IR4IR5IR6IR7信號引腳中斷類型號08H09H0AH0BH0CH0DH0EH0FH向量地址20H~23H24H~27H28H~2BH2CH~2FH30H~33H34H~37H38H~3BH3CH~3FH說明可用可用可用串口2串口1可用可用可用3、接口實驗單元中的級聯(lián)實驗用8259A芯片除系統(tǒng)中的8259A芯片外,在接口實驗單元中專門提供了另一片8259A芯片,以便進行8259級聯(lián)實驗。其線路如圖6-4所示gIiSpiue7A4、接口實驗單元中的R-S觸發(fā)器電路(二)實驗內(nèi)容1、8259應(yīng)用實驗<1)2/35按圖6-6所示實驗線路編寫程序,使每次響應(yīng)外部中斷 IRQ7時,顯示字符“︺ 7”,中斷 10次后,程序退出。 uEh0U1Yfmh實驗<1)參考程序:codesegmentassumecs:codestart:。中斷服務(wù)程序的入口地址放入中斷向量表clipushdsxorax,axmovds,axmovsi,4*0fhmovax,offsetirq7addax,2000hmovwordptr[si],axmovax,0movwordptr[si+2],axpopds8259A初始化moval,13h 。設(shè)置ICW1out20h,almoval,08h 。設(shè)置ICW2out21h,almoval,09h 。設(shè)置ICW4out21h,almoval,6eh 。設(shè)置OCW1out21h,almovcx,0ahstia:jmpa ;等待中斷。中斷服務(wù)程序irq7procnearmovax,0137hint10hmovax,0120hint10hdeccxjnzl1moval,0eehout21h,al ;寫OCW1,屏蔽IRQ7l1:moval,20hout20h,al ;發(fā)中斷結(jié)束命令iret3/35irq7endpcodeendsendstart2、實驗<1)步驟<1)按圖6-6連接實驗線路。<2)輸入程序并檢查無誤,經(jīng)匯編、連接后裝入系統(tǒng)。<3)G=0000:2000↓運行程序。<注意:程序中8259中斷向量地址為絕對地址,已定義為段地址CS=0000H,偏移量地址IP=2000H,故裝載時一定按此填入CS與IP地址,后面實驗不再重述。)IAg9qLsgBX<4)重復(fù)按KK2微動開關(guān),顯示屏上應(yīng)顯示“7”,直到按10次后,系統(tǒng)處于停機狀態(tài),用CTRL+C返回監(jiān)控。WwghWvVhPE3、8259應(yīng)用實驗<2)按圖6-8所示實驗線路,編寫程序,完成下面的要求:當(dāng)無中斷請求時,執(zhí)行主程序<主程序為:延時顯示字符串“)main”),若有中斷請求,則執(zhí)行其中斷服務(wù)程序<按KK1引起IRQ6中斷,將延時顯示10個“)6”;按KK2引起IRQ7中斷,將延時顯示10個“)7”)。若正在執(zhí)行較低級的中斷服務(wù)程序,則允許比它優(yōu)先級高的中斷被響應(yīng)<IRQ6>IRQ7)。自己畫出程序流程圖,寫出實驗程序,實現(xiàn)相應(yīng)功能。asfpsfpi4k參考程序:stacksegmentstackdw64dup(?>stackendsdatasegmentdispsdb'main',00hdataendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,ax。分別把irq7和irq6中斷服務(wù)程序的入口地址放入中斷向量表中clipushdsxorax,axmovds,axmovsi,4*0fhmovax,offsetirq7addax,2000hmovwordptr[si],axmovax,0movwordptr[si+2],axmovsi,4*0ehmovax,offsetirq6addax,2000h4/35movwordptr[si],axmovax,0movwordptr[si+2],axpopds8259A初始化moval,13h。設(shè)置ICW1out20h,almoval,08h。設(shè)置ICW2out21h,almoval,09h。設(shè)置ICW4out21h,almoval,2eh。設(shè)置OCW1out21h,alsti。執(zhí)行主程序不斷顯示 main_again:movcx,0fhnext:movbx,offsetdispsmovah,06hint10hcalldelayloopnextmovax,010ahint10hmovax,010dhint10hjmpagain。中斷服務(wù)程序irq7:pushaxpushcxstimovcx,0ahl1:movax,0137hint10hmovax,0120hint10hcalldelayloopl1clipopcxpopaxmoval,20hout20h,alsti5/35iretirq6:pushaxpushcxstimovcx,0ahl2:movax,0136hint10hmovax,0120hint10hcalldelayloopl2clipopcxpopaxmoval,20hout20h,alstiiretdelay:pushaxpushbxmoval,0ffha2:movbl,0ffha1:nopnopdecbljnza1decaljnza2popbxpopaxretcodeendsendstart4、實驗<2)步驟<1)按圖6-8連接實驗電路<2)畫出程序流程圖<3)輸入程序并檢查無誤,經(jīng)匯編、連接后裝入系統(tǒng)。<4)G=0000:2000↓,運行實驗程序,則連續(xù)顯示“︺ main”,先后按動 KK1和KK2微動開關(guān)來模擬中斷請求信號,記錄請求順序及顯示結(jié)果。 ooeyYZTjj15、8259級聯(lián)實驗<3)本實驗是以系統(tǒng)中的 8259作為主片,外接另一片 8259作為從片,構(gòu)成 8259級聯(lián)方式的中斷實驗線路,如圖 6-9所示,其中規(guī)定主片的 IRQ7上連接一片從片,從片上的 IRQ7和6/35IRQ6接外中斷請求電路 <R-S單脈沖觸發(fā)器),并規(guī)定從片的中斷類型號為 30H~37H,其命令寄存器組編址為 00H和01H。BkeGuInkxI實驗參考程序:stacksegmentstackdw64dup(?>stackendsdatasegmentdispsdb'main',00hdataendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,ax。分別把 irq7和irq6中斷服務(wù)程序的入口地址放入中斷向量表中clipushdsxorax,axmovds,axmovsi,4*37hmovax,offsetirq7addax,2000hmovwordptr[si],axmovax,0movwordptr[si+2],axmovsi,4*36hmovax,offsetirq6addax,2000hmovwordptr[si],axmovax,0movwordptr[si+2],axpopds。主片8259A初始化moval,11h 。設(shè)置ICW1out20h,almoval,08h 。設(shè)置ICW2out21h,almoval,80h 。設(shè)置主片 ICW3out21h,almoval,1dh 。設(shè)置ICW4out21h,almoval,7dh 。設(shè)置OCW1out21h,al。從片8259A初始化7/35moval,11h。設(shè)置從ICW1out00h,almoval,30hout01h,al。設(shè)置從ICW2moval,07hout01h,al。設(shè)置從ICW3moval,09h。設(shè)置從ICW4out01h,almoval,3fh。設(shè)置從OCW1out01h,almoval,68h。設(shè)置特殊屏蔽方式out00h,alsti。執(zhí)行主程序不斷顯示 main_again:movcx,0fhnext:movbx,offsetdispsmovah,06hint10hcalldelayloopnextmovax,010ahint10hmovax,010dhint10hjmpagain。中斷服務(wù)程序irq7:pushaxpushcxstimovcx,0ahl1:movax,0137hint10hmovax,0120hint10hcalldelayloopl1clipopcxpopaxmoval,20hout20h,almoval,20hout00h,al8/35stiiretirq6:pushaxpushcxstimovcx,0ahl2:movax,0136hint10hmovax,0120hint10hcalldelayloopl2clipopcxpopaxmoval,20hout20h,almoval,20hout00h,alstiiretdelay:pushaxpushbxmoval,0ffha2:movbl,0ffha1:nopnopdecbljnza1decaljnza2popbxpopaxretcodeendsendstart6、實驗<3)步驟<1)畫出程序的流程圖<2)按圖6-9搭接實驗線路,其中 INTA連接必須在開機上電之后。<3)輸入程序并檢查無誤,經(jīng)匯編、連接后裝入系統(tǒng)。<4)G=0000:2000↓,運行實驗程序,則連續(xù)顯示“︺ main”,先后按動 KK1和KK2微動開關(guān)來模擬中斷請求信號,記錄請求順序及顯示結(jié)果 <對KK1 和 KK2的響應(yīng)同實驗 2)。PgdO0sRlMo9/35(三) 關(guān)于TDN86/51教案實驗系統(tǒng)中顯示功能的使用說明在TDN86/51 教案實驗系統(tǒng)中顯示字符或字符串的功能是通過執(zhí)行 INT 10H指令實現(xiàn)的。AX中的內(nèi)容不同,實現(xiàn)的功能就不一樣。 3cdXwckm15INT10H使用說明:1、入口:AH=00H,AL=01H功能:清屏2、入口:AH=01H,AL=數(shù)據(jù)功能:送 AL中的數(shù)據(jù)到顯示屏顯示 <注意:AL中的數(shù)據(jù)應(yīng)是需要顯示字符的 ASCII碼)3、入口:AH=06H,DS:BX=字符串首地址,且字符串尾用 00H填充。功能:顯示一字符串,直到遇到 00H為止。四、思考題用中斷查詢方式解決上述問題,電路如何連接,如何編程實現(xiàn)。用中斷查詢方式codesegmentassumecs:codestart:。中斷服務(wù)程序的入口地址放入中斷向量表clipushdsxorax,axmovds,axmovsi,4*0fhmovax,offsetirq7addax,2000hmovwordptr[si],axmovax,0movwordptr[si+2],ax8259A初始化moval,13h。設(shè)置ICW1out20h,almoval,08h。設(shè)置ICW2out21h,almoval,09h。設(shè)置ICW4out21h,almoval,7fh。設(shè)置OCW1out21h,alpopdscalldisisrmovax,010dhint10hmovax,010ahint10hmovcx,0ah10/35。用中斷查詢方式不能開中斷l(xiāng)1:moval,0ch 。發(fā)查詢命令out 20h,alinal,20h 。接受查詢字testal,80h 。檢測是否有中斷請求jzl1andal,07hcalldisisra:jmpairq7:calldisisrmovax,0120hint10hmovax,0120hint10hmovax,0137hint10hmovax,0120hint10hmovax,0120hint10hdeccxjnzl2moval,0ffhout21h,all2:moval,20hout20h,alcalldisisrmovax,010dhint10hmovax,010ahint10hiretirq6:jmpl1irq5:jmpl1irq4:jmpl1irq3:jmpl1irq2:jmpl1irq1:jmpl1irq0:jmpl1disisr:movax,0149hint10hmovax,0153h11/35int10hmovax,0152hint10hmovax,013ahint10hmoval,0bhout20h,alinal,20hmovbh,almovbl,8l3: rolbh,1jcnextmovax,0130hint10hjmpagainnext:movax,0131hint10hagain:decbljnzl3retcodeendsendstart實驗七8255并行接口應(yīng)用實驗一、實驗?zāi)康?、學(xué)習(xí)并掌握 8255的各種工作方式及其應(yīng)用。2、學(xué)習(xí)在系統(tǒng)接口實驗單元上構(gòu)造實驗電路。二、實驗設(shè)備1、TDN86/51教案實驗系統(tǒng),計算機2、排線、導(dǎo)線若干三、實驗內(nèi)容及步驟<一)系統(tǒng)中的 8255芯片1、系統(tǒng)中的 8255芯片8255可編程外圍接口芯片是 Intel公司生產(chǎn)的通用并行 I/O接口芯片,它具有 A、B、C三個并行接口,用+5v單電源供電,能在方式 0—基本輸入/輸出方式、方式 1—選通輸入/輸出方式和方式 2—雙向選通方式下工作。 h8c52WOngM8255的數(shù)據(jù)線片選信號線、地址線、讀寫控制線等分別與系統(tǒng)總線相連,其 A、B、C三個端口以排針形式引出,供 8255實驗使用,其線路如圖 7-1所示,端口地址如表 7-1所示v4bdyGious表7-18255端口地址信號線 寄存器 編 址A口 60HIOY3 B口 61HC口 62H12/35控制寄存器63H2、接口實驗單元中的開關(guān)和發(fā)光二極管電路+5v1K×8,,LED× 8D0,D7K0,K74.7k×8+5v

,,10圖7-2撥動開關(guān)和發(fā)光二極管電路3、七段數(shù)碼顯示管結(jié)構(gòu)aafbbgcdeecfgDPdDP典型的七段LED共陰極接法圖7-3七段數(shù)碼顯示管七段LED顯示器由七個發(fā)光段構(gòu)成,每段均是一個LED二極管。如圖7-3所示,這七個發(fā)光段分別稱為a、b、c、d、e、f和g,通過控制不同段的點亮和熄滅,可顯示16進制數(shù)字0~9和A、B、C、D、E、F,也能顯示H、E、L、P等字符。有的產(chǎn)品還有一個小數(shù)點DP位段,用來顯示小數(shù)。J0bm4qMpJ9LED 顯示器有共陽極和共陰極兩種結(jié)構(gòu),我們的實驗設(shè)備提供的是后者。對于共陰極結(jié)構(gòu)的LED顯示器,陰極連在一起后接地,各陽極段接到器件的引腳上,要想點亮某一段時,只要將相應(yīng)引腳屆高點平。 XVauA9grYP<二)8255接口應(yīng)用實驗1、8255接口應(yīng)用實驗<1)用一組發(fā)光二極管顯示一組開關(guān)的狀態(tài),電路連接如圖 7-4所示。使 8255端口A工作在方式 013/35并作為輸出口,端口 B工作在方式 0并作為輸入口。用一組開關(guān)信號接入端口 B,端口A輸出線接至一組發(fā)光二極管上,然后通過對 8255芯片的編程來實現(xiàn)輸入 /輸出功能。bR9C6TJscw實驗步驟:(1) 按圖接線(2) 輸入程序并檢查無誤,經(jīng)匯編、連接后裝入系統(tǒng)(3) 運行程序,撥動開關(guān)鍵,觀察發(fā)光二極管應(yīng)一一對應(yīng)。XD0D0XD1D1XD2PA0D2XD3D3.XD4D4.XD5D5PA7

D0,D7

+5v1K×8,,XD6D6XD7D78255系XIORRDXIOWWR統(tǒng)XA0PB0A0總XA1A1.線RESETRESET.IOY3CSPB7

LED×8+5v4.7k×8K0,,,K7圖7-4實驗(1)接線圖2、8255接口應(yīng)用實驗<2)電路連接如圖 7-5所示,編程實現(xiàn)連接在 8255A口的一組發(fā)光二極管輪流點亮, A口采用工作方式 0,輸出。二極管點亮的方式還很多,同學(xué)們可根據(jù)現(xiàn)實生活中觀察到的情況進行發(fā)揮。pN9LBDdtrdXD0D0XD1D1XD2D2XD3PA0D3XD4.D4XD5.D5XD6.

D0,

,,

+5v1K×8XD7D6PA7D7

D7LED×88255系XIORRDXIOWWR統(tǒng)XA0A0總XA1A1線RESETRESETIOY3CS圖7-5實驗(2)接線圖14/353、8255接口應(yīng)用實驗<3)按圖7-6所示連接線路, 8255A口工作方式 0,輸出與數(shù)碼顯示管連接, B口工作方式 0,輸入與一組開關(guān)相連接。編程實現(xiàn)在數(shù)碼顯示管中顯示開關(guān)閉合的個數(shù)。 DJ8T7nHuGTXD0D0PA0XD1D1XD2D2XD3.D3XD4.D4XD5D5PA7XD6XD7D6D7

D0aafgb,b,.,ecgD7dpdDP+5v8255系XIORRDXIOWWR統(tǒng)XA0PB0A0總XA1A1.線RESETRESET.IOY3CSPB7

4.7k×8K0,,,K7圖7-6實驗(3)接線圖4、8255接口應(yīng)用實驗<4)該實驗電路連接圖與圖 7-6相同,若任意時刻至多只有一個開關(guān)閉合,編程實現(xiàn)在數(shù)碼顯示管中顯示閉合開關(guān)的序號,沒有開關(guān)閉合時,數(shù)碼顯示管不亮。 QF81D7bvUA5、8255接口應(yīng)用實驗<5)按圖7-7連接線路,8255A口工作方式 0,輸出;B口工作方式 0,輸入。數(shù)碼管的 a、b、 gXD0D0PA0XD1D1XD2D2XD3.D3XD4D4.XD5PA7D5XD6XD7D6D7

aD0afbg,b,,.ecD7gdpdDP+5v8255系XIORRD4.7kXIOW4.7k統(tǒng)WRXA0PB0A0總XA1A1kk1+線RESETRESETIOY3CSPB1kk2+圖7-7實驗(5)接線圖15/35、dp段依次接 8255的PA0、PA1 .、PA7。kk1+和Kk2+兩個按鍵開關(guān)分別與 8255的PB0、PB1連接。要求對該電路進行編程,使數(shù)碼管初始狀態(tài)顯示 0。每按下一次 kk1+鍵后,數(shù)碼管顯示的數(shù)字減 1,減至 0后,再按 kk1+鍵,則數(shù)碼管顯示 9;每按下一次 kk2+鍵后,數(shù)碼管顯示的數(shù)字加 1,加至9后,再按 kk2+鍵,則數(shù)碼管顯示 0。若同時按下 kk1+和kk2+鍵,則退出程序。4B7a9QFw9h6、8255接口應(yīng)用實驗 <6)XD0D0PA0XD1D1XD2D2XD3.D3XD4D4.XD5D5PA7XD6XD7D6D7

aD0afbg,b,,.cD7gedpdDP+5v8255系XIORRDXIOWWR統(tǒng)XA0A0PB0總XA1A1.線RESETRESET.IOY3CSPB3

4.7k×4K0,,,K3圖7-8實驗(6)接線圖按圖7-8連接線路,8255A口工作方式0,輸出;B口工作方式0,輸入。數(shù)碼管的a、b、g、dp段依次接8255的PA0、PA1.、PA7。開關(guān)k0、k1、k2和k3分別與PB0、PB1、PB2、PB3相連接。對該電路進行編程,使其滿足下表要求。ix6iFA8xoX開關(guān)狀態(tài)數(shù)碼管顯示K3K2K1K00閉閉閉閉閉閉閉開1閉閉開閉2閉閉開開3閉開閉閉4閉開閉開5閉開開閉6閉開開開7開閉閉閉8開閉閉開9開閉開閉A開閉開開B開開閉閉C開開閉開D開開開閉E開開開開F7、8255接口應(yīng)用實驗<7)16/35+5vXD0D0XD1D1XD2PB0D0D2XD3,D3.1K×8XD4D4.D7,,XD5D5PB7XD6LED×8D6XD7+5vD78255系XIORRDXIOW統(tǒng)WRXA0A0PA0總XA1A1線.RESETRESETPA2IOY3CS

4.7k ×3K0,,,K2PC3 PC4KK1-INTRINTIRQ78259INTAINTA圖7-9實驗( 7)接線圖按圖7-9連接電路圖,8255A口工作方式1,輸入;B口工作方式0,輸出。A口的PA0、PA1和PA2分別與開關(guān)K0、K1、K2相連接;B口與8個發(fā)光二極管相連接;PC4與KK1-連接,由KK1-提供一個負脈沖作為選通信號<STB),PC3連接到8259的IRQ7上,8259的INT與系統(tǒng)8088CPU的INTR接在一起。根據(jù)這個電路編程實現(xiàn):先預(yù)置開關(guān)K2~K0為一組狀態(tài),然后按下KK1-產(chǎn)生一個負脈沖信號,輸入到PC4上。用發(fā)光二極管LEDi亮來顯示K2~K0的狀態(tài)。K2~K0的開關(guān)狀態(tài)與發(fā)光二極管亮的對應(yīng)關(guān)系為下表所示wt6qbkCyDE開關(guān)狀態(tài)發(fā)光二極管狀態(tài)K2K1K0LEDi000LED0亮001LED1亮010LED2亮011LED3亮100LED4亮101LED5亮110LED6亮111LED7亮8、8255接口應(yīng)用實驗 <8)按圖7-10所示接線,編寫程序,使 8255端口A工作在方式 0并作為輸出口,端口 B工作于方式1并作為輸入口,則端口 C的PC2成為選通信號輸入端 STB,PC0成為中斷請求信號輸出端INTR。當(dāng)B口數(shù)據(jù)就緒后,通過發(fā) STB信號來請求 CPU讀取端口 B數(shù)據(jù)并送端口 A輸出顯示。Kp5zH46zRk17/35+5vXD0D0XD1D1XD2PA0D2D0XD3.XD4D3,1K×8D4.,,XD5D7D5PA2XD6LED×8D6XD7+5vD78255系XIORRDXIOWWR統(tǒng)XA0PB0A0總XA1A1.線RESETRESET.IOY3CSPB7

4.7k ×8K0,,,K7PC0 PC2KK1-INTRINTIRQ78259INTAINTA圖7-10實驗(8)接線圖9、8255接口應(yīng)用實驗 <9)當(dāng)只需顯示單個數(shù)字時可采用數(shù)碼顯示管的靜態(tài)顯示方法:按圖 7-11連接線路,8255A口工作方式 0,輸出,數(shù)碼管的 a、b、 g、dp段依次接 8255的PA0、PA1 .、PA7。PA負責(zé)提供數(shù)碼顯示管顯示數(shù)據(jù)所需要的段碼, PC0負責(zé)向數(shù)碼顯示管的共陰極提供一個低電平,以保證數(shù)碼顯示管正常工作。編程實現(xiàn)數(shù)碼管循環(huán)延時顯示十六進制數(shù) 0~9、A~F。Yl4HdOAA61XD0D0PA0D0aXD1D1XD2,bD2XD3,,D3..XD4gD4.D7XD5dpD5PA7XD6D6XD7X1D7PC08255系XIORRDXIOWWR統(tǒng)XA0A0總XA1A1線RESETRESETIOY3 CS

af g be cDPLED共陰極端圖7-11實驗(9)接線圖10、8255接口應(yīng)用實驗 <10)實際系統(tǒng)中經(jīng)常要顯示多位數(shù)字,若仍采用上述電路結(jié)構(gòu),就需要增加 8255芯片,這不僅增大了顯示系統(tǒng)的體積,也提高了系統(tǒng)的成本和功耗,此刻我們需要采用數(shù)碼顯示管的動態(tài)顯示方18/35法,連接圖如圖7-12所示。通過編程,讓4個數(shù)碼管輪流點亮,但在任何時候只讓一個數(shù)碼管點亮,若每位數(shù)碼管點亮的時間選擇為2ms,經(jīng)過8ms后又返回去將每位數(shù)字點亮一次,也就是每秒大約刷新125次。由于人眼可以接受的刷新速率約為每秒40~200次。因此,這個刷新速率不會讓人的眼睛感到字符在閃爍,就好像這些顯示器在同時發(fā)光。編程實現(xiàn)顯示5678這4位數(shù)字。ch4PJx4BlIXD0aaaaD0PA0D0aaaaXD1fgbfgbfgbfgbD1XD2,bbbbXD3D2,.,.,.,..,XD4D3gecgecgecgec.D4D7XD5dpdpdpdpD5PA7ddddXD6DPDPDPDPXD7D6X1LED共陰極端LED共陰極端LED共陰極端LED共陰極端D7PC08255XIORPC1X2RD系X3XIOWWRPC2統(tǒng)XA0A0X4總XA1PC3A1線RESETRESETIOY3CS圖7-12實驗(10)接線圖四、思考題分析實驗<1)和實驗<8)的異同。實驗八8253定時/計數(shù)器應(yīng)用實驗一、實驗?zāi)康?、熟悉8253在系統(tǒng)中的典型接法。2、掌握8253的工作方式及應(yīng)用編程。二、實驗設(shè)備1、TDN86/51教案實驗系統(tǒng),計算機2、排線、導(dǎo)線若干三、實驗內(nèi)容及步驟<一)系統(tǒng)中的8253芯片8253可編程定時/計數(shù)器是Intel公司生產(chǎn)的通用外圍芯片之一。它有3個獨立的16位計數(shù)器,計數(shù)頻率范圍0~2MHz。它所有的計數(shù)方式和操作方式都通過編程控制。其控制字格式為:qd3YfhxCzoTDN86/51實驗系統(tǒng)中裝有一片8253芯片,其線路如圖8-1所示系統(tǒng)中,8253的計數(shù)通道0輸出線<OUT0)與8259的IRQ0相連接,計數(shù)通道1的CLK1接1.8432MHz信號源,輸出OUT1與8251的收發(fā)時鐘端相連接,供串行通信使用,計數(shù)通道2以排針形式引出,開放給用戶使用,系統(tǒng)中的8253端口地址如下表所示E836L11DO5信號線寄存器地址計數(shù)通道040HIOY2計數(shù)通道141H計數(shù)通道242H控制寄存器43H8253初始化編程流程如圖8-2由于8253具有三個獨立的計數(shù)器,初始化時,對三個計數(shù)通道的編程沒有先后順序的規(guī)定,19/35可任意選擇某一個計數(shù)通道進行初始化編程,但對某一計數(shù)通道初始化時要符合先寫入控制字,后寫入計數(shù)初值的規(guī)定。S42ehLvE3M<二)8253計數(shù)器/定時器應(yīng)用實驗8253有兩種應(yīng)用,一是作為計數(shù)器使用,二是作為定時器來使用。1、8253計數(shù)器應(yīng)用實驗 <1)XD0D0PA0XD1D1XD2D2XD3.D3XD4D4.XD5D5PA7XD6XD7D6D7PC0

D0aaaaaaaagbgb,bfgbbfbfbfgb,.,.,.,.,gecgecgecgecD7dpdpdpdpdDPdDPdDPdDPX1LED共陰極端LED共陰極端LED共陰極端LED共陰極端8255X2XIORRDPC1系X3XIOWWRPC2統(tǒng)XA0A0X4總XA1PC3A1線RESETRESETIOY3CS+5VD0...D7GATE28253CLK2OUT2KK1+D0...D7IRQ7INTR8259INTINTAINTA圖8-38253計數(shù)器應(yīng)用實驗(1)接線圖設(shè)定8253的計數(shù)通道 2#工作方式 2,用于事件計數(shù),當(dāng)計數(shù)值為 10時<即按KK1+10次),發(fā)出中斷請求信號, CUP執(zhí)行中斷服務(wù)程序在 4位數(shù)碼顯示管中顯示 KK1+按下的總次數(shù)<每次中斷結(jié)果加 10,4位數(shù)碼顯示管為動態(tài)顯示)。 4位數(shù)碼顯示管初值顯示 4個0,連接線路如圖 8-3所示。畫出流程圖,寫出源代碼,上機調(diào)試通過后,實現(xiàn)該功能。 501nNvZFis2、8253定時器應(yīng)用實驗 <2)用8253定時,8259A作中斷,8255傳送數(shù)據(jù)給 4位的數(shù)碼顯示管, 8088作CPU建立一個小系統(tǒng),實現(xiàn)數(shù)字鐘的功能 (由于實驗設(shè)備的限制 ,只能做到分和秒 >,連接線路如圖 8-4所示。jW1viftGw920/35XD0D0PA0XD1D1XD2D2XD3.D3XD4D4.XD5D5PA7XD6D6XD7D7PC08255XIORRDPC1系XIOWWRPC2統(tǒng)XA0A0總XA1PC3A1線RESETRESETIOY3CSGATE0GATE2CLK0D0...D7OUT08253CLK2OUT2INTRD0...D7IRQ7INTA8259INTINTA

D0aaaa,bafgbbafgbbafgbbafgb,.,.,.,.,ccccgegegegeD7dpdpdpdpdDPdDPdDPdDPX1LED共陰極端LED共陰極端LED共陰極端LED共陰極端X2X3X4+5V1.19MHz圖8-48253定時器應(yīng)用實驗2()接線圖畫出流程圖,寫出源代碼,上機調(diào)試通過,實現(xiàn)數(shù)字時鐘的功能 <用兩位表示分鐘,兩位表示秒,分鐘和秒之間用 DP點分隔開)。 xS0DOYWHLP注意:在實驗面板上沒有標(biāo)注 8253的OUT0引腳,這一引腳在內(nèi)部已連接到 8259的IRQ0上,要想實現(xiàn) OUT0和CLK2的連接,可從 8259的IRQ0引出線和 8253的CLK2相連功效是一樣的。不過在 8259的初始化時,需要把 IRQ0這個中斷請求端屏蔽掉。 LOZMkIqI0w四、思考題在將計數(shù)初值賦給 8253后,馬上就可以啟動并進行定時或計數(shù)嗎?實驗九A/D轉(zhuǎn)換實驗一、實驗?zāi)康?、學(xué)習(xí)掌握模/數(shù)轉(zhuǎn)換基本原理。2、掌握ADC0809芯片的使用方法。3、掌握數(shù)字電壓表的設(shè)計方法。二、實驗設(shè)備1、TDN86/51教案實驗系統(tǒng),計算機2、排線、導(dǎo)線若干三、實驗內(nèi)容及步驟<一)系統(tǒng)中的 ADC實驗單元電路21/35IN0D7IN1D6IN2D5+5VIN3D4IN4D3ADJIN5D2IN6D1IN7ADC0809D0+5VEOCREF(+)ADDCADDBWRREF(-)ADDAALE≥1STARTCLOCK1.19MHzCSOE≥1 RD圖9-1系統(tǒng)中的0809線路ADC0809包括一個 8位的逐次逼近型的 ADC部分,并提供一個 8通道的模擬多路開關(guān)和聯(lián)合尋址邏輯。用它可直接輸入 8個單端的模擬信號,分時進行 A/D轉(zhuǎn)換,在點巡回檢測、過程控制等應(yīng)用領(lǐng)域中使用非常廣泛。 ZKZUQsUJed<二)數(shù)字電壓表的設(shè)計采用TDN86/51實驗箱中的 8088、8253、8259、8255、0809芯片和 4位數(shù)碼顯示管,設(shè)計一個數(shù)字電壓表。 dGY2mcoKtT畫出電路連接圖,程序流程圖,寫出源代碼,上機調(diào)試通過,實現(xiàn)相應(yīng)的功能。提示:根據(jù) ADC0809芯片在系統(tǒng)中的連接情況,對地址 00H的寫操作,就是給引腳 START和ALE送了一個正脈沖,啟動 ADC0809開始轉(zhuǎn)換;對地址 00H的讀操作,就是給引腳 OE送了一個正脈沖,開啟了三態(tài)門,把轉(zhuǎn)換好的數(shù)據(jù)送給

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論