月11日修改網(wǎng)站版微機原理及接口技術(shù)_第1頁
月11日修改網(wǎng)站版微機原理及接口技術(shù)_第2頁
月11日修改網(wǎng)站版微機原理及接口技術(shù)_第3頁
月11日修改網(wǎng)站版微機原理及接口技術(shù)_第4頁
月11日修改網(wǎng)站版微機原理及接口技術(shù)_第5頁
已閱讀5頁,還剩129頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本實驗指導書的歸西安唐都科教儀器開發(fā),保留一切權(quán)利。本公司,任何單位和個人不得擅自摘抄、本實驗指導書的部西安唐都科教儀器開發(fā)公司,2005(C),All 80X86微機原理及接術(shù)實驗指導 嚴禁唐都公司:htt 第1 第2 靜態(tài)器擴展實 FLASH器擴展實 8259中斷控制實 DMA特性及8237應用實 8254定時/計數(shù)器應用實 8255并行接口實 8251串行接口應用實 A/D轉(zhuǎn)換實 D/A轉(zhuǎn)換實 電子設(shè)計實 點陣LED顯示設(shè)計實 圖形LCD顯示設(shè)計實驗(選配 第3 附錄 Wmd86聯(lián)機軟件使用說 附 附 附 圖形顯 附 Debug調(diào)試命 附錄 系統(tǒng)實驗程序附錄 系統(tǒng)編程信 附錄 附錄 TD-PITE實驗箱布局 第1 80X86微機原理及其程序設(shè)計實掌握TD-PITE80X86微機原理及接術(shù)教學實驗系統(tǒng)的操作,熟悉Wmd86聯(lián)機集成開PC機一臺,TD-PITE編寫實驗程序,將00H~0FH共16個數(shù)寫入內(nèi)存3000H開始的連續(xù)16個單元中Wmd86軟件,進入Wmd861-1-1擇后,點擊新建或按Ctrl+N組合鍵來新建一個文檔,如圖1-1-2所示。默認文件名為1-1-21-1-3所示,并保存,此時系統(tǒng)會提示輸入新的文件名,輸完后點擊保存1-1-3,編譯文件,若程序編譯無誤,則輸出如圖1-1-4所示的輸出信息,然后再點擊 無誤輸出如圖1-1-5所示的輸出信息。圖1-1-4編譯輸出信息界 圖1-1-5輸出信息界 程序。為編譯、、1-1-6D0000:30003000H起始地址的數(shù)據(jù),如圖1-1-7所示。器在初始狀態(tài)時,默認數(shù)據(jù)為CC。1-1-7令D0000:3000來觀察數(shù)據(jù)變化。如圖1-1-8所示。1-1-8通過在語句AA2:JMPAA2處設(shè)置斷點,斷點顯示如圖1-1-9所示,然后1-1-101122,結(jié)束圖1-1-9斷點設(shè)置顯 圖1-1-10修改內(nèi)存單元數(shù)據(jù)顯示界實驗例程文件名為Wmd861.asm編寫程序,將內(nèi)存3500H單元開始的8個數(shù)據(jù)到3600H單元開始的數(shù)據(jù)區(qū)中。通過E3500HD3600HPC機一臺,TD-PITEASCIIBCD碼表示的數(shù)據(jù)或字符,CPU一般均ASCII碼、BCD碼或七段顯示碼等。因此,在應用軟件中,各類數(shù)制的轉(zhuǎn)換是必不可少的。

1-2-11-2-1BCDASCII012345671-2-89ABCDEFASCII碼表示的十進制數(shù)轉(zhuǎn)換為二進制數(shù)nnDn10nDn110n1D0100Di10

Di0,1,2,…,9;nnDi

(((Dn

由式(2)可歸納十進制數(shù)轉(zhuǎn)換為二進制數(shù)的方法:從十進制數(shù)的最Dn開始作乘10加次位的操作,依次類推,則可求出二進制數(shù)的結(jié)果。程序流程圖如圖1-2-2所示。實驗參考SSTACKSEGMENTDW64DUP(?)SSTACKENDS DB30H,30H,32H,35H,36H ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,MOVAX,OFFSETSADDMOVSI,AXMOVBX,000AHMOVCX,0004HMOVAH,00HMOVAL,[SI]SUBAL,30H IMULMOVDX,[SI+01]ANDDX,00FFHADCAX,DXSUBAL,30HINCSILOOPA1 JMP END查看AX寄存器,即為轉(zhuǎn)換結(jié)果,應為:0100ASCIIBCD從鍵盤輸入五位十進制數(shù)的ASCII3500H起始的內(nèi)存單元中,將其轉(zhuǎn)換為BCD碼后,再按位分別存入350AH起始的內(nèi)存單元內(nèi)。若輸入的不是十進制的ASCIIFF一字節(jié)ASCII碼取其低四位即變?yōu)锽CD碼。

NYNYSEGMENTSTACKDW64DUP(?)ASSUMEMOVCX,MOVDI,MOVBL,MOVAL,[DI]CMPAL,3AHJNB;3AH則轉(zhuǎn)SUBAL,JB;30HMOVBL,MOVAL,MOVINCDILOOPA1JMPEND3500H~3504H單元中存放五位十進制數(shù)的ASCIIE350031,鍵入D350A,顯示運行結(jié)果,應為:0000:350A01 CC…0~65535,最大可轉(zhuǎn)換為五位十進制數(shù)。ND4104D3103D2102D110ASCIID1~D4,并將它們轉(zhuǎn)換ASCII3500H、3501H中,轉(zhuǎn)換結(jié)果存放于3510H~3514H單元中。SEGMENTSTACKDW64DUP(?)ASSUMEMOVMOVMOVDECSIMOVAX,DXMOVMOV;DIV;得商送AX,得余數(shù)送XCHG;得Di的ASCIIJZDECSIMOVAL,30HMOV[SI],ALJMPA2JMPEND3500H、3501H0CD3510,結(jié)果應為:30303031ASCII由表1-2-1中十六進制數(shù)與ASCII碼的對應關(guān)系可知:將十六進制數(shù)0H~09H加上30H3500HASCII350AH的內(nèi)存單SEGMENTSTACKDW64DUP(?)ASSUMECS:CODEMOVMOVMOVDX,[DI]MOVAX,DXAND;4CMPJB;0AHADD;在A~FHADD;轉(zhuǎn)換為相應ASCIIMOVDECPUSHCXMOVCL,04HSHR ;4POPCXLOOPA1 JMP END鍵入D350A,顯示結(jié)果為:0000:350A BCDBCD3500H3510H起始的內(nèi)存單元中,自行繪制流程圖并編寫程序。SSTACKSEGMENTDW64DUP(?)SSTACKENDSCODESEGMENTASSUMESTART:XORAX,MOVCX,0004HMOVSI,3500HMOVDI, MOVAL,[SI]ADDAL,ALMOVBL,ALADDAL,ALADDAL,ALADDAL,BLINCSIADDAL,[SI]MOV[DI],ALINCSIINCDILOOPA2:JMPCODEEND (4)鍵入D3510 ASCII碼十進制數(shù)時,如何確定Di在十六進制轉(zhuǎn)換為ASCII碼時,存轉(zhuǎn)換結(jié)果后,為什么要把DXASCIIBCD碼的程序,并調(diào)PC機一臺,TD-PITE80X861-3-1所示的數(shù)據(jù)類1-3-1BCD計算X+Y=Z,將結(jié)果Z存入某單元。實驗程序參考如下本實驗是雙精度(21632位)AX16中。由于低16運算后可能向產(chǎn)生進位,因此高16位運算時使用ADC指令,這樣在低16位相加運算有進位時,相加會加上CF中的1。SSTACKSEGMENTDW64DUP(?)SSTACKENDSPUBLICXH,XL,YH,YL,ZH,ZL DW DW ;X DW DW ;Y DW DW ;Z ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,ADDAX, ;X低位加YMOVZL, ;低位和存到ZMOVAX,ADCAX, ;帶進位MOVZH, ;存結(jié)JMPSTART END點擊,將變量XH,XL,YH,YL,ZH,ZL添加到變量監(jiān)視窗中,然后修改XH,XL,YH,YL的值,如圖1-3-1所示,修改XH0015,XL65A0,YH0021,YLB79E;ZH0037,ZLXH,XL,YHYL的值,再次運行程序,觀察實驗BCDX-Y=ZX、Y、ZBCD碼。實驗程序參考例程。實驗程序(例程文件名為A3-2.ASM)SSTACKSEGMENTDW64DUP(?)SSTACKENDSPUBLICXY, DWDWDW ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,00H

1-3-1MOVCX,0002HMOVSI,OFFSETXMOVDI,OFFSETZMOVAL,[SI]SBBAL,[SI+02H]ANDAL,0FHMOV[DI],ALINCDIINCLOOPJMPEND點擊將變量X,Y,Z添加到變量監(jiān)視窗中,并為X,Y賦值,假定存入40與12BCDX0400,YBCD1位,被乘數(shù)為5位,結(jié)果為6位。實驗程序參考例程。SSTACKSEGMENTDW64DUP(?)SSTACKENDS DB5 DB RESULTDB6DUP(?) ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVCALLINIT ;0MOVSI,OFFSETDATA2MOVANDBL,0FH CMPBL,09HJNCMOVSI,OFFSETMOVDI,OFFSETRESULTMOVCX,0005H MOVAL,[SI+04H]ANDAL,0FHCMPAL,09HJNCERRORDECSIMULBL ADDAL,[DI+05H]MOV[DI+05H],ALDECDIMOV[DI+05H],AHLOOPA1 JMP;===將RESULT所指內(nèi)存單元=== MOVSI,OFFSETRESULTMOVCX,0003HMOV MOV[SI],AXINCSIINCSILOOPA3ERROR:MOVSI,OFFSETRESULT ;若輸入數(shù)據(jù)不符合要求則RESULT所指向內(nèi)存單元全部寫入EMOVCX,0003HMOV MOV[SI],AXINCSIINCSILOOPA4JMPA2 ENDCS的值,使用UDS,然后通過E命令為被乘數(shù)及乘數(shù)賦值,如被乘數(shù):0102030405,乘數(shù):01,方法同實驗內(nèi)容1;通過D命令查看計算結(jié)果,應為:00 時,如果一個數(shù)的低4位大于9,則查看計算結(jié)果將全部顯示為E;PC機一臺,TD-PITE1-4-1所示。 數(shù)源數(shù)據(jù) 數(shù) 塊 塊目的數(shù) 塊 塊塊

圖1-4-1源數(shù)據(jù)塊與目的數(shù)據(jù)塊在中的位置情1(a1-4-2開始開始>NYNY結(jié)束SSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVCX,MOVSI,3100HMOVDI,3200HCMPSI,DIJAA2ADDSI,CXADDDI,CXDECSIDECDIA1:MOVAL,[SI]MOV[DI],ALDECSIDECDIDECCXJNEA1JMPA2:MOVAL,[SI]MOV[DI],INCSIINCDIDECCXJNEA3:JMPCODEENDESI16DDISI通過改變SI、DI的值,觀察在三種不同的數(shù)據(jù)塊情況下程序的運行情況,并驗證程序的功PC機一臺,TD-PITE=+×+×+×+…+(+SSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODE;DX;判斷N(N+1)200 圖1-5-1程序流程運算結(jié)果在寄存器DX中,查看結(jié)果是否正確1-5-2SEGMENTSTACKDW64DUP(?)ASSUMEMOVDI,MOVCL,XORCH,CHMOVBL,INCMOVAL,TESTAL,JEINC;INCDILOOPA1開始開始NYNY結(jié)束MOV JMPENDE3000,輸入數(shù)據(jù)如下:3000=06(數(shù)據(jù)個數(shù))3007BL中的內(nèi)容,結(jié)果03;1-5-2PC機一臺,TD-PITE從最后一個數(shù)(或第一個數(shù))N個數(shù)與N-1個數(shù)比較,第N-1個數(shù)與第N-2N-1個數(shù)大于第N個數(shù),則被排在N個數(shù)的最前列。(2SSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVCX,MOVSI,300AHMOVBL,0FFH CMPBL,0FFHJNZA4MOVBL,00HDECCXJZA4PUSHSIPUSH DECMOVAL,[SI]DECSICMPAL,[SI]JAA3XCHGAL,MOV[SI+01H],ALMOVBL,0FFH INCSILOOPA2POPCXPOPSIJMPA1 JMP ENDE30003000H~3009H101~100303000H的單元中,3000H+II的學生成績。編寫程序,將排出的名次表放在3100H開始的數(shù)據(jù)區(qū),3100H+I中存放的為學號為I的學生名次。SEGMENTDW64ASSUMEMOVMOVMOVMOVMOV;30MOVCALLMOVAL,1EHSUBAL,CLINCALMOVBX,DXMOV[BX+DI],ALLOOPA1 JMPBRANCH:PUSHCXMOVCX,001EHMOVAL,00HMOVBX,3000HMOVSI,BX CMPAL,[SI]JAEA3MOVAL,[SI]MOVDX,SISUBDX,BX INCSILOOPA2ADDBX,DXMOVAL,00HMOV[BX],ALPOPCX END303000HPC機一臺,TD-PITEYNSI,CX,BXNYNSI,CX,BXNYNYNY3000H,字節(jié)數(shù)為08H。利用子程序的方程序流程圖如圖1-7-1所示。開始開始結(jié)束1-7-1SSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVAX,MOVDS,MOVSI, MOVCX,CALL JMPBRANCHPROC AXJCXZA4PUSHSIPUSHCXPUSHMOVBH,[SI]MOVBL,BH CMPAL,BHJBEA2MOVBH,ALJMPA3 CMPAL,BLJAEA3MOVBL,AL LOOPA1MOVAX,BXPOPBXPOPCXPOPSI BRANCHENDP END鍵入E3000命令,輸入8個字節(jié)的數(shù)據(jù),如 AX的值,AXF904中為最大值,AL程序說明:該程序使用BH和BL暫存現(xiàn)行的最大值和最小值,開始時初始化成首字節(jié)的內(nèi)容,然后進入循環(huán)操作,從字節(jié)序列中逐個取出一個字節(jié)的內(nèi)容與BH和BL相比較,若取BHBLBHBLALBX利用子程序的嵌套和子程序的遞歸調(diào)用,實現(xiàn)N!的運算。根據(jù)階乘運算法則,可以得:N!=N(N-1?。絅(N-1(N-2?。健?,即求(N-1)00?。?,最后將每次SSTACKSEGMENTDW64DUP(?)SSTACKENDSPUBLICN, DB ;N1~8RESULTDW? ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,MOVAX,OFFSETRESULTPUSHAXMOVAL,NMOVAH,00HPUSHAXMOVDI,CALLJMP branch:PUSHBPMOVBP,SPPUSHBXPUSHAXMOVBX,[BP+DI+06H]MOVAX,[BP+DI+04H]CMPAX,0000HJZA1PUSHBXDECAXPUSHAXCALL MOVBX,[BP+DI+06H]MOVAX,[BX]PUSHMOVBX,[BP+DI+04H]MULBXPOPBXJMP MOVAX, MOVRESULT, ;結(jié)果存入RESULTPOPAXPOPBXPOPBPRET0004H END將變量NRESULTN值,N00~08HRESULT的值是否正確,驗證程序的1-7-1N0123456781126PC機一臺,TD-PITEASCII1.21-2-1可知,0~9的ASCII30H~39HA~F的ASCII41H~46H0~9與A~F對應的ASCII碼保存在一個數(shù)據(jù)表格中。當給定一個需要轉(zhuǎn)換的十六進制數(shù)時,就可以快速的在表格中找出相應的ASCII碼值。SSTACKSEGMENTDW32DUP(?)SSTACKENDSPUBLICASCH,ASCL, ;十六進制數(shù)0~9,A,B,C,D,E,F對應ASC碼表 DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDB DB DB ;4位轉(zhuǎn)換的ASCII DB ;4位轉(zhuǎn)換的ASCII ASSUMECS:CODE,SS:SSTACK,DS:DATASTART:PUSHDSXORAX,AXMOVAX,DATAMOVDS,AX MOVAL,HEX MOVAH,ALANDAL,0F0HMOVCL,04HSHRAL,CLMOVBX,OFFSET ;表首地址存放于BXMOVASCH, ;4位的BCDMOVAL,AHANDAL,0FHMOVASCL, ;4BCDJMPAA1 ENDHEXASCHASCL1.INT10H2.PCPC機一臺,TD-PITEA~Z26個大寫英文字母。顯示I/O功能調(diào)用使用說明如下:INT10AL:AH=06H,DS:BX=00H填充功能:顯示一字串,直到遇到00H為止SEGMENTSTACKDW64DUP(?)ASSUMECS:CODEMOVMOV;‘AASCIIMOVAH,01HMOVAL,BLINTINCPUSHMOV LOOPA2POPCXDECCXJNZA1 JMP ENDAFTERNOON第2 80X86微機接術(shù)實、接術(shù)是把由處理器器等組成的基本系統(tǒng)與外部設(shè)備連接起來,從而實現(xiàn)CPU與、 1.了解器擴展的方法和器的讀/寫2.掌握CPU對16位器的方法 0000H~000FH16SRAM0000H起始的一段空間中, 1234567891234567891位信息。只要不掉電,所儲RAM工作穩(wěn)定,不要外加刷新電路,使用方便。但一般SRAM的每一個觸發(fā)器是由6個晶,6264(8K×8節(jié)。62256的外部引腳圖如圖2-1-1所示。

2-1-16225632CPU16D0、D1、…、D15,地址總線為分別由字節(jié)允許線BHE#和BLE#選通。理器規(guī)則字只需要一個時鐘周期,BHE#和BLE#同時有效,從而同時選通器奇體和偶體。處理器非規(guī)則字卻需要兩個時鐘周期,第一個時鐘周期BHE#有效,奇字節(jié);第二個時鐘周期BLE#有效,偶字節(jié)。處理器字節(jié)只需要一個時鐘周期,視其存放單圖如圖2-1-2所示。

D15D15D7

2-1-2寫規(guī)則字(左)和非規(guī)則字(右)SSTACKSEGMENTDW32DUP(?)SSTACKENDS PROCFARASSUMEMOVAX, ;器擴展空間段地MOVDS, MOVSI, MOVCX,0010HMOVAX,............INCSIINCSILOOPAA1............ JMPHERE ...... END2-1-3SRAM 、…、000F共16個字 FLASH器擴展實 1.學習FLASH器的工作原理與讀/寫方式2.AT29C010A PC機一臺,TD-PITE 57在系統(tǒng)可編程可擦除只讀器FLASH通常稱“閃,57,擦除、一供電高密度息特性,用保存系統(tǒng)引導程序和系統(tǒng)參數(shù)等需要長期保存的重要信T2901A為5V可編程可除只讀LAH容為128×8裝L32,其管腳如圖2--1,

FLASHAT29C010A1024個扇區(qū),每個扇區(qū)為128字節(jié)。當進行數(shù)據(jù)編程時,首先將連續(xù)的128字節(jié)在內(nèi)部進行鎖存,然后器進入編程周期,將鎖存器中的128字節(jié)數(shù)據(jù)依次寫入器的扇區(qū)中,對于扇區(qū)的編程時間一般需要影響該功能,即重新上電軟件數(shù)據(jù)保護仍然有效。這樣可以防止意外操作而破壞FLASH中的據(jù)保護功能令序列如圖2-2-2的(a)所示,取消軟件數(shù)據(jù)保護功能令序列如圖2-2-2 2-2-2令序列如圖2-2-3所示。圖2-2-3擦除命令序注:通常,16位數(shù)據(jù)總線,低8位數(shù)據(jù)總是寫入偶地址單元或端口,而高8位數(shù)據(jù)總是寫入奇地址單元或端口,讀出時情況相同。這里將8位FLASH掛在16位數(shù)據(jù)總線時,一般連接數(shù)據(jù)總線到低8位,地址按偶數(shù)變化,所以當向5555H中寫入數(shù)據(jù)時,應該將地址5555H2AAAAH 4FLASHFLASH2.ASM80H~01H128FLASH中;FLASH3.ASM:不考慮的數(shù)據(jù)保護功能是否使能,直接向FLASH中全寫入55;FLASH4.ASM:去除FLASH的數(shù)據(jù)保護功能,并將數(shù)據(jù)01H~80H共128個字節(jié)寫入FLASH1.2-2-42.裝入程序FLASH1.ASM,完成后,執(zhí)行D命令查看FLASH中的內(nèi)容,若為全FF,接著操作步驟3,否則運行程序,再查看FLASH中的內(nèi)容,看是否為全FF;,3.打開程序FLASH2.ASM程序,然后運行,停止程序后使用D命令查看FLASH中的內(nèi)容,檢查是否正確寫入數(shù)據(jù)80H~01H;,,4.打開程序FLASH3.ASM程序,然后運行,停止程序后使用D命令查看FLASH中的內(nèi)容,看是否將55全寫入FLASH中;,5.FLASH4.ASMFLASH中的內(nèi)容是否01H~80H;6.54557.若步驟2中原本FLASH中的內(nèi)容為FF,則此時可重新操作步驟2,對進行擦除。FLASH............

2-2-4FLASHROM SEGMENTSTACKDW32ASSUMEMOVAX,MOVDS,MOVSI,;將AA5555H(5555HMOV[SI],BYTEPTRMOVSI,;55MOV[SI],BYTEPTRMOVSI,;80MOV[SI],BYTEPTRMOV;將AAMOV[SI],BYTEPTRMOV;55MOV[SI],BYTEPTRMOV;10MOV[SI],BYTEPTRJMPENDSEGMENTDW64ASSUMEMOVAX,MOVDS,MOVAX,MOVES,MOVCX,MOVBX,MOV[BX],INCLOOPMOVDI,ES:[DI],DI,ES:[DI],DI,ES:[DI],CX,BX,DI,AL,ES:[DI],LOOP JMPHERESTARTENDP END SEGMENTSTACKDW64 ASSUMECS:CSEG MOVAX,0000HMOVDS,AXMOVAX,0A000HMOVES,AXMOVCX, ;128MOVSI,3000H MOVAL,55HINIT1:MOV[SI],AL ;55HINCSILOOPINIT1MOVSI,3000HMOVDI,0000HMOVCX, MOVAL,MOVES:[DI ;將源數(shù)據(jù)區(qū)中的數(shù)據(jù)寫入FLASHINCDIINCDIINCSILOOP JMPHERE END SEGMENTSTACKDW64 ASSUMECS:CSEG MOVAX,0000HMOVDS,AXMOVAX,0A000HMOVES,AXMOVCX, MOVSI,3000H MOVAL,01HINIT1:MOV[SI],AL INCALINCSILOOPINIT1MOVDI, MOVES:[DI],BYTEPTR0AAHMOVDI,5554HMOVES:[DI],BYTEPTR55HMOVDI,0AAAAHMOVES:[DI],BYTEPTRMOVDI,MOVES:[DI],BYTEPTR0AAHMOVDI,5554HMOVES:[DI],BYTEPTR55HMOVDI,0AAAAHMOVES:[DI],BYTEPTR20HMOVSI,3000HMOVDI,0000HMOVCX, MOVAL,MOVES:[DI],ALINCSIINCDIINCDILOOP JMPHERE END 8259 1.82592.82593.8259 PC機一臺,TD-PITE2.3.38259(ICU,82C59A是一致的,操作方法也相同。從片的INT連接到主片的IR2信號上構(gòu)成兩片8259的級聯(lián)。TD-PITEIR6、IR7IR1開放出來供實驗使用,主片8259的IR4供系統(tǒng)串口使用。8259的內(nèi)部連接及外部管腳引出如圖2-3-1所示。

2-3-182592-3-1ICU(只寫8259IR01(只寫IR1(只寫8259設(shè)備連接到主控制器的IR8259的IR2(只寫表明內(nèi)部從控制器級聯(lián)到主片的IR2(只寫中斷操作寄存器,可相應的中斷信號(只寫(只寫(只讀(只讀表明連接到8259(只讀 0000010012-3-21 0002-3-32

02-3-43

000000102-3-53

000001 2-3-64 2-3-712寄存器(OCW2)2-3-8 RR00RRSL0000111101010101 * L2、L1、L0:在給出特殊的中斷結(jié)束命令時,L2、L1、L0了具體要清除當L0了循環(huán)開始時哪個中斷的優(yōu)先級最低。2-3-823寄存器(OCW3)2-3-9

001PESMM00011011000110112-3-93 ----- 2-3-10在對8259進行編程時,首先必須進行初始化。一般先使用CLI指令將所有的可中斷,然后寫入初始化命令字。8259有一個狀態(tài)機控制對寄存器的,不正確的初始化順序82594號中斷源(IR4)PC聯(lián)機的串口通信01234567 82598259的IR7外部中斷,在顯示屏上輸出一個字符“7 主單元2-3-118259SSTACKSEGMENTDW32DUP(?)SSTACKENDS ASSUMECS:CODESTART:PUSHMOVAX,MOVDS,MOVAX,SI,[SI],;填I(lǐng)RQ7AX,SI,MOVSI ;填I(lǐng)RQ7POPDS;8259MOVAL,11HOUT20H,AL MOVAL,08HOUT21H,AL MOVAL,04HOUT21H,AL MOVAL,01HOUT21H, MOVAL,6FH OUT21H,AL JMPAA1 CALLDELAYMOVAX,0137HINT ;MOVAX,0120HINT10HMOVAL,OUT20H,AL DELAY:PUSHMOVCX, PUSHAXPOPAXLOOPAA0POPCX END運行程序,重復按單次脈沖開關(guān)KK1+,顯示屏會顯示字符“7主主從單 元實驗接線圖如圖2-3-12所示,KK1+連接到主片8259IR7上,KK28259IR1上,當按一次KK1+時,顯示屏上顯示字符“M7+時,顯示字符“S12-3-128259SSTACKSEGMENTDW32DUP(?)SSTACKENDS ASSUMECS:CODESTART:PUSHMOVAX,0000HMOVDS,AXMOVAX,OFFSET ;取中斷地MOVSI, [SI],;填I(lǐng)RQ7AX,SI,[SI],;填I(lǐng)RQ7AX,SI,[SI],AX,SI,[SI],MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,MOVAL,11HOUT0A0H,ALMOVAL,30HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALMOVAL,0FDHOUT0A1H,ALMOVAL,;OCW1=1111OUT21H,ALJMPAA1CALLDELAYMOVAX,014DHINT10HMOVAX,;8259INTMOVAX,0120HINT10HMOVAL,;OUT20H,ALCALLMOVAX,INT MOVAX,INT ;MOVAX,0120HINT10HMOVAL,20HOUT0A0H,ALOUT20H,ALDELAY:PUSHMOVCX, PUSHAXPOPAXLOOPAA0POPCX END2-3-12 DMA8237 1.8237DMA2.DMA82373.8237 PC機一臺,TD-PITE 、DMA,直接實現(xiàn)對器的DMA傳送方式可用來實現(xiàn)器到器器到I/O接口I/O、8237介、123 4567898237是一種高性能可編程DMA控制器,、123 4567898237的各通道8237的外部引腳如圖2-4-1所示。8237①4個通道共用的寄存器。包括命令、②4個通道的寄存器包括地址寄82372-4-2

2-4-18237

寄存時 讀緩址基字數(shù) 寄存器寄存輯

現(xiàn)行地現(xiàn)剩字址計數(shù)數(shù)計數(shù)

I/O

DREQ03

內(nèi)部方 狀寄存 寄存

I/O2-4-28237

2-4-3

2-4-42-4-58237

2-4-68237

1:置10:置0

00:選擇通道01:選擇通道10:選擇通道11:選擇通道

(b)4個通道寄存器格式圖2-4-7通道寄存器格式2-4-182372-4-18237對應端址寄存器(4個寫1000寫08(4個讀01108818(4個寫1001寫08(4個讀011088188寫1010008讀014寫1010014寫101010方式寄存器(4個6寫101011--8讀011101令-寫10-寫101100清-寫101110寫44寫101111與CPU............將器1000H單元開始的連續(xù)10個字節(jié)的數(shù)據(jù)到地址0000H開始的10個單元中,實現(xiàn)8237的器到器傳輸。實驗參考線路圖如圖2-4-8所示。.................. ......圖2-4-88237實現(xiàn)器到器傳輸實驗接線...... 1K123 6 1K123 6

STACKSEGMENTSTACKDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODESTART:MOVAL,MOVDX,OUTDX,AL MOVAL,00HMOVDX, ;DX,;DX,DX,DX,;0;1DX,MOVMOVDX,0612H OUTDX,ALMOVMOVDX, ;OUT JMP END (值為1000H,而CPU初始化時的首地址為2000H)D8000:0000命令查看DMA自己思考DMA開始開始總清(軟件復位 通道0通道1字( 結(jié)束2-4-9DMA 1.82542.8254 1.8254的計數(shù)功能,使用單次脈沖模擬計數(shù),使每當按動‘KK1+’5次后,產(chǎn)生一次計數(shù)中斷,并在屏幕上顯示一個字符‘M2.82541ms 8254是In 公司生產(chǎn)的可編程間隔定時器。是8253的改進型,比8253具有更優(yōu)良的性能。8254具有以下基本功能:316(4)825410MHz(82532MHz(5)8254有讀回命令(8253沒有n=fCLKi÷fOUTi、其中fCLKi是輸入時鐘脈沖的頻率,fOUTi2-5-18254CPU的接口、內(nèi)部控制電路和三個計數(shù)器組成。8254的工作方式如下述:D[7D[7:0計數(shù)器CLK0CLK1CLK 計數(shù)器CLK0

CLK212123456789CLK2-5-18254表2-5-1所示。2-5-1825400011001-讀/810-讀/811-先讀/8再讀/80000010101001012-5-282541102-5-38254OUT1-高電平01-無效計數(shù)0 CLK0時鐘,OUT0MIR7KK15次后產(chǎn)生中斷請求,在屏幕上顯示字符“M2-5-24 2-5-28254A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTDW32DUP(?)SSTACKENDSCODEASSUMECS:CODE,SS:SSTACKSTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSET MOVSI, MOVSI ;填I(lǐng)RQ7MOVAX,CS MOVSI,003EHMOVSI ;填I(lǐng)RQ7POPDS;MOVAL,OUT20H,AL MOVAL,08HOUT21H,AL MOVAL,04HOUT21H,AL MOVAL,01HOUT21H, MOVAL,6FH OUT21H,AL;0;顯示字符20H,8254031MHzCLK0時鐘,OUT0為波形輸出1ms。2-5-3OUT0輸出,驗證程序功能。A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQUSSTACKSEGMENTDW32DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVDX, MOVAL,36H ;03OUTDX,ALMOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,AL JMP END

2-5-38254 8255 PC機一臺,TD-PITE 1.8255A口為輸入,B口為輸出,完成撥動開關(guān)到2.8255ABD7~D0由左向 并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時傳遞8位、16位或32位等。8255可編程接口是In公司生產(chǎn)的通用并行I/O接口,它具有A、B、C三個并行接口,用+5V單電源供電,0--基本輸入/1--選通輸入/2--雙向選通工作方式。82552-6-1所示,8255C口按位置位/復位控制字格式如圖2-6-2所示。D0-D

A(8位C(高4位C(低4位(8位

PA7-PAPC7-PPC3-PPB7-P

PA3PA2PA1PA0P

PA4PA5PA6PA7PB7PB6PB5PB4P 108255 A00方式01方式1x方式1

(a)2-6-282552.6.5本實驗使8255端口A工作在方式0并作為輸,端口B工作在方式0并作為輸出口。用一組開關(guān)信號接入端口A,端口B輸出線接至一組數(shù)據(jù)燈上,然后通過對8255編程來2-6-38255SSTACKSEGMENTDW32DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVDX,0646HMOVAL,90HOUTDX,AL MOVDX,INAL,DXCALLDELAYMOVDX,0642HOUTDX,ALJMPAA1DELAY:PUSHMOVCX, PUSHAXPOPAXLOOPAA2POPCX ENDD15~D8D7~D02-6-5 2-6-58255SSTACKSEGMENTDW32DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVDX,MOVAL,80HOUTDX,ALMOVBX,8001H MOVDX,MOVAL,BHOUTDX,ALRORBH,1MOVDX,0642HMOVAL,BLOUTDX,ALROLBL,1CALLDELAYCALLDELAYJMPAA1DELAY:PUSHMOVCX, PUSHAXPOPAXLOOPAA2POPCX END 8251 1.82512. PC機兩臺,TD-PITE 1.TXD引腳上的波2.3000H10個單元中的初始數(shù)據(jù)發(fā)送到串口,然后自接收并保存到4000H起始的內(nèi)存單元中。3.雙機通訊實驗,本實驗需要兩臺實驗裝置,其中一臺作為,一臺作為發(fā)送機,發(fā)送機將3000H~3009H內(nèi)存單元中共10個數(shù)發(fā)送到將接收到的數(shù)據(jù)直接在屏幕 82515~81個啟動位,并能夠根據(jù)編程為每個數(shù)據(jù)增加1個、1.5個或2個停止位;82512-7-18251

114114圖-7-282518251TXD3-7-38251TXD信號上的數(shù)據(jù)傳輸格式。數(shù)據(jù)位與停止位8251

2-7-38251工作在異步方式下TXD825182518251 00=501=601=110=710=1511=811=2

2-7-48251 1=8251返回1=RTS0OE、FE復位1=使TXD1=DTR

2-7-58251CPU8251當前的工作狀態(tài),以決定下一步的操作,82512-7-6 數(shù)據(jù)裝置就緒:當為1為101接收到一發(fā)送緩沖置14

2-7-6825182512-7-7系統(tǒng)YYN輸入第1Y1NYNNY輸入第22-7-78251 發(fā)送往串口的數(shù)據(jù)會以串行格式從TXD引腳輸出,編寫程序,觀察串行輸出的格式。實2-7-8TXD引腳上的波形。M8251_DATAEQU0600H;端口定義M8251_CONEQU0602HM8254_2EQU06C4HM8254_CONEQU06C6HSSTACKSEGMENTDW64DUP(?)SSTACKENDSCODESEGMENTASSUMESTART:CALLINIT CALLMOVCX, MOVAX, DECAXJNZA3LOOPA2JMPA1 MOVAL, 8254,MOVDX,M8254_CONOUTDX,ALMOVAL,0CHMOVDX,M8254_2OUTDX,ALMOVAL,00HOUTDX,ALCALL 8251CALLDALLYMOVAL,7EHMOVDX, 8251OUTDX,ALCALLDALLYMOVAL,34HOUTDX, 8251CALLDALLYRESET:MOVAL, 8251MOVDX, OUTDX,ALCALLDALLYOUTDX,ALCALLDALLYOUTDX,ALCALLDALLYMOVAL,40HOUTDX,ALDALLY:PUSHMOVCX, PUSHAXPOPAXLOOPA4POPCX PUSHPUSHDXMOVAL,31HMOVDX,M8251_CONOUTDX,ALMOVAL,MOVDX,M8251_DATA 55HOUTDX,ALPOPDXPOPAXCODEEND CLK8251 + 1

2-7-88251(1)參考實驗接線圖如圖2-7-9使用E命令更改10查看3000H起始的10

M8251_DATAEQU

2-7-9EQUEQUEQUSEGMENTSTACKDW64DUP(?)ASSUMECS:CODEMOVAX,0000HMOVDS,MOVAL,初始化MOVDX,M8254_CONOUTDX,ALMOVAL,0CHMOVDX,M8254_2OUTDX,ALMOVAL,OUTDX,CALL;CALLDALLYMOVMOVDX,OUTDX,;8251CALLDALLYMOVAL,34HOUTDX, ;8251CALLDALLYMOVDI,3000HMOVSI,4000HMOVCX, MOVAL,[SI]PUSHAXMOVAL,MOVDX,M8251_CONOUTDX,ALPOPMOVDX,OUTDX,AL MOVDX,M8251_CON INAL,DX ANDAL,01HJZA2CALLDALLY INAL,DX ANDAL,02HJZMOVDX,INAL, ;接收到的數(shù)MOV[DI],ALINCDIINCSILOOPA1 JMP MOVAL, ;8251MOVDX,M8251_CONOUTDX,ALCALLOUTDX,ALCALLDALLYOUTDX,ALCALLDALLYMOVAL,40HOUTDX,ALDALLY:PUSHMOV PUSHAXPOPAXLOOPA5POPCX END2-7-10 CLK8251 8251單元 CS8254 2-7-10M8251_DATAEQU0600HM8251_CONEQU0602HM8254_2EQU06C4HM8254_CONEQU06C6HSSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVAL,0B6H ;8254MOVDX,M8254_CONOUTDX,ALMOVAL,0CHMOVDX,M8254_2OUTDX,ALMOVAL,00HOUTDX,ALCALLINIT ;8251CALLDALLYMOVAL,MOVDX,M8251_CONOUTDX,ALCALLDALLYMOVAL,34HOUTDX,ALCALLDALLYMOVAX,0152H ;輸出顯示字符'R'INT10HMOVDI,3000HMOVCX, INAL,DXANDAL,02HJZA1MOVDX,M8251_DATAINAL,DXANDAL,7FHMOV[DI],ALINCDILOOPA1MOVAL,00HMOVSI,300AHMOV[SI],ALMOVAH,06HMOVBX,3000HINT10H A2:JMPINIT:MOVAL, ;8251MOVDX,M8251_CONOUTDX,ALCALLDALLYOUTDX,ALCALLDALLYOUTDX,ALCALLMOVAL,40HOUTDX,ALDALLY:PUSHMOVCX, PUSHAXPOPAXLOOPA3POPCX ENDM8251_DATAEQU0600HM8251_CONEQU0602HM8254_2EQU06C4HM8254_CONEQU06C6HSSTACKSEGMENTDW64DUP(?)SSTACKENDS ASSUMECS:CODESTART:MOVAL, ;8254,MOVDX,M8254_CONOUTDX,ALMOVAL,0CHMOVDX,M8254_2OUTDX,ALMOVAL,00HOUTDX,ALCALLINIT ;8251CALLDALLYMOVAL,MOVDX,OUTDX, ;8251CALLDALLYMOVAL,34HOUTDX, ;8251CALLDALLYMOVDI,3000HMOVCX, MOVAL,[DI]CALLSENDCALLDALLYINCDILOOP JMP MOVAL, ;8251MOVDX,M8251_CONOUTDX,ALCALLDALLYOUTDX,ALCALLDALLYOUTDX,ALCALLDALLYMOVAL,40HOUTDX,ALDALLY:PUSHMOVCX, PUSHAXPOPAXLOOPA4POPCX PUSHAX PUSHDXMOVAL,MOVDX,M8251_CONOUTDX,ALMOVDX,M8251_DATAOUTDX,ALMOVDX, INAL,DXANDAL,01HJZA3POPDXPOPAXCODEEND A/D 1.2.掌握模/數(shù)轉(zhuǎn)換ADC0809的使用方法 ADC0809包括一個8位的逐次近型的ADC部分,并提供一個8通道的模擬多路開關(guān)和8個單端的模擬信號,分時進行A/D轉(zhuǎn)換,在多點巡回檢測、過程控制等應用領(lǐng)域中使用非常廣泛。ADC0809的主要技術(shù)指標為:分辨率:8模擬輸入范圍:單極性1 IN41 IN4ADC0809IN1 234567892-8-1ADC08092-8-1 ABC000001010011100101110111SSTACKSEGMENTDW64DUP(?)SSTACKENDSPUBLIC DB ;AD ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,MOVDX,640H ;AD采樣OUTDX,ALCALLINAL, ;ADMOVVALUE JMP ;在此處設(shè)置斷點VALUEDALLY:PUSHCX PUSHAXMOVCX, MOVAX, DECAXJNZA6LOOPA5POPAXPOPCX END 2-8-2JMPSTART語句行設(shè)置斷點,使用萬用表測量ADJ端的電壓值,計算對應的采樣值,然;模/2-8-2AD D/A 1.2.DAC0832 設(shè)計實驗電路圖實驗線路并編寫程序,實現(xiàn)D/A轉(zhuǎn)換,要求產(chǎn)生鋸齒波、脈沖波,并用示 123456789123456789是8位,采用CMOS工藝和R-2RT形電阻網(wǎng)絡(luò),轉(zhuǎn)表2-9-1示,引腳如圖2-9-1所示。

2-9-1DAC08322-9-1DAC08328+5V~TTL SEGMENTDW32 ASSUMECS:CODE,START:MOVAX, MOVDX,600HMOVAL,00H OUTDX,ALCALLDELAYINCALJMPAA1DELAY:PUSHMOVCX, PUSHAXPOPAXLOOPAA2POPCX END總線總線模單數(shù)轉(zhuǎn) /2-9-2D/A PC機一臺,TD-PITE 2-10-18255 2-10-1MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQUMY8255_MODEEQU DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,3000HMOVAL,00HMOV[SI],ALMOV[SI+1],ALMOV[SI+2],ALMOV[SI+3],ALMOVDI,3003HMOV ;8255MOVAL,81HOUTDX,ALBEGIN:CALLDIS CALLCLEAR CALL JNZINK1JMPBEGIN CALLCALLDALLYCALLDALLYCALLCLEARCALLCCSCANJNZINK2 ;有鍵按下,轉(zhuǎn)到INK2JMPBEGIN MOVCH,0FEHMOVCL,00HCOLUM:MOVAL,CHMOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_CINAL,DXTESTJNZL2MOVAL,00HJMPKCODETESTJNZMOVJMPTESTJNZMOVJMPTESTJNZMOVKCODE:ADDCALLPUTBUFPUSHAX CALLDISCALLCLEARCALLCCSCANJNZKONPOPAX INCMOVAL,CHTESTAL,08HJZKERRROLAL,1MOVCH,ALJMPCOLUMKERR:JMPCCSCAN:MOVAL,00HMOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_CINAL,DXNOTALANDAL,0FHCLEAR:MOVDX,MY8255_BMOVAL,00HOUTDX,AL PUSHAXMOVSI,3000HMOVDL,0F7HMOVAL,DLAGAIN:PUSHMOVDX,MY8255_AOUTDX,ALMOVMOVBX,OFFSETDTABLEANDAX,00FFHADDBX,AXMOVAL,[BX]MOVDX,MY8255_BOUTDX,ALCALLDALLYINCSIPOPDXMOVAL,DLTESTAL,01HJZOUT1RORAL,1MOVDL,ALJMPAGAIN POPAXDALLY:PUSHCXMOV MOV DECAXJNZT2LOOPT1POPCXPUTBUF:MOVSI,DIMOV[SI],ALDECDICMPDI,2FFFHJNZGOBACKMOVDI,3003HGOBACK:RET END 電子設(shè)計實2.11.12.11.2PC微機一臺、TD-PITE2.11.32.11.4計數(shù)初值=輸入時鐘÷輸出頻率例如輸入時鐘采用1MHz,要得到800Hz的頻率,計數(shù)初值即為 定單位延時時間程序(根據(jù)CPU的頻率不同而有所變化。然后確定每個音符演奏需要幾個單位時間,將這個值送入DL中,調(diào)用DALLY子程序即可。DALLYD0:MOVCX,0010HD1:MOVAX,0F00HD2:DECAXJNZD2LOOPDALLYENDP

N個單位延時時間(NDALLYD0:MOVCX,0010HD1:MOVAX,0F00HD2:DECAXJNZD2LOOPD1DECDLJNZD0DALLY表2-11-1音符與頻率對照 G3.312ABC6D7E8F78G79頻率表和時間表是一一對應的,頻率表的最后一項為0,作為重復的標志。根據(jù)頻率表中初始化8254是否裝入頻表

2-11-14 電 單圖2-11-28254電子實驗接線STACK1SEGMENTDW256DUP(?)STACK1ENDS;;6,4,42,4,24,2,4,4,2,4,2,4,4,2,4,ASSUMECS:CODE,DS:DATAMOVAX,DATAMOVDS,MOVDX,;8254MOVAL,;0OUTDX,MOVSI,OFFSETMOVDI,OFFSETMOV;1MHz,1MMOVDIVWORDPTR ;取出頻率值計算計數(shù)初值,0F4240HMOVOUTDX,AL MOVAL,AHOUTMOVDL,[DI] CALLDALLYADDSI,2INCDICMPWORDPTR JEBEGINJMP MOV MOV DECAXJNZD2LOOPD1DECDLJNZD0 END LED 1.LED2.LED PC機一臺,TD-PITE 陣顯 陣顯 2-12-1 2-12-1 EQU EQU EQU0644H EQUSSTACKSEGMENTDW32DUP(?)SSTACKENDS DB0ffH,81H,81H,81H,81H,81H,81H,0ffH DB00H,7eH,42H,42H,42H,42H,7eH,00H DB00H,00H,3cH,24H,24H,3cH,00H,00H DB00H,00H,00H,18H,18H,00H,00H,00H DB? ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVL_CON,7FHMOVDX,M8255_CONMOVAL,80HOUTDX,ALMOVBH,00H MOVBL, MOVSI,OFFSETTAB1 MOVCX,0008H MOVDX,MOVAL,L_CONOUTDX,ALMOVDX,M8255_BMOVAL,[SI]OUTDX,ALRORL_CON,1INCSICALLDELAYLOOPDIS1DECBLCMPBL,00JNEAA1CALLDELAYLMOVBL,0D0H MOVSI,OFFSET MOVCX,0008H MOVDX,M8255_AMOVAL,L_CONOUTDX,ALMOVDX,M8255_BMOVAL,[SI]OUTDX,ALRORL_CON,1INCSICALLDELAYLOOPDIS2DECBLCMPBL,00HJNEAA2CALLDELAYLBL,SI,OFFSETCX, MOVDX,MOVAL,L_CONOUTDX,ALMOVDX,M8255_BMOVAL,[SI]OUTDX,ALRORL_CON,1INCSICALLDELAYLOOPDIS3DECBLCMPBL,00HJNEAA3CALLDELAYLMOVBL,0D0H MOVSI,OFFSETTAB4 MOVCX,0008H MOVDX,MOVAL,L_CONOUTDX,ALMOVDX,M8255_BMOVAL,[SI]OUTDX,ALRORL_CON,1INCSICALLDELAYLOOPDIS4DECBLCMPBL,00HJNEAA4CALLDELAYLJMPAA0DELAY:PUSHMOVCX,0100HDLAY1:LOOPDLAY1POPCXDELAYL:PUSHMOVCX, CALLDELAYLOOPDL1POPCX END PC機一臺,TD-PITE實驗裝置一套,圖形LCD 該圖形液晶內(nèi)置有控制器,這使得液晶顯示模塊的硬件電路簡單化,它與CPU連接的信RS:數(shù)據(jù)和指令選擇信號,RS=1RAM數(shù)據(jù),RS=0為指令數(shù)據(jù);R/W:讀/寫信號,R/W=1為讀操作,R/W=0為寫操作;2-13-1E--E--E--E--E--------------E

DB0-7 (讀2-13-1 (寫

2-13-22-13-2000011111設(shè)(Y地址0001Y地址(X地址0010111頁(Z地址001101忙000001011000011111D0001該指令設(shè)置顯示開0001Y地址計數(shù)器的內(nèi)容,AC5~AC0=0~63代表某一頁面上的某一單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進行。Y地址計數(shù)器具有自動加能,在每次讀或?qū)憯?shù)據(jù)后它將自動加一,所以在連續(xù)讀寫數(shù)據(jù)時,Y地址計數(shù)器不必每次設(shè)置一次。0010111定當前所要選擇的頁面地址,取值范圍為0~7,代表第1~8頁。該指令以后的讀寫操作001164L5~L0為顯示起始行的地址,取值為0~63,規(guī)定了顯示屏上最頂一行所對應的顯示器的行地01忙000001表示正在處理指令或數(shù)據(jù),此時接口電路被,不能接受除讀狀態(tài)字以外的任何操作。當忙位為0時,表明接口控制電路已準備好等待CPU的。1011 #include#include voiddelay(inttime);voidquery(charcmd);voidopenlight(charcmd);voidcloselight(charcmd);voidclear(charcmd,intx);voidwrite(charcmd,chardata);voidwritehz(charxadd,charyadd,charcmd,char*hz);intMY8255_A =0x0600;intMY8255_B=0x0602;intMY8255_C=0x0604;intMY8255_MODE=charcmd1=0x04;charcmd2=0x08;chardata;charxadd;charyadd;voidmain(){intx;outp(MY8255_MODE,0x80); //DisyOn打開顯 {} {}}voidwrite(charcmd,char {outp(MY8255_B,data);cmd=cmd|0x10;outp(MY8255_A,cmd);cmd=cmd&0xEF;outp(MY8255_A,cmd);}voidwritehz(charxadd,charyadd,charcmd,char* //寫漢字子程序intx,y;{{data=hz[y+(x*16)];}}}voidopenlight(char {cmd=cmd|0x20;outp(MY8255_A,cmd);}voidcloselight(char {cmd=cmd&0xdf;outp(MY8255_A,cmd);}voidclear(charcmd,int //{intxadd=0xb8+x;yadd=0x40;{data=0x00;}}voidquery(char {outp(MY8255_MODE,cmd=cmd|0x10;outp(MY8255_A,cmd);cmd=cmd&0xEF;outp(MY8255_A,cmd);while(inp(MY8255_B)&{cmd=cmd|0x10;outp(MY8255_A,cmd);cmd=cmd&0xEF;outp(MY8255_A,}outp(MY8255_MODE,}voiddelay(int{inti;int{}}第3 80X86微機控制應用實TD-PITE選用In386EX為CPU,該CPU被廣泛的應用于工業(yè)控制領(lǐng)域,通過本章3個實驗,了解80X86微處理器在控制領(lǐng)域的實際應用。PC機一臺,TD-PITE8255B3-1-13-1-1

135423-1-1步序123456785++++++++4———3———2———1———3-1-2PB對應B100012001130010401105010061100710008100112345DCBASSTACKSEGMENTDW256DUP(?)SSTACKENDS DB01H,03H,02H,06H,04H,0CH,08H,09H ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS, MOVAL,90H 控制B0,輸出MOVDX,0606HOUTDX, MOVBX,OFFSETTABDTMOVCX,0008H MOVMOVDX, 寫B(tài)OUTDX,CALL INCBXLOOPA2JMPA1DALLY:PUSHMOV PUSHAXPOPAXLOOPA3POPCX END3-1-2PC機一臺,TD-PITE3-2-1進行比較,其差值經(jīng)過PID運算,將得到控制量并產(chǎn)生 點 改變參數(shù)IBAND、KPP、KII、KDD的值后再觀察其響應特性,選擇一組較好的控制參數(shù)并穩(wěn)定時間4.82:去掉00H,最頂端對應值為FFH,對于時間刻度值由于采樣周期不同存在以下關(guān)系:6轉(zhuǎn)/秒~484000轉(zhuǎn)/分。即:給定值(SPEC)范圍06H~30H之間。示例程序中給定SPEC=30H為48轉(zhuǎn)/秒。TS=14H,由于8254=(0.02×900)÷4=4.5 元A

NY產(chǎn) 脈N計調(diào)取YK清TK變元YNVADD清3-2-33-2-1名稱及作用00H-06H-積分分離值:PID比例系數(shù):PID積分系數(shù):PID微分系數(shù):PID00H-控制量:PID00H-00H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論