Escolar Documentos
Profissional Documentos
Cultura Documentos
TRABALHO DE MICROPROCESSADORES E
MICROCONTROLADORES
Luanda, 2024
1
UNIVERSIDADE DE LUANDA
INSTITUTO DE TECNOLOGIA DE INFORMAÇÃO E COMUNICAÇÃO
DEPARTAMENTO DE ENGENHARIA DE
TELECOMUNICAÇÕES
TRABALHO DE MICROPROCESSADORES E
MICROCONTROLADORES
O Docente
Mtec: Edmuene antonio
2
1. Explique a diferença entre microprocessador e microcontrolador.
3
Microcontroladores:
Função: Os microcontroladores são projetados principalmente para controlar
dispositivos e sistemas específicos, executando tarefas pré-programadas em um
ambiente dedicado. Eles combinam uma CPU com memória, periféricos e
interfaces de E/S em um único chip.
Características únicas:
- Integração: São altamente integrados, incorporando CPU, memória (RAM,
ROM, EEPROM/Flash), periféricos (como ADC, PWM, temporizadores) e
interfaces de comunicação em um único chip.
- Controle dedicado: São otimizados para controle em tempo real e interação
com o ambiente físico, permitindo o controle de dispositivos externos, automação
de processos e sistemas embarcados.
- Baixo custo e consumo de energia: Geralmente são mais econômicos e
consomem menos energia em comparação com soluções que requerem
componentes separados.
Comparação:
Complexidade: Os microprocessadores são mais complexos em termos de
design e funcionalidade, pois requerem componentes adicionais para formar um
sistema completo. Os microcontroladores são mais simples e integrados,
adequados para aplicações de controle específicas.
Aplicações: Os microprocessadores são utilizados em sistemas computacionais
que demandam capacidade de processamento geral. Os microcontroladores são
empregados em sistemas embarcados, automação industrial, eletrônica de
consumo, entre outros, que exigem controle dedicado e interação com
dispositivos externos.
Flexibilidade vs. Integração: Os microprocessadores oferecem maior
flexibilidade na configuração de sistemas computacionais personalizados. Os
microcontroladores são altamente integrados e simplificam o projeto de sistemas
de controle e automação.
5
3. Complexidade: Arquitetura mais complexa, dificultando o
desenvolvimento e a depuração de hardware.
4. Custo: Pode ser mais cara em alguns casos devido à necessidade de
componentes adicionais.
5. Eficiência energética: Maior consumo de energia por causa da
operação mais complexa.
A diferença entre CPU RISC (Reduced Instruction Set Computing) e CPU CISC
(Complex Instruction Set Computing) está principalmente relacionada ao design
e à execução das instruções pela unidade de processamento central (CPU) em
um computador. CPUs RISC priorizam simplicidade, execução rápida de
instruções e eficiência de código, enquanto CPUs CISC oferecem uma variedade
maior de instruções, incluindo algumas mais complexas, e são muitas vezes
projetadas com ênfase na compatibilidade com software legado.
6
2. Tamanho do código: Requer menos código para realizar as mesmas tarefas
complexas.
3. Compatibilidade: Compatibilidade com software legado e sistemas
operacionais antigos.
4. Flexibilidade: Maior flexibilidade de programação devido ao conjunto de
instruções mais rico.
5. Versatilidade: Ideal para uma ampla gama de aplicações, desde tarefas
simples até complexas.
7
9. Qual é a diferença existente entre lógica computacional, lógica
Sequencial e lógica combinacional, e de exemplo de cada.
10. Qual é a diferença entre bit, nibble, byte e palavra associado com os
microprocessadores.
8
Byte: Um conjunto de 8 bits. Um byte pode representar 256 valores diferentes.
É a unidade básica de armazenamento de dados em computadores.
Palavra: Um conjunto de bits que depende da arquitetura do
microprocessador. Em muitos processadores modernos, uma palavra tem 32
bits, o que permite representar 4.294.967.296 valores diferentes.
9
ANDWF: Faz um "AND" bit a bit entre um valor do registrador W e outro
registrador.
XORWF: Faz um "XOR" bit a bit entre um valor do registrador W e outro
registrador.
Instruções de salto:
GOTO: Pula para uma instrução específica.
GOSUB: Pula para uma sub-rotina.
RETURN: Retorna de uma sub-rotina.
Instruções de controle de bits:
BCF: Limpa um bit em um registrador.
BSF: Define um bit em um registrador.
BTFSS: Testa se um bit em um registrador está definido.
Outras instruções:
NOP: Não faz nada.
CLRWDT: Limpa o watchdog timer.
SLEEP: Coloca o microcontrolador em modo de hibernação.
Temporizadores:
O PIC16F887 possui três temporizadores:
Timer0: Um temporizador de 8 bits com pré-divisor e modo de captura/comparação.
Timer1: Um temporizador de 16 bits com pré-divisor e modo de captura/comparação.
Timer2: Um temporizador de 8 bits com pós-divisor e modo de PWM.
10
Portas:
O PIC16F887 possui cinco portas:
Porta A: 8 pinos de E/S.
Porta B: 8 pinos de E/S.
Porta C: 8 pinos de E/S.
Porta D: 8 pinos de E/S.
Porta E: 3 pinos de E/S.
Pinos de I/O:
O PIC16F887 possui 40 pinos de E/S.
CCP:
O PIC16F887 possui dois módulos CCP (Capture/Compare/PWM):
CCP1: Associado ao Timer1.
CCP2: Associado ao Timer2.
Entradas analógicas:
O PIC16F887 possui 8 canais de entrada analógica de 10 bits.
Áreas profissionais:
11
Aplicações de projetos:
1. Memória de programa:
Armazena o código do programa que o microcontrolador executa.
É do tipo Flash e tem capacidade de 368 palavras (words) de 16 bits
cada.
Pode ser apagada e reprogramada eletricamente.
2. Memória de dados:
Armazena dados temporários que o microcontrolador está usando
durante a execução do programa.
É do tipo RAM e tem capacidade de 256 bytes de 8 bits cada.
É volátil, o que significa que os dados são perdidos quando o
microcontrolador é desligado.
3. Memória de dados EEPROM:
Armazena dados que precisam ser preservados mesmo quando o
microcontrolador é desligado.
É do tipo EEPROM e tem capacidade de 128 bytes de 8 bits cada.
Pode ser apagada e reprogramada eletricamente, mas o número de
vezes que isso pode ser feito é limitado.
12
18. Descreva o significado de cada: “pic”, “16”, “F”,”887”.
PIC:
Peripheral Interface Controller: Controlador de Interface Periférica.
Refere-se à família de microcontroladores da Microchip Technology.
16:
Indica que o microcontrolador possui uma arquitetura de 16 bits.
Isso significa que a CPU do microcontrolador pode processar dados de 16 bits de uma
vez.
F:
Indica que o microcontrolador possui memória Flash.
A memória Flash é um tipo de memória não volátil que pode ser apagada e
reprogramada eletricamente.
887:
É um número de série que identifica o modelo específico do microcontrolador.
Cada modelo de microcontrolador PIC tem um número de série único.
19. Em qual dos pinos do PIC16F887 podemos devemos ligar o sinal que
produz interrupção externa.
RB1: Este pino pode ser configurado como um pino de interrupção externa
secundária.
2.0V, 4MHz:
o Ativo: 1.2 mA (típico)
13
o Sleep: 0.15 µA (típico)
2.0V, 32KHz:
o Ativo: 0.3 mA (típico)
o Sleep: 0.05 µA (típico)
14
25. Qual é a função do chip MAX232 no PIC16F887.
A função principal do chip MAX232 em conjunto com o PIC16F887 é permitir a
comunicação serial entre o microcontrolador e outros dispositivos que utilizam a
interface RS-232, como computadores, módulos GPS, dispositivos de
comunicação, entre outros. Ele simplifica a integração de dispositivos com
diferentes níveis lógicos de tensão em um sistema de comunicação serial.
26. Define Memória RAM, Memória EEPROM, Memória ROM e Registros de
Propósito Gerais e, de exemplo de cada um.
15
FSR: Registrador de seleção de arquivo, usado para acessar bancos de
memória diferentes.
16
29. Define PWM
A PWM, ou Modulação por Largura de Pulso, é uma técnica utilizada para
controlar a potência média entregue por um sinal elétrico. Ela funciona pulsando
rapidamente um sinal entre ligado e desligado, com o ciclo de trabalho
determinando a porção do tempo que o sinal está ligado em comparação com o
período total.
17
a assíncrona, além de oferecer recursos adicionais como detecção de erros e
controle de fluxo. Enquanto isso, o UART é mais simples e se limita à
comunicação assíncrona sem os recursos avançados do USART. A escolha entre
USART e UART depende das necessidades específicas de comunicação e dos
recursos exigidos pelo sistema.
Modo de operação:
o Modo Ativo:
Corrente típica: 350 µA
Corrente máxima: 1 mA
o Modo Sleep:
Corrente típica: 20 µA
Corrente máxima: 30 µA
Tensão de alimentação:
o VDD = 5V: Corrente típica 350 µA (modo ativo), 20 µA (modo sleep)
o VDD = 3V: Corrente típica 200 µA (modo ativo), 10 µA (modo sleep)
Periféricos utilizados:
o Usar periféricos aumenta o consumo de corrente.
18
No entanto, algumas estimativas podem ser feitas:
Descrição:
LCD 16x2:
o 16 colunas e 2 linhas de caracteres.
o Matriz de pontos 5x8 para cada caractere.
o Amplamente utilizado em projetos eletrônicos.
o Ideal para exibir informações curtas e simples.
LCD 32x2:
o 32 colunas e 2 linhas de caracteres.
o Matriz de pontos 5x8 para cada caractere.
o Permite exibir mais informações na tela.
o Ideal para projetos que exigem mais espaço para exibição.
Conexões:
Pinos de controle:
o RS (Register Select): Seleciona o registrador de dados ou de
instruções.
19
o RW (Read/Write): Define a operação de leitura ou escrita.
o E (Enable): Ativa a escrita no registrador selecionado.
o D0-D7 (Data Lines): Transmitem os dados a serem exibidos no LCD.
Pinos de alimentação:
o Vdd: Tensão de alimentação positiva (5V).
o Vss: Tensão de alimentação negativa (0V).
Pinos de contraste:
o Vo (Vee): Ajusta o contraste da tela.
Conexões com Arduino:
LCD 16x2:
o RS: Pino 12 do Arduino.
o RW: Pino 11 do Arduino.
o E: Pino 10 do Arduino.
o D0-D7: Pinos 2-9 do Arduino.
LCD 32x2:
o RS: Pino 12 do Arduino.
o RW: Pino 11 do Arduino.
o E: Pino 10 do Arduino.
o D0-D7: Pinos 2-9 e A0-A3 do Arduino (necessita de expansor de I/O).
Clocks Internos:
20
Clocks Externos:
Endereçamento de Memória:
Tipos de Endereçamento:
1. Endereçamento Direto:
O endereço do dado é especificado diretamente na instrução.
Exemplo: MOV A, 0x100, onde 0x100 é o endereço do dado na memória.
Vantagem: Simples e eficiente.
Desvantagem: Limitado a um número específico de endereços.
2. Endereçamento Implícito:
O endereço do dado é implícito na instrução e não precisa ser especificado.
Exemplo: ADD A, B, onde A e B são registradores da CPU.
Vantagem: Mais compacto e eficiente para operações com registradores.
Desvantagem: Menos flexível que o endereçamento direto.
3. Endereçamento Indireto:
O endereço do dado é armazenado em outro local da memória, que é chamado
de ponteiro.
O valor do ponteiro é usado para acessar o dado.
Exemplo: MOV A, [PTR], onde PTR é o endereço do ponteiro na memória.
21
Vantagem: Permite acessar qualquer local da memória, mesmo que o
endereço não seja conhecido em tempo de compilação.
Desvantagem: Mais complexo e menos eficiente que o endereçamento direto.
4. Endereçamento Indexado:
O endereço do dado é calculado a partir de um endereço base e um índice.
O índice é um valor que especifica a posição do dado em relação ao endereço
base.
Exemplo: MOV A, [BASE + INDEX], onde BASE é o endereço base e INDEX
é o índice.
Vantagem: Permite acessar dados em arrays e outras estruturas de dados de
forma eficiente.
Desvantagem: Mais complexo que o endereçamento direto.
A Pilha (Stack):
A pilha é uma estrutura de dados LIFO (Last-In-First-Out).
Os dados são adicionados e removidos da pilha no topo.
A pilha é usada para armazenar dados temporários, como argumentos de
funções e variáveis locais.
Sub-rotinas e a Utilização da Pilha:
As sub-rotinas são blocos de código que podem ser chamados de outras
partes do programa.
Ao chamar uma sub-rotina, os argumentos da sub-rotina e o endereço de
retorno são armazenados na pilha.
Ao retornar da sub-rotina, os valores da pilha são restaurados.
Microprocessador:
22
Arquitetura Genérica:
Códigos de Instrução:
Barramentos:
23
Unidade Lógica e Aritmética (ULA):
Microprocessador:
Temporização de instruções:
Decodificação de instruções:
Microprogramas:
25
41. Define Lógica Externa à CPU: Interfaceamento de memória,
Transferência de dados, E/S programada, E/S por interrupção, Acesso
direto à memória (DMA).
A Lógica Externa à CPU refere-se aos mecanismos e processos que permitem
à CPU (Unidade Central de Processamento) interagir com componentes
externos, como memória, dispositivos de entrada/saída (E/S) e outros
periféricos. Esses elementos são cruciais para o funcionamento adequado de
um sistema computacional e incluem o interfaceamento de memória,
transferência de dados, E/S programada, E/S por interrupção e acesso direto à
memória (DMA).
Interfaceamento de Memória:
- Refere-se ao processo pelo qual a CPU interage com a memória do sistema
para ler ou escrever dados.
- Isso envolve endereçamento de memória, controle de leitura/gravação e
gerenciamento de ciclos de memória para acessar informações armazenadas na
memória RAM, ROM, cache ou outros tipos de memória.
Transferência de Dados:
- É o processo de mover dados entre a CPU e periféricos externos, como
discos rígidos, dispositivos de armazenamento, placas de rede, entre outros.
- Pode ser realizado de forma síncrona ou assíncrona, dependendo dos
requisitos de velocidade e sincronização entre os dispositivos.
E/S Programada:
- É um método de transferência de dados em que a CPU controla diretamente
o fluxo de dados entre ela e os dispositivos de E/S.
- A CPU inicia, monitora e finaliza as operações de E/S, geralmente por meio
de instruções específicas de E/S no código do programa.
E/S por Interrupção:
- Neste método, a CPU é notificada por meio de interrupções quando um
dispositivo de E/S precisa de atenção ou conclui uma operação.
- A CPU interrompe sua execução normal para lidar com a solicitação do
dispositivo de E/S, retomando a execução do programa principal após a
conclusão da operação de E/S.
26
Acesso Direto à Memória (DMA):
- É um mecanismo que permite a transferência direta de dados entre
dispositivos de E/S e a memória do sistema sem a intervenção constante da
CPU.
- O DMA assume temporariamente o controle do barramento de dados para
realizar transferências de dados em alta velocidade, liberando a CPU para outras
tarefas enquanto a transferência ocorre.
Hierarquia de Memória:
- Refere-se à estrutura organizacional da memória em um sistema
computacional, que geralmente é dividida em diferentes níveis ou camadas de
memória com diferentes características de capacidade, velocidade e custo.
- A hierarquia típica de memória inclui registros, cache L1, cache L2, memória
principal (RAM), memória secundária (como disco rígido ou SSD) e memória
offline (como fita magnética).
Memória Virtual:
- É uma técnica que permite que um sistema operacional utilize uma
quantidade de memória maior do que a memória física disponível, fazendo uso
de armazenamento em disco para armazenar partes menos utilizadas da
memória.
- A memória virtual é gerenciada pelo sistema operacional por meio de
mecanismos como paginação e segmentação, permitindo que programas
executem em um espaço de endereço virtual maior do que a memória física real.
27
Memória Cache:
- É uma memória de alta velocidade e baixa capacidade que armazena dados
frequentemente acessados pela CPU.
- A memória cache é organizada em múltiplos níveis (como L1, L2, L3) na
hierarquia de memória, onde cada nível é mais rápido, porém menor em
capacidade, do que o nível abaixo.
- O uso da memória cache reduz o tempo de acesso à memória principal (RAM)
e melhora o desempenho geral do sistema.
Segmentação de Memória:
- É uma técnica de gerenciamento de memória que divide o espaço de
endereçamento lógico em segmentos ou blocos de tamanhos variáveis.
- Cada segmento pode conter diferentes partes do programa ou dados,
facilitando a organização e alocação de memória para processos e aplicativos.
- A segmentação é comumente usada em sistemas operacionais para fornecer
proteção de memória e permitir o compartilhamento de memória entre processos
de maneira mais flexível.
28