Analóg bemenet (16F873)

 

 

; PIC16F873 4MHz
; ANALÓG BEMENET
; AKTÍV ANALÓG BEMENET A RA0/AN0 (PIN2)
; PÓTMÉTER BEKÖTÉSE [POSITÍV]-[RA0/AN0]-[GND]
; BINÁRIS KIJELZÉS LEDEKKEL PORTC:LO, PORTB:HI 
; A 10 BITES ÉRTÉK FELOSZTÁSA: XXXXXXXX ......XX
; LO ÉRTÉK 0-1 BITEK: PORTC:  ......XX	RC6-RC7  (17-18PIN)
; HI ÉRTÉK 2-9 BITEK: PORTB:  XXXXXXXX	RB0-RB7  (21-28PIN)
; JErvin © 2004

LIST P=16F873
#include "P16F873.INC" 
__config  _CP_OFF & _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _BODEN_ON 



    	ORG	0x0000
	GOTO	GYI
	ORG	0x004
	RETFIE

GYI
	BCF	STATUS, RP1	; BANK1- ÉS BANK0-NAK RP1 MINDIG NULLA
	BSF	STATUS, RP0	; BANK1
	MOVLW	0x00		; PORTB, PORTC KIMENETEK	
	MOVWF	TRISB		; SET
	MOVWF	TRISC		; SET
	MOVLW	b'00000000'	; BALRA IGAZÍT, RAx/ANx ANALÓG BEMENETEK
	MOVWF	ADCON1		; SET
	BCF	STATUS, RP0	; BANK0   
	MOVLW	b'00000001'	; FOSC/2, RA0 AKTÍV CSATORNA , BE
	MOVWF	ADCON0		; SET

FOPROG
	BSF	ADCON0, GO	; ANALÓG KONVERZIÓ START (GO/DONE BIT )
D1
	BTFSC	ADCON0, GO	; VÁRAKOZÁS, AMÍG KÉSZ (GO/DONE BIT)
	GOTO	D1
	MOVFW	ADRESH		; RESULTHIGH 2..9 BITEK
	MOVWF	PORTB		; 0..6 = XXXXXXXX
	BSF	STATUS, RP0	; BANK1   
	MOVFW	ADRESL		; RESULTLOW 0..1 BITEK !LEFT JUST MIATT 6..7 BITEN
	BCF	STATUS, RP0 	; BANK0
	MOVWF	PORTC		; 6..7 = ......XX
	GOTO	FOPROG
		
END