You are on page 1of 20

Portas I/O Digitais

Curso Engenharia de Controle e Automao

Alex Vidigal Bastos www.decom.ufop.br/alex/ alexvbh@gmail.com

Agenda
Introduo Sentido do Fluxo de Dados da porta Controle de entrada dos pinos das portas

Introduo
So portas de entrada e sada de dados , cujos valores alternam entre 0 e 1; O PIC18F4550 tem 5 grupos de portas disponveis (A, B, C, D, E); Os pinos associados a elas so multiplexados; Cada porta tem trs registradores associados configurao;
3

Pinagem do PIC18F4550

4 Distribuio dos pinos no microcontrolador PIC18F4550

Introduo
Registrador TRIS:
configura o sentido do fluxo de dados de uma determinada porta; escreve e l o nvel dos pinos

Registrador PORT:
associados a uma porta;

Registrador LAT: armazena o valor do ltimo comando de


escrita;

Sentido do fluxo de dados da porta


O sentido do fluxo de uma determinada porta configurado pelo registrador TRIS; Tem 8 bits, sendo cada elemento correspondente configurao de um determinado pino de IO, sendo:

0 sada (output) 1 entrada (input)


O Maplab C18 suporta comandos de acesso simultneo dos 8 bits do registrador TRIS, como tambm de um nico bit;

TRISA, TRISB, TRISC, TRISD, TRISE


Sintaxe: TRISx = valor Valor = TRISx Sendo: x = nome da porta (letra maiscula) valor = valor de 8 bits (0 sadae 1 entrada)
7

TRISB = 0b00000001;

TRISA, TRISB, TRISC, TRISD, TRISE

TRISA, TRISB, TRISC, TRISD, TRISE

TRISA, TRISB, TRISC, TRISD, TRISE


Exemplos:

TRISA: 0b00000011 RA0 e RA1 entrada RA2 at RA7 sada TRISB: 0b11110000 RB0 e RB3 sada RB4 at RB7 entrada TRISE: 0b00000000 RE0 e RE7 sada

10

TRISAbits, TRISBbits, TRISCbits, TRISD bits, TRISE bits


Essas estrutura permitem o acesso a um nico bit; Sintaxe: TRISxbits.TRISxy = valor_bit Valor_bit = TRISxbits.TRISxy Sendo: x = nome da porta (letra maiscula); y = nmero do pino; valor = 0 sada e 1 entrada)

11

TRISAbits, TRISBbits, TRISCbits, TRISD bits, TRISE bits


Exemplos: TRISAbits.TRISA5 = 1 RA5 - entrada TRISBbits.TRISB3 = 0; RB3 sada TRISEbits.TRISE4 = 0; RE4 - sada

12

Controle do Estado dos pinos das portas


O status dos pinos da portas armazenado no registrador PORT; Possui um tamanho de 8 bits, sendo responsvel pelas operaes de escrita e leitura dos pinos relacionados s portas. Sendo 0 Vss e 1 Vcc;

13

PORTA, PORTB, PORTC, PORTD, PORTE


Para um comando de leitura, o registrador PORT realiza a leitura dos estados dos pinos e para um comando de escrita, o valor enviado para a porta LAT que vai modificar os nveis dos pinos IO configurados como sada. Sintaxe: PORTx = valor Valor = PORTx Sendo: x = nome da porta (letra maiscula) valor = valor de 8 bits (0 sadae 1 entrada)

14

PORTA, PORTB, PORTC, PORTD, PORTE


Suponha que todos os pinos da porta B estejam configurados como sada (TRISB = 00x0), ento podemos selecionar os pinos na porta do PIC, conforme abaixo: PORTB = 0b00100101;

15

PORTA, PORTB, PORTC, PORTD, PORTE

16

PORTA, PORTB, PORTC, PORTD, PORTE


Exemplos:

TRISD = 0b0000000 RD0 e RD7 sada TRISEbits.TRISE1 = 0; RE1 - sada PORTD = 0b01010010 RB0 e RB3 sada RB4 at RB7 entrada PORTEbits.RE1 = ~PORTEbits.RE1 Inverte o estado do pino RE1

17

PORTAbits, PORTBbits, PORTCbits, PORTDbits, PORTEbits


Essas estrutura permitem o acesso a um nico bit do registrador PORT; Sintaxe: PORTxbits.PORTxy = valor_bit Valor_bit = PORTxbits.PORTxy Sendo: x = nome da porta (letra maiscula); y = nmero do pino; valor = 0 sada e 1 entrada)

18

Exerccios
Exerccios

19

Perguntas