MIC29004-2019-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Microprocessadores: Diário de Aula 2019-1

Material

Listas de Exercício

Aula 13/02/2019: Apresentação

  • Apresentação do professor.
  • Apresentação da disciplina: conteúdo, bibliografia e avaliação.

Aula 14/02/2019: Introdução sobre Memória


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.
DiagramaBlocosMemorias2.jpg

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.

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.,

Aula 20/02/2019: Laboratório de Memória - Introdução

Experimento 1 - Acesso a memória RAM de 2K x 8 bits

Roteiro
  1. Entrar no Windows.
  2. Baixar o arquivo de projeto Experimento 1 MIC. Coloque em um diretório conhecido.
  3. Clique sobre o arquivo. O PROTEUS será executado e o projeto aberto.
  4. Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação.
  5. O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
  6. Tente colocar o dado AFh na posição 0 de memória e 8Eh na posição 15.
  7. 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
  1. Colocar uma chave de controle do Chip Select (CE).
  2. Colocar o seu nome ("Maria da Silva") na memória implmentada no projeto, a partir da posição 0 (endereço). Olhar tabela ASCII.
  3. Reimplementar o item dois para gravar nos últimos endereços de memória dos 2K disponíveis.

Aula 21/02/2019: Laboratório de Memória - Associação

Associando memórias para aumentar a quantidade de endereços
  1. Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 8Kx8bits. Use decodificador (ver abaixo).
  2. Grave 0xAA na posição 2047, 0xBB na posição 4095, 0xCC na posição 6143, 0xDD na posição 8191.
  3. Quais os endereços de cada memória que foram acessados fisicamente?

Material de Apoio

Decodificadores

Aula 27/02/2019: Laboratório de Memória - Associação (cont.)

Associando memórias para aumentar o tamanho da palavra de memória
  1. Usando como referência o projeto da aula anterior expandir o sistema de memória de 2Kx8bits para 2Kx16bits.
  2. Grave 0xAAAA na posição 512
  3. Grave 0xBBBB na posição 2044


Aula 28/02/2019: Cancelada

Problemas de saúde


Aula 06/03/2019: Tipos de Memória

  • Avaliação dos laboratórios de associação de memória: Notas


Roteiro Extra Proteus
  1. Baixe o novo arquivo de projeto. Coloque em um diretório conhecido.
  2. 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.
  3. Grave o dado Ah na posição 0 de memória e Bh na posição 8.
  4. 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.
  5. 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


Aula 07/03/2019: Introdução a Arquitetura e Organização de Computadores

Objetivos
  • Introdução a Microprocessadores
Material
Exercícios


Aula 13/03/2019: Não Houve Aula

Aula 14/03/2019: Não Houve Aula

Aula 20/03/2019: Arquitetura do BIP

Objetivos
  • Apresentar a Arquitetura do BIP
Material
Exercícios


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

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:

MICtela1Proteus.png

MICtela2Proteus.png

3.Abrir o projeto do BIP

4.Simular e gerar os sinais de controle conforme a instrução e a tabela de decodificação.


Aula 28/03/2019: Implementar Decoder do BIP

Projeto Lógico

Aula 03/04/2019: Montar assembly do BIP

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

Aula 10/04/2019: Aula Cancelada - Troca por sexta

Aula 11/04/2019: Dúvidas da lista de exercícios

  • Nenhum aluno teve dúvida da lista ou do trabalho.

Aula 17/04/2019: Prova

Aula 24/04/2019: Revisão BIP2

  • Dúvidas do Trabalho BIP2

Aula 25/04/2019: Terminar Decode Bip2

  • Aula aberta para finalização do trabalho final de organização

Aula 02/05/2019: Apresentação dos Trabalhos


Aula 08/05/2019: Introdução a Microcontroladores

Aula 09/05/2019: Introdução a Microcontroladores (cont.)

Aula 15/05/2019: Não houve aula – Paralisação Nacional

Aula 16/05/2019: Preparação Seminários e CISC x RISC

Datasheet Atmega328p

  • 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

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)

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:
http://www.avr-asm-tutorial.net/avr_sim/index_en.html

Aula 29/05/2019: Instruções de Movimentação de dados

https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html


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>

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:

Pinout_of_ARDUINO_Board_and_ATMega328PU.png

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:

Port Pin Configurations.png


  • Endereços registradores de I/O:

GPIO_registers_328p.png


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

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

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.

Aula 19/06/2010: Implementação em Assembly

  • Exercícios Interrupção externa
  • Introdução à sub-rotinas

Aula 20/06/2010: Feriado

Aula 26/06/2010: Implementação em Assembly

  • Revisão conceitos sub-rotina
  • Decoder BCD2SSD

Aula 26/06/2010: Lista de Exercícios