Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C

7,429 views

Published on

exibe os algumas formas de leitura e escritas em pino de I/O usando a linguagem C no compilador MikroC.

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

No Downloads
Views
Total views
7,429
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
217
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C

  1. 1. Microcontroladores PIC Manipulação de pinos de I/O com a Linguagem C Compilador: MikroC for PIC Fábio Souza 1
  2. 2. Objetivos • Aprender recurso da linguagem C para manipulação de pinos de I/O digitais; • Desenvolver aplicações com uso de I/O digitais usando a linguagem C. Fábio Souza 2
  3. 3. Registradores para trabalhar com pinos de I/O • TRISX – Configura pino como ENTRADA ou SAÍDA digital • Bit = 0: pino configurado como saída digital; • Bit = 1: pino configurado como entrada digital; • Exemplo: • TRISA = 0b00001111; • PORTX – • Quando pino configurado como saída: escreve valor digital; • Quando pino configurado como entrada: lê o valor digital presente no pino; • Exemplo: • PORTA = 0b10101100; Fábio Souza 3
  4. 4. Usando a linguagem C para Leitura Com variável booleana (1 bit) • Podemos ler o nível lógico de um pino apenas atribuindo o seu valor a uma variável do tipo booleana (1 bit) bit valorBt1; bit valorBt2; . . . valorBt1 = PORTB.RB0; valorBt2 = PORTA.RA1; Fábio Souza 4
  5. 5. Usando a linguagem C para Leitura Com variável inteira (8 bit) • Pode-se ler o valor da porta atribuindo o valor do registrador PORTX a uma variável inteira de 8 bits unsigned char valor; . . . valor = PORTB; Fábio Souza 5
  6. 6. Usando a linguagem C para Leitura Com estrutura de controle – if -else • Pode-se testar o valor do pino diretamente dentro da estrutura ifelse, tomando uma ação se condição verdadeira e outra se condição falsa. if(PORTB.RB0 == 0) { //instruções caso o pino esteja em nível 0 } else { //instruções caso o pino esteja em nível 0 } Fábio Souza 6
  7. 7. Usando a linguagem C para Escrita - bit • Pode-se escrever o nível lógico diretamente no pino configurado como saída: • PORTB.RB0 = 1; • PORTA.RA3 = 0; • Pode-se atribuir o valor de uma variável booleana o pino: • PORTB.RB0 = valoRBit1; • PORTB.RB0 = valoRBit1; Fábio Souza 7
  8. 8. Usando a linguagem C para Escrita - byte • Pode-se escrever direto no registrado correspondente a porta: • PORTB = 1; • PORTB = 0xF0; • PORTA = 0b00001100; • Pode-se atribuir uma variável inteira de 8 bits ao registrador da porta: • PORTB = variavel1; • PORTA = variavel2; Fábio Souza 8
  9. 9. Exercícios 1. Fazer um programa para controle de nível de um reservatório de agua • O reservatório possui dois sensores de nível (mínimo e máximo). • Quando sensor de nível mínimo sem agua (sensor_mínimo = 0) a bomba deverá ligar, quando sensor de nível máximo for atingido (sensor_máximo = 1) desliga bomba. Fábio Souza 10

×