DEFINE OSC 4
; PARÁMETROS DEL ADC
DEFINE ADC_BITS 10 ; NÚMERO DE BITS
DEFINE ADC_CLOCK 3 ; USAR CLOCK RC DEL AD
DEFINE ADC_SAMPLEUS 50 ; TIEMPO DE MUESTREO EN 50US
; VARIABLES
RES VAR word; VARIAVLE PARA EL RESULTADO DE LA CONVERSIÓN
VAL var word ;VARIABLE PARA LA SALIDA
TRISA=1
TRISA.0 = 1 ; RA0 (AN0) COMO ENTRADA
TRISB = 0 ; PORTB SALIDA (ADC)
portc=0
trisc=0
luz var portc.1
aran var portc.0
x var byte
ADCON0 = %11000001 ; RELOJ DEL A/D, SELECCIONA AN0
ADCON1 = %10001110 ; ESTABLECER SOLO UN CANAL COMO ANALÓGICO
; VOLTAJE DE REFERENCIA ES VDD
low aran
PORTB = 0
PORTB = %00010011; MUESTRA 1 EN EL DISPLAY
for x= 1 to 5
high luz
pause 100
low luz
pause 100
next
PORTB = %00010010; MUESTRA 1 EN EL DISPLAY
for x= 1 to 5
high luz
pause 100
low luz
pause 100
next
PORTB = %00010001; MUESTRA 1 EN EL DISPLAY
for x= 1 to 5
high luz
pause 100
low luz
pause 100
next
INICIO: ; INICIAR CONVERSIÓN
ADCIN 0, RES ; LEER LA ENTRADA ANALOGICA
VAL = res/102
; DIVIDIMOS ENTRE 113 YA QUE 1023/9 = 113.6
; TAL VES SE PUEDE UTILIZAR 110 PARA UN RANGO CONSIDERABLE
SELECT CASE VAL
CASE 0
PORTB = %01000000; MUESTRA 0 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
high aran
low luz
GOTO INICIO
CASE 1
PORTB = %01000001; MUESTRA 1 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,10,1
high aran
GOTO INICIO
CASE 2
PORTB = %01000010; MUESTRA 2 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,28,1
high aran
CASE 3
PORTB = %01000011; MUESTRA 3 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,51,1
high aran
GOTO INICIO
CASE 4
PORTB = %01000100; MUESTRA 4 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,74,1
high aran
GOTO INICIO
CASE 5
PORTB = %01000101; MUESTRA 5 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,97,1
high aran
GOTO INICIO
CASE 6
PORTB = %01000110; MUESTRA 6 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,100,1
high aran
GOTO INICIO
CASE 7
PORTB = %01000111; MUESTRA 7 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,123,1
high aran
GOTO INICIO
CASE 8
pause 1
PORTB = %01001000; MUESTRA 8 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,146,1
high aran
GOTO INICIO
CASE 9
PORTB = %01001001; MUESTRA 9 EN EL DISPLAY
pause 1
PORTB = %00010000; MUESTRA 0 EN EL DISPLAY
pwm luz,169,1
high aran
GOTO INICIO
CASE 10
PORTB = %01000000; MUESTRA 0 EN EL DISPLAY
pause 1
PORTB = %00010001; MUESTRA 1 EN EL DISPLAY
pwm luz,255,1
high aran
GOTO INICIO
END SELECT
GOTO INICIO
END