Página 1 de 1

Ajuda na Construção de um Termometro com LCD

MensagemEnviado: 10 Set 2009 15:40
por bru.gomes
Caros amigos,

Estou tentando montar um termometro digital com a familia do 8051, andei vendo uns projetos na internet onde eles apresentam projetos similares ao que eu desejo montar, porem quando eu faço as simulações no Proteus não obtenho nenhum resultado. Gostaria de utilizar um Kit que montei na faculdade para realização deste projeto. O kit contem o 8051, ADC0801, LCD 16x2 e outros perifericos. Alguem ja montou algum projeto semelhante a este?

Ou então se alguem puder me ajudar na programação para ler os dados do ADC, converter e mostrar no LCD, ja me ajudaria muito.

Desde já Obrigado pela ajuda.

Bruno Gomes

MensagemEnviado: 10 Set 2009 16:35
por tcpipchip
Eu ja...
mas com o PIC16f84a...

Pegue o projeto da minha apostila aqui...mas com o adc0808 e simulado no Proteus...

http://www.inf.furb.br/~maw/topicos/topicos_cap_i.PDF

TCPIPCHIP

MensagemEnviado: 10 Set 2009 22:38
por bru.gomes
Obrigado pelo material TCPIPCHIP , vou tentar simular no proteus!

Mas seu algum outro colega poder tambem ajudar com algumas dicas para a famila 8051 eu agradeço!

Obrigado

me parece que é o adc

MensagemEnviado: 12 Set 2009 09:48
por renatogv
Se entendi bem vc esta querendo ler o adc e converter o valor.
bom eu fizemos uma forma que gasta um pouco de ciclo de maquina mas como o teu caso me parece não precisar ser muito rapido, esta serve.

no caso a nossa constante de conversão é 0,02 ou seja cada bit vale este valor.

CONVERTE:

MOV A,ADC ;Move o valor conteúdo de ADC1 para o acumulador
MOV DECI,#0 ;Zera a variável DECI
MOV UNID,#0 ;Zera a variável UNID
MOV CENTI,#0 ;Zera a variável CENTI
CJNE A,#0,L0 ;Verifica se o acumulador é diferente de 0, se sim, salta para L0
MOV A,DECI ;Se não, move o conteúdo de DECI para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente a 0
MOV DECI,A ;Devolve o valor para a variável DECI
MOV A,CENTI ;Se não, move o conteúdo de DECI para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente a 0
MOV CENTI,A ;Devolve o valor para a variável CENTI
MOV A,UNID ;Se não, move o conteúdo de DECI para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente a 0
MOV UNID,A ;Devolve o valor para a variável UNID
LJMP L6 ;Salta para L6

L0:
DJNZ A,L1 ;Decrementa L1, se não for 0 salta para L1
MOV A,DECI ;Move o conteúdo de DECI para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente ao valor de DECI
MOV DECI,A ;Devolve o valor para a variável DECI
MOV A,CENTI ;Move o conteúdo de CENTI para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente ao valor de CENTI
MOV CENTI,A ;Devolve o valor para a variável CENTI
MOV A,UNID ;Move o conteúdo de UNID para o acumulador
ADD A,#30H ;Soma 30H ao acumulador para gerar o código ASCII referente ao valor de UNID
MOV UNID,A ;Devolve o valor para a variável UNID

L6: RET ;Retorna

L1:
PUSH A ;Salva o valor do acumulador na pilha operaciona para que não seja perdido
MOV A,DECI ;Move o conteúdo de DECI para o acumulador
ADD A,#2H ;Adiciona 2 ao acumulador
MOV DECI,A ;Devolve o valor para a variável DECI
CJNE A,#10,VOLTA ;Verifica se o aculumador é igual a dez
MOV DECI,#0 ;Se dim, zera DECI
MOV A,CENTI ;Move o conteúdo de CENTI para o acumulador
ADD A,#1 ;Vai 1 em CENTI
MOV CENTI,A ;Devolve o valor para a variável CENTI
CJNE A,#10,VOLTA ;Verifica se o aculumador é igual a dez
MOV CENTI,#0 ;Se sim, zera CENTI
MOV A,UNID ;Devolve o valor para a variável UNID
ADD A,#1 ;Vai 1 em UNID
MOV UNID,A ;Devolve o valor para a variável UNID

VOLTA:

POP A ;Devolde o valor do acumulador salvo na pilha para o acumulador
LJMP L0 ;Salta para L0



Esta parte foi usada para leitura do AD, o adc usado foi o adc0820.

AD1: ;Se não, TELA vale 1 e...
CLR P3.4 ;Ativa o Chip Select do AD1
NOP ;Espera para sincronizar o funcionamento
SETB P3.0 ;Pulsa P3.0 para gerar clock de conversão
NOP ;Espera para sincronizar o funcionamento
CLR P3.0 ;Pulsa P3.0 para gerar clock de conversão
NOP ;Espera para sincronizar o funcionamentoO
SETB P3.0 ;Finaliza o pedido de conversão
MOV ADC,P1 ;Move o byte recebido do ADC na porta P1 para a variável aDC
SETB P3.4 ;Desativa o Chip-Select do AD1

MensagemEnviado: 12 Set 2009 10:45
por tcpipchip
Parece ser serial sincrono...

MensagemEnviado: 14 Set 2009 08:50
por veioloko
Não pode ser em C não?

tem milhares deste tipo de projeto na internet mesmo.
pegue uma arquitetura 8051 que vai entender o conceito da coisa....

Eu não sou muito fã de simuladores.....
partiria logo pro kitzinho....