Ajuda na Construção de um Termometro com LCD

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Ajuda na Construção de um Termometro com LCD

Mensagempor bru.gomes » 10 Set 2009 15:40

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
bru.gomes
 
Mensagens: 2
Registrado em: 03 Set 2009 18:16

Mensagempor tcpipchip » 10 Set 2009 16:35

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
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor bru.gomes » 10 Set 2009 22:38

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
bru.gomes
 
Mensagens: 2
Registrado em: 03 Set 2009 18:16

me parece que é o adc

Mensagempor renatogv » 12 Set 2009 09:48

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
renatogv
 
Mensagens: 2
Registrado em: 10 Mai 2009 22:36

Mensagempor tcpipchip » 12 Set 2009 10:45

Parece ser serial sincrono...
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor veioloko » 14 Set 2009 08:50

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....
veioloko
Byte
 
Mensagens: 348
Registrado em: 10 Nov 2006 06:01
Localização: São Bernardo do Campo


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x