UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

Microprocessadores

Unidade Ofertante:

Faculdade de Engenharia Elétrica

Código:

FEELT31602

Período/Série:

6

Turma:

U

Carga Horária:

Natureza:

Teórica:

30

Prática:

30

Total:

60

Obrigatória:

(X)

Optativa:

( )

Professor(A):

Ernane Antônio Alves Coelho

Ano/Semestre:

2020-2

Observações:

 

 

EMENTA

Conceituação e funcionalidade dos sistemas computacionais. Compreensão de como a computação ou processo de manipulação de símbolos pode ser exercida numa máquina através de um conjunto finito e não ambíguo de instruções (algoritmo), gerando a transformação de uma estrutura de dados, a qual corresponde à informação.

JUSTIFICATIVA

A disciplina de Microprocessadores tem como finalidade apresentar ao estudante de Engenharia Elétrica um dos assuntos que forma o núcleo básico de conhecimento da Engenharia de Computação, estruturando o conhecimento dos alunos no desenvolvimento de projetos com microcontroladores industriais, suas interfaces e dispositivos de uso geral

OBJETIVO

Objetivo Geral:

Capacitar a aluno a desenvolver atividades na área relacionada ao projeto de sistemas digitais utilizando microprocessadores e microcontroladores industriais, interfaces com o meio externo, projetar sistemas de comunicação paralela e serial entre microprocessadores e aplicações de programação em linguagem Assembly.

Objetivos Específicos:

1. Analisar, identificar, especificar e utilizar microprocessadores;
2. Projetar e implementar o "hardware" de um sistema mínimo de computador (cpu, memórias e periféricos) e elaborar o respectivo "software", capacitando o sistema mínimo a prover soluções computacionais na área de Engenharia Elétrica;
3. Utilizar ferramentas computacionais para a programação e simulação de microprocessadores.

PROGRAMA

1. Sistemas de numeração
1.1. Binário
1.2. Octal
1.3. Hexadecimal
1.4. Mudança de base
2. Representação numérica de dados
2.1. Números inteiros com e sem sinal
2.2. Números reais em ponto fixo
2.3. Operações aritméticas nas várias categorias de representação
3. Memórias
3.1. ROM (ROM, PROM, EPROM, EEPROM)
3.2. RAM (SRAM, DRAM)
3.3. Configuração dos barramentos (serial, paralelo, acesso simples ou duplo)
3.4. Decodificação de endereços de memória
3.5. Circuitos integrados usuais
3.6. Projeto de bancos de memória
4. Microprocessador
4.1. Diagrama de blocos (arquitetura interna, registradores, ALU, etc.)
4.2. Barramentos externos (dados, endereço e controle)
4.3. Interfaceamento CPU-memória e CPU-periféricos
4.3.1. Demultiplexação dados-endereço
4.3.2. Decodificação de endereços
4.3.3. Periféricos mapeados como memória
4.3.4. Aspectos elétricos (“fan in, fan out”)
4.4. Busca e execução de instruções
4.5. Diagramas de temporização das instruções
4.6. Estudo de um sistema mínimo realizável (kit de laboratório)
5. Linguagem de Montagem (“Assembly”)
5.1. Mnemônicos
5.2. Códigos de máquina
5.3. Montagem de programas
5.4. Utilização de montadores (“assemblers”)
5.5. Instruções de movimento
5.6. Instruções aritméticas
5.7. Instruções lógicas
5.8. Instruções de acesso à memória
5.9. Instruções de acesso a periféricos
5.10. Desvios no fluxo de processamento (condicionais e incondicionais)
5.11. Ponteiros
5.12. Pilha
5.13. Chamada e retorno de sub-rotinas
5.14. Interrupções de software
5.15. Algoritmos básicos
6. Sistemas de entrada e saída
6.1. Dispositivos seriais e paralelos
6.2. Periféricos básicos
6.2.1. Teclado
6.2.2. Display
6.2.3. Portas E/S programáveis
6.2.4. Temporizadores e contadores
6.2.5. Conversores A/D e D/A
6.3. Entrada e saída programada
6.4. Interrupção de hardware
6.4.1. Condições de chamada
6.4.2. Prioridade
6.4.3. Mascaramento
6.5. Entrada e saída via interrupção de hardware
6.6. Entrada e saída via DMA (“Direct Memory Access”)

METODOLOGIA

A plataforma para o desenvolvimento das atividades remotas será o Moodle/UFU, sendo os encontros síncronos estabelecidos por meio da ferramenta de reuniões virtuais do MS Teams, marcados dentro do próprio Moodle, ou Google Meet, como segunda opção, em caso de falha da primeira. A adoção desta plataforma será confirmada via email com os discentes na primeira semana de aula, a qual poderá ser alterada em comum acordo com os discentes.

As atividades síncronas serão desenvolvidas conforme o cronograma apresentado abaixo, sendo as aulas de caráter teórico realizadas toda segunda-feira, de 14:50 às 16:30, e as aulas de caráter prático (apresentação de simulações computacionais e acompanhamento de simulações realizadas pelos discentes) realizadas toda quarta-feira, de 16:50 às 18:30. Estas atividades implicam uma carga horária de 30 horas-aula referente ao conteúdo teórico, discriminado na tabela abaixo, e 30 horas-aula referente ao conteúdo prático, também discriminado em tabela específica abaixo. Todas as atividades avaliativas do curso serão realizadas de forma assíncrona, num total de 12 horas-aula, integrando as 60 horas do curso.

O Curso presencial é normalmente desenvolvido utilizando como plataforma o microcontrolador Intel 8051, sendo que o laboratório dispõe de 6 kits baseados no 8031 e 4 ferramentas baseadas no AT89S52. Em razão da impossibilidade de uso do laboratório físico, a plataforma de desenvolvimento deste curso foi alterada para o microcontrolador Atmega328P, sendo que as atividades práticas serão desenvolvidas por simulação utilizando o AVR Studio 4 (baixo peso computacional comparado ao Atmel Studio 7 - não exigindo do discente um PC com alta capacidade de processamento) e o SIMULIDE. Com esta alteração, o discente pode desenvolver as atividades práticas em um kit Arduino Uno R3 (kit de baixo custo), caso tenha interesse em adquiri-lo como ferramenta adicional, não sendo tal aquisição obrigatória para o desenvolvimento do curso.

Atividades Síncronas Teóricas

Ordem Data  
1 12/07/2021 Apresentação do Curso, critério de avaliação e bibliografia. Conceituação: microprocessadores e microcontroladores, Sistema de computador (cpu, memória, periféricos), Linguagem "assembly" e de máquina. Estrutura interna da CPU, registradores e ULA , flags; instruções de soma, exemplo de aplicação: pequeno programa para soma de 2 bytes.
2 19/07/2021 Revisão de aritmética binária e operações básicas. Instruções de soma, subtração e flags relacionados; Operações de soma/subtração em 1, 2 ou mais bytes; Tradução do código assembly para o código de máquina (montagem); Exemplos de aplicação - programas para soma/subtração de operandos previamente armazenados na memória;
3 26/07/2021 Estrutura de repetição, ponteiros e operações aritméticas com vetores; introdução à representação de números com sinal; instruções de movimento e seus vários modos de endereçamento: registrador, direto, indireto, imediato, indexado;
4 02/08/2021 Desvios no fluxo de processamento, comparação e ordenação de vetores; Desvios curtos e longos, condicionais e incondicionais; Instruções de comparação; Exemplo de aplicação: ordenação crescente (sem sinal) de um vetor; Montagem de programas com desvios no fluxo de processamento;
5 09/08/2021 Algoritmo de multiplicação, instruções de rotação, multiplicação de operandos de 1, 2 ou mais bytes; Conceito de pilha; Instruções de manipulação da pilha; Chamada e retorno de subrotinas;
6 16/08/2021 Instruções lógicas, algoritmo de divisão, implementação do algoritmo de divisão para operandos de 2 bytes.
7 23/08/2021  Aritmética BCD, "axiliary carry" e algoritmos de transformação de base binário-BCD e vice-versa.
8 30/08/2021 Portas de entrada e saída - Configuração e aplicações 
9 13/09/2021 Cálculo do tempo de execução de programas - Acesso à memória não volátil.
10 20/09/2021 Timers - conceito, formas de operação e programação. PWM e Captura de Sinais
11 27/09/2021 Interrupção de hardware, conceito e aplicação. Vetores de interrupção, prioridade e mascaramento. Instalação de uma subrotina de atendimento à interrupção de hardware.
12 30/09/2021 Protocolos de Comunicação Serial Síncronos e Assíncronos
13 04/10/2021 Entrada e Saída Programada e Via Interrupção
14 18/10/2021 Conversores A/D e D/A, circuitos básicos de conversão e interface com o sistema de computador
15 25/10/2021 Aplicações de aquisição dados.

Aulas Síncronas Práticas

Ordem Data Conteúdo
1 14/07/2021 Apresentação das ferramentas de simulação e execução de um pequeno código de soma.
2 21/07/2021 Linguagem assembly e linguagem de máquina, carga e execução de programas. Implementação de programas para soma/subtração com operandos de 1, 2 ou mais bytes (carry/borrow). Montagem manual de programas (compilação). Alocação de programas e dados.
3 28/07/2021 Montagem e execução de programas com ponteiros e estruturas de repetição. Implementação de programas para soma/subtração de vetores. Montagem manual de programas incluindo estruturas de repetição. Execução e verificação de programas para operações com vetores.
4 04/08/2021 Montagem e execução de programas envolvendo comparação. Execução e verificação prática dos programas para operações com vetores e ordenação.
5 11/08/2021 Implementação de programas para multiplicação sem sinal. Execução e verificação prática dos programas de multiplicação.
6 18/08/2021  Implementação do algoritmo de Divisão
7 25/08/2021 Aritmética BCD e transformação de base. Implementação e execução de programas com entrada e saída em BCD
8 01/09/2021 Conexão de portas E/S a outros circuitos. Aspectos de conexão elétrica das portas digitais segundo a direção de dados.  Isolamento galvânico. Exemplo de aplicação: acionamento liga/desliga de uma carga elétrica.
  08/09/2021 Reposição de aula de terça
9 15/09/2021 Tempo de execução de programas. Implementação de subrotinas de atraso de tempo por loop de instrução. Geração de sinais numa porta digital sincronizado por loop de instrução.
10 22/09/2021 Aplicações com Timers. Geração de sinais PWM
11 29/09/2021 Aplicações com interrupção de hardware. Instalação de serviços de interrupção
12 06/10/2021 Implementação de códigos para comunicação serial
13 13/10/2021 Geração de sinais analógicos via PWM
14 20/10/2021 Conversão D/A via conversor escada R-2R
15 27/10/2021 Aquisição de sinais analógicos.
16 03/11/2021 Solução de dúvidas 

 

AVALIAÇÃO

Todas as tarefas serão propostas para os discentes e recebidas destes via Moodle-UFU. Os materiais de apoio, como documentos e apresentações em pdf, links de vídeos no Youtube, etc, serão distribuídos também via Moodle.
As tarefas devem ser postadas pelos discentes na plataforma até o último dia especificado na proposição desta no Moodle. Havendo qualquer problema para a execução da atividade, ou postagem desta, o discente deve fazer o registro do problema via email designado pelo professor ou via mensagens no Moodle.

Distribuição de pontos conforme a atividade:

Atividade  Valor (pontos) Descrição
Tarefa 1 20  Responder ao questionário distribuído via Moodle sobre arquitetura AVR, modos de endereçamento, operações aritméticas de soma e subtração, unidade lógica e aritmética, flags.
Tarefa 2 20 Responder ao questionário distribuído via Moodle sobre operações aritméticas de multiplicação e divisão, comparação, ordenação, operações BCD, estrutura de repetição e ponteiros.
Tarefa 3 20 Responder ao questionário distribuído via Moodle sobre portas de entrada e saída, interrupção, timers e tempo de execução de programas.
Tarefa 4 20 Responder ao questionário distribuído via Moodle sobre geração de sinais PWM, aquisição de dados e interface de comunicação
Tarefa 5 20  Elaborar o código e simulação de uma aplicação definida via Moodle,  envolvendo timers, interrupção, ADC e comunicação serial. 
Total 100  

BIBLIOGRAFIA

Básica

Some Assembly Required - Assembly Language Programming with the AVR Microcontroller Timothy S. Margush
CRC Press
ISBN: 978-1-4398-9700-3

Make: AVR Programming Elliot Williams
Maker Media, Inc.
ISBN: 978-1-449-35578-4

Datasheet ATmega48A/PA/88A/PA/168A/PA/328/P
https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf

Complementar

AVR Instruction Set Manual - hp://atmel-studio-doc.s3-website-us-east-1.amazonaws.com/webhelp/GUID-0B644D8F-67E7-49E6-82C9-1B2B9ABE6A0D-en-US-1/index.html

Beginners Introduction to the Assembly Language of ATMEL-AVR-Microprocessors by Gerhard Schmidt - hp://www.avr-asmtutorial.net

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Ernane Antonio Alves Coelho, Professor(a) do Magistério Superior, em 20/07/2021, às 14:32, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 2873747 e o código CRC A35F4270.




Referência: Processo nº 23117.039263/2021-30 SEI nº 2873747