viernes, 30 de mayo de 2014

LABORATORIO DE PWM

Los periféricos son los subsistemas que le añaden gran poder y versatilidad a un micro controlador ya que, al estar incluidos dentro de éste, simplifican enormemente el proceso de diseño, tanto en hardware como en software, de una determinada aplicación. Entre los más importantes están los módulos PWM (Modulación de Ancho de Pulso) , los convertidores analógico/digital (Convertidor A/D), los módulos de comunicación serial SSP y AUSART (SCI) y los comparadores. En esta página se describe la operación de un control PWM para un motor DC utilizando micro controladores PIC con el compilador 
El control PWM es uno de los tres posibles modos de operación del módulo CCP de los microcontroladores PIC16F88, 16F628A y 16F877A, y se describe a continuación debido a su gran importancia en el campo de la automatización.

Una señal PWM es una forma de onda digital binaria de una determinada frecuencia y ciclo de trabajo (duty cycle) variable. Un ejemplo típico de aplicación es el control PWM de potencia (figura 9.1), que se suele utilizar para el control de una lámpara incandescente o un motor DC. Si se considera que el nivel 0 representa OFF y el nivel 1 representa ON, la potencia que consume la carga será directamente proporcional a la duración del pulso.




Control PWM de potencia
En este modo, el pin CCP1 produce una señal PWM de hasta 10 bits de resolución, lo que significa que se tienen hasta 1024 opciones de configuración del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB. La figura 9.2 muestra un diagrama de bloques del módulo CCP operando como control


 PWM.

 list        p=16f877a   ; directiva para definir procesador
    #include    <p16f877a.inc>  ; definiciones de variables especificas del procesador  
    
    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

#define _toogle_BUZ_1 b'00000100'
#define _toogle_OUT_1 b'00010000'
#define _bit_buzzer 2
#define _bit_CCP1 2

org 000h

Start:

clrf PORTB
bsf PORTB,_bit_buzzer

bsf STATUS,RP0
movlw b'11001011'
movwf TRISB
bcf STATUS,RP0

clrf CCP1CON


movlw 0xFF
movwf PR2

movlw 0x1F
movwf CCPR1L

movlw b'00101100'
movwf CCP1CON

bsf STATUS,RP0
bcf TRISC,_bit_CCP1
bcf STATUS,RP0

clrf T2CON
movlw b'00000011'
movwf T2CON

bsf T2CON,TMR2ON

Main_TMR2_OVF:

btfss PIR1,TMR2IF
goto Main_TMR2_OVF

bcf PIR1,TMR2IF

Main_CPP_cod
bcf STATUS,RP0
movf PORTB,W
xorlw _toogle_OUT_1
xorlw _toogle_BUZ_1
movwf PORTB

goto Main_TMR2_OVF

end

EDUAR ALEJANDRO ROMERO 2013276007
WILMAR FERNANDO GIRALDO 2010172084 ARCA 31528
JUAN DANIEL MORA 2009272034 ARCA 30632






No hay comentarios:

Publicar un comentario