第 9 章

Click here to load reader

download 第  9   章

of 47

description

第 9 章. 可编程外围接口芯片 8255A. 中国科学技术大学 何克东. 微机与 I/O 设备的接口按照数据传送方式的不同 , 可分为并行接口与串行接口两种。 并行接口一次传送多位数据 , 即在 CPU 与 I/O 设备之间传送信息的数据单位一般为“字节”或“字” , 需要使用多根数据线 , 如打印机接口等. 在并行接口中 , 除了少数场合 ( 无条件传送 ) 之外 , 一般都要求在接口与外设之间设置并行数据线的同时 , 至少还要设置两根握手 ( 联络 ) 信号线 , 以便进行互锁异步握手方式 ( 即查询方式 ) 的通信。 - PowerPoint PPT Presentation

Transcript of 第 9 章

  • 9 8255A

  • I/O, ,CPUI/O,, ,(),,(),() ,,, ,,,

  • 9.1 8255AIntel 8255AI/O,Programmable Peripheral Interface PPI CPU3,24

  • 8255A

  • 1. APA0PA7A,012,BPB0PB7B,01CPC0PC70A4PC4PC7B4PC0PC34,,

  • 8255A

    A1A0RDWRCS001010000111000ABC00110101111100000000ABC110111100

  • 8255A

    1.012

  • 00= A001= A11X= A21=A0=A1=C40=C40= B01= B11=B0=B1=C40=C4

    1D6D5D4D3D2D1D0

  • 2.C/C,C,12,C/,INTE8255AC

  • 000:PC0001:PC1::111:PC71:0:/

    0 D3D2D1D0

  • MOV AL, 00001010BOUT 63H, ALMOV AL, 00001011BOUT 63H, ALMOV AL, 00001010BOUT 63H, ALPA7:PA0PB7:PB0PC7:PC5:PC00

    0 D3D2D1D0

  • 8255AC1.0 0,,ABC/,C4(PC7PC4)4(PC3~PC0),8,40,0, IN AL,60HOUT 61H, AL

  • 0

  • 0

  • 2.1 1AB,AB8IO()C6(3)AB,201

  • (1)1STB,,,8255AIBF,8255A,INTR,8255A,CPU,CPU

  • 1AACPUPC4PC5PC3PA7~PA0INTEAIBFAINTRASTBARD

  • 1STBIBF8255A,

  • 18255AINTE ,INTEC,INTEC,/INTE AINTEAPC4 BINTEBPC2 AINTEAPC6 BINTEBPC2

  • (2)1OBF, 8255A,,CPU,ACK, ,8255AINTR, ,8255ACPU,CPUAINTEAPC6BINTEBPC2

  • 1ACPUCPUPC6PC7PC3PA7~PA0INTEAOBFAINTRAACKAWR

  • 1OBFACK8255A,

  • 3. 221,A2,C5,121218255AOBF,ACK

  • 2-PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFARDINTE2PC6INTE1PC4INTE2INTRAWRSTBA

  • 2data-out INTR data-outdata-indata-inPA0PA7D0D7IBF ACK

  • 4.C 8255A12,C,8255A

  • 4.CACKAACKASTBBSTBAACKASTBA

    D7D6D5D4D3D2D1D01I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB1OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB2OBFAINTE1IBFAINTE2INTRA

  • 8255A I/OA1A011 ABCI/O,A1A0000110IBM PC/XT,ABCI/O60H61H62H63H

  • 1. A1C,CB010110001Bmov dx,0fffeh;FFFEHmov al,0b1h;out dx,al;

  • 2. ,IN,OUTCPU8255ACPU

  • 8255A, BPB7mov dx,0fffah;BFFFAHin al,dx;Bor al,80h;PB71out dx,al;

  • 3. CC4,0,,CAA,CBBAB12,C0

  • CCI/OCC,,,C10,

  • CABAB8255A

  • 9.2 8255A8255AIBM PC/XTLED

  • ,8K7~K0,,LEE7~LED0,LED;,LED8086 CPU,8255A74LSl380F0H~0F6H:10010000B

  • MOV DX,0F6H MOV AL,10010000B OUT DXALTEST_IT: MOV DX,0F0HA IN AL,DX A MOV DX,0F2HB OUT DX,AL BLED, JMP TEST_IT

  • PA08255A PA1PA2PA3PB7PB6PB5PB48255APB3PB2PB1PB0+5V0123865749ABCDEF

  • PORT_A EQU 0FF9H 8255A PORT_B EQU 0FFBH ;8255BPORT_CTL EQU 0FFFH 8255DATA SEGMENT ; 0 l 2 3 4 5 6 7TABLE DB 77H7BH7DH7EH0B7H0BBH0BDH0BEH; 8 9 A B C D E F DB 0D7H, 0DBH0DDH,0DEH0E7H0EBH0EDH0EEHDATA ENDSSTACK1 SEGMENT STACK STACK DW 50 DUP(0)TOP_STAC LABEL WORDSTACK1 ENDSCODE SEGMENT ;ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX STACK1 MOV SS AX LEA SP TOP_STACK MOV AX DATA MOV DS AX

  • ;8255A0ABC0 MOV DX PORT_CTL ; MOV AL 10001011B OUT DX AL MOV DXPORT_A ; A MOV AL0 OUT DXAL ;A0; MOV DXPORT_BWAIT_OPEN:IN ALDX B AND AL0FH 4() CMP AL0FH 1()? JNE WAIT_OPEN ;0WAIT_PRES:IN ALDX B AND AL0FH 4 CMP AL0FH JE WAIT_PRES MOV CX16EAH ; 20ms DELAY: LOOP DELAY 20ms

  • ; IN ALDX AND AL0FH CMP AL0FH JE WAIT_PRES , MOV AL0FEH ;D00 MOV CLAL ;CL1111 1110BNEXT_ROW: MOV DXPORT_A ;A OUT DXAL ; MOV DX,PORT_B ;B IN ALDX ;B AND AL0FH ; CMP AL0FH ;1 JNE ENCODE ; ROL CL1 ;10 MOV ALCL JMP NEXT_ROW

  • ;ENCODE MOV BX000FH ,F IN ALDX BNEXT_TRY:CMP AL,TABLE[BX]? JE DONE DEC BX ,() JNS NEXT_TRY MOV AH1 01AH JMP EXITDONE: MOV AL,BL ;BL16 MOV AH,0 ;AH=0EXIT: HLTCODE ENDS END

    ; 0 l 2 3 4 5 6 7TABLE DB 77H7BH7DH7EH0B7H0BBH0BDH0BEH; 8 9 A B C D E F DB 0D7H0DBH0DDH,0DEH0E7H0EBH0EDH0EEH

  • LEDLED7LEDLEDLEDLED

  • LED7abcdefgh709AF16P hgfedcba

  • LED

  • LEDhgfedcba

  • PORT_A EQU 0FOH ;ACOUNT EQU 05H DATA SEGMENT ;16; 0 1 2 3 4 5 6 7TABLE DB 40H79H24H30H19H12H02H78H; 8 9 A b C d E F DB 00H18H08H03H46H21H06H0EHDATA ENDSCODE SEGMENT 16 :DISPY: MOV BX,OFFSET TABLE ; LEA AL,COUNT[BX] 5 XLAT AL MOV DX,PORT_A OUT DX,AL A :CODE ENDS END