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