PWM_Scr_5

2
C:\Proyectos PIC\Curso Actualización\PWM_Scr_5.pbp '**************************************************************** '* Name : PWM_Scr.BAS * '* Autor : David Lovato * '* Fecha : 17/04/2015 * '**************************************************************** ;@ device INTRC_OSC ; Utiliza un cristal externo de 4 MHz @ device HS_OSC @ device BOD_OFF ; Apaga el boden de consumo @ device WDT_OFF @ device MCLR_OFF @ device PWRT_OFF DEFINE OSC 4 ;OSCCON=%01110100 DEFINE ADC_BITS 8 ;Fija número de bits del resultado (5,8,10) DEFINE ADC_CLOCK 3 ;Fija EL CLOCK (rc = 3) DEFINE ADC_SAMPLEUS 50 ;Fija el tiempo de muestreo en Us ;ADC_SAMPLEUS es el número de micro segundos que el programa espera ;entre fijar el canal y comenzar la conversión analogica/digital. TRISA = %11111111 ;el puerto A es de entrada ADCON1 = %10001110 ;el puerto A.1 es conversor los demás digitales TRISB = 0 LED VAR portb . 3 ;nombre para el pin B.3 CRUCE_CERO VAR porta . 2 ;nombre para el pin B.4 cruce por cero CONTROL VAR portb . 0 ;nombre para el pin B.6 salida de control DATOS VAR BYTE ;crear variable datos para guardar el resultado X VAR BYTE LOW CONTROL TEST : FOR X = 1 TO 5 HIGH LED PAUSE 50 LOW LED PAUSE 50 NEXT PROG : GOSUB CAMBIO IF CRUCE_CERO = 1 THEN DISPARO LOW CONTROL GOTO PROG CAMBIO : ADCIN 0 , DATOS ;leer el canal 0 y guardarlo en datos IF DATOS > 229 THEN MAXIMO ;si supera a 229 mantener al 90% IF DATOS < 29 THEN MINIMO ;si baja de 26 mantener al 10% DATOS = ( DATOS * ( 8 / 255 ) ) RETURN ;volver a medir el conversor A/D MAXIMO : HIGH LED ;encender el led DATOS = 229 GOTO PROG ;regresar a prog MINIMO : HIGH LED ;encender el led DATOS = 29 GOTO PROG ;ir a prog DISPARO : PAUSE DATOS Page 1 of 2 20/04/2015 13:52

description

pic

Transcript of PWM_Scr_5

Page 1: PWM_Scr_5

C:\Proyectos PIC\Curso Actualización\PWM_Scr_5.pbp

'****************************************************************'* Name : PWM_Scr.BAS *'* Autor : David Lovato *'* Fecha : 17/04/2015 *'****************************************************************;@ device INTRC_OSC ; Utiliza un cristal externo de 4 MHz@ device HS_OSC@ device BOD_OFF ; Apaga el boden de consumo @ device WDT_OFF@ device MCLR_OFF@ device PWRT_OFF

DEFINE OSC 4;OSCCON=%01110100

DEFINE ADC_BITS 8 ;Fija número de bits del resultado (5,8,10)DEFINE ADC_CLOCK 3 ;Fija EL CLOCK (rc = 3) DEFINE ADC_SAMPLEUS 50 ;Fija el tiempo de muestreo en Us;ADC_SAMPLEUS es el número de micro segundos que el programa espera ;entre fijar el canal y comenzar la conversión analogica/digital.

TRISA =%11111111 ;el puerto A es de entradaADCON1 =%10001110 ;el puerto A.1 es conversor los demás digitalesTRISB=0

LED VAR portb.3 ;nombre para el pin B.3CRUCE_CERO VAR porta.2 ;nombre para el pin B.4 cruce por ceroCONTROL VAR portb.0 ;nombre para el pin B.6 salida de controlDATOS VAR BYTE ;crear variable datos para guardar el resultadoX VAR BYTE

LOW CONTROLTEST:FOR X=1 TO 5HIGH LEDPAUSE 50LOW LED PAUSE 50NEXT

PROG: GOSUB CAMBIO IF CRUCE_CERO=1 THEN DISPARO LOW CONTROL GOTO PROG

CAMBIO: ADCIN 0, DATOS ;leer el canal 0 y guardarlo en datos IF DATOS > 229 THEN MAXIMO ;si supera a 229 mantener al 90% IF DATOS < 29 THEN MINIMO ;si baja de 26 mantener al 10% DATOS = (DATOS*(8/255))RETURN ;volver a medir el conversor A/D

MAXIMO: HIGH LED ;encender el led DATOS = 229GOTO PROG ;regresar a prog MINIMO: HIGH LED ;encender el led DATOS = 29GOTO PROG ;ir a prog DISPARO: PAUSE DATOS

Page 1 of 2 20/04/2015 13:52

Page 2: PWM_Scr_5

C:\Proyectos PIC\Curso Actualización\PWM_Scr_5.pbp

HIGH CONTROL PAUSEUS 100 LOW CONTROLGOTO PROG END

Page 2 of 2 20/04/2015 13:52