Capítulo 1 - ARQUITECTURA DE COMPUTADORES (MICRONTROLADORES)
Capítulo 1 - ARQUITECTURA DE COMPUTADORES (MICRONTROLADORES)
Capítulo 1 - ARQUITECTURA DE COMPUTADORES (MICRONTROLADORES)
TÉCNICO PROFISSIONAL
EM PERFURAÇÃO E PRODUÇÃO; REFINAÇÃO E GÁS; MINAS; INFORMÁTICA; ELECTRÓNICA E TELECOMUNICAÇÕES;
INSTRUMENTAÇÃO; CONSTRUÇÃO CIVIL; MECÂNICA; ELECTROMECÂNICA; FINANÇAS; E CONTABILIDADE E GESTÃO
Objetivos:
• Conhecer arquitectura interna do microcontrolador;
• Descrever as memorias do microcontrolador;
• Saber diferenciar arquitectura Harvard e Von Neuman.
1
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
2
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
3
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
poderoso conjunto de instruções. Por ser um dos precursores, é utilizado em muitas aplicações
de automação em diversas áreas do mundo. É estimado que mais de um bilhão de dispositivos
8048 tenham sido vendidos. O 8051 o seguiu em 1980, e se tornou uma das famílias mais
populares de microcontroladores. Variantes da arquitetura do 8051 ainda são produzidas
atualmente, tornando o 8051 um dos projetos eletrônicos mais duradouros da história.
O microcontrolador possui internamente os seguintes dispositivos:
a) Uma CPU (Central Processor Unit ou Unidade de Processamento Central), cuja fi
nalidade é interpretar as instruções de programa.
b) Uma memória PROM (Programmable Read Only Memory ou Memória Programável
Somente de Leitura) na qual são gravadas as instruções do programa.
c) Uma memória RAM (Random Access Memory ou Memória de Acesso Aleatório)
utilizada para memorizar as variáveis utilizadas pelo programa.
d) Um conjunto de LINHAS de I/O para controlar dispositivos externos ou receber
impulsos de sensores, interruptores, etc.
e) Um conjunto de dispositivos auxiliares ao funcionamento, ou seja, gerador de clock,
contadores, UASART para comunicação, etc.
A figura 1.5 apresenta o diagrama de blocos de um microcontrolador, mostrando os principais
elementos descritos até aqui.
4
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
5
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Na figura 2.2, se pode observar o MBR (Memory Buffer Register ou Registrador Temporário
de Dados), que contém uma palavra com dados a ser armazenada na memória ou é utilizado
para receber uma palavra da memória. Já o AC (Accumulator ou Acumulador) e o MQ
(Multiplier Quotient ou Quociente de Multiplicação) são registradores utilizados para
armazenar temporariamente os operandos e os resultados das operações efetuadas na ULA.
6
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Para exemplificar a figura 2.3 e observar como é feito o controle pela UC, se considera um
ciclo de busca:
a) A UC mantém informação sobre o passo do ciclo de instrução que está sendo
executado;
b) Em um momento, ela saberá que o próximo ciclo a ser executado é um ciclo de busca;
c) O primeiro passo é transferir o conteúdo do registrador PC (Program Counter) para o
registrador MAR (Memory Address Register ou Registrador de Endereço de
Memória). Isso é feito quando a UC ativa o sinal abrindo as portas lógicas entre PC e
MAR;
d) O próximo passo é ler a palavra (dado) da memória para o registrador MBR (Memory
Buffer Register) e depois incrementar o PC.
Para o passo (d), os seguintes sinais de controle são enviados um:
1. Sinal para abrir as portas lógicas, que permite transferir o conteúdo do registrador MAR
para o barramento de endereço;
2. Sinal de leitura na memória, colocado no barramento de controle;
3. Sinal para abrir as portas lógicas, que permite que o conteúdo do barramento de dados
seja transferido para o registrador MBR;
4. Sinal de controle para comandar a operação de somar 1 ao conteúdo do PC,
armazenando o resultado no próprio PC (incremento).
7
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Na figura 2.4, os registradores de dados estão representados por REG 0 até REG N (R0 até
R7). Já os registradores de controle e estado são os vários registradores da CPU que são
empregados para controlar a operação da CPU. Quatro destes registradores são essenciais para
a execução de instruções:
a) Contador de Programa (PC): contém o endereço da instrução a ser buscada;
b) Registrador de Instrução (IR): contém a última instrução buscada;
c) Registrador de Endereçamento à Memória (MAR): contém o endereço de uma
posição de memória;
d) Registrador de Armazenamento Temporário de Dados (MBR): contém uma
palavra de dados a ser escrita na memória ou a palavra lida mais recentemente.
O Contador de Programa (PC) é atualizado pela CPU depois de cada busca de instrução, de
modo que ele sempre indique a próxima instrução a ser executada e instrução buscada é
8
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
carregada no registrador de instrução (IR). A troca de dados com a memória é feita usando o
MAR e o MBR. O MAR está conectado diretamente ao barramento de endereços e o MBR,
ao barramento de dados.
Observe a figura 2.5. O contador de programa (PC) contém o endereço da próxima instrução a
ser buscada. Esse endereço é movido para o MAR e colocado no barramento de endereço. A
UC requisita uma leitura na memória, e o resultado é colocado no barramento de dados e
copiado no MBR e então movido para o IR.
3. ARQUITECTURAS HARVARD versus VON NEUMAN
As arquiteturas Harvard e Von Neumann dizem respeito à forma como a memória é conectada
ao microprocessador.
Quando um sistema de processamento de dados (processadores e microcontroladores) possui
uma única área de memória na qual ficam armazenados os dados (variáveis) e o programa a ser
executado (software), se diz que esse sistema segue a arquitetura de Von Neuman.
No caso em que os dados (variáveis) ficam armazenados em uma área de memória e o programa
a ser executado (software) fica armazenado em outra área de memória, dizemos que esse
sistema segue a arquitetura Harvard.
A máquina proposta por Von Neuman é composta pelos seguintes componentes (Figura 3.1):
• Memória;
• Unidade de controle;
• Unidade Lógica e Aritmética (ULA);
• Registradores;
• Periféricos de entrada e saída.
9
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Conforme pode ser observado na figura 3.1, não existe separação entre dados e programa, uma
vez que há uma única área de memória. Dessa forma, o processador deve executar uma única
ação por vez: ou acessa os dados ou executa uma instrução.
Na arquitetura Harvard (figura 3.2) observamos dois barramentos distintos: um para acessar
a memória de dados e outro para acessar a memória de programas. Dessa forma, o processador
pode buscar e executar uma instrução ao mesmo tempo em que acessa a memória de dados
para ler ou para gravar algum valor. Veja a figura 3.2; nela é possível observar o barramento
de dados (Data Bus), em vermelho, partindo da memória RAM e seguindo até a Unidade
Lógica e Aritmética (ALU, em inglês). Na mesma figura, observa-se o barramento de programa
(Programm Bus) em azul, que parte da memória de programa e chega na ALU.
Devido à separação entre dados e programa, um processador da arquitetura Harvard executará
um programa em menor tempo do que um processador da arquitetura Von Neuman de mesmo
clock.
10
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
4. SISTEMA DE MEMÓRIA
Como já foi estudado mais acima, através de dispositivos eletrônicos como os registradores,
podemos armazenar uma palavra de “n” bits. Memórias são dispositivos utilizados para
armazenar palavras binárias na ordem de centenas de milhares. Podem-se utilizar flip-flop’s
para o armazenamento em memórias ou outro dispositivo qualquer que sirva para este fim. Os
circuitos de memória normalmente têm as seguintes entradas e saídas:
• Algumas vias de entrada para gravação e/ou saídas para leitura (que fisicamente podem
ser as mesmas);
• Algumas vias para endereçamento, que selecionará qual registrador será lido/escrito,
de acordo com um código (endereço de memória);
• Um pino que habilita o circuito (Chip Select - CS). Se o circuito não estiver habilitado,
as saídas permanecem em alta impedância;
• Um pino de leitura/escrita, que habilita uma destas duas operações ou apenas leitura,
dependendo do tipo de memória.
11
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
muitas vezes chamada de memória principal. Essas são as memórias internas de um sistema de
computação.
a) Memória principal
O processador pode acessar imediatamente uma instrução após a outra, pois elas estão
armazenadas na memória. A memória especificada para armazenar o programa e os seus dados
é chamada de Memória Principal.
Uma característica importante das memórias RAM (memória de acesso aleatório) é a sua
volatilidade. Isso quer dizer que ela requer o fornecimento de energia constante para que os
dados fiquem armazenados na sua estrutura. Então, se diz que essa memória é utilizada para
armazenamento temporário de dados.
Existem duas tecnologias de memórias RAM que merecem ser citadas. São elas:
1. Memórias RAM dinâmicas ou DRAM: feitas de células que armazenam dados com
carga de capacitores. A ausência de carga no capacitor indica um bit 0 e a presença de
carga, bit 1. Um capacitor descarrega-se naturalmente, sendo necessário um circuito
especial que faz a regeneração periódica de seu conteúdo (chamado de refresh);
2. Memórias RAM estáticas ou SRAM: os valores binários são armazenados usando
flip-flops, mantendo seus dados enquanto houver fornecimento de energia.
b) Memória ROM
Com relação à volatilidade apresentada no texto, há uma pequena porção da memória principal
não volátil chamada de ROM, onde são armazenadas pequenas instruções executadas quando
o computador é ligado.
Em contraste com a memória RAM, existe a memória apenas para leitura (ROM ou Read Only
Memory). Esta memória contém um padrão permanente de dados que não pode ser alterado.
Uma ROM é fabricada como qualquer outra pastilha, cujos dados são gravados durante o
processo de fabricação. Esse processo é relativamente ruim, pois qualquer erro pode fazer com
que o lote gravado seja inutilizado. As memórias ROMs evoluíram no sentido de permitir
alterações pelas gravações por processos especiais.
Assim, surgiram os vários tipos de ROMs, que são:
Ø PROM (ROM Programável): é uma alternativa mais barata, uma vez que após o
processo de fabricação, o fornecedor ou o cliente pode gravar seu conteúdo (apenas
uma única vez, pois seu processo é irreversível) por um processo elétrico;
Ø EPROM (ROM Programável e Apagável): nela, os dados podem ser lidos e gravados
eletricamente, mas é utilizada uma luz ultravioleta para apagar seu conteúdo e permitir
uma nova escrita, contudo, para permitir a regravação do seu conteúdo, todos os dados
devem ser apagados antes de iniciar uma nova gravação;
Ø EEPROM (ROM Programável e Apagável Eletricamente): essa é uma memória
mais atraente por facilitar as regravações. Quaisquer dados podem ser gravados nessa
memória sem que seja necessário apagar todo o seu conteúdo, já que apenas os bytes
endereçados são atualizados;
Ø Flash-ROM: é um tipo específico de memória EEPROM, em que são reprogramados
grandes blocos de dados. Nesse tipo de memória, todo o conteúdo é apagado antes de
12
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
haver uma nova reprogramação. O nome flash foi imaginado devido à elevada
velocidade de apagamento dessas memórias em comparação com as antigas EPROM e
EEPROM.
c) Memória cache
Uma memória principal possui característica de possuir grande capacidade, porém seu acesso
é relativamente lento. Dessa forma, essa memória é combinada com uma memória cache,
menor é mais rápida. Assim, na pirâmide da memória, logo abaixo dos registradores,
encontram-se as memórias cache.
O elo entre a memória principal (RAM) e a CPU tem um ponto frágil o ciclo de instrução é
muito mais rápido do que o ciclo de memória. Durante o ciclo de refresh nenhum dado pode
ser lido ou gravado na memória principal (RAM).
Na busca pela solução do problema do gargalo de congestionamento na comunicação entre o
processador e a memória principal, criou-se o mecanismo de memória cache, que tem por
função acelerar a velocidade de transferência entre CPU e memória principal.
Quando o processador deseja ler uma palavra da memória, é realizado um teste para verificar
se a palavra está na memória cache. Se estiver, ela é fornecida ao processador. Caso contrário,
um bloco de dados da memória principal (RAM) é lida para a memória cache.
13
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
b) A memória cache são mais rápidas do que a memória principal, porém menos rápidas
do que os registradores. Possuem também alta velocidade de acesso e baixa capacidade
de armazenamento nos níveis mais altos da hierarquia;
c) Na organização da memória interna, a memória principal tem a maior capacidade de
armazenamento e a menor velocidade de acesso;
d) A memória externa (representada pelos discos magnéticos e ópticos – que serão vistos
na próxima aula) tem alta capacidade de armazenamento e baixa velocidade de acesso.
14
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Os periféricos não são ligados diretamente ao barramento do sistema pelos seguintes motivos:
1. A grande variedade de periféricos com diferentes mecanismos de operação torna
impraticável incorporar ao processador toda a lógica necessária;
2. A taxa de transferência de dados dos periféricos é muito menor do que a taxa de
transferência de dados da memória ou da CPU, tornando inviável o uso do barramento
do sistema para comunicação direta com os dispositivos periféricos;
3. Os formatos de dados e tamanhos das palavras dos periféricos são usualmente
diferentes dos usados no computador ao qual estão conectados.
Para resolver os problemas de comunicação com o barramento, o módulo de E/S fornece uma
interface com o processador e a memória e permite também interfaces com um ou mais
dispositivos periféricos.
4.5. Dispositivos externos
Os dispositivos externos oferecem um meio de troca de dados entre o ambiente externo e o
computador. A conexão, como já sabemos, é feita através de um módulo de E/S.
Os dispositivos externos podem ser classificados em três categorias:
a) Voltados para a comunicação com o usuário: podemos citar aqui os monitores,
terminais de vídeo, impressoras, teclados, mouse, dentre outros;
b) Voltados para a comunicação com a máquina: discos magnéticos (discos rígidos) e
discos ópticos são exemplos. É importante lembrar que, nesse momento, o ponto de
vista das unidades é estrutural, ou seja, a forma como eles são controlados pelos
módulos de E/S. Do ponto de vista de hierarquia, eles já foram apresentados como
memória externa;
c) Voltados para a comunicação com dispositivos remotos: redes de computadores
usando interfaces de rede ou modem podem servir de exemplo.
15
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Na figura 4.4 se pode descrever detalhes da interação do dispositivo externo com o módulo de
E/S. A interface com o módulo de E/S é formada de sinais de controle, estado e dados. Observe:
a) Os sinais de controle determinam a função a ser executada pelo dispositivo (como
enviar dados para o módulo de E/S – realizando um INPUT – ou receber dados do
módulo de E/S – realizando um OUTPUT);
b) Os sinais de estado indicado o status do dispositivo, como por exemplo, se ele está
pronto ou não (ligado, desligado, ocupado);
c) Os sinais de dados formam o conjunto de bits a serem enviados para o módulo de E/S
ou recebido dele.
16
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
17
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
18
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
O aspecto externo do 8051 é o da figura 6.3. Os pinos com nomes da forma P0.0, P0.1, etc.
correspondem às quatro portas de E/S (P0 a P3). Note a dupla utilidade das portas P0 e P2, que
ficam comprometidas com o uso de memória externa, assim como os pinos P3.6 e P3.7. O sinal
ALE (Address Latch Enable) permite fazer a demultiplexação de dados e endereços na porta
P0.
%%%%%%%% (program storage enable), o controlador informa o mundo externo se a
Através do sinal 𝑃𝑆𝐸𝑁
operação em andamento é uma leitura de instrução (acesso à memória de programa) ou um
acesso à memória de dados. Este sinal permite que o processador tenha duas regiões distintas
de memória externa, uma para armazenar código e outra para dados. Ambas ocupam os
endereços de 0 a FFFFH (64 kB), num total de 128 kB.
Figura 6.3.
O pino %%%%
𝐸𝐴 é um sinal de entrada, através do qual o usuário escolhe se será utilizada a memória
ROM interna ou se todo o programa será armazenado externamente.
Os pinos da porta P3 também são utilizados para realizar certas funções especiais:
• P3.0 - RxD/data: recepção serial assíncrona ou E/S de dados síncronos;
• P3.1 - TxD/clock: transmissão porta serial assíncrona ou saída de clock p/ dados
síncronos;
• P3.2 - INT0: entrada da interrupção 0 ou bit de controle para o temporizador/contador
0;
• P3.3 - INT1: entrada da interrupção 1 ou bit de controle para temporizador/contador ;
• P3.4 - T0: entrada de clock externo para o temporizador/contador 0;
• P3.5 - T1: entrada de clock externo para o temporizador/contador 1;
• P3.6 – WR: sinal de escrita na memória de dados externa;
• P3.7 – RD: sinal de leitura na memória de dados externa.
A alimentação (5V) é feita pelo pino 40 e o GND é o pino 20. O cristal para o oscilador interno
é conectado aos pinos 18 e 19 (XTAL2 e XTAL1). Finalmente, o pino 9, RST/VPD, é a entrada
de reset.
19
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
ela atuará como um pino de saída e se a lógica um (1) for aplicada, o pino atuará como
um pino de entrada. Esses pinos também são chamados de P1.0 a P1.7 (onde P1 indica
que é um pino na porta 1 e o número após '.' Informa o número do pino da porta, ou
seja, 0 indica o primeiro pino da porta. Portanto, P1. 0 significa primeiro pino da porta
1, P1.1 significa segundo pino da porta 1 e assim por diante). Esses pinos são pinos
bidirecionais.
• Pino 9 (RST): reinicialize o pino. É um pino de entrada activo-alto. Portanto, se o pino
RST estiver alto por um mínimo de 2 ciclos da máquina, o microcontrolador será
reiniciado, ou seja, ele fechará e encerrará todas as actividades. É frequentemente
referido como pino “power-on-reset” porque é usado para reiniciar o microcontrolador
em seus valores iniciais quando a energia está ligada (alta).
• Pino 10 a pino 17 (porta 3, P3.0 a P3.7): os pinos 10 a 17 são pinos da porta 3, também
chamados de P3.0 a P3.7. Esses pinos são semelhantes à porta 1 e podem ser usados
como pinos de entrada ou saída universais. Esses pinos são pinos bidirecionais. Esses
pinos também têm algumas funções adicionais, que são as seguintes:
i) P3.0 (RXD): o 10º pino é RXD (pino de recepção de dados seriais) que é para entrada
serial. Através deste sinal de entrada, o microcontrolador recebe dados para
comunicação serial.
ii) P3.1 (TXD): o 11º pino é TXD (pino de transmissão de dados serial), que é o pino
de saída serial. Através deste sinal de saída, o microcontrolador transmite dados
para comunicação serial.
iii) P3.2 e P3.3 (𝑰𝑵𝑻𝟎 %%%%%%%, 𝑰𝑵𝑻𝟏
%%%%%%%): 12º e 13º pinos são para Interrupção de Hardware
Externo 0 e Interrupção 1, respectivamente. Quando esta interrupção é ativada (ou
seja, quando é baixa), 8051 é interrompido em tudo o que está fazendo e salta para
o valor do vetor da interrupção (0003H para %%%%%%% 𝑰𝑵𝑻𝟎 e 0013H para %%%%%%%
𝑰𝑵𝑻𝟏) e começa
a executar a rotina de serviço de interrupção (ISR) a partir desse localização do
vetor.
iv) P3.4 e P3.5 (T0 e T1): 14º e 15º pinos são para entrada externa do Timer 0 e Timer
1. Eles podem ser conectados com temporizador/contador de 16 bits.
v) P3.6 (𝑾𝑹 %%%%%): 16º pino é para gravação na memória externa, ou seja, gravação de
dados na memória externa.
vi) P3.7 (𝑹𝑫 %%%%%): o 17º pino é para leitura de memória externa, ou seja, leitura de dados
de memória externa.
• Pino 18 e pino 19 (XTAL2 e XTAL1): esses pinos são conectados a um oscilador
externo que geralmente é um oscilador de cristal de quartzo. Eles são usados para
fornecer uma frequência de clock externo de 4 MHz a 30 MHz.
• Pino 20 (GND): este pino é conectado ao aterramento. Deve ser fornecido com
alimentação 0V. Portanto, ele é conectado ao terminal negativo da fonte de alimentação.
• Pino 21 ao pino 28 (porta 2, P2.0 a P2.7): o pino 21 ao pino 28 são pinos da porta 2,
também chamados de P2.0 a P2.7. Quando a memória externa adicional faz interface
com o microcontrolador 8051, os pinos da porta 2 atuam como bytes de endereço de
ordem superior. Esses pinos são bidirecionais.
• %%%%%%%%): 𝑃𝑆𝐸𝑁
Pin 29 (𝑷𝑺𝑬𝑵 %%%%%%%% significa Program Store Enable. É a saída, pino ativo-baixo.
Isso é usado para ler a memória externa. No sistema baseado em 8031 onde a ROM
externa contém o código do programa, este pino é conectado ao pino OE da ROM.
20
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG
CEPG-2023. SEAC – 11a Classe. Prof. Eng0. Capassola
Homework
1. Como atividade de aprendizagem desta aula, procure identificar nos equipamentos
eletroeletrônicos de sua casa aqueles que utilizam microcontroladores. Após, faça uma
lista dos mesmos e envie-as para o e-mail do seu professor.
Bibliografia:
• The 8051 Microcontroller.
21
Compilado e Desenvolvido por Prof. Eng. Francisco Capassola. “El_Más_Duro” | CEPG