mám vážný problém s PIC16F877A [ADC]

G

Ghassan Al-Mutawa

Guest
Dobrý den, každý.Jsem unavená snaží tak usilovně na dlouhou dobu k vyřešení problému převodník ADC na pic16f877a, problém je, že dělám sporné přeměny a uvedení hodnotě více než 8 LED portu B a 2 LED diody z přístavu D, Dobře konverze stále mění s velkými hodnotami, i když vstup byl stabilní hodnotu.zvlášť když jsem v blízkosti drátu, že přeskočí na vyšší hodnoty.To způsobuje nepřesné návrhu systému.Snažil jsem se číst listu několikrát, myslím, že mám problém s 2TAD kondenzátor získal čas k udělení absolutoria pro další přeměny a další problém je statická poplatky činí hodnoty se liší ve velkých hodnot.Budu post níže uvedený kód a plz zkuste na pomoc lidem jsem na velký problémKód:

PROCESOR P16F877A

INCLUDE "P16F877A.INC";******************************

ORG 0x00

GOTO HLAVNÍ

;******************************HLAVNÍCALL POČÁTEČNÍLOOP1BSF ADCON0, GOLOOPBTFSS PIR1, ADIF

GOTO LOOP

BCF PIR1, ADIF

MOVF ADRESL, W

MOVWF TXREG

MOVWF PORTB

MOVF ADRESH, W

MOVWF TXREG

MOVWF PORTD

GOTO LOOP1;******************************POČÁTEČNÍBANKSEL TRISB

CLRF TRISBBANKSEL TRISD

CLRF TRISDBANKSEL TRISC

MOVLW B'10000000 'BANKSEL TRISA

MOVLW 0xFF

MOVWF TRISABANKSEL ADCON0

MOVLW B'11000001 '

MOVWF ADCON0BANKSEL ADCON1

MOVLW B'00000001 '

MOVWF ADCON1BANKSEL INTCON

BSF PIE1, Adie

BSF INTCON, PEIE

BSF INTCON, GIEBANKSEL TXSTA

MOVLW 0x24

MOVWF TXSTABANKSEL RCSTA

MOVLW 0x90

MOVWF RCSTABANKSEL SPBRG

MOVLW 0.25

MOVWF SPBRGBANKSEL PORTC

CLRF PORTD

CLRF PORTB

CLRF PORTC

CLRF PORTARETURN

;******************************

END
 
Ahoj,

Nejsem expert ADC, ale používá termistor / ADC vstupy bez skutečných problémů, na dlouhou dobu.

Váš kód vypadá dobře, i když spíše než použití přerušení zkontrolovat, zda je převod hotový jsem použít běžnější btfsc ADCON0, GO_DONE

Chcete-li zkontrolovat ADC parametry jsou dobré, můžete nám to šikovná malá Multicalc utility.

Poté, co jste udělal konverzi, tam je několik pokynů k výstupu data, pak spustíte konverzi znovu, ADC potřebuje čas, aby stabalise atd., takže jsem měl přidat v krátkém zpoždění, pár msecs by nemělo mít vliv na program.

Když jsem se použít 10bitové ADC výsledek se vrátil na LCD jako 0xnnnn objeví nějaké chvění na několika posledních míst, jak si získat ty nepatrné rozdíly v hodnotách vzhledem k obvodu / omezení, jsem obvykle odejdou poslední 2 číslice jsou bezvýznamné výsledek potřebuji, ale jsem také spustit výsledky i když 16 krát průměr vedení, které dávají mnohem stabilnější hodnoty.

Mám používá pouze VDD pro výše uvedené, ale vypadá to, že používáte Vref, takže pokud to není dostatečně stabilní, že by se mohlo zdát vaše hlavní psu / Vdd potřebuje lepší filtrování?
Pro ještě lepší ADC nabídky, pak použijte referenční diody napětí je doporučeno.
Si můžete prohlédnout například zde http://www.winpicprog.co.uk/pic_tutorial_analogue_board.htm

Nemusíte podrobnosti z vás obvodu / senzor, ale udržet drát krátké, případně délka pak použít stíněný kabel s obrazovkou vázané na zem.
100nF víčko od signálu vstupního k 0V by měla také pomoci věci.
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

 
Díky můj přítel Určitě si to vyzkoušet hned a poslat zpátky na výsledky

 

Welcome to EDABoard.com

Sponsor

Back
Top