Microcontroladores PIC - Entradas e saídas Digitais
-
Upload
fabio-souza -
Category
Technology
-
view
6.682 -
download
7
description
Transcript of Microcontroladores PIC - Entradas e saídas Digitais
![Page 1: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/1.jpg)
Microcontroladores PICPortas de Entrada/Saída Digital
Fábio Souza
![Page 2: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/2.jpg)
Interface com circuitos externo
• A interface com circuitos externos é feitas através de pinos que sãoagrupados em PORTs.
![Page 3: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/3.jpg)
PORTX
• OS PORTs são agrupados em até 8 pinos (bits) e são denominados: PORTA, PORTB, PORTC .... Conforme a quantidade de pinos que o microcontrolador apresenta.
![Page 4: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/4.jpg)
Pinos de I/O no PIC16F84
PORTA:RA0RA1RA2RA3RA4
PORTB:RB0RB1RB2RB3RB4RB5RB6RB7
• O PIC16F84 possui 2 PORTs :• PORTA• PORTB
Os PORTs estão divididos da seguinte forma:
![Page 5: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/5.jpg)
Configuração
• Os pinos de I/O podem ser configuradas como entrada ou saída conforme a necessidade do hardware.
OSC1/CLKIN16
RB0/INT6
RB17
RB28
RB39
RB410
RB511
RB612
RB713
RA017
RA118
RA21
RA32
RA4/TOCKI3
OSC2/CLKOUT15
MCLR4
U1
PIC16F84
R110k
X1CRYSTAL
C1
22p
C2
22p
BT1
R210k
D1LED-GREEN
R3
330R
![Page 6: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/6.jpg)
Registradores para configuração
• Para definir se um pino será utilizado como entrada ou saída utiliza-se o registrador TRISX.
• No PIC16F84• TRISA
• TRISB
![Page 7: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/7.jpg)
Entrada ou Saída?
• Configurando:• Entrada -> bit = 1;
• Saída -> bit = 0
![Page 8: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/8.jpg)
Escrita em pino
• Para escrita, o pino correspondente deve estar configurado como saída no registrador TRISX correspondente.
• A escrita é é feita através do registrador PORTX correspondente.
• Exemplo: PORTA -> PIC16F84A
![Page 9: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/9.jpg)
Exemplo: Acionando um LED
• LED apagado:
RB7 = 0;Ou
TRISB =0b00000000;
• LED aceso:
RB7 = 1;Ou
TRISB =0b10000000;
0 V 5 V
![Page 10: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/10.jpg)
Leitura de nível lógico no pino
• Para leitura, o pino correspondente deve estar configurado como entrada no registrador TRISX correspondente.
• A leitura é feita através do registrador PORTx.
• Exemplo: PORTA -> PIC16F84A
![Page 11: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/11.jpg)
Exemplo: Leitura de tecla com resistor de pull-up
• Tecla pressionada• Tecla solta
5 V0 V
RA0 = 1;Ou
PORTA = 0bXXXXXXX1;
RA0 = 0;Ou
PORTA = 0bXXXXXXX0;
![Page 12: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/12.jpg)
Acionamento de pino na linguagem C
• Configuração ENTRADA/SAÍDATRISX = 0b00000000;//configura todos os pinos como saída
• Acionando um PINO:PORTX.RXY = 0; //coloca nível 0 no pino
PORTX.RXY = 1; //coloca nível 1 no pino
• Acionando mais de um PINO:PORTX = 0b10100101;//aciona PORTX inteiro de uma vez
X: A, B, C , D... Conforme PORTs
Y: 0,1,2,3.... Conforme pinos
![Page 13: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/13.jpg)
Exemplo – Pisca LED
void main() {
TRISB = 0b00000000; //configura todos os pinos do PORTB como saída
PORTB = 0; //desliga todos os pinos do PORTB
while(1){ //loop infinito
PORTB.RB7 = 1; //liga led
Delay_ms(1000); //aguarda 1 seg
PORTB.RB7 = 0; //desliga led
Delay_ms(1000); //aguarda 1 seg
} //repete ciclo
}
![Page 14: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/14.jpg)
Leitura de pino em linguagem C
• Configuração ENTRADA/SAÍDATRISX = 0b00000000;//configura todos os pinos como saída
• Lendo um PINO:valor_booleano = PORTX.RXY; //atribui o valor do pino a uma variável booleana
Valor_inteiro = PORTX; //atribui o valor do port todo a uma variável int
if(PORTX.RXY == 0) //verifica o valor do pino e toma uma ação de verdadeiro
{
}
while(PORTX.RXY == 0); //enquanto pino em nível 0 fica no loop
![Page 15: Microcontroladores PIC - Entradas e saídas Digitais](https://reader035.fdocument.pub/reader035/viewer/2022081720/55879b3ad8b42af1748b45a9/html5/thumbnails/15.jpg)
Exemplo – Leitura de Teclavoid main() {
TRISA.B0 = 1; //configura pino RA0 como entrada
TRISB.B7 = 0; //Configura pino RB7 como saída
while(1) //loop infinito
{
if(PORTA.RA0 == 0) //se tecla pressionada
{
PORTB.RB7 = 1; //liga led
}
else //se tecla solta
{
PORTB.RB7= 0; //desliga led
}
}
}