Referências - Afonso Ferreira Miguel, MSc

Propaganda
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ
CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
ENGENHARIA DE COMPUTAÇÃO
MICROPROCESSADORES II
CURITIBA
2006
EDUARDO DALAZEN
FERNANDO SULZBACHER
MARCOS CAMPANA
PROJETO INTEGRADO
Trabalho apresentado às Disciplinas de
Mircroprocessadores II e Eletronica II, da
graduaçâo em Engenharia de computçâo, Centro
de Ciências Exatas e de Tecnologia da Pontifícia
Universidade Católica do Paraná.
Professores
Afonso Ferreira Miguel
Viviana Zurro
CURITIBA
2006
1. Introdução
Neste projeto iremos aplicar nossos conhecimentos para desenvolver
uma aplicação de automatização de uma residência. Para construir uma casa
inteligente e micro-controlada usaremos vários componentes eletrônicos
projetados para fornecer mais comodidade para seus moradores. O principal
recurso utilizado será o microprocessador PIC16F876/873 e o decodificador
DTMF, pois a casa será controlada via celular. Usaremos também alguns
sensores para construir o circuito do alarme e da iluminação da casa. O
sensoriamento dos leds lasers serão feitos utilizando LDR (Light dependent
resistor) que junto com um comparador de tensão irão controlar o alarme da
casa.
2. Objetivo do Projeto
Aplicar conceitos discutidos em aula sobre Microprocessadores II e
Eletrônica II e relacionar ao projeto de Monitoramento de Ambientes, em que
tudo será controlado por um celular via DTMF.
3. Desenvolvimento
3.1 PIC
Figura 1: PIC16F873
3.2 Sensor Alarme
O sensor funciona com um laser de infravermelho que é detectado por
um LDR, onde o que varia nesse componente é apenas a resistência conforme
a incidência de luz, o mesmo pode-se chamar de foto resistor. Após a
montagem do circuito, com a variação da resistência alteramos a tensão,
quando o LDR está recebendo o sinal do laser estará em 5V e se algum objeto
cortar esse sinal irá variar a resistência indo para próximo de 0V.
O objetivo da utilização desse sensor é a verificação se alguma pessoa
obstruiu um determinado obstáculo ativando o sensor, no caso soando o
alarme, em que o mesmo será colocado na parte superior do telhado da casa,
que está sendo elaborado em nosso projeto. Utilizaremos uma maquete para
demonstrar nosso projeto, que contém um laser infravermelho (Figura 2) abaixo
e o LDR (Figura 3). Estes componentes não podem ser utilizados para fins
comerciais em relação a alarme (definição do projeto), pois não levamos em conta o
clima e a distância.
Figura 2: Laser de Infravermelho.
Figura 3: LDR.
Como o LDR funciona com a variação de sua resistência, e o projeto
desenvolvido terá quatro LDR e quatro lasers de infravermelho; foi utilizado um
circuito integrado LM324 o mesmo amplifica e compõe o estágio de adaptador
para conversor ADC do micro controlador que aceita tensões de 0 à 5 v, com
essa resposta do amplificador é jogado as quatro saídas para um circuito
integrado 7432 que funciona como uma OR, esse circuito integrado verifica o
sinal dos quatros sensores, e se em algum momento um desses for
interrompida o mesmo enviará a resposta de saída desse componente para o
microprocessador PIC, gerando a interrupção e disparando o alarme.
Esses componentes citados acima como o circuito integrado 7432 e o
LM324, não irão ser detalhados nesse relatório, pois já foram estudados
anteriormente. Abaixo segue o diagrama de montagem do circuito.
Figura 4: Diagrama de Montagem do Sensor de Alarme.
Pinagens: Vcc = 5V;
GND = Terra;
PIC16F873, corresponde ao pino 21 (rb0/INT);
Em cada LDR mostrado na figura 4 tem um laser de infravermelho
incidindo, nos mesmos. Os pinos 1IN-, 2 IN-, 3 IN-, 4 IN- do LM324 ambos são
ligados com um resistor de 280 Ω e um de 1K em série, onde a ponta do
resistor de 280 Ω vai para 5V e de 1K vai para o terra, entre o meio desses
resistores liga-se nas entradas citadas acima.
3.3 Sensor de Luminosidade
A luz externa da casa também é controlada por um circuito montado por
LDR e um comparador de tensão, como já explicado anteriormente o LDR varia
a sua resistência conforme a luz que incide no sensor. Assim logo que cair a
iluminação em cima do LDR as luzes externas da casa ascendam.
Foto 5: Circuito da Iluminação.
3.4 Controle do Ar condicionado e Luzes
A maquete contém um cooler que tem como objetivo simular o funcionamento
de um ar condicionado, mas como o PIC (microcontrolador) não fornece tensão
suficiente para o funcionamento correto do cooler, portanto implementamos um
chaveador a uma fonte de 5v com um transistor de potência TIP122.
A saída do PIC (RB2) é conectado a base do transistor, o emissor do
transistor é aterrado e o coletor ligado na entrada negativa do cooler e a
componente positiva do cooler é conectada a 5V, quando ocorre corrente na
base do transistor (estímulo na saída RB2) entra em curto, chaveando a
ligação em 5V e terra fazendo com que o cooler funcione.
A ativação via microntrolador do cooler ocorre com a entrada da senha
“1236” e o número 4 do teclado do celular, e a desativação ocorre com a
pressão do número 5.
As luzes internas da maquete estão conectadas diretamente na saída do
PIC (porta RC0), quando ocorre um estímulo nesta saída às luzes acendem. A
ligação das luzes internas da casa ocorre com a entrada da senha “1236” e a
pressão do número 2, o desligamento da luz acontece quando ocorre a
pressão no número 3 do teclado.
3.5 DTMF
O DTMF(Dual Tone Multiply Frequêncy) é um sistema de decodificação
de duas freqüências geradas pelo tom do teclado do celular ou qualquer
telefone. As freqüências desses tons são geradas pelas combinações a seguir:
Tabela 1: freqüências dos tons.
Tabela DTMF
Hz
1209
1336
1477
1633
697
1
2
3
A
770
4
5
6
B
852
7
8
9
C
941
*
0
#
D
Quando ocorre a pressão na tecla número 1 é gerada as duas
freqüências, a alta 1209 e a baixa 697.
O circuito integrado utilizado para decodificação destas freqüências foi o
CM8870 que decodifica as freqüências em um sinal binário que é enviado para
o microcontrolador para serem checados.
Figura 6: Decodificador DTMF.
3.6 Fluxograma do Software Embarcado
Figura 7: Fluxograma do Software.
Entradas:
rb[4..7], recebe os dados do decodificador de som;
rb3, recebe o flag de transmissão do decodificador de som;
rb0, recebe o sinal dos sensores lasers.
Saidas:
rb2, liga e desliga o ventilador;
rb1, saida para o alto falante;
rc0, ativa e desativa luz.
3.7 Código Fonte
O programa foi totalmente desenvolvido em Assembly e gravado em um
microprocessador PIC16F873 para executar as funções desejadas. Segue
abaixo o programa desenvolvido.
#include <p16f873.inc>
org 0
goto inicio
ORG 4
GOTO INTERRUPCAO
;CRIAÇÃO DE VARIÁVEIS
CBLOCK 0x20
ALARMESTATUS
´1´ OU DESLIGADO ´0´
SIRENESTATUS
´1´ OU NÃO ´0´
AUXDIGITO
DIGITO
AUXW
AUXSTATUS
AUXPC
sirenealterna
ENDC
; ARMAZENA SE O ALARME ESTÁ LIGADO
; ARMAZENA SE A SIRENE ESTÁ TOCANDO
;
;
;
;
;
;
GUARDA ANTIGO DIGITO DIGITADO
GUARDA DIGITO ATUAL
AUXILIAR QUE ARMAZENA W
AUXILIAR QUE ARMAZENA STATUS
AUXILIAR QUE ARMAZENA PC
0f
INTERRUPCAO:
; SALVA CONTEXTO
MOVWF AUXW
SWAPF STATUS,W
CLRF STATUS
MOVWF AUXSTATUS
MOVF PCLATH, W
MOVWF AUXPC
CLRF PCLATH
; VERIFICA SE A INTERRUPÇÃO FOI DE TEMPO OU DO SENSOR LASER
BANKSEL PIR1
BTFSS PIR1,TMR2IF ; VERIFICANDO BIT QUE INDICA SE
INTERRUPÇÃO POR TEMPO
GOTO ALARME ; INTERRUPÇÃO FOI NO SENSOR LASER
GOTO SIRENE ; INTERRUPÇÃO FOI DE TEMPO
FOI
;PROCEDIMENTO PARA ALTERNAR SINAL NO PINO PORTB 1 CASO A SIRENE
ESTEJA ATIVADA
SIRENE:
BTFSS SIRENESTATUS,0 ; VERIFICA SE A SIRENE ESTÁ ATIVADA
GOTO VAI ; A SIRENE ESTA DESATIVADA, ENTÃO PROSSEGUE SEM
ALTERNAR BIT NO SINAL DE SOM
BANKSEL PORTB
BTFSS PORTB,1 ; VERIFICANDO SE O BIT DE SOM ESTÁ ALTO
GOTO BAIXO ; O BIT DE SOM ESTA BAIXO, ENTÃO SEGUE PARA
PROCEDIMENTO DE DEIXAR EM ALTO
GOTO ALTO ; O BIT DE SOM ESTA ALTO, ENTÃO SEEUE PARA
PROCEDIMENTO DE DEIXAR BAIXO
;BANKSEL PORTB
;
;
;
;
;
;
;
swapf sirenealterna,0
swapf sirenealterna,1
BCF STATUS,Z
subwf 0f
btfsc STATUS,Z
GOTO ALTO
GOTO BAIXO
; PROCEDIMENTO QUE DEIXA O BIT DE SOM ALTO
BAIXO:
BANKSEL PORTB
BSF PORTB,1
BCF PORTC,1
GOTO VAI ; PROSSEGUE PARA SAIR DA INTERRUPÇÃO
; PROCEDIMENTO QUE DEIXA O BIT DE SOM BAIXO
ALTO:
BANKSEL PORTB
BCF PORTB,1
BSF PORTC,1
; COMEÇANDO A SAIR DA INTERRUPÇÃO
VAI:
BANKSEL PIR1
bcf PIR1, TMR2IF ; DESTIVA BIT QUE AVISOU DA INTERRUPÇÃO
POR TEMPO
GOTO FINALIZA ; PROSSEGUE, PARA RESTAURAR CONTEXTO
; PROCEDIMENTO QUE ATIVA A SIRENE, CASO ALMERME ESTEJA ATIVO
ALARME:
BTFSS ALARMESTATUS,0 ; VERIFICA SE O ALARME ESTA ATIVO
GOTO
PROSSEGUE
;
ALARME
DESATIVADO,
PROSSEGUE
PARA
RESTAURAÇÃO DE CONTEXTO
MOVLW #1
MOVWF SIRENESTATUS
PROSSEGUE:
BANKSEL INTCON
BCF INTCON,INTF
; DESATIVA FLAG DE INTERRUPÇÃO
; RESTAURA CONTEXTO
FINALIZA:
MOVF AUXPC, W
MOVWF PCLATH
SWAPF AUXSTATUS,W
MOVWF STATUS
SWAPF AUXW,F
SWAPF AUXW,W
RETFIE
inicio:
; AJUSTANDO TIMER E ATIVANDO INETRRUPÇÃO PELA PORTAB 0
BANKSEL PR2
movlw b'11111001'
movwf PR2
bsf PIE1, 1
bsf PIR1, 1
BANKSEL T2CON
movlw 2
movwf T2CON
movlw 0D0 ; PREPARANDO PARA ATIVAR INTERRUPÇÃO POR TEMPO E
POR PORTAB 0
movwf INTCON
bsf T2CON, 2
; DESATIVANDO ALARME E SIRENE
MOVLW #0
MOVWF ALARMESTATUS
MOVWF SIRENESTATUS
MOVWF AUXDIGITO
MOVWF DIGITO
movlw #0f
movwf sirenealterna;
banksel TRISC
; ATIVANDO PORTAS DE SAIDA
bcf PORTC,0
BCF PORTB,1
BCF PORTB,2
bcf PORTC,1
; ATIVANDO PORTAS DE ENTRADA
BSF PORTB,0
BSF PORTB,3
BSF PORTB,4
BSF PORTB,5
BSF PORTB,6
BSF PORTB,7
BANKSEL PORTB
BCF PORTB,2
BCF PORTB,1
BCF PORTC,0
BCF PORTC,1
; PROCEDIMENTO QUE VERIFICA SENHA "1236"
SENHA: ;errou qualquer digito seqüência, recomeça tudo de novo,
sem reaproveitar o último digito
; ESPERA O FLAG DE ENVIO DE DADO DO DECODIFICADOR
ESPERA1:
BTFSS PORTB,3
GOTO ESPERA1
; COLETA DADO ENVIADO PELO DECODIFICADOR
UM:; SEQUENCIA PARA VERIFICAR SE FOI DIGITADO '1'
SWAPF PORTB,0 ; FAZ SWAP DOS DADOS DA PORTA B E GRAVA
NO REGISTRADOR
CONTINUA1:
ANDLW #0F ; APROVEITA SOMENTE OS 4 BITS MENOS
SIGNIFICATIVOS RECEBIDOS NA PORTA B
MOVWF DIGITO
SUBWF AUXDIGITO,0
BTFSS STATUS,Z ; CASO O DIGITO SEJA IGUAL AO
ANTERIOR, ELE CONTINUA A ESPERA, INDO PARA REPETIDO1
GOTO CONTINUA1_
GOTO REPETIDO1
CONTINUA1_:
MOVFW DIGITO
MOVWF AUXDIGITO
SUBLW #1
btfss STATUS,Z ; CASO 1-DADO = 0, O DADO ERA 1
GOTO SENHA ; DIGITO NÃO CONFERE, RECOMEÇA TUDO
NOVAMENTE
GOTO ESPERA2_
REPETIDO1:
BTFSS PORTB,3
GOTO ESPERA1
GOTO REPETIDO1
REPETIDO2:
BTFSS PORTB,3
GOTO ESPERA2
GOTO REPETIDO2
REPETIDO3:
BTFSS PORTB,3
GOTO ESPERA3
GOTO REPETIDO3
REPETIDO6
BTFSS PORTB,3
GOTO ESPERA6
GOTO REPETIDO6
; ESPERA A DESATIVAÇÃO DO FLAG DE ENVIO
ESPERA2_:
BTFSS PORTB,3
GOTO ESPERA2
GOTO ESPERA2_
; ESPERA O FLAG DE ENVIO DE DADO DO DECODIFICADOR
ESPERA2:
BTFSS PORTB,3
GOTO ESPERA2
; SEQUENCIA PARA VERIFICAR SE FOI DIGITADO '2'
DOIS:
SWAPF PORTB,0
CONTINUA2:
ANDLW #0F
MOVWF DIGITO
SUBWF AUXDIGITO,0
BTFSS STATUS,Z ; CASO O DIGITO SEJA IGUAL AO
ANTERIOR, ELE CONTINUA A ESPERA, INDO PARA REPETIDO2
GOTO CONTINUA2_
GOTO REPETIDO2
CONTINUA2_:
MOVFW DIGITO
MOVWF AUXDIGITO
SUBLW #2
btfss STATUS,Z ; CASO 2-DADO=0, O DADO ERA 2
GOTO SENHA
GOTO ESPERA3_
; ESPERA A DESATIVAÇÃO DO FLAG DE ENVIO
ESPERA3_:
BTFSS PORTB,3
GOTO ESPERA3
GOTO ESPERA3_
; ESPERA O FLAG DE ENVIO DE DADO DO DECODIFICADOR
ESPERA3:
BTFSS PORTB,3
GOTO ESPERA3
; SEQUENCIA PARA VERIFICAR SE FOI DIGITADO '3'
TRES:
SWAPF PORTB,0
CONTINUA3:
ANDLW #0F
MOVWF DIGITO
SUBWF AUXDIGITO,0
BTFSS STATUS,Z ; CASO O DIGITO SEJA IGUAL AO
ANTERIOR, ELE CONTINUA A ESPERA, INDO PARA REPETIDO3
GOTO CONTINUA3_
GOTO REPETIDO3
CONTINUA3_:
MOVFW DIGITO
MOVWF AUXDIGITO
SUBLW #3
btfss STATUS,Z ; CASO 3 - DADO = 0,O DADO ERA 3
GOTO SENHA
GOTO ESPERA6
; ESPERA A DESATIVAÇÃO DO FLAG DE ENVIO
ESPERA6_:
BTFSS PORTB,3
GOTO ESPERA6
GOTO ESPERA6_
; ESPERA O FLAG DE ENVIO DE DADO DO DECODIFICADOR
ESPERA6:
BTFSS PORTB,3
GOTO ESPERA6
; SEQUENCIA PARA VERIFICAR SE FOI DIGITADO '6'
QUATRO:
SWAPF PORTB,0
CONTINUA6
ANDLW #0F
MOVWF DIGITO
SUBWF AUXDIGITO,0
BTFSS STATUS,Z ; CASO O DIGITO SEJA IGUAL AO
ANTERIOR, ELE CONTINUA A ESPERA, INDO PARA REPETIDO6
GOTO CONTINUA6_
GOTO REPETIDO6
CONTINUA6_:
MOVFW DIGITO
MOVWF AUXDIGITO
SUBLW #6
btfss STATUS,Z ; CASO 6-DADO =0, O DADO ERA 6
GOTO SENHA
; ESPERA A DESATIVAÇÃO DO FLAG DE ENVIO
ESPERA5_:
BTFSS PORTB,3
GOTO MENU
GOTO ESPERA5_
; PASSOU PELA SEQUENCIA DE SENHA, INICIA MENU
MENU:
; ESPERA O FLAG DE ENVIO DE DADO DO DECODIFICADOR
ESPERA00:
BTFSS PORTB,3
GOTO ESPERA00
_ZERO:;
SEQUENCIA
PARA
COLETAR
DADO
ENVIADO
PELO
DECODIFICADOR
SWAPF PORTB,0
BTFSS PORTB,3 ; ESPERA QUE O FLAG DE ENVIO DE DADO
SEJA DESATIVADO
GOTO CONTINUA00
GOTO _ZERO
CONTINUA00:
ANDLW #0F
BCF STATUS,C ; LIMPA O FLAG CARRY
BCF STATUS,Z ; LIMPA O FLAG ZERO
SUBLW #1
btfss STATUS,Z ; ATIVADO FLAG Z, O NUMERO É '1'
GOTO SEGUE00
GOTO DESATIVA_ALARME
SEGUE00:
btfss STATUS,C ; SE NA SUBTRAÇÃO UTILIZAR CARRY
E NÃO ATIVOU O FLAG Z, ENTÃO O NUMERO É '0'
GOTO SEGUE02
GOTO ATIVA_ALARME
SEGUE02:
; COMO A SUBTRAÇÃO É O NUMERO MENOS O ACUMULADOR,
; O DADO QUE CHEGA AQUI ESTÁ NA FORMA NEGATIVA,
; POR ISSO É FEITA A TROCA DE SINAL PARA FACILITAR O
ENTENDIMENTO
SUBLW #0
SUBLW #1; SEGUNDA DECREMENTAÇÃO, OU SEJA VALOR
INICIAL -2
btfss STATUS,Z ; ATIVANDO O FLAG Z, O NUMERO É
'2'
GOTO SEGUE03
GOTO ATIVA_LUZ
SEGUE03:
SUBLW #0
SUBLW #1; TERCEIRA DECREMENTAÇÃO, OU SEJA VALOR
INICIAL -3
btfss STATUS,Z ; O NUMERO É '3'
GOTO SEGUE04
GOTO DESATIVA_LUZ
SEGUE04:
SUBLW #0
SUBLW #1; QUARTA DECREMENTAÇÃO, OU SEJA VALOR
INICIAL -4
btfss STATUS,Z ; O NUMERO É '4'
GOTO SEGUE05
GOTO ATIVA_VENTILADOR
SEGUE05:
SUBLW #0
SUBLW #1; QUINTA DECREMENTAÇÃO, OU SEJA VALOR
INICIAL -5
btfss STATUS,Z ; O NUMERO É '5'
GOTO SEGUE_ZERO
GOTO DESATIVA_VENTILADOR
SEGUE_ZERO:
SUBLW #0
SUBLW #5; VALOR INICIAL JÁ DECREMENTADO DE 5 E
SUBTRAIDO DE 5, OU SEJA VALOR INICIAL -10
btfss STATUS,Z ; O NUMERO É '10', QUE
CORRESPONDE AO '*'
GOTO SEGUE_ASTERISCO
GOTO ATIVA_ALARME
SEGUE_ASTERISCO:
SUBLW #0
SUBLW #1; VALOR INICIAL JÁ DECREMENTADO DE 1 E
SUBTRAIDO DE 6, OU SEJA VALOR INICIAL -11
btfss STATUS,Z ; O NUMERO É '11', QUE
CORRESPONDE AO '*'
GOTO SEGUE_SHARP
GOTO MENU
SEGUE_SHARP:
SUBLW #0
SUBLW #1; VALOR INICIAL JÁ DECREMENTADO DE 11,
DECREMENTANDO NOVAMENTE, OU SEJA VALOR INICIAL -12
btfss STATUS,Z ; O NUMERO É '12'
GOTO MENU
GOTO SENHA
;PROCEDIMENTO PARA ATIVAR ALARME
ATIVA_ALARME:
; ATIVA O ALARME
MOVLW #1
MOVWF ALARMESTATUS
; DESATIVA A SIRENE
MOVLW #0
MOVWF SIRENESTATUS
;
BANKSEL INTCON
; CASO O RB0 TENHA SIDO ATIVADO E CTONTINUAR ATIVADO,
; OU SEJA O ALARME INICIARÁ A TOCAR A SIRENE LOGO DEPOIS DE
LIGAR ALARME E HAVER OBSTRUÇÃO NOS SENSORES LASERS
; DESSA FORMA, GARANTE O BOM FUNCIONAMENTO DO ALARME
;
BCF INTCON,INTF
BANKSEL PORTB
bsf PORTC,1
GOTO MENU
; PROCEDIMENTO PARA DESATIVAR ALARME
DESATIVA_ALARME:
banksel PORTC
bcf PORTC,1
BCF PORTB,1
MOVLW #0
MOVWF ALARMESTATUS
MOVWF SIRENESTATUS
GOTO MENU
; PROCEDIMENTO PARA LIGAR LUZ
ATIVA_LUZ:
BSF PORTC,0
GOTO MENU
; PROCEDIMENTO PARA DESLIGAR LUZ VIA PIC, MAS CONTINUARÁ ACESO
CASO ESTEJA ESCURO
DESATIVA_LUZ:
BCF PORTC,0
GOTO MENU
; PROCEDIMENTO PARA LIGAR VENTILADOR
ATIVA_VENTILADOR:
BSF PORTB,2
GOTO MENU
; PROCEDIMENTO PARA DESLIGAR O VENTILADOR
DESATIVA_VENTILADOR:
BCF PORTB,2
GOTO MENU
END
3.8 Diagrama de Montagem Geral
Figura 8: Diagrama Geral de Montagem.
4. Anexos
4.1 Fotos do Desenvolvimento do Projeto
Figura 9: Circuito do Sensor de Luz.
Figura 10: Funcionamento Sensor
Alarme.
Figura 11: Testes na Mesa Digital com o Figura 12: Funcionamento do Sensor
Celular.
de Luz.
5. Conclusões
Concluímos com este projeto que o microprocessador tem muitas
qualidades e que com ele podemos fazer milhares de aplicações. Aprendemos
muitas aplicações nesse semestre utilizando microprocessadores e com este
projeto aperfeiçoamos mais ainda esse técnica. Tivemos algumas dificuldades
para desenvolver tal projeto, mas foram resolvidas durante seu processo.
Também vimos como pode ser muito vantajoso para uma residência tal
sistema.
Acreditamos que esse projeto pode ser melhorado um pouco para ser
vendido comercialmente, pois sendo uma ótima idéia muitas pessoas se
interessariam por tal aplicação em sua casa, trazendo muita comodidade.
Tivemos algumas dificuldades para pegar o digito teclado pela pessoa
que liga para a casa, pois primeiro tínhamos programado para quando o bit do
controle fosse pressionado ele guardasse a tecla pressionada. Mas como a
freqüência era alta e ele acabava pegando mais de uma vez cada tecla
pressionada, alteramos a programação para guardar a tecla pressionada
somente quando um numero diferente do anterior fosse pressionado. Com isso
eliminamos o problema, fazendo um correto funcionamento do programa com a
aplicação.
6. Referências

TAUB, Herbert. Circuitos digitais e microprocessadores. São Paulo:
McGraw-Hill, 1984.

ATMEL DATASHEETS. Datasheets. [online]. Disponível na internet em :
www.atmel.com . Acesso em 26/05/2006.

MIGUEL, Afonso Ferreira. Atividade 2 ( microprocessadores II ). [online]
Disponível na internet em. http://www.icet.pucpr.br/afonso. Acesso em 26/03/2006.

MIGUEL, Afonso Ferreira. Atividade 3 ( microprocessadores II ). [online]
Disponível na internet em. http://www.icet.pucpr.br/afonso. Acesso em 20/04/2006.

MIGUEL, Afonso Ferreira. Atividade 11 ( microprocessadores II ). [online]
Disponível na internet em. http://www.icet.pucpr.br/afonso. Acesso em 11/05/2006.

MIGUEL, Afonso Ferreira. Atividade 15 ( microprocessadores II ). [online]
Disponível na internet em. http://www.icet.pucpr.br/afonso. Acesso em 23/04/2006.

DM74LS32 DATASHEETS. Datasheets. [online] Disponível na internet em :
http://www.icet.pucpr.br/afonso . Acesso em 08/06/2006.

LM324 DATASHEETS. Datasheets. [online] Disponível na internet em :
http://www.icet.pucpr.br/afonso . Acesso em 08/05/2006.

PIC16F87X DATASHEETS. Datasheets. [online] Disponível na internet em :
http://www.icet.pucpr.br/afonso . Acesso em 08/05/2006.
Download