1 Ports Paralelos no 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc CEFET-PE
2 Ports Paralelos no 8051 Port 0 Port Paralelo AD 0 – AD 7 Port 1 Port Paralelo Port2 Port Paralelo A 8 – A 15 Port3 Port Paralelo P3.0 - P3.7 = RX, TX, int0, int1, T0, T1, WR, RD
3 Circuito Interno Genérico O que pode ser feito: –Escrever no pino –Leitura do latch –Leitura do pino D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 Port pin Latch TB1 TB2
4 Escrevendo “1” D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 Port pin Latch 2. Pino de saída é Vcc 1. Escreve “1” no pino 1 0 output 1 TB1 TB2
5 Escrevendo “0” D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 Port pin Latch 2. Pino de saída é GND 1. Escreve “0” no pino 0 1 output 0 TB1 TB2
6 Lendo “1”em um Pino de Entrada D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 Port pin Latch 2. MOV A,P1 external pin=High 1.Escreve “1”para o pino MOV P1,#0FFH Read pin=1 Read latch=0 Write to latch=1 1 TB1 TB2
7 Leitura de Pino ou Leitura de Latch Na leitura dos ports existem duas possibilidades –Leitura do status do pino. ( leitura externa ) MOV A, P1 JNB P2.1, TARGET ; jump if P2.1 is not set JB P2.1, TARGET ; jump if P2.1 is set –Leitura do latch interno do pino. ANL P1, A ; P1 ← P1 AND A ORL P1, A ; P1 ← P1 OR A INC P1 ; increase P1
8 Pinos do Port0 – ( open drain ) D Q Clk Q Read latch Read pin Write to latch Internal CPU bus M1 Port pin Latch TB1 TB2
9 Port0 com Pull-Up
10 ROM Externa D 74LS373 ALE P0.0 P0.7 PSEN A0 A7 D0 D7 P2.0 P2.7 A8 A15 OE OC EA G 8051 ROM
11 Leitura da ROM (1/2) D 74LS373 ALE P0.0 P0.7 PSEN A0 A7 D0 D7 P2.0 P2.7 A8 A12 OE OC EA G 8051 ROM 1. Envia end. P/ ROM latches o end. e envia p/ ROM Address
12 Leitura da ROM (2/2) D 74LS373 ALE P0.0 P0.7 PSEN A0 A7 D0 D7 P2.0 P2.7 A8 A12 OE OC EA G 8051 ROM latches o end. e envia p/ ROM Address 3. ROM envia a instrução
13 Expansão de E/S Paralela Interface Paralela 8255 A0 RD RST WR CS D0 D7 PA0 PA7 PB0 PB7 PC0 PC7 A1 A0Port 00A 01B 10C 11Configura Tabela de configuração
14 Expansão de E/S Paralela A15 A14 A13 A12 A11 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 RD WR RST CS A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 RD WR RST Bus Endereço 8051Port FFFCHA FFFDHB FFFEHC FFFFH Configura
15 A15 A14 A13 A12 A11 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 RD WR RST Bus 8051 ALE P0.0 P P2.0 P2.7 EA LatchLatch RD WR RST PA0 PA7 PB0 PB7 PC0 PC7 CS A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 RD WR RST 8255 Expansão de E/S Paralela
16 Expansão ROM e RAM
17 Aplicativo: Teclado F E D C B A P1.0 P1.3 P1.4 P1.7 0
18 Aplicativo: Teclado Algoritmo: Tecla = Peso + Deslocamento P1.4 = 0 => Peso 0 P1.5 = 0 => Peso 4 P1.6 = 0 => Peso 8 P1.7 = 0 => Peso 12 P1.0 = 0 => deslocamento 0 P1.1 = 0 => deslocamento 1 P1.2 = 0 => deslocamento 2 P1.3 = 0 => deslocamento 3 INICIO P1.4 0 (P1 0EFh) Peso = 0 Subrotina Tecla Tecla? (A FF?) Shift Bit Esq P1 Peso = Peso+4 Peso = 16? RET Subrotina Tecla P1.0 = 0 ? Tecla = Peso + 0 P1.1= 0 ? Tecla = Peso+ 1 P1.2 = 0 ? Tecla = Peso+2 P1.3 = 0 ? Tecla = Peso+3 RET S S N N A 0FFh