• Nenhum resultado encontrado

Aula06-IntroduçãoaLinguagemCparaPIC

N/A
N/A
Protected

Academic year: 2021

Share "Aula06-IntroduçãoaLinguagemCparaPIC"

Copied!
11
0
0

Texto

(1)

IFCE – Campus Cedro

Mecatrônica Microcontroladores

Prof. Eng. Derig Almeida Vidal

Mestrando em Computação Aplicada, Engenheiro de Produção e Tecnólogo em Automática

Aula 06

Introdução a Linguagem C para PIC

Prof. Derig Almeida Vidal IFCE - Cedro

Sumário

• Introdução • Tradução • Fluxograma • Álgebra Booleana • Variáveis • Operadores

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• A criação de programas para microcontroladores e microprocessadores pode ser uma tarefa

desgastante à medida que aumenta a

complexidade da aplicação sendo desenvolvida. • Os primeiros dispositivos programáveis tinham

seus programas escritos em linguagem de máquina e inseridos através de teclado, leitora de cartões, fitas perfuradas, etc. Ou seja, bastante complicada.

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Devido a demanda crescente por programação de sistemas, foi natural o surgimento de uma nova forma de programação de sistemas, o Assembly; • Esta consiste em uma forma alternativa de

representação dos códigos de máquina usando mnemônicos (abreviações de termos usuais).

• A tradução do mnemônico em código de máquina é realizada por um programa chamado Assembler (montador).

(2)

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

Assembler

Código de Máquina

0011000010001100

Assembly

MOVLW 0x8C

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Apesar de mais simples o Assembly não resolveu todos os problemas dos programadores.

• Ela é uma linguagem de baixo nível, não

possuindo nenhum comando, instrução ou função além daqueles definidos no conjunto de instruções do processador utilizado, implicando em um

trabalho extra do programador que teria que desenvolver diversas rotinas que não fazem parte do conjunto de instruções do processador.

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Então surgiram as chamadas linguagens de alto

nível.

• Elas são criadas para permitir a programação utilizando comandos de alto nível e que são

posteriormente traduzidos para linguagem de baixo nível do processador utilizado.

Assembler Código de Máquina 0011000010001100 Assembly MOVLW 0x8C Assembler Compilador Linguagem de Alto Nível

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução - História

• A primeira linguagem de alto nível com grande aceitação foi o FORTRAN (FORmula TRANslator), uma linguagem voltada para a análise e resolução de problemas matemáticos criada na metada da década de 50, por pesquisadores da IBM

• Em seguida vieram o COBOL (COmmon Business Oriented Language) em 1959, e o ALGOL

(ALGOrithmic Language) em 1960, que originou diversas outras como o PASCAL e o C.

(3)

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução - História

• Já a linguagem C foi

criada por Dennis

Ritchie em 1972 na

Bell Laboratories e consiste em uma linguagem de nível intermediário entre o Assembly (tão eficiente e rápida quanto) e as linguagens de alto nível (tão estruturada e lógica quanto).

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução - História

• Origens da linguagem C:

– ALGOL

– BCPL (Basic Combined Programming Language) derivada da CPL (que por sua vez foi derivada do ALGOL)

– B: linguagem desenvolvida por Ken Thompson da Bell Laboratories em 1970.

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Até o desenvolvimento do C os SO (Sistemas Operacionais) eram desenvolvidos em Assembly.

– Vantagens do Assembly:

• Eficiência: é extremamente eficiente devido à proximidade com o hardware da máquina;

• Velocidade: devido a sua grande eficiência eles são bem mais rápidos;

– Desvantagens do Assembly:

• Complexidade: demanda que o programador possua um profundo conhecimento do hardware;

• Portabilidade: programa que roda em um sistema pode não rodar em outro.

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• C utiliza a filosofia de programação estruturada (onde os programas são divididos em módulos ou estruturas independentes entre si e com o objetivo de realizar determinada tarefa).

• Permite assim uma construção mais simples e clara do software da aplicação, possibilitando a criação de programas com maior complexidade. • Atualmente, a maioria dos microcontroladores do

(4)

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• O C permite:

– O desenvolvimento de aplicações muito mais complexas do que seria viável apenas com o Assembly;

– O programador se concentra apenas no

desenvolvimento do programa (ao invés do controle e localização das variáveis, verificação de bancos de memória, etc.).

– Grande velocidade na criação de novos projetos devido a facilidade na programação;

– Eficiência (medida do grau de inteligência com que o compilador traduz um programa em C para código de

máquina). Prof. Derig Almeida Vidal

IFCE - Cedro

Introdução

• O aspecto eficiência é muito importante,

lembrando, por exemplo, o PIC12C508 e 16C54, possuem apenas:

– 512 palavras de memória de programa; e, – 25 bytes de RAM.

Prof. Derig Almeida Vidal IFCE - Cedro

PASCAL x C

• PASCAL

Begin ... end. := = Function e procedure

• C

{ ... } = == Apenas function

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• A programação constitui-se na tradução do

pensamento lógico necessário para o cumprimento de determinada tarefa, em uma seqüência de comandos que podem ser interpretados e executados por uma máquina.

• Desta forma, se traduz num processo de

identificação e solução de problemas. Para isso o programador se utiliza de um conjunto de

(5)

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Exposição do problema: descrição detalhada do problema a ser resolvido pelo programa;

• Análise da solução: elaboração da solução ou soluções que melhor resolvem o problema; • Codificação da solução: descrição seqüencial

passo a passo da solução que melhor resolve o problema (algoritmo);

• Tradução do código: tradução da seqüência de comandos que possam ser corretamente

interpretados pela linguagem de programação utilizada;

Prof. Derig Almeida Vidal IFCE - Cedro

Introdução

• Depuração (Debug): processo de verificação e teste do programa de forma a localizar e solucionar todas as eventuais falhas e erros de codificação que tenham acontecido em quaisquer das fases anteriores.

Prof. Derig Almeida Vidal IFCE - Cedro

Programas que traduzem o código

Interpretador

• Efetua a tradução de uma linguagem de alto nível para linguagem de máquina da seguinte forma:

– Obtém próxima instrução do código-fonte em linguagem de alto nível;

– Traduz para as instruções correspondentes em linguagem de máquina;

– Executa as instruções em linguagem de máquina; e

– Repete o passo 1 até o fim do programa

• Ex: JAVA, BASIC STAMP, BASIC, etc.

Prof. Derig Almeida Vidal IFCE - Cedro

Programas que traduzem o código

Compilador

• Efetua a tradução de todo o código-fonte em linguagem de alto nível para as instruções correspondentes em linguagem de máquina, gerando o código-objeto do programa.

(6)

Prof. Derig Almeida Vidal IFCE - Cedro

Programas que traduzem o código

Compilador x Interpretador

• No interpretador o trabalho de tradução do código-fonte, além de ser em tempo real, deve ser feito pelo próprio processador que irá executar o código gerado.

• Desta forma, para o nosso caso (o programa vai estar no PIC), é melhor o compilador.

Prof. Derig Almeida Vidal IFCE - Cedro

Programas que traduzem o código

Compilador x Interpretador

• Outro ponto a ser destacado é a otimização de código.

• No interpretador quando passa os comandos para baixo nível repete, quantas vezes aparecer em alto nível, uma seqüência de comandos em baixo nível. • No compilador isso é bem mais complexo, por isso

não é realizado no PIC e sim em um computador de maior porte e depois copiado o código fonte.

Prof. Derig Almeida Vidal IFCE - Cedro

Fluxogramas

• São elementos gráficos utilizados para estabelecer a seqüência de operações necessárias para o cumprimento de determinada tarefa e,

conseqüentemente , a resolução de um problema. • Eles auxiliam grandemente a tarefa de codificação

de um programa.

Prof. Derig Almeida Vidal IFCE - Cedro

Fluxogramas

• Início ou termino do programa algoritmo;

• Processo: realização de uma determinada tarefa;

• Dados: representa a entrada de dados;

• Tomada de decisão: teste condicional.

(7)

Prof. Derig Almeida Vidal IFCE - Cedro

Fluxogramas

Início Soma A+ B e guarda em C Pega o primeiro numero (A) Pega o segundo numero (B)

Fim Prof. Derig Almeida Vidal

IFCE - Cedro

Fluxogramas

Início Fim Contagem = 10? Contagem = 0 Soma 1 à contagem Não Sim

Prof. Derig Almeida Vidal IFCE - Cedro

Álgebra Booleana

• A álgebra booleana é um ramo da matemática encarregada da resolução de problemas lógicos tendo como um dos principais articuladores o inglês George Boole (1815-1864).

Prof. Derig Almeida Vidal IFCE - Cedro

Álgebra Booleana

• É baseada em:

– Proposições: afirmação verbal passível de ser classificada como sendo verdadeira ou falsa. Ex: “Hoje está frio”, “Fulano é maior do que Ciclano”. – Operadores lógicos relacionais: E, OU e NÃO.

(8)

Prof. Derig Almeida Vidal IFCE - Cedro

Álgebra Booleana – E (AND)

Conjunção de duas ou mais proposições somente

será verdadeira se todas as proposições forem verdadeiras.

Prof. Derig Almeida Vidal IFCE - Cedro

Disjunção de duas ou mais proposições será

verdadeira se qualquer das proposições for verdadeira.

Álgebra Booleana – OU (OR)

Prof. Derig Almeida Vidal IFCE - Cedro

Álgebra Booleana – NÃO (NOT)

Prof. Derig Almeida Vidal IFCE - Cedro

Variáveis

• Representação simbólica para elementos pertencentes a um determinado conjunto. • São armazenadas na memória da máquina (na

RAM) e podem assumir qualquer valor dentro de um conjunto de valores possíveis.

• Pode assumir diversos valores durante a execução do programa, mas jamais duas simultaneamente. • São classificadas segundo o tipo de conteúdo que

armazenam e podem ser: numéricas, caractere, alfanuméricas e lógicas.

(9)

Prof. Derig Almeida Vidal IFCE - Cedro

Variáveis

• Armazenamento de dados numéricos podem ser classificadas como:

– Inteiras: utilizadas para armazenar valores inteiros. Ex: 0, 5, 156, etc.

– Reais ou ponto flutuante: utilizadas para armazenar valores não inteiros, ou seja, reais. Normalmente usam mais espaço na memória para serem armazenadas. Ex: 1.8, 25.47, 99999.999999, etc.

Prof. Derig Almeida Vidal IFCE - Cedro

Variáveis

• Variáveis do tipo caractere são utilizadas para representar um caractere, utilizando um código especial (normalmente o ASCII). Podem ser ainda agrupadas formando frases ou textos.

• Variáveis alfanuméricas são utilizadas para armazenar tanto caracteres como valores

numéricos, mas nunca os dois ao mesmo tempo. • Variáveis do tipo lógico são capazes de armazenar

um estado lógico: verdadeiro ou falso.

Prof. Derig Almeida Vidal IFCE - Cedro

Operadores

• São elementos ou simbolos gráficos utilizados para relacionar ou modificar um ou mais dados ou variáveis.

• Podem ser classificados em:

– Matemáticos: utilizados para efetuar

determinada operação matemárica em relação a um ou mais dados. Ex: adição subtração, etc.; – Relacionais: para relacionar dois elementos ou

dados. Ex: maior, menor, igual, etc;

Prof. Derig Almeida Vidal IFCE - Cedro

Operadores

– Lógicos: para operações lógicas booleanas entre dois ou mais elementos ou dados. Ex: AND, OR, NOT, etc.

– Lógicos bit a bit: para operações lógicas bit a bit entre um ou mais elementos ou dados, conforme o caso. São realizadas entre cada um dos bits dos dados, resultando em um valor. Ex: AND, OR, rotação de bit, etc.

– Memória: utilizados para efetuar operações em relação a memória do equipamento. Ex:

(10)

Prof. Derig Almeida Vidal IFCE - Cedro

Exercícios

Nas equações booleanas seguintes, quais valores de A, B e C tornam R verdadeira? R = (A e B e C) a) A=V, B=F, C=V b) A=F, B=F, C=F c) A=F, B=V, C=V d) A=V, B=V, C=V R = (( A e (não B)) ou C)) a) A=F, B=F, C=F b) A=F, B=F, C=V c) A=F, B=V, C=F d) A=V, B=F, C=F

Prof. Derig Almeida Vidal IFCE - Cedro

Exercícios

Nas equações booleanas seguintes, quais valores de A, B e C tornam R verdadeira?

R = ((não A) ou (não B) ou (não C))

a) A=V, B=V, C=V b) A=F, B=F, C=F c) A=V, B=F, C=F d) A=V, B=V, C=F R = (( A ou B) e (não C)) a) A=V, B=F, C=V b) A=F, B=F, C=V c) A=F, B=V, C=F d) A=V, B=V, C=F

Prof. Derig Almeida Vidal IFCE - Cedro

Exercícios

Supondo a afirmação: se não estiver chovendo e eu sair mais cedo do trabalho, iremos à praia. E considerando A= “está chovendo?”, B = “eu sai mais cedo do trabalho?” e C a resposta: “iremos à praia”, determine a equação booleana que

descreve corretamente a afirmação inicial: a) A e B = C

b) A ou B = C c) A e (não B) = C d) (não A) e B = C

Prof. Derig Almeida Vidal IFCE - Cedro

Exercícios

Qual o tipo de variável necessário para armazena cada um dos seguintes dados:

a) 150 b) “Linguagem C” c) 100,1 d) 250 e) “123” f) V g) -5 h) F

(11)

Prof. Derig Almeida Vidal IFCE - Cedro

Bibliografia

• PEREIRA, Fábio. Microcontroladores PIC:

Referências

Documentos relacionados

Após retirar, da maré observada, o valor da maré teórica, aplicou-se uma linha de tendência aos dados resultantes, a qual representa a variação do nível médio das águas no

Percebe-se que no zoológico a mulher procura punição para o que está sentido, como explica Sousa Filho (1995) que a existência de mitos sobre castigos, em todas

Com resultados satisfatórios para a análise de consistência dos dados, foram identificadas as chuvas máximas diárias para cada ano nos postos de Brejinho e Itapetim, conforme

Introduction: We assessed the effects of therapeutic ultrasound (TUS), either added to cast immobilization (CI) as a treatment alternative to muscular injuries

PARÁGRAFO 1º para jornada de 06 horas diárias a empresa fornecerá o auxilio alimentação aos seus empregados para cada dia trabalhado o valor de R$ 8,00 (oito reais).. PARÁGRAFO 2º

7.4 Em caso de abertura de vaga com o perfil exigido neste Comunicado para outras Unidades pertencentes ao Sistema Findes, num prazo de até 1 (um) ano, a contar da data da

Na hipótese de os preços registrados tornarem-se superiores aos valores praticados no mercado, caberá ao TRT da 4ª Região convocar o(s) detentor(es) do(s)

Em seguida, ainda fazendo uso da palavra e condicionada à celebração do Aditamento a ser oportunamente aprovado pela Assembléia Geral de Debenturistas, o Diretor