SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Microcontroladores
PIC
Manipulação de pinos de I/O com a Linguagem C
Compilador: MikroC for PIC

Fábio Souza

1
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Aula 7 - Repetição enquanto - exemplos
Aula 7 - Repetição enquanto - exemplosAula 7 - Repetição enquanto - exemplos
Aula 7 - Repetição enquanto - exemplosPacc UAB
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 
Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Pacc UAB
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisJorge Ávila Miranda
 
Processadores 8080, 8086, 8088, core i
Processadores 8080, 8086, 8088, core iProcessadores 8080, 8086, 8088, core i
Processadores 8080, 8086, 8088, core iJoão Machado
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoBruno Quaresma
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turingwab030
 
Fundamentos de banco de dados 04 componentes sgbd
Fundamentos de banco de dados   04 componentes sgbdFundamentos de banco de dados   04 componentes sgbd
Fundamentos de banco de dados 04 componentes sgbdRafael Pinheiro
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 

Mais procurados (20)

Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 7 - Repetição enquanto - exemplos
Aula 7 - Repetição enquanto - exemplosAula 7 - Repetição enquanto - exemplos
Aula 7 - Repetição enquanto - exemplos
 
Visualg
VisualgVisualg
Visualg
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2Aula 2 - Introdução à programação de computadores - parte 2
Aula 2 - Introdução à programação de computadores - parte 2
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionais
 
Processadores 8080, 8086, 8088, core i
Processadores 8080, 8086, 8088, core iProcessadores 8080, 8086, 8088, core i
Processadores 8080, 8086, 8088, core i
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de Programação
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
Fundamentos de banco de dados 04 componentes sgbd
Fundamentos de banco de dados   04 componentes sgbdFundamentos de banco de dados   04 componentes sgbd
Fundamentos de banco de dados 04 componentes sgbd
 
Algoritmos - Matrizes
Algoritmos - MatrizesAlgoritmos - Matrizes
Algoritmos - Matrizes
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Destaque

Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisFabio Souza
 
Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisFabio Souza
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosRodrigo Almeida
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877Luciano Zica
 
Apostila de PIC
Apostila de PICApostila de PIC
Apostila de PICluizgraf
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PICFabio Souza
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25ZFabio Souza
 
Apostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaApostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaFabio Souza
 
Microcontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoMicrocontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoFabio Souza
 
Exercicios LCD E ADC
Exercicios LCD E ADCExercicios LCD E ADC
Exercicios LCD E ADCFabio Souza
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-cjlconrado
 
Máquinas elétricas transformador monofásico
Máquinas elétricas   transformador monofásicoMáquinas elétricas   transformador monofásico
Máquinas elétricas transformador monofásicoFabio Souza
 
Registradores contadores memórias_r2
Registradores contadores memórias_r2Registradores contadores memórias_r2
Registradores contadores memórias_r2Eduardo_borges
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectosDaniel Chavier
 
Apostila para Programar Arduino
Apostila para Programar ArduinoApostila para Programar Arduino
Apostila para Programar ArduinoIsvaldo Souza
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino CompletoTiago Barros
 

Destaque (20)

Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
Microcontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitaisMicrocontroladores PIC - Exercícios para estudos de I/O digitais
Microcontroladores PIC - Exercícios para estudos de I/O digitais
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
Apostila pic 16f877
Apostila pic 16f877Apostila pic 16f877
Apostila pic 16f877
 
Apostila de PIC
Apostila de PICApostila de PIC
Apostila de PIC
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Contadores
ContadoresContadores
Contadores
 
Programando os Microcontroladores PIC
Programando os Microcontroladores PICProgramando os Microcontroladores PIC
Programando os Microcontroladores PIC
 
Curso mbed na KL25Z
Curso mbed na KL25ZCurso mbed na KL25Z
Curso mbed na KL25Z
 
Apostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaApostila Arduino - FBS Eletrônica
Apostila Arduino - FBS Eletrônica
 
Microcontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD AlfanuméricoMicrocontroladores PIC - Display LCD Alfanumérico
Microcontroladores PIC - Display LCD Alfanumérico
 
Exercicios LCD E ADC
Exercicios LCD E ADCExercicios LCD E ADC
Exercicios LCD E ADC
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
 
Máquinas elétricas transformador monofásico
Máquinas elétricas   transformador monofásicoMáquinas elétricas   transformador monofásico
Máquinas elétricas transformador monofásico
 
Registradores contadores memórias_r2
Registradores contadores memórias_r2Registradores contadores memórias_r2
Registradores contadores memórias_r2
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectos
 
Apostila para Programar Arduino
Apostila para Programar ArduinoApostila para Programar Arduino
Apostila para Programar Arduino
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino Completo
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Apostila pic18 f-microgenios
Apostila pic18 f-microgeniosApostila pic18 f-microgenios
Apostila pic18 f-microgenios
 

Mais de Fabio Souza

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design ChallengeFabio Souza
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísFabio Souza
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedFabio Souza
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetFabio Souza
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoFabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?Fabio Souza
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?Fabio Souza
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoFabio Souza
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareFabio Souza
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatívelFabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardFabio Souza
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPFabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresFabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Fabio Souza
 

Mais de Fabio Souza (20)

RISC-V Design Challenge
RISC-V Design ChallengeRISC-V Design Challenge
RISC-V Design Challenge
 
Palestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso paísPalestra Como o open hardware pode impactar na educação do nosso país
Palestra Como o open hardware pode impactar na educação do nosso país
 
Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Workshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da InternetWorkshop - Cotrole sua casa remotamente através da Internet
Workshop - Cotrole sua casa remotamente através da Internet
 
Open Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundoOpen Hardware - Projetos que estão mudando o mundo
Open Hardware - Projetos que estão mudando o mundo
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Como o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundoComo o movimento maker e a internet das coisas estão revolucionando o mundo
Como o movimento maker e a internet das coisas estão revolucionando o mundo
 
Montando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardwareMontando sua própria placa arduino e compartilhando seus projetos de hardware
Montando sua própria placa arduino e compartilhando seus projetos de hardware
 
Monte sua franzininho, uma placa arduino compatível
 Monte sua franzininho, uma placa arduino compatível Monte sua franzininho, uma placa arduino compatível
Monte sua franzininho, uma placa arduino compatível
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Curso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXPCurso mbed e FRDM KL46Z da NXP
Curso mbed e FRDM KL46Z da NXP
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - MotoresMicrocontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Motores
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Resumo de ...
 

PIC C I/O

  • 1. Microcontroladores PIC Manipulação de pinos de I/O com a Linguagem C Compilador: MikroC for PIC Fábio Souza 1
  • 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. 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. 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. 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. 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. 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. 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. 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