MIC29004-2019-1
1 Microprocessadores: Diário de Aula 2019-1
- Professor: Roberto de Matos
- Encontros: 4ª e 5ª feira às 15:40h
- Plano de Ensino
- Cronograma de Aulas
- Notas
1.1 Material
1.2 Listas de Exercício
- Lista de Exercícios: Memória, Arquitetura, Organização e BIP
- Lista Introdução a programação do BIP
- Lista de Exercícios Microcontroladores e AVR
2 Aula 13/02/2019: Apresentação
- Apresentação do professor.
- Apresentação da disciplina: conteúdo, bibliografia e avaliação.
3 Aula 14/02/2019: Introdução sobre Memória
3.1 Diagrama em blocos da memória e barramentos
No diagrama abaixo está representado um bloco de memória primária de 16x8 (dezesseis endereços por 8 bits).
- Note que uma posição de memória pode ser vista como uma caixa que possue um endereço e um conteúdo.
- O conteúdo associado a posição de memória é uma palavra binária e, neste caso, possui 8 bits.

Para que us dispositivo externo possa "acessar" a memória para leitura ou escrita, ele deve se utilizar de um conjunto de fios que chamamos de barramentos.
3.1.1 Barramento de Endereços
Este barramento permite determinar o endereço de uma posição a ser acessada na memória. Um barramento de 4 linhas de endereço é designado por A3,A2,A1 e A0.
Supondo uma memória com endereços designados da forma hexadecimal de 0h a Fh. Supondo que A3 seja associado ao bit mais significativo e A0 ao bit menos significativo. Então, para acessar a posição Bh de memória, deve-se injetar A3=1, A2=0, A1=1 e A0=1. Note que
O termo "injetar" significa aqui que um dispositivo externo deve forçar tensão nas linhas do barramento. Esta tensão depende da tecnologia utilizada. Poderia ser, por exemplo, 5V para o nível lógico 1 e 0V par ao nível lógico 0.,
4 Aula 20/02/2019: Laboratório de Memória - Introdução
4.1 Experimento 1 - Acesso a memória RAM de 2K x 8 bits
- Roteiro
- Entrar no Windows.
- Baixar o arquivo de projeto Experimento 1 MIC. Coloque em um diretório conhecido.
- Clique sobre o arquivo. O PROTEUS será executado e o projeto aberto.
- Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação.
- O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
- Tente colocar o dado AFh na posição 0 de memória e 8Eh na posição 15.
- Note o Chip Select está habilitado sempre. Coloque uma chave adicional para colocar o Chip Select e repita a operação de gravação anterior.
- Exercícios adicionais
- Colocar uma chave de controle do Chip Select (CE).
- Colocar o seu nome ("Maria da Silva") na memória implmentada no projeto, a partir da posição 0 (endereço). Olhar tabela ASCII.
- Reimplementar o item dois para gravar nos últimos endereços de memória dos 2K disponíveis.
5 Aula 21/02/2019: Laboratório de Memória - Associação
- Associando memórias para aumentar a quantidade de endereços
- Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 8Kx8bits. Use decodificador (ver abaixo).
- Grave 0xAA na posição 2047, 0xBB na posição 4095, 0xCC na posição 6143, 0xDD na posição 8191.
- Quais os endereços de cada memória que foram acessados fisicamente?
5.1 Material de Apoio
- Decodificadores
6 Aula 27/02/2019: Laboratório de Memória - Associação (cont.)
- Associando memórias para aumentar o tamanho da palavra de memória
- Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 2Kx16bits.
- Grave 0xAAAA na posição 512
- Grave 0xBBBB na posição 2044
7 Aula 28/02/2019: Cancelada
Problemas de saúde
8 Aula 06/03/2019: Tipos de Memória
- Avaliação dos laboratórios de associação de memória: Notas
- Tipos de Memória
- Roteiro Extra Proteus
- Baixe o novo arquivo de projeto. Coloque em um diretório conhecido.
- Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação. O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
- Grave o dado Ah na posição 0 de memória e Bh na posição 8.
- Note o Chip Select está habilitado sempre. Coloque uma chave adicional para colocar o Chip Select e repita a operação de gravação anterior.
- Utilize a nova configuração para gravar o seu número de matrícula a partir da posição 0.
- Exercícios Extra Proteus
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 16x8 bits.
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 64x4 bits.
- Usando a memória do experimento como bloco base (16x4 bits), realize a ligação entre elas de modo que se construa um banco de memória de 32x8 bits.
- Exercícios Extra
- Quais os tamanhos dos barramentos de endereço e dado para uma Memória de 512x8 bits?
- Determine a capacidade final em bits e o endereço inicial e final em Hexadecimal das memórias com as seguintes características:
- 512x4
- 4Kx8
- 128Kx8
- 2Mx16
9 Aula 07/03/2019: Introdução a Arquitetura e Organização de Computadores
- Objetivos
- Introdução a Microprocessadores
- Material
- Slides: Introdução a Microprocessadores
- Exercícios
10 Aula 13/03/2019: Não Houve Aula
11 Aula 14/03/2019: Não Houve Aula
12 Aula 20/03/2019: Arquitetura do BIP
- Objetivos
- Apresentar a Arquitetura do BIP
- Material
- Exercícios
13 Aula 21/03/2019: Organização do BIP
- Objetivos
- Apresentar a Organização do BIP
- Simulação do BIP e Geração de Sinais de Controle de Forma Manual
- Material
14 Aula 27/03/2019: Organização do BIP
- Roteiro
1.Baixar e descomptar em um diretório os arquivos abaixo
2.Instalar a biblioteca e modelo antes de abrir o projeto usando o Menu System->Settings:
3.Abrir o projeto do BIP
4.Simular e gerar os sinais de controle conforme a instrução e a tabela de decodificação.
15 Aula 28/03/2019: Implementar Decoder do BIP
16 Aula 03/04/2019: Montar assembly do BIP
- Verificação do Decoder funcionando
- Montagem na mão do Assemby do BIP
17 Aula 04/04/2019: Arquitetura e Organização do BIP II
Atividade:
- Fazer a tabela de decodificação do BIP2
- Implementar o decoder do BIP2
- Modificar a organização do BIP para suportar as novas instruções do BIP2
- Fazer um programa para mostrar o funcionamento
- Enviar o Código via Sigaa e Apresentar para o professor.
- Deadline: 18/04/2019. Adiado para:
- Entrega: 23/04/2019
- Apresentação: 24/04/2019
18 Aula 10/04/2019: Aula Cancelada - Troca por sexta
19 Aula 11/04/2019: Dúvidas da lista de exercícios
- Nenhum aluno teve dúvida da lista ou do trabalho.
20 Aula 17/04/2019: Prova
21 Aula 24/04/2019: Revisão BIP2
- Dúvidas do Trabalho BIP2
22 Aula 25/04/2019: Terminar Decode Bip2
- Aula aberta para finalização do trabalho final de organização
23 Aula 02/05/2019: Apresentação dos Trabalhos
24 Aula 08/05/2019: Introdução a Microcontroladores
25 Aula 09/05/2019: Introdução a Microcontroladores (cont.)
26 Aula 15/05/2019: Não houve aula – Paralisação Nacional
27 Aula 16/05/2019: Preparação Seminários e CISC x RISC
- Grupo 1 (Guilherme e Luan):
- Visão Geral
- Núcleo AVR
- Qual arquitetura de memória usada?
- Detalhes da ALU (Quais os tipos de operação? Formato de dados)
- Registradores (Status e Uso geral e de Pilha)
- Apresentar:
- Modos de endereçamento
- Conjunto de instruções (classes e exemplos)
- Grupo 2 (Bruno e Gabriel):
- Descrição dos pinos
- Detalhes das Memórias do AVR
- Flash
- SRAM
- EEPROM (Descrição dos registradores)
- Apresentar:
- Tamanho e Tipo da palavra de de dados
- Tamanho e Formato da palavra de instrução
28 Aula 22/05/2019: Apresentação do Seminário
- Grupo 1 (Guilherme e Luan):
- Visão Geral
- Núcleo AVR
- Qual arquitetura de memória usada?
- Detalhes da ALU (Quais os tipos de operação? Formato de dados)
- Registradores (Status e Uso geral e de Pilha)
- Apresentar:
- Modos de endereçamento
- Conjunto de instruções (classes e exemplos)
29 Aula 23/05/2019: Apresentação do Seminário
- Grupo 2 (Bruno e Gabriel):
- Descrição dos pinos
- Detalhes das Memórias do AVR
- Flash
- SRAM
- EEPROM (Descrição dos registradores)
- Apresentar:
- Tamanho e Tipo da palavra de de dados
- Tamanho e Formato da palavra de instrução
- Simulação:
30 Aula 29/05/2019: Instruções de Movimentação de dados
https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html
31 Aula 30/05/2019: Instruções de Movimentação de dados
ldi r16, $06
ldi r27, $01 ;carregando o X (r27:r26) com o endereço 0102
ldi r26, $00
ram_prep:
st x+, r16
dec r16
BRBC 1, ram_prep
</syntaxhighlight>
32 Aula 05/06/2019: Portas de Entrada e Saída
- Apresentação dos testes de movimentação de memória
- Pinos do Arduino vs. ATmega328p:
Fonte: Pinout of ARDUINO Board and ATMega328PU by pighixxx is licensed under Creative Commons Attribution-Share Alike 4.0 International
- Tabela verdade de configuração das portas:
- Endereços registradores de I/O:
- Referência:
33 Aula 06/06/2019: Portas de Entrada e Saída (cont.)
- Endereço vs. .equ
- Usando .include
- Manipulação de bits dos registradores de I/O
- Desafio: Switch + LED
34 Aula 12/06/2019: Interrupção
- Teoria sobre interrupção: Vetores e lógica de funcionamento
- Interrupção externa: Configurações, "esqueleto" do código e implementação.
- Exemplo: Switch + LED via interrupção
35 Aula 13/06/2019: Exercícios Interrupção
- Exercícios usando interrupção:
- 1- A cada vez que o botão for pressionado, inverter o estado do LED (ligado -> desligado ou desligado -> ligado)
- 2- Enquanto o botão estiver pressionado, ficar piscando o LED. Usar o botão com pula-down ao invés de pull-up para facilitar a configuração da interrupção.
36 Aula 19/06/2010: Implementação em Assembly
- Exercícios Interrupção externa
- Introdução à sub-rotinas
38 Aula 26/06/2010: Implementação em Assembly
- Revisão conceitos sub-rotina
- Decoder BCD2SSD
39 Aula 26/06/2010: Lista de Exercícios