0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
25 Ansichten2 Seiten
Este documento describe cómo generar una señal cuadrada modulada en anchura de pulsos (PWM) usando el módulo CCP1 del PIC16F876A. El período y el ciclo de trabajo (anchura) de la señal se configuran mediante constantes. El programa establece el puerto RC2/CCP1 como salida PWM y configura el módulo CCP1 y el temporizador TMR2 para generar la señal PWM.
Este documento describe cómo generar una señal cuadrada modulada en anchura de pulsos (PWM) usando el módulo CCP1 del PIC16F876A. El período y el ciclo de trabajo (anchura) de la señal se configuran mediante constantes. El programa establece el puerto RC2/CCP1 como salida PWM y configura el módulo CCP1 y el temporizador TMR2 para generar la señal PWM.
Copyright:
Attribution Non-Commercial (BY-NC)
Verfügbare Formate
Als TXT, PDF, TXT herunterladen oder online auf Scribd lesen
Este documento describe cómo generar una señal cuadrada modulada en anchura de pulsos (PWM) usando el módulo CCP1 del PIC16F876A. El período y el ciclo de trabajo (anchura) de la señal se configuran mediante constantes. El programa establece el puerto RC2/CCP1 como salida PWM y configura el módulo CCP1 y el temporizador TMR2 para generar la señal PWM.
Copyright:
Attribution Non-Commercial (BY-NC)
Verfügbare Formate
Als TXT, PDF, TXT herunterladen oder online auf Scribd lesen
; (c) Ingeniería de Microsistemas Programados S.L. ; www.microcontroladores.com ; Bilbao 2006 ; ;Los módulos CCPx. Modo PWM. Modulación de anchura de pulsos. ; ;Consiste en generar una señal de onda cuadrada por la línea RC2/CCP1 cuyo periodo p uede ;ser modificado así como la anchura del pulso (Duty Cycle). El periodo se determin a según la ;fórmula T=(PR2+1)*4*Tosc*TMR2 preescaler. La duración del pulso o "Duty Cycle" (d) se deter- ;mina según d=(CCPR1L:CCPCON1<5:4>)*Tosc*TMR2 preescaler. ; ;El ejemplo emplea al módulo CCP1 con salida de señal por la línea RC2/CCP1. La señal de ;salida tiene un periodo determinado pora la constante "Periodo" y una anchura " Duty" ;determinada por la constante "Duty". Un osciloscopio conectado en RC2/CCP1 pued e ayudar ;a realiza las oportunas medidas. List p=16F876A ;Tipo de procesador include "P16F876A.INC" ;Definiciones de registros internos ;Ajusta los valores de la palabra de configuración durante el ensamblaje: ;protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT __config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC Periodo equ .40 ;Periodo de 40 uS Duty equ .10 ;Anchura 10 uS org 0x00 ;Vector de RESET goto Inicio org 0x05 ;Programa principal Inicio clrf PORTA clrf PORTB clrf PORTC ;Borra salidas bsf STATUS,RP0 ;Selecciona banco 1 movlw b'11111011' movwf TRISC ;RC2 salida movlw Periodo-1 movwf PR2 ;Carga el registro de pe riodos bcf STATUS,RP0 ;Selecciona banco 0 movlw Duty movwf CCPR1L ;Carga la anchura del pulso ;El módulo CCP1 actúa en el modo PWM con salida de señal por RC2/CCP1 movlw b'00001100' movwf CCP1CON ;El TMR2 trabaja con un preescaler 1:1 por lo que con una frecuencia de 4MHz evo luciona ;cada 1uS (4*Tosc) movlw b'00000100' movwf T2CON ;T2 en On Loop nop goto Loop ;Bucle infinito end ;Fin del program a fuente