Autor Tema: Usando el pwm en pic16f876  (Leído 1948 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Usando el pwm en pic16f876
« en: 14 de Enero de 2006, 04:03:00 »
Estoy intentando realizar este prigrama que usa el modulo pwm para encender un led aplicando una potencia creciente, cuando llegue a esta esperar 5 segundos y decremental hasta que la potencia se nula, esperando otros 5 segundos; es mas que todo para familiarizarme con el modulo pwm. El problema es que al ejecutarlo, pues no tiene el efecto deseado simplemente se enciende el led con poca potencia, ¿alguien sabe en que puedo estar fallando? gracias de antemano


Codigo:
   LIST P=16F876
   #INCLUDE <P16F876.INC>

   PERIODO      EQU   0ffh
   TEMPORAL   EQU   020H
   TEMPORAL1   EQU   021H
   DELAY_CONT   EQU   022H

   ORG   00H
   GOTO   INICIO
   ORG   05H
;USA PWM DESDE NULO A MAXIMO Y DECREMENTA HASTA NULA
DELAY
   MOVLW   4EH;(~.78)
   MOVWF   TMR0
DELAY_1
   BTFSS   INTCON,T0IF
   GOTO   DELAY_1
   BCF      INTCON,T0IF
   DECFSZ   DELAY_CONT,F
   GOTO   DELAY
   RETURN

INICIO
   CLRF   PORTA
   CLRF   PORTB
   CLRF   PORTC
   BSF      STATUS,RP0
   BCF      STATUS,RP1;BANCO1
   MOVLW   06H;(00000110)
   MOVWF   ADCON1
   CLRF   TRISA
   CLRF   TRISB
   CLRF   TRISC
   MOVLW   0C7H;(11000111)
   MOVWF   OPTION_REG;TMR0 A 256
   MOVLW   PERIODO-1;CARGA PERIODO
   MOVWF   PR2
   BCF      STATUS,RP0;BANCO 0
   BSF      PORTB,1;PRUEBA
BUCLE
   MOVLW   0CH
   MOVWF   CCP2CON;CONFIGURA CCP2 EN PWM
   MOVLW   0ffh;MAXIMA POTENCIA DESEADA
   MOVWF   TEMPORAL
   MOVWF   TEMPORAL1
   CLRF   CCPR2L
   MOVLW   07H
   MOVWF   T2CON;HABILITA Y PREDIVISOR A 16
AUMENTA
   MOVLW   05H
   MOVLW   DELAY_CONT
   CALL   DELAY
   INCF   CCPR2L,F
   DECFSZ   TEMPORAL,F
   GOTO   AUMENTA
   CALL   ESPERA
DECREMENTA
   MOVLW   05H
   MOVWF   DELAY_CONT
   CALL    DELAY
   DECF   CCPR2L,F
   DECFSZ   TEMPORAL1,F
   GOTO    DECREMENTA
   CALL   ESPERA
DESACTIVAPWM
   CLRF   CCP2CON
   GOTO   BUCLE

ESPERA               ;RETARDO 5 S
   MOVLW   0fah
   MOVWF   DELAY_CONT
   CALL DELAY
   RETURN

END
Saludos desde Córdoba, españa


 

anything