Baixe o app para aproveitar ainda mais
Prévia do material em texto
MICROCONTROLADORESMICROCONTROLADORES E IOTE IOT UNIDADE 1 – CONCEITOSUNIDADE 1 – CONCEITOS FUNDAMENTAIS DOFUNDAMENTAIS DO SISTEMA DE COMPUTAÇÃOSISTEMA DE COMPUTAÇÃO Autora: Eliny dos Santos GomesAutora: Eliny dos Santos Gomes Revisor: Lucas Gonçalves CorreiaRevisor: Lucas Gonçalves Correia INICIAR Introdução Caro(a) estudante, Nesta unidade, trabalharemos os conceitos fundamentais de microcomputadores para que, na sequência, possamos entender seu funcionamento e o conjunto de instruções. Também iremos conceituar fluxograma e aprender como pode auxiliar na elaboração de projetos. Além disso, será possível conhecer a linguagem com a qual o computador interage com o meio, verificando que essa máquina maravilhosa consegue atender aos anseios do ser humano e que, na verdade, ela faz somente o que ele determina. Assim, poderemos compreender como essa simples máquina eletrônica conseguiu entrar em nosso cotidiano, transformando o dia a dia de uma sociedade inteira. Além disso, explicaremos o que é metodologia de projeto, com intuito de demonstrar os passos e 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 1/29 1.1 Conceitos fundamentais dos sistemas de computação Desde os primórdios da civilização, o homem criou “tecnologias” para facilitar sua vida, diminuindo seu esforço e facilitando o seu trabalho. Desse modo, o computador chegou, inicialmente, por meio do desenvolvimento de equipamentos mecânicos, foi se aprimorando, convertendo-se para eletromecânicos e valvulados, até, por fim, evoluir para eletrônicos compostos por equipamentos muito grandes e com poucas funções. Resumidamente, desde seu início até o que temos hoje, podemos dizer que sua qualidade e velocidade foram aumentadas de modo inversamente proporcional ao seu tamanho, como podemos notar no Infográfico 1. O sistema de computação é o conjunto de equipamentos eletrônicos, chamados de hardwares, capazes de fazer o processamento de informações de acordo com um determinado programa, denominado software. Cada vez menores e com mais funções, o computador é uma ferramenta utilizada em todas as áreas de atuação profissional. Infográfico 1 – A evolução dos computadores Fonte: Adobe Stock, 2020. Acesso em: 15/05/2020. Tudo começou durante a Antiguidade, no Oriente Médio, com o ábaco, que era usado para cálculos matemáticos. Por muito anos, não houve grandes evoluções nesse modo de determinar valores exatos. Durante o século XVII, John Napier criou tabelas de cálculos matemáticos, chamada ossos de Napier. Depois, entre 1621 e 1638, o matemático William Oughtred, com tentar provar que quando se usa uma técnica processual e metodológica, tende-se a ter êxito na conclusão de qualquer atividade. Bons estudos! 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 2/29 inspiração nas tabelas de Napier, criou a régua de cálculo, amplamente utilizada por muitos anos. Entre 1642 e 1647, Pascal desenvolveu uma máquina de calcular mecânica chamada pascaline , que fazia contas adição e subtração. Em 1671, o matemático Von Leibniz adicionou à pascaline a operação de multiplicação e divisão. Em 1801, o matemático francês Josef M. Jacquard introduziu o conceito de armazenamento às máquinas de calcular. Depois, em 1820, Charles Thomas de Colmar produziu a primeira calculadora com sucesso comercial. Alguns anos depois, entre 1834 e 1871, Charles Babbage criou a primeira máquina semelhante a um computador, a difference engine , mas o projeto era muito caro e, por isso, não teve sucesso. Em 1874, George Boole iniciou os estudos de um grande paradigma matemático, a álgebra booleana, que dá ênfase à notação binária no lugar da notação decimal, sendo usada até hoje. Em 1880, Herman Hollerith desenvolveu uma nova máquina com leitura de cartões perfurados. Com o sucesso dessa máquina, foi criada uma empresa e, com o tempo e a união entre outras empresas, surgiu a IBM. Depois de 1946, a evolução dos computadores pode ser dividida entre as seguintes gerações: » Clique nas abas para saber mais sobre o assunto Primeira geração (1946 – 1956) Segunda geração (1957-1964) Terceira geração (1964-1984) Quarta geração (1985-1991) Quinta geração (1991) 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 3/29 VOCÊ QUER VER? A história dos computadores e da internet e o acesso à informação pode ser vista na sequência de vídeos publicados pela Khan Academy Brasil, disponível em: 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 4/29 1.1.1 Microcomputador, arquitetura básica e linguagens de programação A arquitetura de computadores continua com a mesma concepção funcional dos primeiros computadores eletrônicos. Conhecida como arquitetura Von Neumann e definida com uma unidade central e processamento, recebe informações por meio de uma unidade de entrada, as processa e coloca em um programa armazenado em sua unidade de memória, retornando um resultado em sua unidade de saída. Diagrama 1 – Sistema de computador 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 5/29 Fonte: Elaborado pela autora, 2020. A unidade central de processamento (CPU) é responsável por administrar todas as operações de leitura e escrita da entrada e saída de dados, além de executar as operações lógicas e aritméticas e fazer o processamento das informações recebidas, interpretando as instruções. O microprocessador faz a maioria das atividades da unidade central de processamento em um único chip. As unidades de entrada e saída, por sua vez, têm a função de transferir dados entre o processamento e os periféricos, que são elementos geradores ou receptores de informação em um sistema de computadores, como teclado, impressora, scanners etc. Além disso, para executar suas atividades de modo correto e eficiente, o computador necessita da combinação de hardware e software. O hardware é a parte física do computador, compondo seus componentes eletrônicos e periféricos. Nos computadores, as placas, cabos, fontes de alimentação, memórias, impressoras, terminais de vídeo e teclados são exemplos de hardware. Os softwares são programas que rodam dentro do processador, com instruções detalhadas de como executar as determinadas atividades recebidas escritas em linguagem de programação. Um software pode ter várias funções, como editar textos, criar planilhas, jogos, editar vídeos ou imagens etc. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 6/29 No microcomputador, os programas são armazenados em sua memória de programa. É preciso ter cuidado para que esse programa não seja perdido durante uma queda de energia. Caso isso aconteça, há perda da funcionalidade do equipamento.Por isso, as memórias não voláteis são utilizadas e podem ser classificadas em: ROM ( Read Only Memory ) : é uma memória em que as informações são gravadas pelo fabricante. São conhecidas como memórias de leitura e as informações gravadas são conhecidas como firmware; PROM/OTP ( Programmable Read Only Memory/One Time Programing ) : é uma ROM programável, normalmente utilizada para equipamentos de produção em pequena escala ou em testes de equipamentos; EPROM ( Erasable and Programmable Read Only Memory ) : é, também, uma ROM na qual, além de ser possível a gravação, pode ser apagada e reprogramada. O chip possui um orifício que pode ser reprogramado por meio da luzultravioleta; EEPROM ( Electrically Erasable and Programmable Read Only Memory ) : essa memória é similar à EPROM. No entanto, é apagada eletricamente e, depois, pode ser reprogramada; Flash : são programadas em um dispositivo denominado programador de memória e são a evolução das memórias EEPROM. Figura 1 – Memórias de armazenamento EPROM. Fonte: Adobe Stock. Acesso em: 15/05/2020. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 7/29 O microprocessador é um dispositivo lógico programável encapsulado em um chip de silício, feito em tecnologia VLSI ( Very Large Scale Integration ) e possui as funções básicas de um computador, integrando as funções de uma unidade de controle, uma unidade lógico-aritmética e uma de memória interna. VOCÊ SABIA? Antes de mais nada, para fabricar um processador é necessário executar um projeto avançado do circuito. Em seguida, é hora de “colocar a mão na massa” e começar sua fabricação. Para isso, é necessário areia, matéria-prima do processador. Ao derretê-la, é possível extrair o silício, que é transformado em um enorme bloco e cortado em discos. Depois disso, recebe uma camada de líquido fotorresistente e, em seguida, passa pela fotolitografia. As partes bombeadas pela luz UV são removidas, formando pequenos sulcos. Isso faz com que seja possível adicionar uma camada de átomos dopantes aos discos, alterando a condutividade do silício. Por fim, para evitar curtos-circuitos, uma camada selante é aplicada e os sulcos são preenchidos com cobre. Ele é composto por duas unidades principais: a ULA (unidade lógica e aritmética), que tem a função de realizar as operações lógicas e matemáticas, e a UC, unidade de controle, responsável pela codificação e execução das instruções, pelos sinais de temporização para as outras partes do processador e do computador em geral e de registradores que armazenam os dados, endereços e as próprias instruções. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 8/29 Figura 2 – Estrutura de um chip. Fonte: Shutterstock. Acesso em: 15/05/2020. O software deve ser codificado em uma linguagem de programação para especificar as ações que devem ser tomadas a partir das entradas. É uma linguagem formal na qual o programador descreve o conjunto de ações, ordens e algoritmos que serão controlados a partir de variáveis de entrada. As linguagens de programação são classificadas entre alto e baixo nível. As de baixo nível são totalmente orientadas à máquina, ou seja, são mais complexas. As de alto nível são orientadas ao programador, pois utilizam uma linguagem de instruções que facilitam seu entendimento, embora necessitem de tradutores e compiladores. 1.2 Microcontroladores 8051, ATMEGA328, ARM: arquitetura interna e organização de memória O microcontrolador é um dispositivo programável que contém unidade central de processamento, memórias (ROM e RAM), entradas e saídas. São mais baratos, mais lentos (KHz; MHz), consomem menos energia, recursos internos e possuem placas menores quando comparados aos microprocessadores. O primeiro microcontrolador produzido e comercializado foi o da Intel. No entanto, existem muitos modelos e fabricantes usados no mercado de automóvel, brinquedos, 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 9/29 equipamentos domésticos, na automação residencial, na mecatrônica, na robótica, na IoT e em dispositivos vestíveis. O sistema ARM, altamente utilizado em sistemas embarcados, foi concebido nos anos 1980, época em que a empresa britânica Acorn Digital Computers (ADC) desenvolveu um projeto para British Broadcast Corporation (BBC). Esse projeto foi os primeiros passos para o nascimento do processador comercial com arquitetura RISC, que estava se consolidando no mercado. Assim, nasceu o processador Acorn RISC Machine (ARM). Desde então, a arquitetura ARM foi se modificando e atendendo aos objetivos e às demandas de mercado. No entanto, não foi somente a arquitetura que evoluiu: extensões foram adicionadas para segmentos específicos, como Security (TrustZone® technology); Advanced SIMD (NEON™ technology); Virtualization, presente a partir da arquitetura ARMv7-A, e Cryptographic, presente a partir da arquitetura ARMv8-A. Diagrama 2 - Evolução da arquitetura ARM Fonte: GARCIA, [s.d.]. (Adaptado). O ARM teve suas características fixadas em modelos com alta velocidade, die pequeno e baixo consumo. O die, ou pastilha, é um bloco de material semicondutor de circuito fabricado. Outra característica muito interessante dele é o equilíbrio entre esses requisitos e a sua grande capacidade de criar códigos simples e compactos. Os processadores ARM são escritos com instruções iguais. Assim, as famílias têm 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 10/29 compatibilidade e todos os processadores têm o seu desenvolvimento no modelo de arquitetura, conforme sua área de aplicação: » Clique nas abas para saber mais sobre o assunto Os processadores ARM fazem parte da nossa vida diária, estando presentes em smartphones, tablets, automóveis, televisores e muito mais. No entanto, não podemos esquecer que as raízes RISC desses processadores os tornam modernos e com reduzida necessidade de compatibilidade para aplicações mais antigas. A arquitetura básica do microcontrolador da família MCS-51, cujo original é o 8051, são suas variações com novas características. Se compararmos com a arquitetura do microcomputador, podemos avaliar que ele tem todas as características do microprocessador, incluindo outras de controle. Como podemos verificar no Diagrama 3, nessa arquitetura são implementados memória interna, interrupções, timers/contadores, portas de entrada e saída. Diagrama 3 – Arquitetura interna de um microcontrolador 8051 (Intel) 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 11/29 Fonte: GIMENEZ, 2015, p. 48. (Adaptado). A família de microcontroladores 8051, da Intel, é bem extensa, sendo que cada microcontrolador tem características específicas, versões com e sem ROM, capacidades diferentes de memórias, fontes de interrupção etc. A memória é um recurso primário que deve ser gerenciado com muito critério. Nota-se que, embora a capacidade de memória disponível nos sistemas computacionais aumente cada vez mais, os softwares demandam muito mais para ser armazenados e para sua execução. Não podemos esquecer que a memória é finita, ou seja, possui um limite e, por isso, gerenciá-la é muito importante para o funcionamento dos processos pelo sistema operacional. Gerenciamento de memória é a tarefa desempenhada pela MMU (memory management unit). A MMU é um hardware que traduz endereços virtuais em endereços físicos. Normalmente, fica alocada à CPU, mas também pode ser um circuito integrado separado. A memória principal é dividida em dois tipos: a memória física e a lógica. A memória lógica é aquela visível para os programas, desse modo, sempre que um programa estiver rodando em um sistema, essa memória está sendo utilizada. A memória física é aquela implementada em circuitos digitais. Nela, a memória lógica é fisicamente armazenada. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 12/29 Um conceito importante diz respeito ao ambiente de memória virtual, que não faz referência a endereços físicos de memória (endereços reais), mas sim a endereços virtuais.Desse modo, quando há uma execução de instrução, o endereço virtual é traduzido para um endereço físico e, assim, o processador acessa as posições da memória principal. O mecanismo de tradução do endereço virtual para endereço físico é chamado mapeamento, sendo seu processo muito semelhante ao da paginação. A grande diferença entre paginação e segmentação é que a primeira divide o programa em partes de tamanho fixo e sem qualquer ligação com a estrutura do programa, já a segunda permite a relação entre a lógica do programa e sua divisão na memória. 1.2.1 Pinagem e funcionamento O microcontrolador 8051 é um circuito integrado (CI) de 40 pinos identificados: Os pinos 1 a 8 são identificados como “porta 1”, possuindo capacidade de configuração para entrada ou saída. O pino 9 é responsável por reiniciar o microcontrolador ( RESET ou RST ). Os pinos 10 a 17 são identificados como “porta 3”, tendo a capacidade de configuração para entrada ou saída. O pino 10, por exemplo, é responsável pela entrada de comunicação assíncrona ou saída de comunicação síncrona ( RXD ), o pino 11 ( TXD ) faz a saída da comunicação assíncrona ou saída de comunicação serial relógio síncrona, o pino 12 é responsável pela interrupção 0 ( INT0 ), o pino 13 é responsável pela interrupção 1 ( INT1 ), o pino 14 é T0 , contador 0’clock de entrada, o pino 15 é T1 , contador 1 entrada de clock, o pino 16 é WR escrita da RAM externa (adicional) e o pino 17 é leitura da RAM externa ( RD ). Os pinos 18 e 19 representam a entrada e saída do oscilador interno e o pino 20 é GND. Os pinos 21 ao 28 são identificados como “porta 2” e podem ser usados para memória externa. No entanto, quando não estiverem sendo usados como memória externa, voltam a ser porta de entrada ou saída. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 13/29 O pino 29 representa SPEN , ou seja, o controle do byte de memória para leitura quando uma ROM externa é usada para armazenar programas. O pino 30 é ALE , ou seja, antes da leitura da memória externa, o microcontrolador ativa a saída ALE . O pino 31 é EA e faz o controle dos P2 e P3, que são utilizados para transmissão de dados e endereço. Os pinos 32 ao 39 são identificados como “porta 3” e são idênticos à porta 2. O pino 40, por fim, é alimentação VCC, sendo alimentado com +5 V. Observe na Figura 3: Figura 3 – Pinagem do microcontrolador 8051. Fonte: INTEL CORP, [s.d]. Acesso em: 15/05/2020. O microcontrolador ATMEGA328 é um circuito integrado (CI) de 28 pinos identificados conforme mostra a Figura 4. Detalhando as portas do microcontrolador ATMEGA168/328, temos: » Clique nas abas para saber mais sobre o assunto 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 14/29 Figura 4 – Pinagem do ATMEGA168/328P. Fonte: ARDUINO, [s.d.]. Acesso em: 15/05/2020. A grande maioria dos pinos do ATMEGA328 pode ser usada como entrada e saída digital ou analógica. Nesta unidade, estamos identificando os pinos e na próxima unidade estudaremos detalhadamente as portas do Arduino. Na Figura 5, podemos ver que as placas do Arduino são interligadas com os pinos do chip do microcontrolador ATMEGA328. Pino 1 Pino 2 a 6 Pino 7 Pino 8 Pino 9 Pino 10 Pino 11 a 14 Pino 15 a 19 Pino 20 Pino 21 Pino 22 Pino 23 a 28 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 15/29 Figura 5 – Componentes de uma placa Arduino Uno, chip ATMEGA328. Fonte: SIMON, 2014, p. 21. 1.3 Conjunto de instruções O conjunto de instruções do microcontrolador com núcleo (core) do 8051 tem uma relação direta com um registrador chamado Program Status Word (PSW). O registrador PSW tem como finalidade fornecer as condições de processamento da última instrução realizada, além de ser usado pelas instruções de tomada de decisão na implementação de programas de controle e gerenciamento de máquinas, processos e tarefas. Ele é composto por 4 bits, chamados de flags (bandeiras). Eles são responsáveis por refletir a condição atual do processamento de um programa. Esses bits são: carry-bit (C), auxiliary carry-bit (AC), overflow-bit (OV) e paridade-bit (P). Além desses quatro bits, há também um bit de uso geral (F0) que pode ser setado (= 1) ou ressetado (= 0) por instruções ( SETB bit, CLR bit ) e outros dois bits (RS0 e RS1) que são responsáveis por selecionar um dos quatro bancos de registradores. Tabela 1 – Registrador PSW Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 16/29 CPSW AC F0 RS0RS1 -OV P Fonte: Elaborada pela autora, 2020. 1.3.1 Endereçamento A família de microcontroladores com núcleo do 8051 pode ser endereçada de cinco modos diferentes: por registrador direto, indireto ou indexado por registrador imediato e por registrador-base mais indireto ou indexado por registrador. O endereçamento por registrador é o modo de endereçamento que trabalha com os registradores existentes no banco de registradores selecionados. Essas instruções transportam, por meio de seu código de máquina ou código-objeto, pelo menos três bits, que correspondem a um dos registradores selecionados (R0 a R7). O endereçamento direto especifica diretamente, na instrução, um endereço de memória da RAM interna do microcontrolador 8051. Todavia, podem ser acessados apenas por esse tipo de endereçamento os registradores de funções especiais (SFRs) e os 128 bytes inferiores da RAM interna. O endereçamento indireto ou indexado por registrador usa somente os conteúdos dos registradores R0 e R do banco de registradores selecionado, como um endereço (ponteiro) de uma posição de memória dentro de um bloco de 256 bytes. Os registradores de funções especiais não são acessados por esse tipo de endereçamento. O endereçamento imediato permite o uso de valores constantes nas instruções, normalmente para inicializar um registrador ou uma posição de memória RAM. O endereçamento indireto por registrador-base ou registrador indexado permite que um byte seja acessado da memória de programa, que é endereçada pela adição de um registrador-base (DPTR ou PC) e um registrador indexado (A). O endereçamento combinado ou misto usa dois tipos de endereçamento diferentes. 1.3.2 Instruções do 8051, ATMEGA328, ARM 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 17/29 As instruções que o microcontrolador pode executar são operações aritméticas e lógicas, de transferência de dados, de rotação, de salto incondicional e condicional, de chamadas a sub-rotinas e de retorno a sub-rotinas, dentre outras por meio do microprocessador. As operações com transferência de dados podem ser da RAM interna ou externa, sendo que, quando é feito pela RAM interna e usando um cristal de 12 MHz, as instruções são executadas de maneira muito mais rápida do que pela externa. Somente durante a execução da instrução MOVX é que os sinais de controle de leitura e escrita da memória RAM externa são ativados. Nas instruções de manipulação de tabelas de procura, o conteúdo do acumulador (A) é copiado com o conteúdo da posição de memória de programa, que é endereçado pela soma dos conteúdos dos registradores A com DPTR ou PC, respectivamente. A tabela deve ter no máximo um tamanho de 255 bytes. As instruções com operações aritméticas e lógicas usam o acumulador e, para algumas outras operações, outros registradores. Há uma lista de operações que podem ser executadas. Nas operações de salto/desvio ( jumper ) incondicional, o endereçode destino é especificado na linguagem de programação assembly por um rótulo ( label ) ou por um endereço da memória de programa, porém o endereço de destino age como se fosse um endereço de valor relativo (byte sinalizado tipo em complemento de dois). Nas operações de salto/desvio ( jumper ) e chamada à sub-rotinas condicional, temos alguns mnemônicos que exercem funções de salto condicionado, comparação de conteúdos e decremento de função. Além disso, a arquitetura interna do ATMEGA328 segue o modelo de Harvard, tendo as memórias independentes. Assim, é possível usar a técnica pipeline , que analisa a próxima instrução enquanto a que está sendo executada finaliza. Desse modo, duas instruções são analisadas em um ciclo de clock. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 18/29 Nos modelos de Arduino, verificamos que são usados processadores do tipo RISC e, especificamente, Advanced RISC, que pode executar milhares de instruções por segundo, sendo uma especificação para a família MIPS. A arquitetura RISC possui diferentes tipos de instruções: Instruções lógicas e aritméticas em registros; Instruções de transferência de dados entre a memória e os registros; Instruções para controle. Alguns exemplos de instruções podem ser vistos em: piMode() : determina a programação de um determinado pino, como entrada ou saída; digitalWrite() : configura o pino já definido como saída, a trabalhar com nível 0 ou nível 1; digitalRead() : configura o pino já definida como entrada, a trabalhar com nível 0 ou nível 1; analogRead() : lê o valor analógico quando a entrada é habilitada como conversor analógico-digital. 1.4 Fluxograma, programação assembly Fluxograma é um diagrama gráfico utilizado para descrever, de forma simples, processos e algoritmos para a implementação de programas. Normalmente, o fluxograma é utilizado em projetos para desenvolver, desenhar e arquitetar a estratégia que deve ser empregada para solucionar uma exigência de projeto, facilitando a forma de visualizar o processo e o fluxo das atividades que serão realizados pelo microprocessador. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 19/29 Figura 6 – Diferentes tipos de algoritmos. Fonte: Shutterstock, 2020. Acesso em: 15/05/2020. Além disso, essa ferramenta gráfica serve como auxílio para desenvolver os processos e algoritmos. Sendo assim, de forma básica, podemos usar os principais símbolos usados no seu desenvolvimento: linha de conexão, elipse, retângulo e losango. A linha de conexão tem a função de conectar os outros símbolos e também dá a direção do fluxo de processamento. Desse modo, ela é representada por setas apontando para cima, para baixo, para a esquerda e para a direita. A elipse é usada somente para identificar o início e o fim do programa. Na parte inicial, deve-se colocar, dentro dela, o nome do programa e, se possível, explicar sua utilização. Na parte final, escreve-se simplesmente FIM, significando o final da rotina. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 20/29 O retângulo representa o processamento, podendo ser as operações aritméticas ou lógicas, a movimentação de dados e endereços ou qualquer processamento que o microprocessador terá que executar. O losango sempre representa uma tomada de decisão, na qual é avaliada, por meio de um teste, uma variável de qualquer tipo. O resultado desse teste leva a dois caminhos: se for positivo ou verdadeiro, indica um caminho para o fluxo de processamento, se for negativo ou falso, indica outro caminho para o fluxo de processamento. Além disso, é possível dizer que o fluxograma de um programa sequencial é simples, pois não requer a representação de decisões, somente dos processamentos, conforme apresentado no Fluxograma 1. Fluxograma 1 – Exemplo de rotina simples 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 21/29 Fonte: Elaborado pela autora, 2020. É importante ressaltar que, quanto mais complexos os processos representados no fluxograma, mais símbolos gráficos serão necessários. Por exemplo: um programa que possui condições que precisam ser cumpridas precisa apresentar, em seu fluxograma, representações gráficas do que fazer quando os requisitos forem cumpridos e demonstrar o que deve ser feito em caso negativo, como retornar a outro ponto da etapa do processo de produção do programa e, caso contrário, se essas condições não forem cumpridas e tivermos que retornar a outro ponto do programa, caso elas e em caso negativo tem que retornar a um outro ponto do programa, são necessários mais passos e símbolos gráficos para representá-lo. No teste de condição, expressado pelo Fluxograma 2, o processamento passa 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 22/29 diretamente para o teste de controle de loop se a condição não for verdadeira. Por outro lado, se a condição for negativa, é necessário fazer um processamento. Geralmente, os testes condicionais dão o salto se a condição for positiva. Fluxograma 2 – Rotina loop 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 23/29 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 24/29 Fonte: Elaborado pela autora, 2020. » Linguagem de programação A linguagem de programação é um conjunto de regras em que um método padronizado para execução de um código pode ser compilado e transformado em um programa de computador. Essas linguagens podem ser classificadas em três níveis: alto, médio e baixo. A linguagem de baixo nível tem a característica de operar, acessar e manipular diretamente os registradores internos do microprocessador, os endereços e os conteúdos das posições de memória e dos dispositivos de entrada e saída existentes no hardware (GIMENEZ, 2015). Trata-se de uma linguagem com foco na máquina. A linguagem assembly é uma linguagem de baixo nível e é compilada para linguagem de máquina. A linguagem de alto nível é de mais fácil utilização por parte dos usuários (programadores), não possuindo acesso aos registradores internos e memórias. Seus comandos são muito simples e fáceis de serem entendidos. As linguagens de programação BASIC, C#, Java, Ruby, Python, Swift, JavaScript, PHP e PASCAL possuem essas características. A linguagem de nível médio é muito semelhante às de nível baixo e de nível alto, flexibilizando suas utilizações, além de estarem mais próximas do hardware. A linguagem C é desse tipo. » Programação assembly Para programação de sistemas utilizando microprocessadores ou microcontroladores, podemos usar várias linguagens de programação, como a linguagem assembly (baixo nível) e linguagens de programação estruturadas C (médio nível) e PL/M (alto nível). A escolha de uma linguagem de programação na elaboração de um projeto de software deve levar em conta o conhecimento técnico e suas especificidades. Conforme dito anteriormente, a característica da linguagem de programação assembly é apresentar o conjunto de instruções definido pelo fabricante da família de microprocessadores ou microcontroladores. Isso permite um total controle dos 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&…25/29 registradores internos, posições de memória do CI (circuito integrado) e uma programação mais enxuta se comparada a outras linguagens de programação. Existem muitas linguagens que podem ser utilizadas. 1.4.1 Elaboração de projetos Ao iniciar uma determinada programação, para que se tenha sucesso, são necessários alguns detalhes. O principal deles é seguir uma determinada metodologia. Além disso, é muito importante ter o devido conhecimento técnico, uma vez que, para desenvolver um projeto de software, é preciso conhecer a arquitetura interna (hardware) do circuito integrado, bem como o conjunto de instruções do dispositivo. Um dos primeiros itens a ser avaliado é a viabilidade do projeto, que é determinada pelo entendimento das especificações do cliente. Para a viabilidade, devem ser avaliados itens como componentes, tecnologias, custos gerais, quantidade etc. Na fase da viabilidade, é importante e necessário que se tenha várias áreas da empresa envolvidas, pois todas, de certa forma, participarão de alguma etapa do projeto. O resultado da análise gera o valor final do produto, expectativas de vendas e pode até chegar à conclusão da inviabilidade do projeto. Após a aprovação do projeto, pode-se partir para elaboração de diagramas de blocos geral e detalhado, bem como definir detalhadamente os objetivos, o hardware e o software do produto. A próxima etapa é fazer um fluxograma geral do projeto. Trata-se de uma etapa que, quando bem executada, coloca a programação automaticamente em um bom caminho, uma vez que viabiliza o processo de geração do código. Além disso, um fluxograma bem estruturado diminui consideravelmente os erros na programação. Em seguida, é necessário fazer a compilação do código ou programa-fonte para linguagem de máquina que o microcontrolador entende. A linkagem é a fase final da compilação, em que é feita a união de todos os blocos de programa. Após a linkagem, o programa está pronto para passar para a fase de testes e simulação. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 26/29 Após o processo de compilação do programa, são feitos os testes e simulação, verificando se o software está funcionando conforme determinado. Por fim, após esses testes, finalmente é feita a gravação do programa. No entanto, serão executados novos testes do produto final para avaliar se os objetivos foram atingidos. Síntese Nesta unidade, conhecemos os conceitos fundamentais dos sistemas de computação, a história dos computadores e arquitetura, adentrando no mundo dos microcontroladores e conhecendo suas arquiteturas e pinagens. Ainda, aprendemos sobre programações, instruções e organização dos endereçamentos. Também verificamos a importância de se ter contato com determinados conceitos. Desse modo, nossa mente fica fervilhando de novas ideias e, consequentemente, podemos colocar inovações em prática. Aprendemos também a elaborar projetos de programas, conhecendo bem as etapas de produção envolvidas. Sendo assim, estamos preparados para conhecer as aplicações desse componente que se mostra um grande aliado das novas tendências de mercado, que é a internet das coisas. Referências bibliográficas 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 27/29 A história dos computadores e da internet e o acesso à informação | Parte I . Postado por Khan Academy Brasil. (11min42s.). son. color. port. Disponível em: < https://www.youtube.com/watch?v=o1FiPSv60aY&feature=youtu.be >. Acesso em: 15 mai. 2020. A história dos computadores e da internet e o acesso à informação | Parte II . Postado por Khan Academy Brasil. (9min50s.). son. color. port. Disponível em: < https://www.youtube.com/watch?v=cjtNiHR2jFI >. Acesso em: 15 mai. 2020. A história dos computadores e da internet e o acesso à informação | Parte III . Postado por Khan Academy Brasil. (6min36s.). son. color. port. Disponível em: < https://www.youtube.com/watch?v=nyFhZPoL9W4 >. Acesso em: 15 mai. 2020. ARDUINO. ATMEGA168/328P – Arduino Pin Mapping. Disponível em: < https://www.arduino.cc/en/Hacking/PinMapping168 >. Acesso em: 15 mai. 2020. GARCIA, F. D. Breve histórico da ARM. Embarcados , [s.l.], 22 mar. 2017. Disponível em: < https://www.embarcados.com.br/breve-historico-da-arm/ >. Acesso em: 17 jul. 2020. GIMENEZ, S. P. Microcontroladores 8051 : conceitos, operações, fluxogramas e programação. 1. ed. São Paulo: Érica, 2015. GIMENEZ, S. P. Microcontroladores 8051 : teoria do hardware e do software. São Paulo: Pearson, 2005. GIMENEZ, S. P. Microcontroladores 8051 : teoria do hardware e do software. São Paulo: Pearson, 2005.GIMENEZ, S. P. Microcontroladores 8051: teoria e prática. 1. ed. São Paulo: Érica, 2010. INTEL CORP. 8051 : 8 bit control oriented microcomputers. Disponível em: < https://pdf1.alldatasheet.com/datasheet-pdf/download/107780/INTEL/8051.html >. Acesso em: 15 mai. 2020. MONK, S. 30 Projetos com Arduino . 2. ed. Porto Alegre: Bookman, 2014. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 28/29 https://www.youtube.com/watch?v=o1FiPSv60aY&feature=youtu.be https://www.youtube.com/watch?v=cjtNiHR2jFI https://www.youtube.com/watch?v=nyFhZPoL9W4 https://www.arduino.cc/en/Hacking/PinMapping168 https://www.embarcados.com.br/breve-historico-da-arm/ https://pdf1.alldatasheet.com/datasheet-pdf/download/107780/INTEL/8051.html NICOLOSI, D. E. C. Microcontrolador 8051 detalhado . 9. ed. São Paulo: Érica, 2013. 22/04/2024, 10:08 Unidade 1 - Microcontroladores e IOT https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 29/29
Compartilhar