Centro Estadual de Educação Tecnológica Paula Souza GOVERNO DO ESTADO DE SÃO PAULO Etec “JORGE STREET” TRABALHO DE CONCLUSÃO DO CURSO TÉCNICO EM ELETRÔNICA GIGA PARA TESTE DE CI FAMILIA TTL Luís Marcos Dourado Santos Josias dos Santos Costa Rafael Vinicius da Silva Renato de Souza Silva Sérgio Alves Pedrosa Cleber Ferreira David Almeida Professor(es) Orientador(es): Larry São Caetano do Sul / SP 2014 GIGA PARA TESTE DE CI FAMILIA TTL Trabalho de Conclusão de Curso apresentado como pré-requisito para obtenção do Diploma de Técnico em Eletrônica. São Caetano do Sul / SP 2014 Dedicamos esse Projeto a todas as pessoas que sempre nos deram força e os professores que participaram ativamente para o desenvolvimento do mesmo. AGRADECIMENTOS Agradecemos primeiramente a Deus e a todos aqueles que juntamente ao grupo colaboraram com a execução deste projeto, ao professor Salomão pela orientação na programação, ao nosso orientador professor Larry, professora Alessandra Brito e ao companheiro de sala “Jareo”. RESUMO A monografia apresentada tem como principal objetivo melhorar didaticamente as aulas em laboratórios de cursos técnicos de eletrônica, através do teste de componentes CI 7400, 7402, 7408 e 7432, ambos da família TTL. A viabilidade do projeto está na customização de tempo para verificação do CI. A verificação se consiste em saber se o componente está em condições de uso e se apresenta aparentes defeitos, onde, será reduzido e simplificado o tempo de testes através da proposta de uma placa, com um Microcontrolador 8051, que analisa e mostra o display onde o componente é testado e se esta com defeito ou não. Atualmente em escolas técnicas e cursos em geral são realizados testes manuais com este tipo de componente. Palavras-chave: Aprendizagem, Tempo e Desenvolvimento. LISTA DE FIGURAS Figura 1 – Primeiro Processador da História (4004) 9 Figura 2 – Desenho esquemático de um Microcontrolador 10 Figura 3 - Características especiais da família 8051 11 Figura 4 - Aspecto externo do 8051 12 Figura 5 - Faixas de tensão entrada 15 Figura 6 – Faixas de tensão Saída 16 Figura 7 – C.I dual in line (DIP) 17 Figura 8 – Símbolo gráfico e tabela verdade da porta Inversora (NOT) 18 Figura 9 – Símbolo gráfico e tabela verdade da porta AND 18 Figura 10 – Símbolo gráfico e tabela verdade da porta OR 19 Figura 11 – Símbolo gráfico e tabela verdade da porta NAND 19 Figura 12 – Símbolo gráfico e tabela verdade da porta NOR 20 Figura 13 - esquema do CI 7400 20 Figura 14 - esquema do CI 7402 21 Figura 15 - esquema do CI 7408 21 Figura 16 - esquema do CI 7432 22 Figura 17 - Teclado matricial de membrana 4X4 23 Figura 18 - Teclado Matricial - Representação das linhas e das colunas 23 Figura 19 – Display LCD 16x2 24 Figura 20 - Soquete ZIF 40 pinos 25 Figura 21 - Verificação manual das portas lógicas por dips e led’s 33 Figura 22 - Verificação manual das portas lógicas pelo microcontrolador 8051 34 Figura 23 – Componentes gerais do projeto 34 Figura 24 – Soldagem das trilhas 35 Figura 25 – Montagem completa do projeto 35 Figura 26 – Mensagem do display DIGITE O CODIGO 36 Figura 27 - Mensagem do display CODIGO INVALIDO DIGITE NOVAMENTE 36 Figura 28 - Mensagem do display CI DEFEITO 37 Figura 29 - Mensagem do display CI OK 37 Figura 30 - Projeto pronto 38 LISTA DE TABELAS Tabela 1 - Descrição da Pinagem do 8051 13 Tabela 2 - Pinagem dos módulos LCD 24 Sumário 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 2 – Planejamento do Projeto ..................................................................................... 26 3 – Desenvolvimento do Projeto................................................................................ 33 4 – Resultados Obtidos ............................................................................................. 39 Conclusão ................................................................................................................. 40 Referências ............................................................................................................... 41 Apêndice A ................................................................................................................ 42 8 Introdução Durante nosso curso de eletrônica, pudemos constatar em aulas práticas nos laboratórios da escola, a necessidade de otimização de tempo no manuseio e utilização de uma placa para testar circuitos integrados como o: CI 7400, CI 7402, CI 7408 e CI 7432. Assim, com o tempo otimizado dos testes destes componentes, poderemos constatar a eficácia de tempo nas atividades desenvolvidas e agilidade para a conclusão das tarefas. 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 Objetivando o desperdício de tempo testando CI´s manualmente, a partir de testes prévios usando um testador de componentes, facilitando o manuseio e teste prévio do CI, examinar o seu funcionamento e diagnosticar se o componente, esta pronto para ser usando, evitando o desperdício de tempo e otimização de projetos desenvolvidos em laboratórios. Objetivos Específicos Se os CI´s forem testados previamente, com um recurso que apresente a eficácia para diagnosticar problemas de funcionamento, consequentemente haverá customização de tempo nas aulas de laboratório e economia de recursos, como um diagnóstico preciso da eficiência do CI. Justificativa A motivação para o desenvolvimento deste projeto foi de melhorar o aproveitamento de aulas em laboratório, fazer testes prévios, como diminuir as taxas de desperdícios de circuitos integrados, economia financeira e até atender propostas sustentáveis de reaproveitamento ou customização de recursos físicos. 9 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 Em 1969 uma equipe de engenheiros japoneses da empresa BUSICOM chegou aos Estados Unidos com um pedido de circuitos integrados para calculadoras que deveriam ser desenvolvidos de acordo com as necessidades de seus produtos. O pedido foi encaminhado para a Intel que encarregou Marcian Hoff para a execução deste projeto, que propôs a BUSICOM, uma ideia revolucionária, um circuito integrado programável, assim poderia ser utilizado em varias aplicações mudando-se apenas a sua programação. Dessa forma a Intel criou o primeiro microprocessador conhecido como 4004 (ver figura 1), que era capaz de trabalhar com 4 bits a uma velocidade de 6 mil operações por segundo ou 6khz. Figura 1 – Primeiro processador da história (4004). 10 Com o passar do tempo e da evolução, começaram a surgir dispositivos eletrônicos com funcionalidades especificas, além da necessidade do conforto e praticidade. Televisores com controle remoto, máquinas de lavar roupa, microondas, celulares, vídeo games entre outros. Desse ponto, nasce a era dos sistemas embutidos (os microcontroladores). Os microcontroladores seguem o mesmo princípio de um microprocessador, entretanto, o microcontrolador não necessita de memória externa e barramento externo para funcionar. Tudo isso (e mais) está embutido dentro de um circuito integrado. Os microcontroladores são pequenos dispositivos dotados de "inteligência", basicamente constituídos de Unidade Central de Processamento - CPU (Central Processing Unit), memória (dados e programas) e periféricos (portas E/S, I2C, SPI, USART etc.). Apesar de os microcontroladores possuírem um desempenho bem inferior aos microprocessadores, o seu custo é muito menor. Além disso, são úteis em aplicações onde as dimensões, custo, tamanho e consumo do produto são muito importantes. O primeiro microcontrolador produzido foi o 8048 da Intel, substituído mais tarde pela família 8051, que se tornou muito popular junto com o 6811 da Motorola. Atualmente no mercado, existem vários modelos e fornecedores desses componentes, sendo usado em veículos, equipamentos domésticos, celulares, dispositivos periféricos de computadores, pequenos sistemas de brinquedos, equipamentos médicos, etc. Figura 2 – Desenho esquemático de um Microcontrolador controle, 11 1.2 - O Microcontrolador 8051 introduzida pela Intel O 8051 da Intel é o pai dos microcontroladores e sem duvida o mais popular atualmente. Este microcontrolador de 8 bits relativamente simples, porém com ampla aplicação. É conhecido por ser de fácil programação. Diversos fabricantes produzem microcontroladores da família 8051 (Intel, Dallas, OKI, Matar, Philips, Siemens, SMC, SSI). A Intel lançou o 8051 em 1977, e se tornou um microcontrolador de ampla utilização, um dispositivo de 8 bits com principal finalidade com automação de controle. Suas principais características: 8 bits 4 ports bidirecionais de 8 bits (P0, P1, P2, P3) 128 bytes de RAM interna 4 Kbytes de memória de programa ROM OTP Endereçamento de até 64 Kbytes de memória de dados externa Endereçamento de até 64 Kbytes de memória de programa externa Oscilador de clock 2 timers/counters (T/C) de 16 bits Uma porta serial USART 5 fontes de interrupção (2 externas, 2 T/C, 1 serial) 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. Figura 3 - Características especiais da família 8051 12 1.2.1 - Análise externa do microcontrolador 8051 O aspectro externo do 8051 é o da figura abaixo (figura 4). Os pinos com nomes da forma P0.0, P0.1, etc. corresponde às quatro portas de E/S (P0 a P3). Note a dupla utilidade das portas P0 e P2, que ficam comprometidas com o uso de memória externa, assim com os pinos P3.6 e P3.7. o sinal ALE (adress latch Enable), permite fazer a demultiplexação de dados e endereços na porta P0. Através do sinal PSEN (program Storage Enable), o controlador informa o mundo se a operação em andamento é uma leitura de instrução (acesso à memória do programa) ou um acesso à memória de dados. Este sinal permite que o processador tenha duas regiões distintas de memória externa, uma para armazenas código e outra para dados, ambas os endereços de 0 a FFFFH (64Kb), num total de 128Kb. Abaixo na figura 4, o desenho de um Microcontrolador 8051 e sua pinagem: Figura 4 - Aspecto externo do 8051 13 A Tabela a seguir mostra a descrição completa da pinagem do Microcontrolador 8051. Número dos Pinos 1a8 9 10 a 17 18 19 20 21 a 28 29 30 31 32 a 39 40 Nome Descrição resumida de sua função P1.0 a P1.7 Port Porta de I/O número 1 1 RST/VPD “Reset” do sistema (é necessário a aplicação de um nível alto TTL, durante 2 ou mais ciclos de máquina) P3.0 a Porta de I/O número 3 Possibilita também funções P3.7 especiais relacionadas ao Canal Serial, Interrupções e Port 3 “Timer/Counter” XTAL Ligação do cristal oscilador 2 XTAL Ligação do cristal oscilador 1 GND Terra P2.0 a P2.7 Port 2 Porta de I/O número 2 Saída do byte mais significativo do ou endereço, para memória externa. A8 a A15 Program Store Enable “Strobe” da memória de programa externa. Quando o sistema lê instruções ou PSEN’ operandos na memória externa, vai para nível zero e não é ativado (nível 1) durante busca na memória interna de programa. Address Latch Enable Saída para habilitar o “latch” de endereços. Serve para ALE / separar, a parte menos significativa do endereço, dos PROG dados, na aplicação de memória externa. Entrada do pulso de programação durante a gravação da EPROM. External Access Enable – Programming Supply Voltage Entrada de seleção da memória de programa. Quando em nível zero, a CPU trabalha apenas com a memória de EA’ / programa externa. Se em nível lógico 1, a CPU executa Vpp instruções da memória de programa interna, desde que o PC seja menor que 4096. Este pino recebe +21 volts durante a programação da ROM interna. Recebe +21V durante a programação da EPROM P0.0 a P0.7 Porta de I/O número 0 Fornece o byte menos significativo ou de endereço multiplexado com os dados. AD0 a AD7 VCC + 5 volts Tabela 1 - Descrição da Pinagem do 8051 14 1.3 - Programação do Microcontrolador A programação do microcontrolador pode ser realizada em linguagem C. A linguagem C, também chamada de linguagem compilada, foi criada por Dennis Ritchie, em 1972, no centro de pesquisas da Bell Laboratories. Inicialmente utilizada para reescrever o sistema operacional UNIX, que anteriormente era escrito em Assembly, a linguagem C possui características como modularidade, compilação separada, recursos de baixo nível, confiabilidade, entre outros. Na década de 70, o UNIX foi liberado para as universidades e, a partir desse ponto, a linguagem C tornou-se amplamente conhecida e utilizada. Trata-se de uma linguagem de fácil manipulação ao homem. Após escrito todo o código, deve-se utilizar um compilador. 1.4 - Circuito integrado – CI Circuito integrado (ou simplesmente C.I.) é um circuito eletrônico que incorpora miniaturas de diversos componentes (principalmente transistores, diodos, resistores e capacitores), "gravados" em uma pequena lâmina (chip) de silício. O chip é montado e selado em um bloco (de plástico ou cerâmica) com terminais que são conectados aos seus componentes por pequenos fios condutores. Com as mais diversas funções e aplicações na indústria, presente tanto nos produtos eletrônicos de consumo quanto nos seus processos de produção, os circuitos integrados, assim como outros componentes, estão disponíveis em diversos formatos e tamanhos (encapsulamentos), que também determinam a forma como serão fixados nas placas de circuito impresso. Podem ser montados na superfície da placa, sem atravessá-la (Surface Mount Technology "SMT", ou Surface Mount Device "SMD"), ou podem ser montados com seus terminais atravessando a placa (Thru Hole, ou PTH). 1.4.1 - Famílias Lógicas dos Circuitos Integrados O desenvolvimento da tecnologia dos circuitos integrados, possibilitando a colocação num único invólucro de diversos componentes já interligados, veio permitir um desenvolvimento muito rápido da Eletrônica Digital e consequentemente do projeto de sistemas digitais. Foi criada então uma série de circuitos integrados que continham numa única pastilha as funções lógicas digitais mais usadas e de tal 15 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. 1.4.2 - Família Lógica TTL TTL significa Transistor-Transistor – Logic (Lógica Transistor-Transistor). Esta família foi originalmente desenvolvida pela TEXAS Instruments, mas hoje, muitos fabricantes de semicondutores produzem seus componentes. Esta família é principalmente reconhecida pelo fato de ter duas séries que começam pelos números 54 para os componentes de uso militar e 74 para os componentes de uso comercial. A tensão de alimentação se restringe a 5V contínuos, tendo, porém, uma faixa de tensão correspondente aos níveis lógicos 0 e 1. A figura a seguir (figura 5), mostra as faixas de tensão correspondentes aos níveis lógicos de entrada de um circuito integrado da família TTL. Nela observa-se, que existe uma faixa de tensão entre 0,8V e 2V na qual o componente TTL não reconhece os níveis lógicos 0 e 1, devendo, portanto, ser evitada em projetos de circuitos digitais. VIH – Tensão de entrada correspondente ao nível lógico alto (1). VIL– Tensão de entrada correspondente ao nível lógico baixo (0). Figura 5 – Faixas de tensão entrada 16 Já nesta outra figura abaixo (figura 6) a seguir mostra as faixas de tensão correspondentes aos níveis lógicos de saída de um circuito integrado da família TTL. V0H – Tensão de saída correspondente ao nível lógico alto (1). V0L – Tensão de saída correspondente ao nível lógico baixo (0). Figura 6 – Faixas de tensão saída A Série 74, Identifica os dispositivos da família TTL de uso comercial. Especificações Família TTL: Temperatura: 0 a 70 ºC Tensão de alimentação: 4,75 a 5,25V (5V + ou - 10%) 1.4.3 - Circuitos Integrados TTL Esta família possui uma vasta variação de circuitos integrados padronizados com configurações de pinagens disponíveis nos manuais dos fabricantes. São circuitos integrados que possuem 14 pinos ou mais, conforme a complexidade do circuito agregado, com encapsulamentos denominados DIP (Dual-In-Line Package), cuja identificação da disposição dos terminais se faz através da vista superior, em sentido anti-horário a partir de uma marca de referência no encapsulamento do circuito integrado. 17 Figura 7 - CI dual in line (DIP) 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.5 - Portas Lógicas Portas lógicas ou circuitos lógicos são circuitos eletrônicos existentes dentro dos microprocessadores e são responsáveis por realizar as operações lógicas, aritméticas e de tomada de decisão. O funcionamento destes elementos foi baseado nos princípios estabelecidos pelo matemático britânico George boole em meados do século 19, antes mesmo da primeira lâmpada ser inventada. Em suma a ideia principal foi de expressar funções lógicas por meio de funções algébricas. Esse pensamento foi logo transformado em um produto prático, que muito mais tarde evoluiu para o que hoje conhecemos como circuitos lógicos: INVERSORA (NOT), E (AND), OU (OR), NAND, NOR. O princípio de funcionamento destes elementos ficou conhecido como álgebra Booleana. Uma vez que algumas instruções de programas utilizadas por microprocessadores e microcontroladores fazem uso das funcionalidades destas portas lógicas, é importante estudarmos o princípio de funcionamento de cada uma delas. 18 Portas lógicas usadas em nosso projeto: 1.5.1 - Porta Lógica Inversora (NOT) Como o próprio nome já sugere, o inversor irá inverter o numero entrado. Se você entrar com o numero “0” em um circuito inversor, você obterá na saída o numero “1”, da mesma forma que se você entrar o numero “1”, obterá o numero “0” na sua saída. O símbolo do inversor pode ser visto na figura 8. A porta inversora também é conhecida como NOT. Figura 8 – símbolo gráfico e tabela verdade da porta Inversora (NOT) 1.5.2 - Porta Lógica AND Uma porta lógica “AND” tem duas ou mais entradas e apenas uma saída. O princípio de funcionamento desta porta diz que só aparecerá a lógica um (1), na saída da porta quando todas as entradas forem também iguais a um (1), ou seja, somente quando A e B forem iguais a 1 a saída será igual a 1. A figura 9 mostra o símbolo representativo da porta lógica AND, e a tabela de dependência mutuas entre as entradas e a saída, Tabela Verdade. Figura 9 – símbolo gráfico e tabela verdade da porta AND 19 1.5.3 - Porta Lógica OR Da mesma forma que o caso anterior, as portas OR também podem ter duas ou mais entradas e uma saída. A lógica um (1) aparecerá na porta de saída se qualquer uma das entradas (A ou B) estiver em lógica um (1). Somente se todas as entradas estiverem em lógica zero (0), a saída será modificada para lógica zero (0). A figura 10 mostra o símbolo representativo da porta lógica OR e a sua tabela verdade. Figura 10 – símbolo gráfico e tabela verdade da porta OR 1.5.4 - Porta Lógica NAND A letra “N” em NAND significa NOT (literalmente “não”, mas representa o circuito inversor) e esta porta nada mais é do que uma porta AND com um inversor acoplado. Por isso sua saída é o oposto da AND. Seu símbolo é o mesmo do AND, mas com “o” em sua saída, para dizer que o valor da sua saída é invertido. A figura 11 mostra o símbolo representativo da porta lógica NAND e a sua tabela verdade. Figura 11 – símbolo gráfico e tabela verdade da porta NAND 20 1.5.5 - Porta Lógica NOR A Letra “N” em NOR significa NOT (literalmente “não”, mas representa o circuito inversor), e esta porta nada mais é do que uma porta OR com um inversor acoplado. Por isso, sua saída é o oposto da porta OR. Seu símbolo é o mesmo do OR, mas com um “o” em sua saída, para dizer que o valor da sua saída é invertido. A figura 12 mostra o símbolo representativo da porta lógica NOR e a sua tabela verdade. Figura 12 – símbolo gráfico e tabela verdade da porta NOR 1.6 - Circuitos integrados TTL e suas portas lógicas 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. Figura 13 – esquema do CI 7400 21 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. Figura 14 – esquema do CI 7402 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. Figura 15 – esquema do CI 7408 22 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. Figura 16 – Esquema do CI 7432 1.7 - Dispositivos Periféricos Todo equipamento baseado em microprocessador, para que seja utilizável, tem a necessidade de trocar dados com o mundo exterior. Isto é efetuado através de portas de entrada e saída. Acopladas a estas portas normalmente encontram-se os dispositivos periféricos, que são destinados a determinados tipos de operação. Em nosso projeto, estaremos usando tais dispositivos, podendo citar: controladores de teclado, controladores de display, portas de entrada e saída paralelas, controladores de DMA, controladores de interrupção, controladores de disco, etc. Alguns desses dispositivos são específicos para determinadas aplicações, enquanto que outros permitem sua configuração e utilização de diversas maneiras. Os principais fabricantes de circuitos integrados oferecem ao usuário, além dos microprocessadores, uma grande quantidade de dispositivos periféricos, que cobrem as principais compatibilidade aplicações com e suas determinados variações. Tais dispositivos microprocessadores, apresentam simplificando sua interligação, e podem ser adaptados a cada aplicação através de programação. Resta ao usuário, dessa forma, programá-los e configurá-los, adequando-os às necessidades. A programação de tais dispositivos, embora nem sempre trabalhosa, pode se tornar não trivial, em função dos muitos casos para os quais os dispositivos são projetados para se adaptar, obrigando ao usuário a um estudo minucioso dos seus manuais de especificação. 23 1.7.1 - Teclado matricial 4X4 Foi utilizado um teclado matricial de membrana 4X4 , quatro linhas e quatro colunas. A Figura 17 mostra o teclado matricial utilizado no projeto. Figura 17 - Teclado matricial de membrana 4X4 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: Figura 18 - Teclado Matricial - Representação das linhas e das colunas Um teclado matricial pode ser implementado com circuitos simplificados diretamente controlados pelo microprocessador, via portas paralelas de entrada e saída e programa. 24 1.7.2 - Display LCD 16X2 Por tratar-se de componente de fácil utilização e implementação, o display LCD (liquid cristal display) tornou-se um dispositivo amplamente utilizado e versátil, permite a escrita de palavras, números, símbolos, etc. o display 16x2 possui 16 colunas e 2 linhas, permitindo a escrita de 32 caracteres, 16 na linha 1 ou, superior, e 16 na linha 2 ou, inferior. Figura 19 - Display LCD 16x2 A Tabela a seguir mostra a descrição completa da Pinagem dos módulos LCD Pino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Função Alimentação Alimentação VO RS Seleção: R/W Seleção: E Chip Select B0 LSB B1 B2 B3 B4 B5 B6 B7 MSB A (quando existir) K (quando existir) Descrição Terra ou GNV VCC ou +5v Tensão para ajuste de contraste 1 – dado, 0 – instrução 1 – leitura, 0 – escrita 1 ou (1 → 0) - Habilita, 0 – Desabilitado Barramento de Dados Barramento de Dados Anodo p/ LED backlight Catodo p/ LED backlight Tabela 2 - Pinagem dos módulos LCD 25 1.7.3 - Soquete ZIF Soquetes são componentes onde se colocam e fixam Circuitos integrados, com possibilidade de remoção. E ZIF é um componente de fixação de Circuitos integrados ou FLAT Cables, normalmente utilizado em Programadores de Circuitos ou eletrônica embarcada. Tem um bastonete que fecha os contatos nas pernas do Circuito Integrado ou uma fixação para prender o cabo e Flat. Figura 20 – Soquete ZIF 40 pinos 26 2 – Planejamento do Projeto Parte Elétrica / Eletrônica 27 Previsão de Custos Quantidade Componentes Valores 1 Placa padrão R$ 32,00 1 Display LCD R$ 35,00 1 Microcontrolador 8051 R$ 26,00 4 CI’s 7400,7402,7408,7432 R$ 6,80 1 Teclado R$ 20,00 1 Soquete Zif R$ 22,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 2 Fonte Resistiva R$ 2,50 1 Chave botão R$ 0,50 Valor total R$ 159,80 28 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 S C.I. 7402 02 CÓDIGO S C.I. 7408 08 CÓDIGO 32 CÓDIGO INVÁLIDO S C.I. 7432 29 FLUXOGRAMA CI NAND 7400 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 FLUXOGRAMA CI NOR 7402 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 FLUXOGRAMA CI AND 7408 INICIO COLOCAR Ø E Ø NAS ENTRADAS COLOCAR 0 E 1 SAÍDA S NAS ENTRADAS =Ø IN SAÍDA S =Ø N COLOCAR 1 E Ø NAS ENTRADAS SAÍDA =Ø S N COLOCAR 1 E 1 NAS ENTRADAS SAÍDA =1 N C.I. DEFEITO C.I. OK 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 Começamos a desenvolver o projeto com a ideia de testar CI’s de modo que, usando um protoboard e dips, para simular as funções das portas lógicas e utilizando led’s nas saídas de cada porta, verificando o funcionamento como mostra a figura 21. Figura 21 – Verificação manual das portas lógicas por dips e led’s 34 Nesta próxima fase, acrescentamos mais um protoboard, para inserir um microcontrolador, que foi ligado as entradas e saídas do CI da família TTL nos portes P0.0 á P0.7 e P1.4 á P1.7 do microcontrolador, foi feita uma programação com separação de 4 bits para verificação da lógica, como mostra a figura 22. Figura 22 – Verificação manual das portas lógicas pelo microcontrolador 8051. Nesta Próxima etapa juntamos todos os componentes á serem utilizados na montagem do projeto, como mostra a figura 23. Figura 23 – Componentes gerais do projeto. 35 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. Figura 24 – Soldagem das trilhas. Com o microcontrolador 8051 para programação, um teclado para digitar o código, um display para visualização do teste e um conector zif para encaixe do CI para inicio dos testes, como mostra a figura 25. Figura 25 – Montagem completa do projeto. 36 Na programação inicial do microcontrolador 8051, foi escrito as informações necessárias para leitura do CI, como mostra a figura 26. Figura 26 – Mensagem do display DIGITE O CODIGO. Se for digitado o código errado deverá aparecer a mensagem no display, como mostra a figura 27. Figura 27 – Mensagem do display CODIGO INVALIDO DIGITE NOVAMENTE 37 Se o CI estiver danificado ou incorreto deverá aparecer a mensagem no display, como mostra a figura 28. Figura 28 – Mensagem do display CI DEFEITO Se o CI estiver funcionando corretamente deverá aparecer a mensagem no display, como mostra a figura 29. Figura 29 – Mensagem do display CI OK 38 Projeto concluído Figura 30 – Projeto pronto 39 4 – Resultados Obtidos Ao longo de muito trabalho o projeto foi realizado com sucesso atendendo nossas expectativas e objetivos. Para o funcionamento da nossa Giga de teste de CI’s, foi utilizado um teclado para digitar o código do CI desejado, e um display que indicará com uma mensagem se ele está CI OK ou CI DEFEITO. Isto ocorre devido a escrita de uma programação em linguagem C, gravado no microcontrolador 8051. 40 Conclusão Esse projeto foi desenvolvido para estudantes de escolas técnicas com a finalidade de fazer o teste de componentes eletrônicos podendo ser ampliado e melhorado para o aperfeiçoamento dos alunos do uso didático O desenvolvimento da Giga para teste de CI’s, transmitiu ao grupo o fato de que nem todas as pessoas possuem a iniciativa de auxiliar aqueles que desejam construir algo, porém, há aquelas que desejam compartilhar com elas seus sonhos, ajudando a construí-los. É necessário saber lidar com as primeiras e agradecer as segundas. Durante o desenvolvimento do projeto tivemos dificuldade com a programação do microcontrolador 8051 e a falta de um componente (rede resistiva). Essas dificuldades foram superadas com pesquisas, dedicação do grupo e da orientação do professor de programação. O projeto mostrou a importância do gerenciamento do tempo, e como se planejar cada atividade, mas o maior ensinamento foi que imprevistos vão ocorrer sempre. Os resultados do desenvolvimento do projeto foram positivos atendendo as nossas expectativas e objetivos estabelecidos pelo grupo de trabalho diante de todas as dificuldades encontradas no decorrer do projeto. É esperado que a utilização da Giga para teste de CI’s seja feita em laboratórios de escolas técnicas, permitindo assim, que os alunos tenham suas atividades mais eficientes, aumentando seus conhecimentos técnicos. 41 Referências BARBACENA,Ilton L e FLEURY, Afonso. Display LCD. Disponível em < ftp://ftp.dca.fee.unicamp.br/pub/docs/ea079/complementos/Lcd.pdf> Acesso em 03 de Out.2014 BORBA, GUSTAVO. Família 80521. Disponível em<http://paginapessoal.utfpr.edu.br/gustavobborba/material/files/introFamilia8051.p df> Acesso em 04 de Out.2014 GOUVEIRA, RICARDO. Família de Circuitos Lógicos. Disponível em<www.arvm.org/exames/digital/workfamilyactual.doc> Acesso em 10 de out.2014 NEW TECK, Exportadora e importadora. Disponível em< http://www.newteckci.com.br/circuitos-integrados.php/>. Acesso em 10 de out.2014 NUNES, FELIPE. Controle e Automação. Disponível em< http://www.em.ufop.br/cecau/monografias/2013/Felipe%20Vilela%20Nunes.pdf>. Acesso em 10 de out.2014 SEVERINO, Antonio Joaquim. Metodologia do Trabalho Científico. São Paulo: Ed. Cortez, 2000. TORRES, E. Fernando e Martins, R. Henrique. Apostila didática PICMINAS. Disponível em< http://www.decom.ufop.br/alex/arquivos/sof_b as_EC/Apostila_PICMInas.pdf> Acesso em 15 de Ago.2014 42 APÊNDICE A Programação do 8051 utilizando a linguagem C. /* GIGA DE TESTE 4º DN */ // BIBLIOTECA DO MICROCONTROLADOR 8051, ATRASO, LCD, TECLADO #include <at89x52.h> #include <atraso.h> #include <lcd4.h> #include <TEC4x4M.H> // MENSAGENS NO LCD code unsigned char OK [17]={" CI OK ",0x00}; code unsigned char DEFEITO [17]={" CI DEFEITO ",0x00}; code unsigned char BRANCO [17]={" ",0x00}; code unsigned char DIGITE [17]={"DIGITE O CODIGO ",0x00}; code unsigned char CODIGO [9]={" 74",0x00}; code unsigned char INVALIDO[17]={"CODIGO INVALIDO ",0x00}; code unsigned char NOVAMENTE [17]={"DIGITE NOVAMENTE ",0x00}; char codigo, tecla1,tecla2; void lcd_hex (unsigned HEXA) { unsigned char rasc; rasc = (HEXA >> 4) & 0X0F; if (rasc <= 0x09) rasc = rasc + 0X30; else rasc = rasc + 0x37; lcd_char (rasc); rasc = HEXA & 0X0F; if (rasc <= 0x09) rasc = rasc + 0X30; else rasc = rasc + 0x37; lcd_char (rasc); } // DECLARAÇÃO DAS FUNÇÕES DO CI void CI7432(); void CI7408(); void CI7400(); void CI7402(); 43 // FUNÇÃO PRINCIPAL void main() { LEDS=0X00; BZ=1; lcd_ini(); // AGUARDE DIGITAÇÃO DO CÓDIGO 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); // EXECUTA A FUNÇÃO DO CODIGO DIGITADO 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(); } } // FUNÇÃO PARA O CI 7432 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(); } } // FUNÇÃO PARA O CI 7408 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 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(); } } // FUNÇÃO PARA O CI 7400 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(); } } // FUNÇÃO PARA O CI 7402 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 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 } tecla1=teclado(); } }