匯編與接口技術(shù)基本知識點(diǎn)強(qiáng)化梳理_第1頁
匯編與接口技術(shù)基本知識點(diǎn)強(qiáng)化梳理_第2頁
匯編與接口技術(shù)基本知識點(diǎn)強(qiáng)化梳理_第3頁
匯編與接口技術(shù)基本知識點(diǎn)強(qiáng)化梳理_第4頁
匯編與接口技術(shù)基本知識點(diǎn)強(qiáng)化梳理_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、通用寄存器通用寄存器段寄存器段寄存器指令指針指令指針標(biāo)志寄存器標(biāo)志寄存器Intel 8086Intel 8086處理器處理器結(jié)構(gòu)結(jié)構(gòu)字節(jié)內(nèi)容字節(jié)內(nèi)容: :(10000H10000H)9FH9FH;(10001H10001H)26H26H字內(nèi)容字內(nèi)容 : :(10000H(10000H)269FH269FH;(10001H(10001H)4826H4826Hl程序設(shè)計(jì)時,使用的是邏輯地址。邏輯地址由“段基址”和“偏移量”構(gòu)成(均為16位)l“段基址”由段寄存器CS、DS、SS和ES提供;“偏移量”由BX、BP、IP、SP、SI、DI提供。l物理地址物理地址 = 段地址段地址16D(左移左移1)+

2、偏移偏移量 量l每個存儲單元有唯一的物理地址,可由不同的“段基址”和“偏移量”組成。例如: 1200H:0345H12345H;1100H:1345H12345Hl字節(jié):字節(jié):字節(jié)是存儲器的最小訪問單位,每字節(jié)是存儲器的最小訪問單位,每個字節(jié)有一個唯一的編號個字節(jié)有一個唯一的編號 地址地址。l字:字:1616位位( (雙字節(jié)雙字節(jié)) ),在存儲器中連續(xù)存放,在存儲器中連續(xù)存放的的2 2個字節(jié)。低位字節(jié)存入低地址,高位字個字節(jié)。低位字節(jié)存入低地址,高位字節(jié)存入高地址節(jié)存入高地址( (低低高高原則低低高高原則) )。l字單元地址用它的低地址來表示字單元地址用它的低地址來表示Intel 8086In

3、tel 8086處理器處理器存儲器分段存儲器分段代碼段、數(shù)據(jù)段和堆棧段代碼段、數(shù)據(jù)段和堆棧段一般程序在存儲器中有三個獨(dú)立的區(qū)段:一般程序在存儲器中有三個獨(dú)立的區(qū)段:應(yīng)應(yīng)用用程程序序占占用用的的內(nèi)內(nèi)存存區(qū)區(qū)段段代碼段代碼段數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段CS:IPDS:xxSS:SP或或ES:xx用于存放程序的指令代碼。用用于存放程序的指令代碼。用CS寄存器存放段地寄存器存放段地址,址,IP寄存器存放偏移量。寄存器存放偏移量。當(dāng)前當(dāng)前指令地址指令地址CS:IP。代碼段代碼段用于存放程序的數(shù)據(jù)。一般用用于存放程序的數(shù)據(jù)。一般用DS或或ES寄存器存寄存器存放段地址,可用多種方式形成放段地址,可用多種方式形成

4、偏移量偏移量。數(shù)據(jù)段數(shù)據(jù)段用于程序堆棧操作。用用于程序堆棧操作。用SS寄存器存放段地址,寄存器存放段地址,SP寄存器存放偏移量。當(dāng)前堆棧地址寄存器存放偏移量。當(dāng)前堆棧地址SS:SP。堆棧段堆棧段Intel 8086Intel 8086處理器處理器標(biāo)志寄存器標(biāo)志寄存器標(biāo)志寄存器標(biāo)志寄存器16位專用寄存器,定義了位專用寄存器,定義了9個標(biāo)志位,包括個標(biāo)志位,包括6個個用于運(yùn)算的狀態(tài)標(biāo)志(用于運(yùn)算的狀態(tài)標(biāo)志(CF, ZF, SF, PF, OF, AF)和)和3個用于控制個用于控制的控制標(biāo)志(的控制標(biāo)志(DF, IF, TF)。)。15 14 131211OF10DF9IF8TF7SF6ZF54AF

5、32PF10CF溢溢出出方方向向中中斷斷單單步步符符號號零零輔助輔助進(jìn)位進(jìn)位奇奇偶偶進(jìn)進(jìn)位位當(dāng)有符號運(yùn)當(dāng)有符號運(yùn)算結(jié)果產(chǎn)生算結(jié)果產(chǎn)生溢出時置溢出時置1,否則置否則置0。運(yùn)算結(jié)果的最高運(yùn)算結(jié)果的最高位,位,1表示結(jié)果為表示結(jié)果為負(fù),負(fù),0表示為正。表示為正。當(dāng)運(yùn)算結(jié)果為當(dāng)運(yùn)算結(jié)果為0時置時置1,否則置,否則置0。當(dāng)運(yùn)算結(jié)當(dāng)運(yùn)算結(jié)果中果中1的個的個數(shù)為偶數(shù)數(shù)為偶數(shù)時置時置1,否,否則置則置0。當(dāng)運(yùn)算產(chǎn)生當(dāng)運(yùn)算產(chǎn)生半字節(jié)間進(jìn)半字節(jié)間進(jìn)位位/借位時借位時置置1,否則,否則置置0。當(dāng)加當(dāng)加/減運(yùn)算減運(yùn)算中產(chǎn)生進(jìn)位中產(chǎn)生進(jìn)位/借位時時置借位時時置1,否則置,否則置0。尋址方式尋址方式立即數(shù)尋址立即數(shù)尋址特

6、點(diǎn):操作數(shù)在代碼段特點(diǎn):操作數(shù)在代碼段CS中。中。用法:用于給寄存器賦初值用法:用于給寄存器賦初值寄存器尋址:操作數(shù)在指定的寄存器中寄存器尋址:操作數(shù)在指定的寄存器中特點(diǎn):操作數(shù)在寄存器中,不需訪問存儲器,速度快。特點(diǎn):操作數(shù)在寄存器中,不需訪問存儲器,速度快。存儲器尋址:存儲器尋址:直接尋址直接尋址:直接給出操作數(shù)有效地址(偏移量)直接給出操作數(shù)有效地址(偏移量)MOV AL, VALUE寄存器間接尋址寄存器間接尋址:有效地址在寄存器有效地址在寄存器(BX, SI或或 DI)中中MOV AX, SI寄存器相對尋址寄存器相對尋址:在寄存器間接尋址的基礎(chǔ)上,有效地址增在寄存器間接尋址的基礎(chǔ)上,有

7、效地址增加一個常量加一個常量MOV AX, COUNTSII/O端口尋址端口尋址直接端口尋址直接端口尋址:IN AL,25H寄存器間接端口尋址寄存器間接端口尋址:MOV DX,1378H, OUT DX,AL偽指令偽指令DB:定義變量的類型為字節(jié)定義變量的類型為字節(jié)DW 定義字定義字偏移量偏移量段值段值EQUEQU語句語句: :給符號定義一個值給符號定義一個值, ,或定義為別的符號或定義為別的符號$:$:表示地址計(jì)數(shù)器的當(dāng)前值表示地址計(jì)數(shù)器的當(dāng)前值為存儲器數(shù)指定類型。為存儲器數(shù)指定類型。指令系統(tǒng)指令系統(tǒng)數(shù)據(jù)傳送類MOV、XCHG、XLAT堆棧操作(PUSH、POP)地址傳送(LEA)輸入輸出(

8、IN、OUT)。算術(shù)運(yùn)算類 SUB CMP INCADD dest, src(dest)+(src) (dest) ;二進(jìn)制加ADC dest, src(dest)+(src)+(CF) (dest) ;二進(jìn)制帶進(jìn)位加SUB dest, src(dest)-(src) (dest) ;二進(jìn)制減SBB dest, src (dest)-(src)-(CF) (dest) ;二進(jìn)制帶借位減CMP dest, src(dest)-(src);比較,只影響標(biāo)志MUL src ; 乘法INC reg/mem (reg/mem)+1 (reg/mem) ;加1DEC reg/mem (reg/mem)-1

9、 (reg/mem) ;減1NEG reg/mem 0-(reg/mem) (reg/mem) ;求補(bǔ)設(shè)(AL)=79,ADD AL,0B1H指令執(zhí)行后, CF和OF的值:轉(zhuǎn)換為2進(jìn)制 無符號加 有符號加 01111001 121 121 10110001 177 -79 1 00101010 298 42對于無符號數(shù),結(jié)果298,不在0255之間,所以CF=1對于有符號數(shù),結(jié)果在-128127之間,所以O(shè)F=0難點(diǎn):進(jìn)位和溢出問題CF 位表示 無符號數(shù) 相加的進(jìn)位;OF 位表示 帶符號數(shù) 相加的溢出。算術(shù)右移指令SAR有難度控制轉(zhuǎn)移類:無條件轉(zhuǎn)移(JMP);條件轉(zhuǎn)移(Jxx、JCXZ);循環(huán)

10、控制(LOOP、LOOPZ、LOOPNZ);子程序控制(CALL、RET);中斷控制(INT)。 位操作類(邏輯指令):NOT AND OR XOR TEST 邏輯運(yùn)算SHL SHR SAL SAR ROL ROR RCL RCR 移位鍵盤中斷鍵盤中斷u中斷類型號與中斷程序的聯(lián)系中斷類型號與中斷程序的聯(lián)系中斷向量中斷向量u中斷向量,即中斷服務(wù)程序的入口地址中斷向量,即中斷服務(wù)程序的入口地址, 4, 4個字節(jié)個字節(jié)CS:IPCS:IPu中斷向量表:中斷向量表:存放中斷向量存放中斷向量,256,256個中斷的服務(wù)程序入口地址個中斷的服務(wù)程序入口地址中斷向量中斷向量:長度和方向長度和方向l 譯碼實(shí)現(xiàn)

11、寄存器地址25H唯一選擇,片內(nèi)地址(端口)為4個,25H,26H,27H,28HIN AL,25H譯碼輸入信號:與地址信號與控制信號有關(guān):- AEN信號:AEN=0:正常操作;AEN=1:DMA- IOR和IOW信號:控制端口的讀/寫譯碼輸出信號:產(chǎn)生唯一低電平信號,選中芯片 內(nèi)的寄存器端口高位地址線與CPU的控制信號進(jìn)行組合,經(jīng)譯碼電路產(chǎn)生I/O接口芯片CS的片選。低位地址線不參加片選譯碼,直接連到I/O接口芯片,進(jìn)行I/O接口芯片的片內(nèi)端口尋址,即寄存器尋址。 低位線的數(shù)目決定了可尋址端口的數(shù)目。使用專用譯碼芯片地址線0 0 A9 A8A7 A6 A5 A4 C B AA3 A2 A1 A

12、0二進(jìn)制0 0 1 00 0 0 0十六進(jìn)制200-f震蕩器減1寄存器(初值)GATE定時輸出OUTCLK減一計(jì)數(shù)器當(dāng)前計(jì)數(shù)值輸出GATE計(jì)數(shù)控制端預(yù)置計(jì)數(shù)初值CLK時鐘脈沖OUT計(jì)數(shù)輸出計(jì)數(shù)器完成指定次數(shù)(預(yù)置初值)的輸入脈沖(CLK)計(jì)數(shù),并輸出(OUT)。計(jì)數(shù)過程可控(通過GATE)。計(jì)數(shù)過程可讀取。 向基地址+3寫入的一個字節(jié)是控制字,包括方式設(shè)置、鎖存設(shè)置等,控制字格式:D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇計(jì)數(shù)器選擇讀寫字節(jié)數(shù)讀寫字節(jié)數(shù)工作方式工作方式碼制碼制方式0當(dāng)向計(jì)數(shù)器寫完計(jì)數(shù)值后,OUT變成低電平,并在計(jì)數(shù)過程中一直保持低電平,當(dāng)計(jì)數(shù)器減到零時,OUT產(chǎn)生01的上升沿,

13、用此沿可申請中斷。方式1寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始工作。GATE出現(xiàn)上升沿才開始工作,OUT變成低電平,直到計(jì)數(shù)器值減到零,OUT才變高電平。當(dāng)GATE又出現(xiàn)上升沿時,計(jì)數(shù)器重新裝入原計(jì)數(shù)初值并重新開始計(jì)數(shù)。方式2設(shè)置為2方式,OUT1 ,寫初值寄存器后,計(jì)數(shù)器啟動,當(dāng)計(jì)數(shù)器減到零的前一個CLK,OUT0,輸出一個寬度為一個CLK周期的負(fù)脈沖.并自動重新裝入初始值,自動啟動計(jì)數(shù)??梢酝ㄟ^GATE=0暫停計(jì)數(shù)。方式33方式與2方式基本相同,也具有自動裝入計(jì)數(shù)初值的功能,但輸出的波形為占空比為1:1的方波。方式4此方式設(shè)定后,輸出OUT就開始變成高電平;當(dāng)寫完計(jì)數(shù)初值后,計(jì)數(shù)器開始計(jì)數(shù),計(jì)

14、數(shù)完畢,計(jì)數(shù)回零結(jié)束,輸出一個寬度為一個時鐘脈沖寬度的負(fù)脈沖,然后輸出又恢復(fù)高電平,并一直保持高電平不變。方式5當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而要由門控信號的上升沿啟動才開始計(jì)數(shù)。方波發(fā)生器分頻器(周期窄脈沖)軟件計(jì)數(shù)到零產(chǎn)生窄脈沖(中斷)硬件可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器軟件觸發(fā)選通硬件觸發(fā)選通OUT寬度對比重復(fù)重復(fù)單次單次單次分析分析編程題編程題例:T0的外接時鐘頻率為1MHZ,設(shè)T0作為十進(jìn)制計(jì)數(shù)器用,要求其輸出頻率為1 KHz的方波,寫出初始化程序段。分析分析編程題編程題答:地址范圍:188H18BH;T0初值地址:188H;方式控制寄存器地址:18BH (2)T0為BCD碼計(jì)數(shù)

15、方式,工作于方式3,方式字為:00110111B=37H 計(jì)數(shù)初值為10008253初始化程序段:MOV DX,18BHMOV AL,37HOUT DX,ALMOV DX,188HMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL82558255內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)A組組B組組方式命令1D6D5D4D3D2D1D0寫入到寫入到 基地址基地址+3 (控制寄存器)的(控制寄存器)的8255A控制字按照最高位(控制字按照最高位(D7)的不同有兩)的不同有兩種格式。種格式。PC(03): 0=輸出輸出 / 1=輸入輸入B組組PB: 0=輸出輸出 / 1=輸入輸入B組方式組方式:

16、0=0方式方式 / 1=1方式方式PC(47): 0=輸出輸出 / 1=輸入輸入A組組PA: 0=輸出輸出 / 1=輸入輸入A組方式組方式: 00=0方式方式 / 01=1方方式式 / 10=2方式方式D7=1用于設(shè)置工作方式用于設(shè)置工作方式0D3D2D1D00=復(fù)位復(fù)位 / 1=置位置位指定指定PC端口端口的位的位000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC705H=00000101:使PC2=1的命令字04H=00000100:使PC2=0的命令字D7=0為為C端口置位端口置位/復(fù)位命令復(fù)位命令寫入到寫入到 基地址基地址+3 習(xí)題習(xí)題當(dāng)撥動

17、開關(guān)K0向上搬動時(接高電平),從示波器上觀測到頻率為500Hz的連續(xù)方波;當(dāng)撥動開關(guān)K0向下搬動時(接低電平),從示波器上觀測到直流電平。請寫出相應(yīng)的程序段完成上述功能。習(xí)題習(xí)題MOV DX,213H;定時器1方式字MOV AL,01110111BOUT DX,AL;3方式、先低后高、十進(jìn)制計(jì)數(shù)MOV DX,211HMOV AL,00H;定時器1時間常數(shù):2000000/500=4000OUT DX,AL;時間常數(shù)的低8位MOV AL,40HOUT DX,AL;時間常數(shù)的高8位MOV DX,203H;8255的方式字,PC低輸入高輸出MOV AL,10000001B ;81HOUT DX,A

18、L 習(xí)題習(xí)題L1:MOV DX,202H;查詢PC0按鈕狀態(tài)INAL,DXAND AL,01HJNZL2MOV DX,203H;通過PC4置GATE1高M(jìn)OV AL,09HOUT DX,AL;使定時器1開始輸出連續(xù)方波JMPL1L2:MOV DX,203H;通過PC4置GATE1低MOV AL,08HOUT DX,AL;使定時器1停止輸出連續(xù)方波JMPL18259A8259A 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器讀讀/ /寫寫邏輯邏輯級聯(lián)級聯(lián)緩沖緩沖/ /比較器比較器控制邏輯控制邏輯正在服務(wù)正在服務(wù)寄存器寄存器ISRISR優(yōu)先級優(yōu)先級分析器分析器PRPR中斷請求中斷請求寄存器寄存器IR

19、RIRR中斷屏蔽寄存器中斷屏蔽寄存器 IMRIMRIRIR0 0IRIR1 1IRIR2 2IRIR3 3IRIR4 4IRIR5 5IRIR6 6IRIR7 7D D0 0D D7 7INTINTA A0 0CASCAS0 0CASCAS1 1CASCAS2 2SP/ENSP/ENCSCSWRWRRDRDINTAINTA工作方式 優(yōu)先級排隊(duì)方式優(yōu)先級排隊(duì)方式優(yōu)先級固定方式優(yōu)先級固定方式完全嵌套方式完全嵌套方式特殊嵌套方式特殊嵌套方式優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式自動循環(huán)方式自動循環(huán)方式特殊循環(huán)方式特殊循環(huán)方式中斷結(jié)束方式中斷結(jié)束方式自動結(jié)束方式自動結(jié)束方式非自動結(jié)束方式非自動結(jié)束方式常規(guī)結(jié)束方

20、式常規(guī)結(jié)束方式特殊結(jié)束方式特殊結(jié)束方式 屏蔽方式屏蔽方式常規(guī)屏蔽方式常規(guī)屏蔽方式特殊屏蔽方式特殊屏蔽方式 觸發(fā)方式觸發(fā)方式邊沿觸發(fā)邊沿觸發(fā)電平觸發(fā)電平觸發(fā)8259A的工作方式設(shè)置項(xiàng)目主要包括:的工作方式設(shè)置項(xiàng)目主要包括:寄存器寄存器寄存器寄存器8 8位對應(yīng)于連接在位對應(yīng)于連接在IR0IR0IR7IR7線上的外設(shè)所產(chǎn)生的中斷線上的外設(shè)所產(chǎn)生的中斷請求。具有鎖存功能,其內(nèi)容可用請求。具有鎖存功能,其內(nèi)容可用OCW3OCW3命令讀出。命令讀出。1.1.中斷請求寄存器(中斷請求寄存器(IRRIRR)2.2.中斷屏蔽寄存器(中斷屏蔽寄存器(IMRIMR)對中斷請求對中斷請求IRiIRi起屏蔽作用,寄存器

21、起屏蔽作用,寄存器8 8位對應(yīng)位對應(yīng)8 8級中斷屏蔽。級中斷屏蔽。3.3.正在服務(wù)寄存器正在服務(wù)寄存器ISRISR用來存放正在被服務(wù)的所有中斷源,包括掛起的中斷源。在用來存放正在被服務(wù)的所有中斷源,包括掛起的中斷源。在非自動結(jié)束方式下,非自動結(jié)束方式下,ISRISR的復(fù)位要由中斷結(jié)束命令的復(fù)位要由中斷結(jié)束命令EOIEOI來執(zhí)行來執(zhí)行總結(jié):總結(jié):IRRIRR、IMRIMR、ISRISR都是置位(寫都是置位(寫1 1)有效:即)有效:即IRRIRR有請求有請求了;了;IMRIMR屏蔽了;屏蔽了;ISRISR服務(wù)中服務(wù)中-ing;-ing;11.1 11.1 中斷控制器中斷控制器8259A8259A

22、 初始化初始化1、ICW1:進(jìn)行中斷觸發(fā)和單片/多片設(shè)置;2、ICW2:進(jìn)行中斷號設(shè)置;3、ICW3:進(jìn)行級聯(lián)設(shè)置;4、ICW4:進(jìn)行優(yōu)先級和結(jié)束方式設(shè)置初始化方式命令I(lǐng)CW可以對8259設(shè)置觸發(fā)、級聯(lián)、中斷號、優(yōu)先級、結(jié)束方式;而中斷屏蔽方式是默認(rèn)常規(guī)屏蔽方式,如要改動,可以執(zhí)行操作命令OCW3。8259初始化任務(wù)8259初始化具體操作初始化初始化ICW1ICW1寫寫ICW1級聯(lián)?級聯(lián)?YN寫寫ICW3寫寫ICW2需要需要ICW4?YN寫寫ICW4D7D6D5D4D3D2D1D00001LTIM0SNGLIC4觸發(fā)電平:觸發(fā)電平:0=邊沿觸發(fā)邊沿觸發(fā)1=電平觸發(fā)電平觸發(fā)級聯(lián)模式:級聯(lián)模式:0

23、=級聯(lián)方式級聯(lián)方式1=單片方式單片方式ICW4選項(xiàng):選項(xiàng):0=不寫不寫ICW41=寫寫ICW4特征位F初始化初始化ICW2ICW2寫寫ICW1級聯(lián)?級聯(lián)?YN寫寫ICW3寫寫ICW2需要需要ICW4?YN寫寫ICW4D7D6D5D4D3D2D1D0T7T6T5T4T3000中斷號高中斷號高5位:位:用于在中斷響應(yīng)周期送出中用于在中斷響應(yīng)周期送出中斷號,其中低斷號,其中低3位根據(jù)中斷位根據(jù)中斷申請輸入號申請輸入號IRx產(chǎn)生。產(chǎn)生。F初始化初始化ICW4ICW4寫寫ICW1級聯(lián)?級聯(lián)?YN寫寫ICW3寫寫ICW2需要需要ICW4?YN寫寫ICW4D7D6D5D4D3D2D1D0000SFNM0M/

24、SAEOI1優(yōu)先權(quán)方式:優(yōu)先權(quán)方式:0=完全嵌套完全嵌套1=特殊嵌套特殊嵌套主主/從片設(shè)定:從片設(shè)定:0=從片從片1=主片主片中斷結(jié)束方式:中斷結(jié)束方式:0=非自動結(jié)束方式非自動結(jié)束方式1=自動結(jié)束方式自動結(jié)束方式8259A8259A操作操作-OCW1-OCW1D7D6D5D4D3D2D1D0M7M6M5M4M3M2 M1M0OCW1OCW1:用于設(shè)定中斷屏蔽,每一位對應(yīng)一個中斷輸:用于設(shè)定中斷屏蔽,每一位對應(yīng)一個中斷輸入線,入線,0=0=開放,開放,1=1=屏蔽。屏蔽。IR0-7對應(yīng)M0-78259A8259A操作操作-OCW2-OCW2OCW2OCW2:用于中斷結(jié)束命令和優(yōu)先級循環(huán)操作。:

25、用于中斷結(jié)束命令和優(yōu)先級循環(huán)操作。D7D6D5D4D3D2D1D0RSLEOI00L2 L1L0R:優(yōu)先級輪換優(yōu)先級輪換0:完全嵌套方式:完全嵌套方式1:輪換優(yōu)先級:輪換優(yōu)先級SL:指定中斷結(jié)束指定中斷結(jié)束當(dāng)當(dāng)EOI=0:最高級中斷結(jié)束SL=XXX;當(dāng)當(dāng)EOI=1: SL=0 :結(jié)束當(dāng)前中斷L2L1L0任意值;SL=1 :指定中斷結(jié)束,由L2L1L0指定EOI:中斷結(jié)束中斷結(jié)束0:自動中斷結(jié)束(自動中斷結(jié)束(清最高級清最高級) 1:非自動結(jié)束:非自動結(jié)束中斷等級編號特征位00 F8259A8259A操作操作-OCW2-OCW2用OCW2作中斷結(jié)束控制時的常見做法: 當(dāng)ICW4選用非自動結(jié)束方式

26、時(即OCW2中的EOI=1),利用OCW2來控制中斷結(jié)束有2種情況:SL=0(指定中斷結(jié)束位0) ,表示結(jié)束當(dāng)前中斷 (L2L0可以是任意值). OCW2=00100 xxxB=20H(L2L1L0000常用)SL=1(指定中斷結(jié)束位1),表示指定中斷結(jié)束,由 L2L1L0指定. OCW2=01100101B=65H(指定IR5中斷結(jié)束)8259A8259A操作操作OCW3OCW3用于設(shè)定屏蔽方式和讀取狀態(tài)。用于設(shè)定屏蔽方式和讀取狀態(tài)。D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS屏蔽方式:屏蔽方式:0X=無操作無操作10=常規(guī)屏蔽方式常規(guī)屏蔽方式11=特殊屏蔽方式特殊屏蔽

27、方式讀取選擇命令:寫完讀取選擇命令:寫完OCW3后,接下讀取后,接下讀取00X=無操作無操作010=IRR011=ISR1XX=查詢字,可查詢當(dāng)前中斷申請查詢字,可查詢當(dāng)前中斷申請TPCTPC實(shí)驗(yàn)平臺實(shí)驗(yàn)平臺- -中斷模塊中斷模塊l 386CPU內(nèi)部有內(nèi)部有2個個8259,級聯(lián)采用與,級聯(lián)采用與PC機(jī)相同機(jī)相同的方式,其主從的方式,其主從8259使用的命令字和端口地址與使用的命令字和端口地址與PC DOS兼容。兼容。l 本實(shí)驗(yàn)箱允許使用主本實(shí)驗(yàn)箱允許使用主8259的的IR5 即即MIR5和從和從8259的的IR0,SIR0和擴(kuò)展和擴(kuò)展8259;l 注意,主從注意,主從8259已經(jīng)初始化,并且固

28、化,用戶無已經(jīng)初始化,并且固化,用戶無需對需對8259初始化,只能寫入中斷屏蔽字和中斷向初始化,只能寫入中斷屏蔽字和中斷向量。量。用戶中斷輸入用戶中斷輸入引腳引腳對應(yīng)對應(yīng)82598259引腳引腳輸入輸入中斷屏蔽中斷屏蔽字字中斷類型中斷類型號號82598259端口地端口地址址IRQ5IRQ5(MIR5MIR5)主片主片IR5IR511011111B11011111B35H35H20H,21H20H,21HIRQ8IRQ8(SIR0SIR0)從片從片IR0IR011111110B11111110B70H70H0A0H0A0H,0A1H0A1H主從片8259A的端口地址: 中斷源中斷源IR0IR0I

29、R1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7主片中斷向量主片中斷向量30H30H31H31H32H32H33H33H34H34H35H35H36H36H37H37H從片中斷向量從片中斷向量70H70H71H71H72H72H73H73H74H74H75H75H76H76H77H77H實(shí)驗(yàn)平臺主從8259A的中斷類型號與中斷源的對應(yīng)關(guān)系 中斷號基數(shù)TPCTPC實(shí)驗(yàn)平臺注意幾點(diǎn)實(shí)驗(yàn)平臺注意幾點(diǎn)1、不需要對8259A初始化(ICW1-ICW4),但要進(jìn)行設(shè)置中斷向量和打開中斷等操作;2、TPC采用的是非自動結(jié)束,則需要在中斷結(jié)束前(中斷服務(wù)程序的最后)發(fā)中斷結(jié)束

30、命令:MOV AL,20H OUT 20H,AL 3、寫入屏蔽信息需要采取讀取修改寫入順序:主8259:IN AL,21H AND AL,0DFH OUT 21H,AL .Model small.386data segment;數(shù)據(jù)段定義data endscode segment assume cs:code,ds:data start: mov ax,data ;數(shù)據(jù)段定位 mov ds,ax ;加上設(shè)置其他模塊初始化 cli ;關(guān)386 CPU中斷;寫入中斷屏蔽字OCW1in al,21hand al,11011111b out 21h,alCALL WRINTVERSti;主程序代碼co

31、de ends end startWRINTVER: PUSH DSMOV AX, 0MOV DS, AXMOV DI, 4*35H CLIMOV BX, OFFSET INTPMOV DI, BXADD DI, 2MOV BX, SEG INTPMOV DI, BXPOP DSretINTP: ;中斷服務(wù)程序 PUSH AXCLI;中斷服務(wù)主體MOV AL,20H ;中斷結(jié)束 OCW2OUT 20H,ALSTIPOP AXIRET 中斷程序設(shè)計(jì)模板技術(shù)指標(biāo)技術(shù)指標(biāo)指A/D轉(zhuǎn)換器可轉(zhuǎn)換成數(shù)字量的最小電壓(量化階梯 ) 。 如 8 位 A D C 滿 量 程 為 5 V , 則 分 辨 率 為5

32、000mV/256=20mV,也就是說當(dāng)模擬電壓小于20mV,ADC轉(zhuǎn)換為0,所以分辨率一般表示式為:單極性:分辨率=Vref/2位數(shù)雙極性:分辨率=(V+ref-V-ref)/2位數(shù)技術(shù)指標(biāo)(參數(shù))分辨率08090809內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)通道選擇開關(guān)8路模擬輸入信號通道鎖存譯碼通道編號啟動脈沖時鐘脈沖輸出允許1=允許輸出轉(zhuǎn)換完成1=完成REF參考電壓正極和負(fù)極三態(tài)輸出鎖存器D7-D008090809工作時序工作時序|轉(zhuǎn)換期間,輸入信號保持穩(wěn)定|鎖存地址,選擇通道CLOCKSTARTALEADDA/B/C模擬輸入信號OE(ENABLE)EOC數(shù)據(jù)輸出開始轉(zhuǎn)換轉(zhuǎn)換結(jié)束讀取數(shù)據(jù)編程步驟編程步驟 送

33、通 道 碼 ( A L E ) -ALE=ALE=“1 1”,寫入待轉(zhuǎn)換的通,寫入待轉(zhuǎn)換的通道,道,由ADDA、ADDB、ADDC 高低電平?jīng)Q定。通常ADDA、ADDB、ADDC 接固定電平,即轉(zhuǎn)換通道固定;啟動A/D轉(zhuǎn)換(START)給START一正脈沖,轉(zhuǎn)換開始注意:通常 同時完成12.2 A/D12.2 A/D轉(zhuǎn)換接口轉(zhuǎn)換接口- -編程步驟編程步驟判斷是否轉(zhuǎn)換完畢?判EOC引腳的狀態(tài),用EOC標(biāo)志信號,典型的有三種方式:用EOC引腳:查詢是否為高電平用EOC引腳:中斷不直接用EOC引腳:延時,延時至少100us;CPU讀取數(shù)據(jù),即輸出數(shù)據(jù)(OE(ENABLE)) A0=1IOW=0ADC

34、S=01IOR=0101A1=1IOR=0l中斷方式用到200H+201Hl查詢方式用到200H201H+202H實(shí)驗(yàn)實(shí)驗(yàn)ADAD編程地址編程地址lA1A0=00,配合,配合IOW寫操作,寫操作,ALE/START1,啟動啟動A/D轉(zhuǎn)換轉(zhuǎn)換 200H(中斷:啟動轉(zhuǎn)換)(中斷:啟動轉(zhuǎn)換)lA0=1,配合,配合IOR讀操作,讀操作,ENABLE=1,讀取讀取A/D轉(zhuǎn)轉(zhuǎn)換后的數(shù)據(jù)換后的數(shù)據(jù) 201H(中斷:讀數(shù)據(jù)中斷:讀數(shù)據(jù))lA11,配合,配合IOR讀操作,三態(tài)門打開,通過讀操作,三態(tài)門打開,通過D0獲取獲取EOC狀態(tài)。當(dāng)狀態(tài)。當(dāng)D01時,轉(zhuǎn)換結(jié)束時,轉(zhuǎn)換結(jié)束 202H(查(查詢轉(zhuǎn)換是否結(jié)束)詢轉(zhuǎn)

35、換是否結(jié)束)l中斷方式用到中斷方式用到200H+201Hl查詢方式用到查詢方式用到200H201H+202HVref:基準(zhǔn)電壓8位輸入寄存器8位DAC寄存器8位D/A轉(zhuǎn)換器DI7DI0ILELE1LE2CSWR1WR2XFERVREFIOUT2IOUT1RFBAGND(模擬地 )&DGND(模擬地 )VCC8位數(shù)據(jù)輸入ILE:數(shù)據(jù)輸入鎖存,高有效XFER:傳送控制,低有效DAC0832DAC0832有三種工作方式:(1)雙緩沖方式:控制選通1和2(2)單緩沖方式:控制選通1或2(3)直通方式:不控制選通1和2,直接接低電平 MOV DX,DA_CS MOV AL,0FFH OUT DX

36、,AL ;輸出數(shù)據(jù) TPC實(shí)驗(yàn)平臺DA0832模塊82518251接口芯片內(nèi)部結(jié)構(gòu)接口芯片內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)l收發(fā)聯(lián)絡(luò)信號的作用收發(fā)聯(lián)絡(luò)信號的作用TXRDY:發(fā)送器準(zhǔn)備好信號,用來通知CPU,8251A已準(zhǔn)備好發(fā)送一個字符。RXRDY:接收器準(zhǔn)備好信號,用來表示當(dāng)前8251A已經(jīng)從外部設(shè)備接收到一個字符,等待CPU來取走。在中斷方式時,RXRDY可用作中斷請求信號在查詢方式時,RXRDY可用來作為查詢信號還可以利用狀態(tài)字進(jìn)行發(fā)送、接收方式命令字方式命令字D7D6D5D4D3D2D1D08251A8251A復(fù)位后寫到命令端口的第一個字節(jié)。方復(fù)位后寫到命令端口的第一個字節(jié)。方式字的最低式字的

37、最低2 2位為位為0000,表示同步方式命令,否則為異步方式命,表示同步方式命令,否則為異步方式命令。異步方式命令定義如下:令。異步方式命令定義如下:波特率因子波特率因子: 00=(同步同步) 01=1 10=16 11=64字符長度字符長度: 00=5位位 01=6位位 10=7位位 11=8位位 校驗(yàn)設(shè)置校驗(yàn)設(shè)置: X0=無校驗(yàn)無校驗(yàn) 01=奇校驗(yàn)奇校驗(yàn) 11=偶校驗(yàn)偶校驗(yàn)停止位數(shù)停止位數(shù): 00=(非法非法) 01=1位位 10=1.5位位 11=2位位工作命令字工作命令字0D60D40D20D08251A8251A復(fù)位后寫到命令端口的第二個字節(jié)(之復(fù)位后寫到命令端口的第二個字節(jié)(之前的

38、方式字確定為異步方式)。前的方式字確定為異步方式)。TxEN: 0=不允許發(fā)送,1=允許發(fā)送RxEN: 0=不允許接收,1=允許接收ER: 1=清除全部錯誤標(biāo)志(后面狀態(tài)字)IR: 1=產(chǎn)生內(nèi)部復(fù)位狀態(tài)字狀態(tài)字00D5D4D30D1D08251A8251A復(fù)位后從狀態(tài)端口讀取到的字節(jié)。復(fù)位后從狀態(tài)端口讀取到的字節(jié)。TxRDY: 1=發(fā)送數(shù)據(jù)寄存器空發(fā)送數(shù)據(jù)寄存器空RxRDY: 1=接收數(shù)據(jù)寄存器滿接收數(shù)據(jù)寄存器滿PE: 奇偶錯誤,1=發(fā)生奇偶錯誤OR: 溢出錯誤,1=發(fā)生溢出錯誤FE: 格式錯誤,1=發(fā)生格式錯誤8253A8253A定時器定時器1 1用于波特率發(fā)生器。用于波特率發(fā)生器。8251

39、8251按異步方式傳送,按異步方式傳送,波特率因子為波特率因子為1616,波特率為,波特率為9600bps9600bps,數(shù)據(jù)格式選為:,數(shù)據(jù)格式選為: 7 7位位數(shù)據(jù)位,偶校驗(yàn),數(shù)據(jù)位,偶校驗(yàn),1 1位停止位。要求從位停止位。要求從82518251發(fā)送一個數(shù)據(jù)發(fā)送一個數(shù)據(jù)33H33H,通過自環(huán)連接方式,將接收到的數(shù)據(jù)存入內(nèi)存地址,通過自環(huán)連接方式,將接收到的數(shù)據(jù)存入內(nèi)存地址600H600H中。中。已知已知82538253基址為基址為48H48H,82518251基址為基址為50H50H。TCC EQU 004BHTC1 EQU 0049HSECOPORT EQU 0051HSEDAPORT

40、EQU 0050HMOV DX,TCC;8253初始化MOV AL,56H;Mode Word=01 01 011 0OUT DX,ALMOV DX,TC1;1.8432MHZ/(9600X16)12OCHMOV AL,0CHOUT DX,AL MOV DX,SECOPORT;初始化8251A MOV AL,00 ;空操作OUT DX,AL MOV AL,40H ;Reset 8251AOUT DX,ALMOV AL,7AH ;Mode Word=01111010OUT DX,ALMOV AL,37H ;Command Word 37HOUT DX,ALMOV SI,DATA ;SI=600W

41、ATTXD: MOV DX,SECOPORT;發(fā)送準(zhǔn)備好? IN AL,DXTEST AL,01HJZ WATTXDMOV AL,33H;發(fā)送MOV DX,SEDAPORTOUT DX,ALWATRXD: MOV DX,SECOPORT;接收準(zhǔn)備好? IN AL,DXTEST AL,02HJZ WATRXDMOV DX,SEDAPORT;接收IN AL,DXMOV BYTE PTR DS:0600H,AL;recivedata=0600端口通道地址寄 存 器讀(IOR)寫(IOW)DMA+0000讀通道0的當(dāng)前地址寄存器寫通道0的基地址寄存器DMA+1001讀通道0的當(dāng)前字節(jié)計(jì)數(shù)寄存器寫通道0

42、的基字節(jié)計(jì)數(shù)寄存器DMA+2102讀通道1的當(dāng)前地址寄存器寫通道1的基地址寄存器DMA+3103讀通道1的當(dāng)前字節(jié)計(jì)數(shù)寄存器寫通道1的基字節(jié)計(jì)數(shù)寄存器DMA+4204讀通道2的當(dāng)前地址寄存器寫通道2的基地址寄存器DMA+5205讀通道2的當(dāng)前字節(jié)計(jì)數(shù)寄存器寫通道2的基字節(jié)計(jì)數(shù)寄存器DMA+6306讀通道3的當(dāng)前地址寄存器寫通道3的基地址寄存器DMA+7307讀通道3的當(dāng)前字節(jié)計(jì)數(shù)寄存器寫通道3的基字節(jié)計(jì)數(shù)寄存器DMA+8公用08讀狀態(tài)寄存器寫命令寄存器DMA+909-寫請求寄存器DMA+100A-寫單個通道屏蔽寄存器DMA+110B-寫工作方式寄存器DMA+120C-寫清除先/后觸發(fā)器命令(軟

43、命令)DMA+130D讀暫存寄存器寫總清命令(軟命令)DMA+140E-寫四個通道屏蔽寄存器命令(軟命令)DMA+150F-寫置四個通道屏蔽寄存器DMA 823782378237寄存器寄存器8237A內(nèi)部寄存器及編程(15個寄存器)u工作方式寄存器工作方式寄存器:設(shè)置DMA的操作類型、操作方式等D7D6D5D4D3D2D1D0方式選擇00=詢問方式01=單一方式10=塊方式11=級聯(lián)方式地址增量1=地址減10=地址加11=自動預(yù)置0=非自動預(yù)置類型選擇00=校驗(yàn)01=DMA寫:I/ORAM10=DMA讀:RAM I/O11=無效通道選擇00=0通道01=1通道10=2通道11=3通道自動預(yù)置82378237寄存器寄存器u基值地址寄存器基

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論