de ajuda

B

Beng123

Guest
Sou novo no EDAboard e tem agora uma pergunta a fazer.
Como eu sei quando a conversão analógica para digital, armazenar o resultado em wil ADRESH E ADRESL.
Alguém pode me dizer o que os diferentes sobre eles?
if i wan jz enviar um bit,
e desligar apenas.
como eu pegar o resultado de 1 ou 0 ADCON armazenados lugar?

 
u pode ver ficha pic 16F877A.

'(*
'Project name *:
'ADC_on_Leds
"Direitos de Autor *:
'(C mikroElektronika), 2005 - 2006
'* Histórico da Revisão:
"20050312:
'- Versão inicial.
«Descrição *:
'Este código demonstra usando função da biblioteca para a conversão ADC
'(10 bits) O resultado é exibido na PORTD e PORTB
'(Dois bits mais significativos são exibidos no PORTB).
"Configuração de teste *:
'MCU: PIC16F877A
'Dev.Board: EasyPIC3
'Oscillator: HS, 8,000 MHz
'Ext.Módulos: Nenhum
'SW: mikroBasic v5.0 ou superior
'* NOTAS:
'- Se você estiver usando EasyPIC3, uso desde jumper na parte superior direita para ligar o potenciómetro para RA2
'*)
ADC_on_Leds programa

temp_res Dim palavra

principais:
ADCON1 = entradas configure $ 80 'analógica e Vref
PORTA designar FF TRISA = $ 'como entrada
TRISB = $ 3F 'RB7 designar, RB6 pinos como saídas
TRISD = $ 0 'PORTD designar como saída
while true
temp_res = ADC_read (2)
"Agora você pode usar temp_res ... '
PORTD = temp_res 'enviar mais 8 bits para PORTD
PORTB palavra = (temp_res>> 2)
'Enviar dois bits mais significativos para PORTB, pinos RB7, RB6
wend
fim.

 
Oi!
Como o resultado ADC é de 10 bits de largura, portanto, ela é armazenada em dois registros diferentes ADRESH e ADRESL.O ADRESH contém os bits mais significativos, enquanto que a ADRESL contém os bits menos significativos.

I don't understand why u wanna get apenas 1 ou 0 a partir dos registos resultado ADC.
U Se quiser fazer uma decisão com base no resultado da ADC então comparar o resultado com algum nível fixado para obter o exemplo, decisão

Resut unsigned int;
# define MAX_VALUE 177;

resultado = ADRESH;
result = (result <<

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Legal" border="0" />

| ADRESL;

resultado agora contém resultado total de conversão ADC.U pode compará-lo com qualquer coisa para obter um exemplo de decisão

if (resultado> MAX_VALUE)
LED = 1;
diferente
LED = 0;

Espero que ajude.
Atenciosamente.Adicionado após 22 minutos:Desculpe a linha atual é
result = (result <<8 | ADRESL);

i donot saber como o smiley entrou na equação?

Atenciosamente.

 
waseem escreveu:

Oi!

Como o resultado ADC é de 10 bits de largura, portanto, ela é armazenada em dois registros diferentes ADRESH e ADRESL.
O ADRESH contém os bits mais significativos, enquanto que a ADRESL contém os bits menos significativos.I don't understand why u wanna get apenas 1 ou 0 a partir dos registos resultado ADC.

U Se quiser fazer uma decisão com base no resultado da ADC então comparar o resultado com algum nível fixado para obter o exemplo, decisãoResut unsigned int;

# define MAX_VALUE 177;resultado = ADRESH;

result = (result <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Legal" border="0" /> | ADRESL;resultado agora contém resultado total de conversão ADC.
U pode compará-lo com qualquer coisa para obter um exemplo de decisãoif (resultado> MAX_VALUE)

LED = 1;

diferente

LED = 0;Espero que ajude.

Atenciosamente.
Adicionado após 22 minutos:
Desculpe a linha atual é

result = (result <<8 | ADRESL);i donot saber como o smiley entrou na equação?Atenciosamente.
 
Os valores são armazenados automaticamente no ADRESH e ADRESL após a conversão for concluída.Você não tem que mover dados em que os registros, apenas lê-los.
Você também pode configurar o módulo ADC a esquerda ou direita justificada.Com a esquerda, o MSB ADC é o bit 7 de ADRESH, o LSB e 2 são armazenados em bits 7,6 ou ADRESL.Justificado à direita, é simplesmente o contrário.

e 'result = (result <<8 | ADRESL);' é C ou básico que eu acredito.

BuriedCode.

 
Buriedcode escreveu:

Os valores são armazenados automaticamente no ADRESH e ADRESL após a conversão for concluída.
Você não tem que mover dados em que os registros, apenas lê-los.

Você também pode configurar o módulo ADC a esquerda ou direita justificada.
Com a esquerda, o MSB ADC é o bit 7 de ADRESH, o LSB e 2 são armazenados em bits 7,6 ou ADRESL.
Justificado à direita, é simplesmente o contrário.e 'result = (result <<8 | ADRESL);' é C ou básico que eu acredito.BuriedCode.
 
Oi!

Eu pensei que você estava escrevendo código em linguagem C ur.Se ur usando a montagem, em seguida, o código será totalmente diferente.Além disso, como já postou que donot u tem que armazenar o resultado em ADRESH e registra ADRESL.O ADC automaticamente coloca o resultado nos registos após a conversão for concluída.U tem que ler o resultado a partir desses registros e colocá-lo em algumas variáveis antes de iniciar uma nova conversão.
Se você está usando a montagem, então eu posso dar ua código que irá não só salvar o resultado, mas também convertê-lo em BCD.que podem ser facilmente exibidos.

Atenciosamente.

 
waseem escreveu:

Oi!Eu pensei que você estava escrevendo código em linguagem C ur.
Se ur usando a montagem, em seguida, o código será totalmente diferente.
Além disso, como já postou que donot u tem que armazenar o resultado em ADRESH e registra ADRESL.
O ADC automaticamente coloca o resultado nos registos após a conversão for concluída.
U tem que ler o resultado a partir desses registros e colocá-lo em algumas variáveis antes de iniciar uma nova conversão.

Se você está usando a montagem, então eu posso dar ua código que irá não só salvar o resultado, mas também convertê-lo em BCD.
que podem ser facilmente exibidos.Atenciosamente.
 
Oi Beng123,
Desde Adc de Pic micro é de 10 bits, o resultado também é 10 bits e, portanto, para manter o resultado, Pic é ter registo 2x 8 bits.Baixa 8 bits são armazenados em Adresl e mais 2 bits são armazenadas no registo Adresh.Outros 6 bits do registo de Adresh permanece em branco.Se você precisar o resultado de 10 bits, você tem que usar os dois registos.Se você quiser resultado 8 bits, você pode definir o bit ADFM no registo Adcon1 justificação para torná-lo direito e, em seguida, usar apenas registrar Adresl para obter o menor resultado 8 bits.Ou você pode fazer o bit addm 0 e, portanto, o resultado será justificado à esquerda e você use apenas registrar Adresh para obter o maior 8 bits, deixando 2 bits menos significativos do registo Adresl.
Por favor, siga a porção ADC do Datasheet do PIC que você pretende utilizar, e você será clara.É muito fácil de entender.Obrigado.

 

Welcome to EDABoard.com

Sponsor

Back
Top