Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Para se comandar um sistema computacional que executa determinada
tarefa ou aplicação, utiliza-se um programa em linguagem de máquina,
a qual é constituída de 0 (zeros) e 1 (uns). No entanto, os programadores,
ao desenvolver os programas para comandar esses sistemas, não utilizam
diretamente uma linguagem de máquina. A partir deste contexto surgiu
a necessidade de criar linguagens de programação para dispositivos
computacionais, classificadas em baixo e alto nível.
Os microcontroladores são dispositivos eletrônicos dotados de uma
inteligência programável e possuem processador, memória e perifé-
ricos acoplados em um único circuito integrado, denominado chip.
A inteligência programável é possível por meio de uma linguagem de
programação. Desde sua criação, os microcontroladores são programados
com linguagem de baixo nível, consideradas mais próximas ao hardware,
e devido à evolução da tecnologia de fabricação, estes passaram a ser
programados por linguagem de alto nível, consideradas mais próximas
da linguagem humana.
Neste capítulo, caracterizaremos as linguagens de baixo e alto nível,
a partir de exemplos de linguagens para cada uma destas classificações.
Abordaremos, também, as linguagens utilizadas em microcontroladores,
como Assembly (linguagem de baixo nível) e a linguagem C (linguagem
de alto nível). Em seguida, você aprenderá a diferenciar esses dois tipos
de linguagem.
2 Programação de microcontroladores III
Linguagem de máquina
Segundo Souza (2003), o código de máquina é uma linguagem de baixo nível
cujas instruções são compostas por números binários (0 e 1) e podem ser
executadas diretamente na unidade central de processamento do computador.
A linguagem de máquina é estritamente numérica, o que torna sua execução
mais rápida, porém dificulta a construção de programas nesta linguagem.
A arquitetura dos microprocessadores MIPS, por exemplo, utiliza uma
linguagem de máquina com instruções de 32 bits, dividida em campos que
representam operações como adição, subtração, operandos, ou a localização
Programação de microcontroladores III 3
Assembly
Segundo Souza (2003), a linguagem Assembly faz parte da segunda geração
de linguagem de programação. Foi criada no final da década de 1940 e início
da década de 1950, possuindo forte relação entre seu conjunto de instruções
e os códigos de máquina de uma determinada arquitetura. Sendo assim, é
muito comum existirem pequenas diferenças entre a linguagem Assembly
de diferentes tipos de microcontroladores. Portanto, Assembly não é uma
linguagem de programação portátil.
Os nomes das instruções na linguagem Assembly são construídos por
mnemônicos, que são palavras (rótulos simbólicos) curtas(os) de fácil me-
morização e autoexplicativas na língua inglesa. Por exemplo, NOPE significa
sem operação (No OPEration), MOV significa mover (MOVe), ADD significa
somar (ADD), entre outras (PEREIRA, 2007). Antes de gravar na memória do
microcontrolador, esses códigos mnemônicos são convertidos em linguagem
de máquina por um programa utilitário denominado Assembler (montador) e
o código convertido executa diretamente no processador, como podemos ver
na Figura 2. A execução de um programa escrito na linguagem Assembly no
4 Programação de microcontroladores III
IDE de programação
Código em
Assembly
Conversão
Assembler
Gravação
Código de
máquina
Microcontrolador
(Continua)
6 Programação de microcontroladores III
(Continuação)
(Continuação)
(Continuação)
(Continua)
12 Programação de microcontroladores III
(Continuação)
(Continua)
Programação de microcontroladores III 13
(Continuação)
(Continuação)
IDE de programação
Código em linguagem
de alto nível
Tradução
Compilador ou
interpretador
Conversão
Assembler
Gravação
Código de
máquina
Microcontrolador
Leituras recomendadas
GONÇALVES, L. S. Utilização de coordenadas georreferenciadas aplicada a máquinas agrí-
colas. Orientador: André Sanches Fonseca Sobrinho. 2017. 46 f. Trabalho de Conclusão
de Curso (Bacharelado em Engenharia de Controle e Automação) — Universidade
Tecnológica Federal do Paraná, Cornélio Procópio, 2017. Disponível em: http://reposi-
torio.roca.utfpr.edu.br/jspui/handle/1/11310. Acesso em: 20 jul. 2019.
PEREIRA, F. Instruções. In: PEREIRA, F. Microcontroladores PIC: técnicas avançadas. 6. ed.
São Paulo: Érica, 2007. cap. 4.
PEREIRA, F. Instruções Assembly. In: PEREIRA, F. Microcontrolador PIC 18 detalhado:
hardware e software. São Paulo: Érica, 2010. cap. 2. seção 2.1.6.
SCUDERO, E. Linguagens de Alto Nível vs. Baixo Nível: qual é melhor? BeCode, Porto
Alegre, 18 abr. 2017. Disponível em: https://becode.com.br/linguagens-alto-nivel-x-
-baixo-nivel/. Acesso em: 20 jul. 2019.
SOUZA, D. J. Conhecendo um pouco o set de instruções. In: SOUZA, D. J. Desbravando
o PIC: ampliado e atualizado para PIC16F628A. 6. ed. São Paulo: Érica, 2003. cap 7.