• Domingo 22 de Diciembre de 2024, 13:18

Autor Tema:  Usando El Pwm En El 16f876  (Leído 2533 veces)

Kain589

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Usando El Pwm En El 16f876
« en: Domingo 15 de Enero de 2006, 13:50 »
0
Estoy intentando realizar este programa 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


Código: Text
  1. LIST P=16F876
  2.   #INCLUDE <P16F876.INC>
  3.  
  4.   PERIODO    EQU  0ffh
  5.   TEMPORAL  EQU  020H
  6.   TEMPORAL1  EQU  021H
  7.   DELAY_CONT  EQU  022H
  8.  
  9.   ORG  00H
  10.   GOTO  INICIO
  11.   ORG  05H
  12. ;USA PWM DESDE NULO A MAXIMO Y DECREMENTA HASTA NULA
  13. DELAY
  14.   MOVLW  4EH;(~.78)
  15.   MOVWF  TMR0
  16. DELAY_1
  17.   BTFSS  INTCON,T0IF
  18.   GOTO  DELAY_1
  19.   BCF    INTCON,T0IF
  20.   DECFSZ  DELAY_CONT,F
  21.   GOTO  DELAY
  22.   RETURN
  23.  
  24. INICIO
  25.   CLRF  PORTA
  26.   CLRF  PORTB
  27.   CLRF  PORTC
  28.   BSF    STATUS,RP0
  29.   BCF    STATUS,RP1;BANCO1
  30.   MOVLW  06H;(00000110)
  31.   MOVWF  ADCON1
  32.   CLRF  TRISA
  33.   CLRF  TRISB
  34.   CLRF  TRISC
  35.   MOVLW  0C7H;(11000111)
  36.   MOVWF  OPTION_REG;TMR0 A 256
  37.   MOVLW  PERIODO-1;CARGA PERIODO
  38.   MOVWF  PR2
  39.   BCF    STATUS,RP0;BANCO 0
  40.   BSF    PORTB,1;PRUEBA
  41. BUCLE
  42.   MOVLW  0CH
  43.   MOVWF  CCP2CON;CONFIGURA CCP2 EN PWM
  44.   MOVLW  0ffh;MAXIMA POTENCIA DESEADA
  45.   MOVWF  TEMPORAL
  46.   MOVWF  TEMPORAL1
  47.   CLRF  CCPR2L
  48.   MOVLW  07H
  49.   MOVWF  T2CON;HABILITA Y PREDIVISOR A 16
  50. AUMENTA
  51.   MOVLW  05H
  52.   MOVLW  DELAY_CONT
  53.   CALL  DELAY
  54.   INCF  CCPR2L,F
  55.   DECFSZ  TEMPORAL,F
  56.   GOTO  AUMENTA
  57.   CALL  ESPERA
  58. DECREMENTA
  59.   MOVLW  05H
  60.   MOVWF  DELAY_CONT
  61.   CALL   DELAY
  62.   DECF  CCPR2L,F
  63.   DECFSZ  TEMPORAL1,F
  64.   GOTO   DECREMENTA
  65.   CALL  ESPERA
  66. DESACTIVAPWM
  67.   CLRF  CCP2CON
  68.   GOTO  BUCLE
  69.  
  70. ESPERA        &#59;RETARDO 5 S
  71.   MOVLW  0fah
  72.   MOVWF  DELAY_CONT
  73.   CALL DELAY
  74.   RETURN
  75.  
  76. END
  77.  

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Usando El Pwm En El 16f876
« Respuesta #1 en: Viernes 17 de Febrero de 2006, 18:02 »
0
Saludos
He trabajado con el modulo PWM en el PIC16F877, pero en el 876 la verdad no, no he checado el dataSheet, pero teoricamente no debe cambiar, te doy el codigo ASM de un programita sencillo, ya funcionandote ya puedes incrementar y decrementar la frecuencia.


Espero te sirva, si te sirve ahi me habisas
bye

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

      LIST            p=16f874


ESTADO      EQU      0x03
PUERTOC      EQU      0x07

T2CON      EQU      0x12      ;control de timer2
PR2      EQU      0x12      ;periodo del timer2 (banco1)
CCP1CON      EQU      0x17      ;modulo Captura/Comparación/PWM
CCPR1L      EQU      0x15      ;parte alta del duty cycle



      org      0
      goto      inicio
      org      5

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

inicio      bsf      ESTADO,5
      bcf      PUERTOC,2   ;C.2 sale la señal PWM
      movlw      0x18      ;Frecuencia de 33 Khz=0x1D
      movwf      PR2      ;periodo del PWM
      bcf      ESTADO,5

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   
      movlw      0x2C      ;Empieza en el bit4 y bit5 para el ciclo de trabajo,bit0-bit3 modo de funciponamiento
      movwf      CCP1CON      ;duty cycle, PWM off ciclo de trabajo
      movlw      0x0C      ;0x0F
      movwf      CCPR1L      ;duty cycle

      movlw      0x04      ;(bit2) on timer2,  (bit0, bit1)prescaler
      movwf      T2CON
espera      goto      espera
      
      end
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Usando El Pwm En El 16f876
« Respuesta #2 en: Viernes 17 de Febrero de 2006, 18:04 »
0
Saludos
te adjunte el archivo, lo que pasa que queda muy desodenado y es poco entendible
bye :hola:

Kain589

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Usando El Pwm En El 16f876
« Respuesta #3 en: Viernes 17 de Febrero de 2006, 20:12 »
0
Pues muchas gracias, habia dejado un poco de lado el tema por los examenes y ahora que los acabo ya puedo ponerme con las pruebas