EEL7030 – Microprocessadores
Semestre 2022/2
Cursos: Engenharia Eletrônica, Engenharia Elétrica, Engenharia de Produção Elétrica
Número de créditos: 4
Professor: Eduardo Augusto Bezerra
Pré-requisito: EEL5105 – Circuitos e Técnicas Digitais
Horários das aulas
- Turma 4202A (Lab.) Seg 13:30-15:10 – Prof. Eduardo Bezerra
- Turma 4202B (Lab.) Qua 08:20-10:00 – Prof. Raimes Moraes
- Turma 4202C (Lab.) Qua 10:10-11:50 – Prof. Gabriel Bolacell
- Turma 4235A (Lab.) Ter 13:30-15:10 – Prof. Gabriel Bolacell
- Turma 4235B (Lab.) Qua 16:20-18:00 – Prof. Gabriel Bolacell
- Turma 10213 (Lab.) Qua 08:20-10:00 – Prof. Raimes Moraes
- Turmas 4235AB (Teoria) Seg 15:10-16:50 – Prof. Eduardo Bezerra
- Turmas 4202ABC/10213 (Teoria) Ter 08:20-10:00 – Prof. Raimes Moraes
Ementa
Arquiteturas de microprocessadores; programação de microprocessadores: tipo e formatos de instruções, modos de endereçamento; linguagens Assembly ou C; memória; entrada/saída; dispositivos periféricos; interrupção; acesso direto a memória; barramentos padrões; ferramentas para análise, desenvolvimento e depuração; projetos.
Objetivos
Abordar conceitos teóricos e ferramentas de programação que habilitem o profissional a analisar e desenvolver sistemas microcontrolados
Objetivos Específicos:
- Na teoria: explorar a arquitetura e a programação de microprocessadores e microcontroladores, com ênfase em conceitos que independem da inovação tecnológica;
- No laboratório: realizar atividades para a utilização e fixação dos conhecimentos teóricos, compreendendo o emprego de aplicativos para programar microcontroladores, bem como, depurar e simular a execução do código.
Metodologia
• Aulas expositivas sobre a teoria;
• Aulas práticas nas quais exemplos são apresentados e os discentes são motivados a resolver exercícios propostos sob a supervisão do professor;
• Estudo individual para fixação do conteúdo abordado nas aulas expositivas;
• Trabalho individual ou em grupo nos quais os acadêmicos devem resolver exercícios propostos nos roteiros de laboratório.
• Ao final de algumas aulas de laboratório, os alunos realizarão testes por meio da plataforma Moodle para que o professor e alunos possam avaliar o aprendizado.
Avaliação
MF = (MT + ML) / 2
Onde:
MF = Média final
MT = Média da Teoria = ( 0,4 * (T1 + T2) + 0, 2 * MINITESTES);
T1 = Prova teórica 1
T2 = Prova teórica 2
ML = Média do Laboratório = (L1 + L2) / 2
L1 = Prova de laboratório 1
L2 = Prova de laboratório 2
MINITESTES = Média das notas dos Minitestes realizados nas aulas de laboratório (com conteúdo da teoria e laboratório)
Condições para a aprovação: [frequência >= 75%] e [MF >= 6,0].
A média final (MF) é a média aritmética da nota das provas de laboratório (ML) com a soma ponderada das notas de provas teóricas e de Minitestes.
A MF será arredondada para o meio ponto mais próximo (meio ponto superior, nos casos das frações 0,25 e 0,75). Os alunos com MF maior ou igual a 6,0 e frequência não inferior a 75% nas aulas serão aprovados.
Método de avaliação:
As avaliações T1, T2, L1, L2 e MINITESTES serão realizadas no horário da aula através do Moodle.
Controle de frequência:
A frequência será contabilizada conforme a presença nas aulas da teoria e laboratório. Em conformidade com decisão do colegiado, não há prova de recuperação nesta disciplina.
Reposição das notas:
– Nos casos previstos no regulamento da graduação (Art. 74) o aluno deverá solicitar à chefia do EEL a reposição da avaliação.
Monitoria
Horários de atendimento do monitor Dimas Lasmar Ribeiro:
LABSDG – Terça-feira, 10:10-12:10
LABSDG – Quarta-feira, 13:30-16:00
LABSDG – Quinta-feira, 08:00-10:00 e 18:00-19:00
LABSDG – Sexta-feira, 13:30-18:00
Email: dim.ufsc@gmail.com
Horários de atendimento do monitor Ramiro Gurgel Neto:
LABSDG – Segunda-feira, 13:30-15:30
LABSDG – Terça-feira, 13:30-17:30
LABSDG – Quinta-feira, 13:30-17:30
LABSDG – Sexta-feira, 10:10-12:10
Email: gurgelramiro@gmail.com
O monitor Gabriel Goulart Muller irá realizar atendimentos também de forma remota visando flexibilizar dias/horários. Horários preferências do Gabriel:
Segunda-feira: 17:00-20:00
Terça-feira: 17:00-20:00
Quarta-feira: 18:00-20:00
Quinta-feira: 16:00-20:00
Email: ggoulartm@gmail.com
Legislação
https://prograd.ufsc.br/files/2012/11/Resolu%C3%A7%C3%A3oNormativa-17CUn97_atualizada-em-2018_04_03.pdf
Referências
BIBLIOGRAFIA BÁSICA
Moraes R (2020), “Introdução aos Microcontroladores: 8051”, apostila. (Disponível no Moodle)
BIBLIOGRAFIA COMPLEMENTAR
Microcontrolador 8051:
Zelenovsky R, Mendonça A (2005), “Microcontroladores: Programação e Projeto com a Família 8051″. MZ Editora, Rio de Janeiro-RJ. (Não disponível BU UFSC Florianópolis) Disponível em: https://st3.ning.com/topology/rest/1.0/file/get/2053782944?profile=original
Atmel (2007), “Atmel 8051 Microcontrollers Hardware Manual”. (Não disponível BU UFSC Florianópolis) Disponível em: http://ww1.microchip.com/downloads/en/DeviceDoc/doc4316.pdf
Keil (2020), “Cx51 User´s Guide”, (Não disponível BU UFSC Florianópolis) Disponível em:
http://www.keil.com/support/man/docs/c51/
Microcontrolador ARM Cortex:
Martin T (2009), “The Insider’s Guide To The STM32 ARM Based Microcontrollers” (Não disponível BU UFSC Florianópolis) Disponível em: http://www.emcu.it/InsideCORTEX-1221142709.pdf
STMicroelectronics (2015),“RM0090 Reference manual” (Não disponível BU UFSC Florianópolis) Disponível em: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00071990.pdf
Projeto de placa com 8051
Material para consulta
- Datasheet do 8051 – versão reduzida.
Organização das aulas
Plano de Ensino – EEL7030-2022/2
Aula 1 – Apresentação do plano de ensino. Introdução a evolução dos computadores.
Aula 2 – 8051: Introdução à arquitetura do 8051 e código de máquina.
Aula 3 – 8051: Introdução à arquitetura e linguagem C. Interação com dispositivo externo (display de 7-segmentos).
Aula 4 – 8051: Acesso à memória em linguagem C com ponteiros e interação com dispositivo externo (LCD).
Aula 5 – 8051: Interrupções externas – Parte I.
Aula 6 – 8051: Interrupções externas – Parte II.
Aula 7 – 8051: Modelos de memória e campos opcionais de declaração de função.
Aula 8 – 8051: Temporizadores/contadores.
Aula 9 – 8051: Interface Serial – Parte I.
Aula 10 – 8051: Interface Serial – Parte II.
Aula 11 – 8051: Linguagem C – Structs, funções, in-line.
Aula 12 – Exercícios de revisão para a prova.
Aula 13 – Microcontrolador ARM: introdução
Lab. 1 – Roteiro 1: Ferramentas de desenvolvimento e código de máquina.
Lab. 2 – Roteiro 1: Exercícios – pisca LED.
Lab. 3 – Roteiro 2: Interação com dispositivo externo – display de 7 segmentos.
Lab. 4 – Roteiro 3: Interação com dispositivo externo – LCD.
Lab. 5 – Roteiro 4: Interrupções externas.
Lab. 6 – Correção da prova.
Lab. 7 – Roteiro 5: Temporizadores / Contadores; exercícios.
Lab. 8 – Roteiro 6: Interface serial.
Lab. 9 – Roteiro 7: Exemplos C; Uso de Struct (Estrutura) em C; Link C e Assembly.
Lab. 10 – Roteiro 8: ARM: Ferramentas de desenvolvimento e Portas de I/O.
Material utilizado nas aulas da teoria – semestre 2022/2
Semana | Conteúdo das aulas |
1 |
|
2 |
https://what-when-how.com/8051-microcontroller/io-programming-in-8051-c/
|
3 |
7 6 5 4 3 2 1 0 2FH: 1 0 0 0 1 0 0 0 2EH: 1 0 0 0 1 0 0 0 2DH: 1 0 0 0 1 0 0 0 2CH: 1 0 0 0 1 0 0 0 2BH: 1 0 0 0 1 0 0 0 2AH: 1 0 0 0 1 0 0 0 29H: 1 0 0 0 1 0 0 0 28H: 1 0 0 0 1 0 0 0 27H: 1 0 0 0 1 0 0 0 26H: 1 0 0 0 1 0 0 0 25H: 1 0 0 0 1 0 0 0 24H: 1 0 0 0 1 0 0 0 23H: 1 0 0 0 1 0 0 0 22H: 1 0 0 0 1 0 0 0 21H: 1 0 0 0 1 0 0 0 20H: 1 0 0 0 1 0 0 0
|
4 | Aula 4 do Plano de Ensino. Considerando os slides identificados como Seção 3 no Moodle:
|
5 | Aula 5 do Plano de Ensino. Visando entender os conceitos sobre interrupções externas apresentados nos slides identificados como Seção 4 no Moodle, resolver os exercícios a seguir.
1. Considerando o circuito da figura, escrever um programa em C para o 8051 que permaneça em um laço infinito apresentando uma contagem no display 1 de 7-segmentos. A contagem deve ser crescente, e ao ocorrer uma interrupção externa 0 (INT0, pin P3.2), O valor contigo nas chaves ligadas na parte baixa da porta P1 deve ser lido, e utilizado para reinicializar a contagem. O vídeo a seguir apresenta o funcionamento esperado do programa:
2. No circuito da figura existem dois botões do tipo push-button conectados nos pinos P3.2 e P3.3 visando acionar as interrupções externas 0 e 1 (por borda de descida). Os pinos da porta P2 estão conectados aos 7-segmentos de todos os displays, e também nos 8 pinos de dados do LCD. O pino 0 da porta P0 (P0.0) está conectado no pino EN do LCD, e o pino 1 da porta P0 (P0.1) está conectado no pino RS do LCD. Escrever um programa em C para o 8051 que deverá permanecer em um laço infinito atualizando (refresh) o valor apresentado no display 1 de 7-segmentos, e mantendo os demais displays de 7-segmentos desligados. Quando ocorrer uma interrupção externa 0 (INT0), o valor existente nas 4 chaves deverá ser apresentado no LCD. Quando ocorrer uma interrupção externa 1 (INT1), o valor existente nas 4 chaves deverá ser apresentado no display 1 de 7-segmentos.
3. Considerando o circuito da figura, escrever um programa em C para o 8051 para implementar um cronômetro. O cronômetro deverá utilizar os displays de 7-segmentos do circuito para apresentar os minutos (MM), os segundos (SS), e os centésimos de segundo (CC), iniciando em 00:00:00 até chegar em 59:59:99, quando deverá voltar para 00:00:00. O cronômetro deverá ser iniciado (start) e pausado (pause) utilizando o botão conectado no pino 12 do 8051 (P3.2), que é a entrada da interrupção 0 (INT0), acionada por borda de descida. Inicialmente, o mostrador (displays de 7-seg) deverá apresentar o valor 00:00:00. Ao pressionar o botão INT0, a contagem do evento em questão inicia (ex. início de uma prova de natação). Ao pressionar o botão novamente, a contagem deve ser congelada, possibilitando assim verificar o tempo medido da atividade em questão (ex. nadador mais rápido). Sempre que o botão for pressionado, a contagem deverá continuar do ponto onde havia parado. A interrupção externa 1 (INT1) poderá ser utilizada para zerar o cronômetro, bastando para isso incluir um botão no circuito da figura, e a respectiva rotina de tratamento da interrupção INT1 no programa. O vídeo a seguir apresenta o funcionamento esperado do programa: |
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
struct Pessoa {
unsigned char nome[20];
unsigned char idade;
unsigned int RG;
} aluno, professor;
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|