UNIBRATEC

UNIBRATEC
Desenvolvimento em Hardware (DHD): 120h
email
:
unibratec@fredbf.com


1. PLANEJAMENTO
 
Competência
Professor
C.H.
C1. Aplicar os conceitos de sistemas de numeração e lógica digital na resolução de problemas de desenvolvimento em hardware
Fechine
40h
C2. Montar circuitos lógicos digitais de interface com microcomputadores e microcontroladores
C3. Conhecer uma linguagem de programação adequada ao desenvolvimento em HW (ANSI C)
Fred
44h
C4. Desenvolver programas de acesso e controle do HW de microcomputadores PC-compatíveis
26h
C5. Conhecer o processo de desenvolvimento de programas para microcontroladores
10h


2. ANDAMENTO DA DISCIPLINA
 
Aula 1
09/02
Apresentação da disciplina e do mini-projeto inicial (orCut)
Aula 2
11/02
Introdução: histórico e introdução ao ANSI C
(1) Ler Aula1 e Aula2 do material da UFMG
(2) Fazer Lista de Exercícios 1
Aula 3
12/02
Estilo de Programação + orCut (interface) + Exercícios no DevC++
(1) Ler "Orientação para escrita de programas" (seção bibliografia)
(2) Fazer Exercícios-Desafio1
(3) Leitura complementar: seção 1.1 do material do Prof. Ulysses
(4) Atenção: (a) a entrega da interface do orCut é obrigatória e será na Aula6; (b) a entrega do Exercício-Desafio 1 será no mesmo dia, porém, vale apenas participação, não sendo obrigatória
OBS: o conteúdo da Aula 2 será terminado nessa aula (slide 15 ao fim)
Aula 4
16/02
Variáveis, Constantes, Operadores e Expressões
(1) Ler Aula3 do material da UFMG
(2) Fazer Lista de Exercícios 2
(3) Leitura Complementar: seções 1.2 a 1.4 do Material da UFPB
(4) Exercícios Complementares: 1 ao 11 do cap1.pdf (UFPB)
Aula 5
18/02
Resolução de Exercícios
(1) Aula para resolução de exerícios e dúvidas + final da Aula 4
Av 3.1
19/02
Avaliação até o assunto da aula 5 + orCut (interface)
(1) Atenção: caso você tenha perdido essa primeira avaliação, você não poderá mais faltar as avaliações Av 3.2 e 3.3
(2) Data das reposições da Av1 || Av2 || Av3: 1 dia depois de realizarmos a Av3.3
Aula 6
25/02
Estruturas de Controle de Fluxo
(1) Ler Aula4 do material da UFMG
(2) Problema de leitura da entrada padrão (clique aqui)
(3) Correção da prova

(4) Leitura Complementar: seção 1.5 do Material da UFPB
(5) Fazer Lista de Exercícios 3
Aula 7
26/02
Vetores, Matrizes e Strings
(1) Ler Aula5 do material da UFMG
(2) Leitura Complementar: seções 3.1, 3.6.1, 3.6.2 e 3.7 do material da UFPB
(3) Fazer Lista de Exercícios 4
(4) Começar a fazer Exercício-Desafio2
Aula 7
03/03
Vetores, Matrizes e Strings
(1) Slide 6 até o fim
(2) Atenção: próxima quinta, eu darei aula no lugar de Fechine
Aula 8
04/03
Funções, constantes e macros
(1) Finalizando a aula7
(2) Ler Aula7 do material da UFMG

(3) Leitura Complementar: seções 2.2 e 2.7.1 do material da UFPB
(4) Fazer Lista de Exercícios 5
(5) Lembrando que agora você já possui o conhecimento pra fazer Exercício-Desafio2
(6) Só registrando que teremos aula de exercícios na próxima quinta (13/09), no horário do professor Fechine
Aula 9
10/03
Tipos de Dados Definidos pelo Usuário
(1) Terminando Aula8, faltava macros
(2) Ler Aula11 do material da UFMG

(3) Leitura Complementar: seções 4.1 do material da UFPB
(4) Fazer Lista de Exercícios 6
Aula 10
11/03
Definição do orCut (implementação)

Obs.: Terminaremos a aula 9 (os dois úlimos slides) na aula de fechine, próxima quinta. A turma usará essa aula para tirar dúvidas do projeto também. A prova ficou definitivamente marcada para próxima terça.

1. Copie o código fonte do projeto (orCut_Parte2.zip)
    (a) Descompacte os arquivos numa pasta qualquer
    (b) Abra o projeto: orCut.dev (DevC++) ou crie um projeto no TurboC++ e adicione os arquivos manualmente

2. Estruturação do Projeto - cada conceito foi implementador em dois arquivos: (1) arquivo de cabeçalho (Ex usuario.h), onde você irá encontrar constantes, tipos de dados e protótipos de funções e (2) implementações das funções (usuário.c), que é onde você irá implementar sua função específica. Existe ainda mais dois arquivos: (1) config.h, onde foram colocadas as constantes globais e (2) index.c, que é o arquivo do projeto que contém o main() para ser executado.
    (a) Amigo - amigo.h e amigo.c
    (b) Comunidade - comunidade.h e comunidade.c
    (c) Data - data.h e data.c
    (d) Usuário - usuario.h e usuario.c
    (e) Programa Principal- index.c
    (f) Arquivo de configuração- config.h

3. Delegação de Tarefas: (procure sua função dentro do arquivo de cabeçalho específico)
    (a) Amigo - Antônio Carlos, Ayrton, Carlos, Cristiano e Diego
    (b) Comunidade - Eduardo, Fabiana, George, Jefferson e Josenilton
    (c) Data - Juliana e Rafael
    (d) Usuário - Rejane, Ricardo, Thiago e Thúlio

4. Depois de implementar, faça um teste. Para tanto, execute o projeto e veja as instruções do arquivo index.c

Boa sorte...
Fred
Aula 11
17/03
Resolução de Exercícios
(1) Aula para resolução de exercícios e dúvidas
Av 3.2
18/03
Avaliação até o assunto da aula 11 + orCut (implementação)
Aula 12
24/03
Ponteiros - Parte I
(1) Ler começo da Aula6 do material da UFMG
(2) Leitura Complementar: seções 2.1 do material da UFPB
(3) Resolução da Avaliação 2
(4) Usamos mais essa quinta, pois Fechine estava viajando
Aula 13
25/03
Ponteiros - Parte II
Obs: não teve aula
Aula 13
31/03
Ponteiros - Parte II
(1) Ler Aula6 do material da UFMG
(2) Leitura Complementar: seções 3.2 e 3.4 do material da UFPB
Aula 14
01/04
Arquivos
(1) Ler Aula9 do material da UFMG
(2) Leitura Complementar: capítulo 5 do material da UFPB
Aula 14
07/04
Arquivos: continuação
Aula 14
08/04
Arquivos: continuação
Aula 15
14/04
Tipos de Dados Avançados
(1) Ler Aula10 do material da UFMG
(2) Leitura Complementar: seções 2.4.4, 2.4.5, 3.10 e 4.2 do material da UFPB
(3) Aplicação exemplo para leitura e escrita na porta paralela (Aplicacao1.c) e biblioteca usada para acesso da porta paralela (inpou32.dll)
Aula 16
15/04
Diretivas de Compilação e outros Conceitos
(1) Ler Aula11 (enumeração, união e listas ligadas), Aula6 (ponteiros para ponteiros e argumentos para a função main) e Aula8 (diretivas de compilação) do material da UFMG
(2) Lembrando: fazer orCut (persistência de dados), para entregar no dia da Av3.3. Abra o último slide, e veja o que deve ser implementado
Av 3.3
22/04
Avaliação até o assunto da aula 16 + orCut (persistência)
REP 3.X
26/04
Reposição de Av1, Av2 e Av3 + orCut via web (apresentação do professor)
(1) Common Gateway Interface (CGI): uma forma padrão de comunicação entre processos. Para uma breve introdução ao CGI, clique aqui. Veja o código fonte de um programa simples em CGI (testeCGI.c).
(2) Servidor Apache 2.2.3, gratuito, e que executa CGI - download. Depois de fazer o download, instale em uma pasta qualquer (<DIR>). Em seguida, abra o navegador e digite o endereço: http://localhost/. Acrescente arquivos HTML na pasta <DIR>\htdocs\ ou programas CGI na pasta <DIR>\cgi-bin
(3) Exemplo de uma página HTML, de nome formSimples.htm, mandando informação para um CGI de nome testeCGI_pegandoForm.c. Pegue a biblioteca (form.c), que contém funções para pegar os pares nome-valor, de cada elemento do form.
Aula 17
28/04
Revisão de C para Hardware
(1) Conteúdo: operadores & e |
(2) Ler seção 2.1 do material da Universidade Católica de Petrópolis
(3) Lista de Exercícios de HW: operadores bit-a-bit e porta paralela
Aula 17
29/04
Revisão de C para Hardware
(1) Conteúdo: exercícios de operadores & e |
Aula 17
05/05
Revisão de C para Hardware
(1) Conteúdo: operadores ^ e >>
(2) Ler seção 2.1 do material da Universidade Católica de Petrópolis
Aula 17
06/05
Revisão de C para Hardware
(1) Conteúdo: exercícios de operadores ^ e >>
Aula 17
12/05
Revisão de C para Hardware
(1) Conteúdo: exercícios de operadores << e ~
Aula 17
13/05
Revisão de C para Hardware
(1) Conteúdo: exercícios gerais de operadores bit-a-bit
Aula 17
19/05
Apresentação inicial da inpout.dll
(1) Biblioteca para controle da porta paralela: inpout.dll
(2) Programa exemplo para acessar a porta paralela: Aplicacao1.c
(3) Exercícios de implementação. Implemente as funções abaixo:
    (a) void piscarLeds(long intervalo); // piscar os LEDs pares e ímpares alternadamente
    (b) void piscarIndo(long intervalo); // piscar um LED por vez, do 1 ao 8
    (c) void piscarIndoVoltando(long intervalo); // piscar um LED por vez, do 1-8, depois 8-1
    (d) void piscarIndoParVoltandoImpar(long intervalo);
    (e) void minhocaTamanhoDoisIndo(long intervalo);
(4) OBS: executamos a aula passada
Aula 18
20/05
Porta Paralela: Introdução
(1) Conteúdo: objetivos iniciais, conector DB25, endereços e exercícios
(2) Ler: artigo sobre porta paralela do rogercom.com e Parte 4 do material da Universidade Católica de Petrópolis (olhar na seção bibliografia abaixo)
Aula 19
26/05
Projeto Tranca Eletrônica
(1) Conteúdo: aplicativo para controlar o acesso de uma fechadura digital, através da porta paralela tranca.c
Aula 19
27/05
Projeto Tranca Eletrônica (continuação)
Aula 20
02/06
Motor de Passo
(1) Conteúdo: estados, modos de operação, velocidade, direção e precisão
Aula 20
03/06
Exercícios finais
Av 4
09/06
Avaliação sobre programas de acesso à porta paralela
Rep Av 4
10/06
Reposição da avaliação sobre programas de acesso à porta paralela
Rev
16/06
Revisão Final
(1) Conteúdo: aula destinada a realização de exercícios
Final
17/06
Final das competências C3 e C4

 

3. BIBLIOGRAFIA
 

4. LISTAS DE EXERCÍCIOS
 

5. EXERCÍCIOS-DESAFIO
 

6. PROJETOS
 

7. COMPILADORES
 
  • DevC++ - compilador C/C++, versão 4.9.9.2, gratuito (9MB)
  • TurboC++ - compilador C/C++ antigo, versão 1.0.1, mas com help completo (3MB)

8. APRESENTAÇÕES E EXERCÍCIOS DO PROF. FECHINE
 
Competência 1

(1) Sistemas de Numeração - Cap1.pdf
(2) Revisão de Eletricidade - Cap2.pdf
(3) Sinais Analógicos e Sinais Digitais - Cap3.pdf
(4) O Transistor, o Circuito Integrado e as Famílias e Portas Lógicas - Cap4.pdf
(5) Circuitos Combinacionais - Cap5.pdf
    - Lista de Exercícios do Cap 1 ao 5 - Lista1.pdf


9. AVALIAÇÕES
 
LEGENDA:
 
=
Bom rendimento, continue assim
 
=
Rendimento satisfatório
 
=
Precisa melhorar
 
?
=
Entregue, mas não corrigido
 
-
=
Não realizado ou não entregue


Competência C3
Alunos
Av 3.1
Av 3.2
Av 3.3
 
orCut
Conc. Final
Conc.
Rep.
Conc.
Rep.
Conc.
Rep.
   
Conc.
Conc.
                   


Competência C4
Alunos
Av 4
Conc.
Final