Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

9,786 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

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

×