Post on 17-Mar-2016
description
8 8.1 8.2 8255A8.3 8251A8.4 8250
1.2.8255A82503.4.8255A8250
8 1. 2. 8255A3.8255A014.8250
1. 8255A12CPU 2. 8250CPU
8.1 I/O
1.816322.3.
1.2.3.TTL4.
8.2 8255A18255A8(AB)4(C/4)/2A012B01CPUI /O3C012C/
8255A
8255A8255A8-1CPU
1.CPU D7D08 RESET CS*RD*WR* A1 A0
8255A/
A1 A0RD*WR*CS*CPU001010000111000 A B C 00110101111100000000(CPU)A B C
2. APA0PA7A012BPB0PB7B01CPC0PC70A4PC4PC7B4PC0PC3
APA0PA7BPB0PB7CPC0PC74
8255A
8255A8255A C/
1.D7=1
2./(D7=0)
3. 8255A3 /C D71D70/ /
4. 8255AI/OA1A011ABCI/OA1A0000110IBM PC/XTABCI/O60H61H62H63H
(1)A 1CCB 010110001BB1HMOV DX,303H;303HMOV AL,0B1H;OUT DX,AL;
(2)INOUTCPU8255ACPU
8255A BPB7MOV DX,301HB301HIN AL,DXBOR AL,80HPB71OUT DX,AL
(3)C1C40CAACBB
(3)C2AB12C0
(3) C3CCI/OCCCC10
(3)C4CABAB8255A
8255A012
1.00 0/ 024I /O I /O
2. 1 1)ABC. /C
1A1:ACPU
B1
1STB*8255AIBF8255AINTR8255ACPUCPUINTE
8255A1
A B STB*PC4 PC2 IBFPC5 PC1 INTRPC3 PC0 INTEPC4 PC2
28255A1
3A1CPUCPU
B1
1OBF*8255ACPUACK*8255AINTR8255ACPUCPU
8255A1
A B OBF*PC7PC1 ACKPC6 PC2 INTRPC3 PC0 INTEPC6 PC2
48255A1
3. 221A2C5121218255AOBF*ACK*
(1)2PC6INTE1PC4INTE2INTRA
28255A2
8255A1.8-38K7K08255AABCA8255AABC100H101H102H103H
(1) 8-11
MOV DX103HDX MOV AL 90H OUT DX ALL1 MOV DX100HA DX IN ALDX A MOV DX101HB OUT DXALBLED XORAL0FFHAL AL MOVDX102HC DX OUTDXALC JMP L1(2) 8255A
8-4Intel 8255A8-12A-B-C-D-A-AB-BC-CD-DA-AB-A-AB-B-BC-C-CD-D-DA-A-2.
Intel 8255APA3~ PA0A074LS24474LS244TIP1228-58255A300H301H302H303H
8-5
1AB03H2BC06H3CD0CH4DA09H
10000000B=80HA0 MOV AL80H MOV DX303H DX OUT DXAL MOV DX300H A L1MOV AL03H AB OUT DXAL CALL DELAY1 MOV AL06H BC OUT DXAL CALL DELAY1
MOV AL0CH CD OUT DXAL CALL DELAY1 MOV AL09H DA OUT DXAL CALL DELAY1 JMP L1DELAY1MOV CX03FFFH DELAY2LOOP DELAY2 RET
3. (0) 8-58-13CPU(BUSY)1(BUSY=1)CPU8
8255A10000001B=81H 8255A0 AC44PC6 00001101B 0DHPC6 00001100B 0CH2000H MOV DX247H 8255A 247HDX MOV AL 81H 8255A OUT DX AL
MOV AL 0DH OUT DXAL PC61STB*1 MOVSI2000H SI MOVCX0FFHNEXT MOVDX246H 8255APC IN ALDX CPC30 ANDAL08H JNZ NEXT MOVDX244H ADX MOVALSI OUTDXAL
MOVDX247HDX MOVAL0CH PC60 OUTDXALSTB* NOPNOPNOP MOVAL0DH OUTDXAL STB*1 INCSI 1 LOOPNEXT
8-6 8255A1A18259AAPC38259ACPU8-158255A4244H245H246H247H
1PC78255APC68255APC38259AIR3.8255A10101000B 2PC6 00001101B 0DH8255AA138259AICW208H8255AA0BHIR3002CH4
MAIN MOV DX247H MOV AL0A8H OUT DXAL 8255A XOR AXAX MOV DSAX MOV AXOFFSET RING MOV [002CH]AX MOV AXSEG RING MOV [002EH]AX MOV DX247H MOV AL0DH PC61A1 OUT DXAL
MOV DIOFFSET BUFF MOV CX100 MOV DX244H MOV AL[DI] OUT DXAL INC DI STI LOOPNEXT JMPABC NEXT HLT LOOP NEXT ABC CLI MOV AH4CH INT 21H
RING MOVDX244H MOV AL[DI] OUT DXAL A INC DI STI IRET
8.38251A1.
2./Baud Ratebps50 bps9600 bps115200 bps1
b/s: 17111200bps1200/10120
2: 1200bps41007(100+4)/12000.6067s100/0.6067165
2 ///=n/1200 bps n=1616/ 120016=19.2kHznn=1163264
3.Synchronous Data CommunicationAsynchronous Data Communication
1
2
8251A 1.8251A(1)(2)5 8/(3)5 8/11664
(4)11.52(5)064Kbps019.2Kbps(6)(7)
2.8251A
3.8251A 1 8251ACPU CS*8251A D7D0 RD*WR*C/D*/
TXRDYTXE RXRDY SYNDET/BD
28251A DTR* DSR* RTS* CTS* TXD RXD
3 CLKVccGND
4.8251A8251A
8251ACPU 8251ACPU
1
2(/)
3 (8251A)
8251AMOV DX3F9HNEXTIN ALDX AND AL02H D1=1JZ NEXT NEXT MOVDX3F8H DX IN ALDX
8251A1.8-88251A1671 3F8H3F9H01111010B7AH00110111B37H
MOV DX3F9H MOV AL7AHOUT DXALMOV AL37H OUT DXAL
2.8-98251A3F9H7 00011000B18H10110111BB7H8251A38251A8251ACPU
MOV DX3F9H DXMOV AL00011000B OUT DXAL MOV AL16HOUT DXAL 16HOUT DXAL 16HMOV ALB7H OUT DXAL
3.8-108251A8-258251ARS-232C80868251A3F9H3F8H
CPUTxRDYCPU8251ACPURxRDY8251A
STARTMOV DX3F9HMOV AL7FH 8 OUT DXAL 64MOV AL11HOUT DXALMOV DI1000H MOV CX40H
L1 MOV DX3F9H IN ALDX AND AL01H TxRDY JZ L1 MOV DX3F8H MOV AL[DI] 8251A OUT DXAL INC DI LOOP L1 HLT
BEGINMOV DX3F9H MOV AL7FH 81 OUT DXAL 64 MOV AL14HERRxE 1 MOV DXAL MOV SI 2000H MOV CX40H L2MOV DX3F9H INALDX
TESTAL38H JNZ ERR AND AL02H D1RxRDYJZ L2 MOV DX3F8HIN ALDX 1
MOVSIAL INC SI LOOP L2 JMP L3 ERRCALL ERR-OUT L3 MOV AX4C00H DOS INT21H
8.48250 8250MODEMMODEM
1. 8250825010168A0A2DLAB011
8250
DLABA2A1A03F8H00 0 03F9H 00 0 13F8H 10 0 03F9H 10 0 13FAH0 1 03FBH0 1 13FCH1 0 0MODEM3FDH1 0 13FEH1 1 0MODEM
1 THR(3F8H)
1 RBR (3F8H)
2BRD(3F8H,3F9H) BRD16
8-111200bps UART1.8432MHzXTAL1BRD=1843200/161200=0060H
3 LCR3FBH
DLABD6 D5 D4 D3D2D1 D0
8-13LCR82MOV DX3FBH LCRMOV AL 00011111B LCROUT DXAL
4LSR3FDH)CPU
0D6 D5 D4 D3D2D1 D0
5MODEMMCR(3FCH)8250
0 0 0LOOP OUT2OUT1RTS DTR
8-14MCRDTRRTSOUT1OUT2LOOP MOV DX3FCH MCR MOV AL00000011B MCR OUT DXAL
8-158250:MOV DX 3FCH MCRMOV AL00010011B LOOP1OUT DXAL
6MODEMMSR(3FEH)4MSR41MSR41CPUMCR41CPU4
7IER 3F9H82502444825041
8. IIR3FAH
0 0 0 0 0ID1 ID0IP
ID1ID01 11 00 10 01234
2. 8250
3. 8250
1CPU1D7 D0 CPU8250A0A2825082503CS0CS1CS2*CSOUT38250CSOUTADS*
12DISTRDISTR*CPU8250I/ODOSTRDOSTR*CPU8250I/O8250
13DDISCPU8250DDISDDISMRRESETINTRPT8250410INTRPTCPU
1 4OUT1*OUT2*D2D3
2
3XTAL18250XTAL2BAUDOUT*8250RCLKRCLKBAUDOUT*
3. 8250D7=188MODE 8250
8-1782503F8H3FFH82509600bps81MOV DX3FBH8250DX MOV AL80H DLAB=1 OUT DXALMOV DX3F8H DX MOV AL0CH 9600bps OUT DXAL 8 INC DX
MOV AL00H 8OUT DXALMOV DX3FBH 8250DXMOV AL0BH 81OUT DXAL MOV DX3F9H DX MOV AL0FH OUT DXAL MOV DX3FCH MODEM MOV AL0FHOUT DXAL OUT1*,OUT2*0
8-18PCRS-232CMODEM9600bps8/182502F8H2FFHESCDOS
MOV DX2FBH 8250DXMOV AL80H DLAB=1OUT DXALMOV DX2F8H DXMOV AL0CH 9600bps OUT DXAL 8INC DXMOV AL00H 8OUT DXAL
MOV DX2FBH 8250DX MOV AL0BH 81 OUT DXAL MOV DX2FCH MOV AL03H OUT DXAL MOV DX2F9H MOV AL00H OUT DXAL
FOREVERMOV DX2FDH IN ALDX TEST AL1EH JNZ ERROR TEST AL01H JNZ RECEIVE TEST AL20H JNZ FOREVER MOV AH01H ZF=0AL=
INT 16HJZ FOREVERMOV AH00H INT 16HMOV DX2F8HOUT DXALMOV AH02H MOV DLALINT 21H
CMP AL27ESC JNZ NEXT MOV AH4CH INC 21H NEXTJMP FOREVER RECEIVEMOV DX2F8H IN ALDX AND AL7FH CMP AL27
JNZ DISP MOV AH4CH INT 21H DISP PUSH AX MOV BX0 MOV AH14 INT 10H POP AX CMP AL0DH
JNZ FOREVER MOV AL0AH MOV BX0 MOV AH14 INT 10H JMP FOREVER ERRORMOV DX2F8H IN ALDXMOVAL
MOV BX,0 MOV AH,14 INT 10H JMP FOREVER
81. 2.8255A 3.8251A8250 4.8255A
5.8255A8251A8250 6.
88.2 8.3 8.4 8.6 8.9 8.108.11 8.12 8(