Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Professor(es) Orientador(es):
Larry
Introdução ................................................................................................................. 08
1 – Fundamentação Teórica...................................................................................... 09
1.1 – Microcontrolador ............................................................................................... 09
1.2 – O Microcontrolador 8051 introduzida pela Intel ................................................ 11
1.2.1 – Análise externa do Microcontrolador 8051 .......................................... 12
1.3 – Programação do Microcontrolador ................................................................... 14
1.4 – Circuito Integrado - CI ...................................................................................... 14
1.4.1 – Familias lógicas dos circuitos integrados ............................................. 14
1.4.2 – Familia Lógica TTL ............................................................................... 15
1.4.3 – Circuitos integrados TTL ...................................................................... 16
1.5 – Portas Lógicas ................................................................................................. 17
1.5.1 – Porta Lógica Inversora (NOT)............................................................... 18
1.5.2 – Porta Lógica AND ................................................................................. 18
1.5.3 – Porta Lógica OR ................................................................................... 19
1.5.4 – Porta Lógica NAND .............................................................................. 19
1.5.5 – Porta Lógica NOR ................................................................................ 20
1.6 – Circuitos Integrados TTL e suas Portas Lógicas .............................................. 20
1.6.1 – CI 7400 ............................................................................................... 20
1.6.2 – CI 7402 ............................................................................................... 21
1.6.3 – CI 7408 ............................................................................................... 21
1.6.4 – CI 7432 ............................................................................................... 22
1.7 – Dispositivos Periféricos .................................................................................... 22
1.7.1 – Teclado Matricial 4x4 ............................................................................ 23
1.7.2 – Display LCD 16x2 ................................................................................. 24
1.7.3 – Soquete ZIF .......................................................................................... 25
Introdução
Tema e delimitação.
Inicialmente o projeto foi desenvolvido para uso em laboratórios de escolas
técnicas, para uso didático na verificação de componentes eletrônicos, indicando em
um display de fácil visualização se o componente está funcionando ou com defeito.
Objetivos Gerais
Objetivos Específicos
Justificativa
Metodologia
Neste projeto, usamos ferramentas que vimos decorrentes ao nosso curso
técnico de eletrônica, usando analises e maneiras mais viáveis para o
desenvolvimento do mesmo. Foi feito estudo do microcontrolador 8051 e CI’s da
família TTL, e suas especificações. Após a análise dos dispositivos necessários, foi
projetado a placa de circuito impresso, utilizando para a sua programação o software
Jfe. Após o desenvolvimento do projeto de circuito impresso, iniciou-se o processo
de fabricação e montagem da placa e consequentemente a programação em
linguagem C, pôde ser realizada e testada.
1 – Fundamentação Teórica
1.1 – Microcontrolador
As características citadas acima são básicas e formam o núcleo da família 8051, que
pode ser acrescido de uma ou mais das características especiais mostradas na
figura 3.
maneira projetadas que todas eram compatíveis entre si. Estas séries de circuitos
integrados formaram então as Famílias Lógicas, a partir das quais os projetistas
tiveram facilidade em encontrar todos os blocos para montar seus sistemas digitais.
As famílias lógicas diferem basicamente pelo componente principal utilizado
por cada uma em seus circuitos. As famílias TTL (Transistor-Transistor Logic) usa
transistor bipolar como seu principal componente, enquanto a família CMOS usam
os transistores unipolares MOSFET (transistor de efeito de campo construído
segundo a técnica MOS - Metal Oxide Semicondutor) como seu elemento principal
de circuito. Atualmente a Família TTL e a CMOS são as mais usadas, sendo
empregadas em uma grande quantidade de equipamentos digitais e também nos
computadores e periféricos. Dessa forma, essas serão as famílias abordadas.
No caso do circuito integrado acima, podemos verificar que a sua alimentação é feita
através do pino 14: +Vcc e do pino 7: terra ou GND (ground).
1.6.1 - CI 7400
O circuito TTL 7400 é um dispositivo TTL que contém quatro portas NAND de duas
entradas cada. As portas apresentam funcionamento independente. É encapsulado
em um invólucro DIP de 14 pinos. O consumo médio por circuito integrado é da
ordem de 12mA.
1.6.2 – CI 7402
O circuito TTL 7402 é um dispositivo TTL que possui quatro portas lógicas NOR de
duas entradas cada porta. O consumo é de 12mA e o invólucro é DIL.
1.6.3- CI 7408
O circuito lógico TTL 7408 é um dispositivo TTL que possui quatro portas
lógicas AND de duas entradas cada porta. Ele é usado, principalmente, em circuitos
eletrônicos lógicos. O princípio de funcionamento dele é de uma porta lógica AND,
que por sua vez, é uma operação lógica em dois operados que resulta em um valor
lógico verdadeiro se e somente se todos os operados tem um valor verdadeiro.
1.6.4 – CI 7432
O circuito lógico TTL 7432 é um dispositivo TTL que possui quatro portas
lógicas OR de duas entradas cada porta. É um dispositivo encapsulado em um
invólucro de 14 pinos.
Esse teclado tem suas teclas ligadas por linhas e colunas. Quando uma tecla
é pressionada o barramento daquele botão faz ligação com o barramento da coluna
do mesmo. De acordo com a Figura 18:
2 – Planejamento do Projeto
Previsão de Custos
1 Teclado R$ 20,00
1 Soquete R$ 2,00
1 Trimpot R$ 2,00
1 Diodo R$ 1,00
3 Resistor R$ 1,50
1 Led R$ 1,00
1 Cristal R$ 1,50
4 Capacitor R$ 6,00
Parte Lógica:
FLUXOGRAMA DO PROCESSO
INICIO
LCD INI
DIGITAR CÓDIGO
NO L.C.D.
AGUARDANDO N
CÓDIGO
CÓDIGO S CI 7400
00
CÓDIGO INVÁLIDO
29
INICIO
COLOCAR 0 E 0
NAS ENTRADAS
SAÍDA
=1
COLOCAR 0 E 1
NAS ENTRADAS
SAÍDA
=1
COLOCAR 1 E 0
NAS ENTRADAS
SAÍDA
=1
COLOCAR 1 E 1
NAS ENTRADAS
SAÍDA
=0
C.I. OK
C.I. DEFEITO
30
INICIO
COLOCAR 0 E 0
NAS ENTRADAS
SAÍDA
=1
COLOCAR 0 E 1
NAS ENTRADAS
SAÍDA
=0
COLOCAR 1 E 0
NAS ENTRADAS
SAÍDA
=0
COLOCAR 1 E 1
NAS ENTRADAS
SAÍDA
=0
C.I. OK
C.I. DEFEITO
31
INICIO
COLOCAR Ø E Ø
NAS ENTRADAS
COLOCAR 0 E 1
SAÍDA S NAS ENTRADAS
=Ø
IN
SAÍDA S
=Ø
COLOCAR 1 E Ø
NAS ENTRADAS
SAÍDA S
=Ø
N
COLOCAR 1 E 1
NAS ENTRADAS
SAÍDA
=1
N C.I. OK
C.I. DEFEITO
32
FLUXOGRAMA CI OR 7432
INICIO
COLOCAR Ø E Ø
NAS ENTRADAS
COLOCAR 0 E 1
SAÍDA NAS ENTRADAS
=Ø
SAÍDA
=1
COLOCAR 1 E 0
NAS ENTRADAS
SAÍDA
=1
COLOCAR 1 E 1
NAS ENTRADAS
SAÍDA
=1
C.I. OK
C.I. DEFEITO
33
Croqui
3 – Desenvolvimento do Projeto
Iniciamos a soldagem das trilhas usando fio de cobre por ser placa padrão,
assim no momento não foi preciso ser feito o circuito impresso, como mostra a figura
24.
Projeto concluído
4 – Resultados Obtidos
Conclusão
Referências
APÊNDICE A
/*
GIGA DE TESTE 4º DN
*/
#include <at89x52.h>
#include <atraso.h>
#include <lcd4.h>
#include <TEC4x4M.H>
// MENSAGENS NO LCD
void CI7432();
void CI7408();
void CI7400();
void CI7402();
43
// FUNÇÃO PRINCIPAL
void main()
{
LEDS=0X00;
BZ=1;
lcd_ini();
while(1)
{
lcd_cmd(0x80);
lcd_str(DIGITE);
lcd_cmd(0xC0);
lcd_str(CODIGO);
tecla1=teclado();
while (tecla1==0xff) tecla1=teclado();
lcd_char (tecla1+0x30);
tecla2=teclado();
while (tecla2==0xff) tecla2=teclado();
lcd_char (tecla2+0x30);
codigo = ((tecla1<<4)|tecla2);
switch (codigo)
{
case 0x08:
CI7408();
break;
case 0x32:
CI7432();
break;
case 0x00:
CI7400();
break;
case 0x02:
CI7402();
break;
default:
lcd_cmd(0x80);
lcd_str(INVALIDO);
lcd_cmd(0xC0);
lcd_str(NOVAMENTE);
atraso_ms(2000);
44
lcd_clear();
break;
}
lcd_clear();
}
}
void CI7432()
{
tecla1=teclado();
while (tecla1==0xff)
{
P0=0x64;
P1=0x20;
if((P0==0x00) & ((P1 & 0XF0)==0x00))
{
P0=0xED;
P1=0x60;
if((P0==0xED) & ((P1 & 0XF0)==0x60))
{
P0=0x76;
P1=0xB0;
if((P0==0x76) & ((P1 & 0XF0)==0xB0))
{
P0=0xff;
P1=0xf0;
if((P0==0xff) & ((P1 & 0XF0)==0xf0))
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(OK); // escreve mensagem na linha 1
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
45
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
tecla1=teclado();
}
}
void CI7408()
{
tecla1=teclado();
while (tecla1==0xff)
{
P0=0x64;
P1=0x20;
if((P0==0x00) & ((P1 & 0XF0)==0x00))
{
P0=0xED;
P1=0x60;
if((P0==0x89) & ((P1 & 0XF0)==0x40))
{
P0=0x76;
P1=0xB0;
if((P0==0x12) & ((P1 & 0XF0)==0x90))
{
P0=0xff;
P1=0xf0;
if((P0==0xff) & ((P1 & 0XF0)==0xf0))
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(OK); // escreve mensagem na linha 1
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
46
void CI7400()
{
tecla1=teclado();
while (tecla1==0xff)
{
P0=0x64;
P1=0x20;
if((P0==0x64) & ((P1 & 0XF0)==0x20))
{
P0=0xED;
P1=0x60;
if((P0==0xED) & ((P1 & 0XF0)==0x60))
{
P0=0x76;
P1=0xB0;
if((P0==0x76) & ((P1 & 0XF0)==0xB0))
{
P0=0x9B;
P1=0xD0;
if((P0==0x9B) & ((P1 & 0XF0)==0xD0))
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(OK); // escreve mensagem na linha 1
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
47
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(DEFEITO); // escreve mensagem na linha 1
}
tecla1=teclado();
}
}
void CI7402()
{
tecla1=teclado();
while (tecla1==0xff)
{
P0=0x09;
P1=0x90;
if((P0==0x09) & ((P1 & 0XF0)==0x90))
{
P0=0x5B;
P1=0xB0;
if((P0==0x52) & ((P1 & 0XF0)==0x20))
{
P0=0xAD;
P1=0xD0;
if((P0==0xA4) & ((P1 & 0XF0)==0x40))
{
P0=0xFF;
P1=0xF0;
if((P0==0xF6) & ((P1 & 0XF0)==0x60))
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str(OK); // escreve mensagem na linha 1
}
else
{
lcd_cmd(0x80); // posiciona o cursor primeira linha
lcd_str (DEFEITO); // escreve mensagem na linha 1
}
}
else
{
48