Adc, codigo

Solo disponible en BuenasTareas
  • Páginas : 2 (443 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de mayo de 2011
Leer documento completo
Vista previa del texto
LIST P=16F877A
INCLUDE "P16F877A.INC"
__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _CP_OFF & _BODEN_OFF

ADDR_L equ 0x20
DATA_L equ 0x21

CBLOCK 40H
SAVE_FILEBUFFER
F1
CONT
CONT2
CONT3
d1
d2
d3
ENDC

ORG 0
GOTO INICIO

ORG 5
;-----------SOFTWARE PRINCIPAL-------------
INICIO
CLRF PORTD
CLRFPORTC

BSF STATUS,5
MOVLW 07H
MOVWF CMCON
BSF PORTA,0
MOVLW 0XFF
MOVWF PORTB
CLRF PORTC
CLRF PORTD
MOVLW 1EH
MOVWF ADCON1
MOVLW 07H
MOVWF81H
BCF STATUS,5
MOVLW 81H
MOVWF ADCON0
CLRF PORTC
CLRF PORTD
CLRF SAVE_FILE
CLRF BUFFER
CLRF CONT
CLRF CONT2
CLRF CONT3
CLRF F1
CALLTIMER_2
WAIT
BTFSS PORTB,7 ;ESPERANDO A INICIAR JOB CON PUSH BOTON
GOTO Y
BTFSS PORTB,6
GOTO X
GOTO WAIT
Y BTFSC PORTB,7 ;ANTIRREBOTE
GOTO Y
GOTO ADQUISICIONX BTFSC PORTB,6
GOTO X
GOTO ADQUISICION_2

;------------------ADC---------------------
ADQUISICION
BSF ADCON0,GO ;COMIENZA ADC
ADC
BTFSC ADCON0,GO
GOTO ADCMOVF ADRESH,W ;ADQUIRIENDO DATO
MOVWF PORTC
MOVWF F1
MOVLW 0XF0
ANDWF F1 ;DIVIDIENDO ENTRE 16
SWAPF F1,W
ADDWF SAVE_FILE ;SE SUMA PARA IR PROMEDIANDO
INCFCONT2 ;SE CHEKA 16 LECTURAS
MOVLW .17
SUBWF CONT2,W
BTFSS STATUS,Z ;FUERON 16?
GOTO ESPERA ;NO
BCF STATUS,Z ;SI
CLRF CONT2
MOVF SAVE_FILE,W ;SE PROCEDE ADESPLEGAR AL PUERTO D
MOVWF PORTD
INCF CONT3 ;COMPROBANDO QUE FUERAN 3 LECTURAS PARA
MOVLW .3 ;TENER UN TIEMPO MAXIMO DE TRABAJO DE 25 SEGUNDOS MAX.
SUBWF CONT3,W
BTFSSSTATUS,Z ;FUERON 3 LECTURAS?
GOTO ESPERA ;NO
BCF STATUS,Z ;SI, REINICIA
;---------------SYSTEM OFF-------------------
CALL T_1
CLRF PORTC
CLRF PORTD
GOTO INICIO...
tracking img