Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P=16F887
INCLUDE <P16F887.INC>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OF
F & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF &_INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
CBLOCK 0X20
NUM1,NUM2,NUM3
POINTER
UNIDADES
DECENAS
CENTENAS
MILLARES
DATOL
UNIDADEST
DECENAST
CENTENAST
SAMPLE
SHIFT
PROMEDIO
CONTADOR
VALOR
COMP
CONTA_2
CONTA_1
ENDC
CBLOCK 0X70 ;SE COLOCA A DATOL EN UNA DE LAS LOCALIDADES DE
DATOH
grafico
;MEMORIA QUE ESTAN ESPEJEADAS EN BANCO
0 Y BANCO1
ENDC
;-------------------- DEFINICION DE LOS PINES PARA LA PANTALLA LCD -------------------------#DEFINE RS PORTD,6
#DEFINE EN PORTD,7
;-------------------- PUERTO DONDE ESTA CONECTADO LA PANTALLA LCD --------------------------PORTLCD EQU PORTC
;-------------------- COMANDOS DE LA PANTALLA ----------------------------------------------LIMPIAR
RENGLON1
RENGLON2
DISON
HOME
EQU
EQU
EQU
EQU
EQU
B'00000001'
B'10000000'
B'11001011'
B'00001100'
B'00000010'
;-------------------------------------------------------------------------------------------ORG
0X00
GOTO
INICIO
;--------------------------------------------------------------------------------------------INICIO:
bcf
bsf
clrf
STATUS,RP1
STATUS,RP0
TRISC
clrf
bsf
bsf
bcf
bcf
bcf
clrf
TRISD
;CAMBIO A BANCO 1
;CONFIGURO TODO PORTD CO
MO SALIDA
TRISE,0
TRISE,1
TRISB,0
STATUS,RP0
STATUS,RP1
PORTD
;CAMBIO A BANCO 0
;APAGO POSIBLES LATCHS E
N PORTD
clrf
VALOR
;-------------------------------------------------------------------------------------------;------------------------------------ PUERTO RA0 --------------------------------------------------OPERA0 clrf
PORTC
;APAGO POSIBLES LATCHS EN PORTC
movlw .30
movwf COMP
call
SEL_CANAL0
call
INITLCD
movlw LIMPIAR
;COMANDO DE LIMPIEZA DE PANTALLA
call
CMD
OP0
bsf
PORTB,0
movlw RENGLON1
call
DATO
movlw 'R'
call
DATO
movlw 'A'
call
DATO
movlw '0'
call
DATO
movlw ':'
call
DATO
movlw RENGLON2
;COMANDO PARA EMPEZAR A ESCRIBIR A PARTI
R
call
CMD
;DE LA PRIMERA DIRECCION DEL REN
GLON2
clrf
PROMEDIO
;SE LIMPIA AL REGISTRO PROMEDIO
call
ADQUI
;SE LLAMA A LA SUBRUTINA DE ADQUISICION
DE
;DATOS DEL ADC
GRAFIC movlw
aqui
b'11000000'
call
CMD
movf
DATOH,w
movwf grafico
movlw 07h
subwf grafico,f
BTFSS STATUS,C
GOTO
OPERA0
MOVLW B'11111111'
CALL DATO
GOTO
aqui
call
bsf
btfsc
SampleTime
ADCON0,GO
ADCON0,GO
;RETARDO DE ADQUISICION
;INICIA LA CONVERSION
;YA SE TERMINO LA CONVER
goto
BANKSEL
movf
$-1
ADRESH
ADRESH,W
movwf
bcf
bsf
movf
DATOH
STATUS,RP1
STATUS,RP0
ADRESL,W
;GUARDALO EN DATOH
;CAMBIO A BANCO 1
;LEE LA PARTE MENOS SIGN
movwf
BANKSEL
bcf
rrf
DATOL
PORTB
STATUS,C
DATOH,F
;GUARDALO EN DATOL
;CAMBIO A BANCO 0
;BORRA EL BIT DE ACARREO
;ELIMINO EL BIT MENOS SI
SION?
ICATIVA
IFICATIVA
GNIFICATIVO
rrf
DATOL,F
;PARA OCUPAR SOLO 9 BITS
return
SampleTime: movlw
.255
movwf SAMPLE
ESPERA_S:
nop
nop
decfsz SAMPLE,F
goto
ESPERA_S
return
;---------------------------------- INICIALIZACION DE LCD -------------------------------------------------INITLCD:
movlw B'00111000'
;CONFIGURACION TAMANO DE
L BUS DATOS "8" BITS,NUMERO DE LINEAS "2",MATRIZ DE "5X7" (FUNCION SET)
call
CMD
movlw B'00000001'
;BORRA EL MODULO LCD Y C
OLOCA EL CURSOR EN LA PRIMERA POSICION (DIRECCION 80H).
call
CMD
movlw B'00000110'
;INCREMENTA EL CURSOR Y
LA PANTALLA SE COLOCA EN MODO NORMAL
call
CMD
movlw DISON
;ENCIENDE EL DISPLAY
call
CMD
movlw HOME
;COLOCA EL CURSOR EN POS
ICION INICIO Y QUE COMIENCE A DESPLAZARSE DE LA POSICION ORIGINAL.
call
CMD
return
;############################## MODOS DE CONFIGURACION DE LA PANTALLA LCD ######
#########################################
;------------------------------- MODO DE DATOS -----------------------------------------------DATO
movwf PORTLCD
bsf
RS
; CUANDO ESTA EN "1" EST
A EN MODO DE DATOS.
nop
nop
nop
bsf
EN
call
RETARDO5MS
bcf
EN
return
;------------------------------- MODO DE CONTROL -----------------------------------------------CMD
movwf PORTLCD
bcf
RS
; CUANDO ES "0" ESTA EN
MODO DE CONTROL.
nop
nop
nop
bsf
EN
call
RETARDO5MS
bcf
EN
return
;----------------------------------- RETARDOS -----------------------------------------------RETARDO5MS
movlw D'1'
movwf NUM3
OTRA25
movlw D'100'
movwf NUM2
OTRA15
movlw D'166'
movwf NUM1
OTRA5
decfsz NUM1,F
goto
OTRA5
decfsz NUM2,F
goto
OTRA15
decfsz NUM3,F
goto
OTRA25
return
;----------------------------------------------------------------------------------------RETARDO
movlw D'3'
;3
movwf NUM3
OTRA25A
movlw D'200'
;200
movwf NUM2
OTRA15A
movlw D'166'
;166
movwf NUM1
OTRA5A
decfsz NUM1,F
goto OTRA5A
decfsz NUM2,F
goto OTRA15A
decfsz NUM3,F
goto OTRA25A
return
;----------------------------------------------------------------------------------reta_20ms
movlw .250
movwf CONTA_2
movlw .250
movwf CONTA_1
nop
decfsz CONTA_1
goto
$-2
decfsz CONTA_2,f
goto
$-6
return
;------------------------------- SELECCION DE CANAL ANALOGICO - RA0 ------------
--------------------------------------SEL_CANAL0:
bcf
STATUS,RP1
;CAMBIO A BANCO 1
bsf
STATUS,RP0
movlw
B'00000000'
A IZQUIERDA
movwf
ADCON1
COMO VALOR DE COMPARACION VDD Y VSS COMO VREF
bcf
TRISB,0
; LED INDICADOR DEL TIEMPO
bsf
STATUS,RP1
;CAMBIO A BANCO 3
bsf
STATUS,RP0
movlw
b'00011111'
RACION COMO ENTRADA ANALOGICA AN0,AN1,AN2,AN3,AN4
movwf
ANSEL
movlw
b'00000000'
O DIGITAL
movwf
ANSELH
bcf
STATUS,RP1
;CAMBIO A BANCO 0
bcf
STATUS,RP0
movlw
B'11000001'
OJ Frc DEL ADC
movwf
ADCON0
DEMOS EL CONVERTIDOR
return
END
;JUSTIFICACIN A L
;SE TOMA
;CONFIGU
;COMO I/
;ELEGIMOS EL REL
;Y ENCEN