|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
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; |
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), o Integrated Development Environment do Arduino 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 | Conteúdo |
1 | 29/11/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 | 06/12/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 | 13/12/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 | 20/12/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 | 10/01/2022 | 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 sub-rotinas; |
6 | 17/01/2022 | Instruções lógicas, algoritmo de divisão, implementação do algoritmo de divisão para operandos de 2 bytes. |
7 | 24/01/2022 | Aritmética BCD, "axiliary carry" e algoritmos de transformação de base binário-BCD e vice-versa. |
8 | 31/01/2022 | Portas de entrada e saída - Configuração e aplicações |
9 | 07/02/2022 | Cálculo do tempo de execução de programas - Acesso à memória não volátil. |
10 | 14/02/2022 | Timers - conceito, formas de operação e programação. PWM e Captura de Sinais |
11 | 21/02/2022 | Interrupção de hardware, conceito e aplicação. Vetores de interrupção, prioridade e mascaramento. Instalação de uma sub-rotina de atendimento à interrupção de hardware. |
12 | 07/03/2022 | Protocolos de Comunicação Serial Síncronos e Assíncronos |
13 | 14/03/2022 | Entrada e Saída Programada e Via Interrupção |
14 | 21/03/2022 | Conversores A/D e D/A, circuitos básicos de conversão e interface com o sistema de computador |
15 | 28/03/2022 | Aplicações de aquisição dados. |
Atividades Síncronas Práticas (apresentação de simulações computacionais e acompanhamento de simulações realizadas pelos discentes)
Ordem | Data | Conteúdo |
1 | 01/12/2021 | Apresentação das ferramentas de simulação e execução de um pequeno código de soma. |
2 | 08/12/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 | 15/12/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 | 22/12/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 | 05/01/2022 | Revisão sobre estrutura de repetição, modos de endereçamento e operações com ponteiros. |
6 | 12/01/2022 | Implementação de programas para multiplicação sem sinal. Execução e verificação prática dos programas de multiplicação. |
7 | 19/01/2022 | Implementação do algoritmo de Divisão |
8 | 26/01/2022 | Aritmética BCD e transformação de base. Implementação e execução de programas com entrada e saída em BCD |
9 | 02/02/2022 | 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. |
10 | 09/02/2022 | Tempo de execução de programas. Implementação de sub-rotinas de atraso de tempo por loop de instrução. Geração de sinais numa porta digital sincronizado por loop de instrução. |
11 | 16/02/2022 | Aplicações com Timers. Geração de sinais PWM |
12 | 23/02/2022 | Aplicações com interrupção de hardware. Instalação de serviços de interrupção |
13 | 09/03/2022 | Implementação de códigos para comunicação serial |
14 | 16/03/2022 | Geração de sinais analógicos via PWM |
15 | 23/01/2022 | Conversão D/A via conversor escada R-2R |
16 | 30/01/2022 | Aquisição de sinais analógicos. |
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: _________________________
Documento assinado eletronicamente por Ernane Antonio Alves Coelho, Professor(a) do Magistério Superior, em 13/11/2021, às 10:24, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
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 3159425 e o código CRC D2972BF9. |
Referência: Processo nº 23117.071223/2021-82 | SEI nº 3159425 |