Está en la página 1de 5

;-----------------------------GRAFICA-----------------------------------LIST

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'

;LIMPIA TODA LA PANTALLA


;COLOCA EN EL RENGLON 1
;COLOCA EN EL RENGLON2
;ENCIENDE EL DISPLAY
;VA A LA DIDERCCION 80H

;-------------------------------------------------------------------------------------------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

;---------------------------- CONVERSION ANALOGICA - DIGITAL ----------------------------------------------ADQUI:

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

;NO? PREGUNTA DE NUEVO


;SI, CONTINUA
;LEE LA PARTE MAS SIGNIF

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

También podría gustarte