Microcontroladores PIC
Portas de Entrada/Saída Digital

Fábio Souza
Interface com circuitos externo
• A interface com circuitos externos é feitas através de pinos que são
agrupados em PORTs.
PORTX
• OS PORTs são agrupados em até 8 pinos (bits) e são denominados:
PORTA, PORTB, PORTC .... Conforme a quantidade de ...
Pinos de I/O no PIC16F84
• O PIC16F84 possui 2 PORTs :
• PORTA
• PORTB

Os PORTs estão divididos
da seguinte forma:
PORTA:...
Configuração
• Os pinos de I/O podem ser configuradas como entrada ou saída
conforme a necessidade do hardware.
C1

R2
10k...
Registradores para configuração
• Para definir se um pino será utilizado como entrada ou saída utiliza-se
o registrador TR...
Entrada ou Saída?
• Configurando:
• Entrada -> bit = 1;
• Saída -> bit = 0
Escrita em pino
• Para escrita, o pino correspondente deve estar configurado como
saída no registrador TRISX correspondent...
Exemplo: Acionando um LED
• LED apagado:

0V

RB7 = 0;
Ou
TRISB =0b00000000;

• LED aceso:

5V

RB7 = 1;
Ou
TRISB =0b10000...
Leitura de nível lógico no pino
• Para leitura, o pino correspondente deve estar configurado como
entrada no registrador T...
Exemplo:
Leitura de tecla com resistor de pull-up
• Tecla solta

• Tecla pressionada
RA0 = 1;
Ou
PORTA = 0bXXXXXXX1;

5V

...
Acionamento de pino na linguagem C
• Configuração ENTRADA/SAÍDA
TRISX = 0b00000000;//configura todos os pinos como saída

...
Exemplo – Pisca LED
void main() {
TRISB = 0b00000000;
PORTB = 0;
while(1){
PORTB.RB7 = 1;
Delay_ms(1000);
PORTB.RB7 = 0;
D...
Leitura de pino em linguagem C
• Configuração ENTRADA/SAÍDA
TRISX = 0b00000000;//configura todos os pinos como saída

• Le...
Exemplo – Leitura de Tecla
void main() {
TRISA.B0 = 1;
TRISB.B7 = 0;
while(1)
{
if(PORTA.RA0 == 0)
{
PORTB.RB7 = 1;
}
else...
Upcoming SlideShare
Loading in...5
×

Microcontroladores PIC - Entradas e saídas Digitais

7,488

Published on

Entradas e saídas digitais nos microcontroladores PIC com compilador mikroC

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,488
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
135
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Microcontroladores PIC - Entradas e saídas Digitais

  1. 1. Microcontroladores PIC Portas de Entrada/Saída Digital Fábio Souza
  2. 2. Interface com circuitos externo • A interface com circuitos externos é feitas através de pinos que são agrupados em PORTs.
  3. 3. 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.
  4. 4. Pinos de I/O no PIC16F84 • O PIC16F84 possui 2 PORTs : • PORTA • PORTB Os PORTs estão divididos da seguinte forma: PORTA: RA0 RA1 RA2 RA3 RA4 PORTB: RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7
  5. 5. Configuração • Os pinos de I/O podem ser configuradas como entrada ou saída conforme a necessidade do hardware. C1 R2 10k 22p X1 C2 22p BT1 U1 CRYSTAL 16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/TOCKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 R1 10k PIC16F84 17 18 1 2 3 6 7 8 9 10 11 12 13 R3 330R D1 LED-GREEN
  6. 6. 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
  7. 7. Entrada ou Saída? • Configurando: • Entrada -> bit = 1; • Saída -> bit = 0
  8. 8. 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
  9. 9. Exemplo: Acionando um LED • LED apagado: 0V RB7 = 0; Ou TRISB =0b00000000; • LED aceso: 5V RB7 = 1; Ou TRISB =0b10000000;
  10. 10. 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
  11. 11. Exemplo: Leitura de tecla com resistor de pull-up • Tecla solta • Tecla pressionada RA0 = 1; Ou PORTA = 0bXXXXXXX1; 5V RA0 = 0; Ou PORTA = 0bXXXXXXX0; 0V
  12. 12. Acionamento de pino na linguagem C • Configuração ENTRADA/SAÍDA TRISX = 0b00000000;//configura todos os pinos como saída • Acionando um PINO: PORTX.RXY = 0; PORTX.RXY = 1; //coloca nível 0 no pino //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
  13. 13. Exemplo – Pisca LED void main() { TRISB = 0b00000000; PORTB = 0; while(1){ PORTB.RB7 = 1; Delay_ms(1000); PORTB.RB7 = 0; Delay_ms(1000); } } //configura todos os pinos do PORTB como saída //desliga todos os pinos do PORTB //loop infinito //liga led //aguarda 1 seg //desliga led //aguarda 1 seg //repete ciclo
  14. 14. Leitura de pino em linguagem C • Configuração ENTRADA/SAÍDA TRISX = 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
  15. 15. Exemplo – Leitura de Tecla void main() { TRISA.B0 = 1; TRISB.B7 = 0; while(1) { if(PORTA.RA0 == 0) { PORTB.RB7 = 1; } else { PORTB.RB7= 0; } } } //configura pino RA0 como entrada //Configura pino RB7 como saída //loop infinito //se tecla pressionada //liga led //se tecla solta //desliga led
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×