Testar um bit do conversor AD

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Testar um bit do conversor AD

Mensagempor Adauto sampaio » 10 Abr 2007 15:51

Boa tarde. To com mais um problema e acho que vcs podem me ajudar.
Fiz uma conversão AD normal, salvei o resultado em dois registradores. Um deles faz a conversão para decimal para mostrar em um display. O outro, eu necessito para fazer um led acender quando a bateria cair abaixo de 10V, que salvei como RES_AD.
Pelos meu cálculos, parti do seguinte principio:
20V (fundo de escala) / 255(conversão AD 8 bits) = 78mV para cada bit de incremento.
Quando o resultado do AD for igual a 128 (1000 0000 bin.) a tensão na entrada será de 10V (vai passar por um divisor, então na entrada do pic será de 2,5V). Pois bem, quando a tensão chegar nesse patamar, necessito acender um led indicando bateria baixa.
A pergunta: é possivel eu conseguir testar somente o ultimo bit desse registrador auxiliar (RES_AD), para fazer acender o led? Eu fiz o seguinte:
BTFSS RES_AD,7 ; para ler somente o ultimo bit
BSF LED ; acende se ultimo bit for 0
BCF LED ; apaga se for 1
Montei tudo em uma PCI, mas não surtiu efeito, o led não acende. Existe outra forma de fazer isso?
Desculpem o post meio grande.
Abraços!!!
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor fabim » 10 Abr 2007 16:33

bom..
Partindo da idéia que o fundo de escala é de 20V.
A tensão de referencia do AD = 5V / 256 == 19mV +/-..

Bom eu faria um divisor resistivo 1:10. quando a tensão aplicada = 20V o pic vai ler 2V = 105 +/-....

A maneira mais fácil é.

resul_AD_8_Bits = resultado da conversão

movlw 104
subwf resul_AD_8_bits, F

BTFSS Status,Z ; Se resul_AD_8_bits menor que 104 então tensão da
bateria esta em 10V ou menor, vai tratar o caso.

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor eletroinf » 10 Abr 2007 16:51

No teu código, o LEd não acende porque, sempre que executar o
BSF LED ; acende se ultimo bit for 0
imediatamente vem o
BCF LED ; apaga se for 1
de forma que o LED acende sim, mas fica ligado por um ou dois ciclos de máquina, de forma que tu não perceberá o acendimento dele.
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Mensagempor Adauto sampaio » 10 Abr 2007 17:19

:oops: Po, não acredito.E não é que era essa m... mesmo!!! Acho que to precisando tirar umas férias, hehe.
Obrigado aos amigos Fabim e Eletroinf pela resposta. Valeu!!!

Abraços!!!
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02


Voltar para PIC

Quem está online

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

x