Sari la conținut
ELFORUM - Forumul electronistilor

pic16F876 ADC


cosmin_ctin2005

Postări Recomandate

  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • cosmin_ctin2005

    3

  • francezu

    1

Top autori în acest subiect

am facut urmatorul program:

Main

BANK1

 

movlw 0xFF

movwf TRISA

movlw 0xD1

movwf ADCON0

movlw 0x02

movwf ADCON1

movlw 0x00

movwf TRISB

BANK0

 

Loop

bsf ADCON0,2

movf ADRESL,w

movwf valoare

goto Loop

 

in "valoare" imi afiseaza valoarea 216 chiar daca tensiunea din pinul RA2 se modifica de la 0 la 5V.

 

unde gresesc?

Link spre comentariu

Incearca asa!

    list      p=16f876            ; list directive to define processor    #include <p16f876.inc>        ; processor specific variable definitions     __CONFIG 3F73		cblock	0x20		valoareL		valoareH	endc	org	0x0000start	banksel	TRISA	movlw	0xff	             movwf	TRISA	movlw	0x00	movwf	TRISB	movwf	TRISC	banksel	PORTA		movlw	0xd1   	movwf	ADCON0	banksel	ADCON1	movlw	0x82	movwf	ADCON1	banksel	PORTALoop	bsf	ADCON0,2	btfsc	ADCON0,2	goto	$-1	banksel	ADRESL	movfw	ADRESL	banksel	ADRESH	movwf	valoareL	movfw	ADRESH	movwf	valoareH	goto	Loop	end
De obicei dupa ce ai initiai un ciclu de conversie trebuie sa astepti ca acesta sa se fi incheiat inainte sa citesti rezultatul.Acest lucru il faci prin interogarea bit-ului GO/DONE din registrul ADCON0.De asemenea ai grija cu fiecare registru carei banci ii apartine.
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări