Está en la página 1de 13

Microcontroladores y DSPS

Benemrita Universidad Autnoma de Puebla

Facultad de Ciencias de la Electrnica

Dr. Fermi guerrero castellanos Prctica5: CONFIGURACIN DEL MODELO CCP COMO MDULO PWM Equipo: Nava Lpez Cristian Eduardo Palma Asuncin Adilene Vega Alonzo Argel Jair Ernesto Estanislao Sierra

Ingeniera Mecatrnica

Prctica 5

Microcontroladores y DSPS

OBJETIVO DE LA PRCTICA

Utilizando lenguaje ensamblador programar la configuracin del modelo CCP como mdulo PWM, para generar una seal de este tipo a una frecuencia de 40 KHz. El ancho del pulso podr ser modificado por el usuario por medio de dos teclas. El valor inicial del ancho de pulso debe ser de 50%. Posteriormente realice un circuito para modificar la velocidad de un motor DC.

INTRODUCCIN
Los microcontroladores PIC tienen una serie de registros que funcionan como una RAM de propsito general. Los registros de propsito especfico para los recursos de hardware disponibles dentro del propio chip tambin estn direccionados en la RAM. Lo que se hace con PWM es variar dinmicamente el duty cycle de manera que el tiempo de alta disminuya o aumente y en proporcin inversa, el de baja aumente o disminuya dependiendo si queremos, por ejemplo, una led ms atenuado o ms brillante, o un motor ms lento o ms rpido, respectivamente. PWM (Pulse Width Modulation) describe el uso de una seal digital para generar una seal de salida analgica. Esto se utiliza generalmente para controlar la potencia media a una carga en un circuito de control de velocidad del motor. Por un momento, si se piensa en la seal digital cuando est en sus extremos, es decir, normal - que genera el mximo de 5 V cuando la salida es alta y la mnima de 0 V cuando la salida es baja. Si desea generar una seal de 2.5V entonces usted necesita para hacer la seal en la mitad del tiempo y fuera por el resto y luego tomar la media. PWM PIC salida digital y salida media Ejemplos de PWM de la Micro PIC

Uso de pulsos digitales para crear un valor analgico que no sean slo "alto" y "bajo" nivel de seal. Muchos los sistemas digitales son alimentados por una fuente de alimentacin V-5, as que si se filtra una seal de que tiene un ciclo de 50% se obtiene un promedio tensin de 2,5 V. Ciclo Otras producir cualquier tensin en el rango de 0 a 100% de la "alta" de tensin, dependiendo de la resolucin PWM. El ciclo de trabajo se define como el porcentaje de la tecnologa digital

Prctica 5

Microcontroladores y DSPS "alto" a la digital "bajo" las seales presentes durante un periodo de PWM. La resolucin PWM se define como el nmero mximo de impulsos que se pueden meter en un periodo de PWM. El perodo de PWM es un perodo de tiempo de manera arbitraria en que se lleva a cabo PWM. Es elegido para dar mejores resultados para su uso particular

MARCO TERICO
Los microcontroladores 16F877A disponen de dos mdulos CCP, llamados CCP1 y CCP2. Estos mdulos pueden realizar tres funciones principales: 1 Modo captura: una pareja de registros de un mdulo CCPx captura el valor que tiene el TMR1 cuando ocurre un evento especial en la patita RC2/CCP1 (para mdulo CCP1) o en la RC1/T1OSl/CCP2 (para el mdulo CCP2). 2 Modo comparacin: se compara el valor de 16 bits del TMR1 con otro valor cargado en una pareja de registros de un mdulo CCPx y cuando coinciden se produce un evento en la(s) patita(s) RC2/CCP1 y/o RC1/T1Ol/CCP2. 3 Modo modulacin de anchura de pulsos (PWM): dentro del intervalo del perodo de un impulso controla la anchura en que la seal vale nivel alto. El mdulo CCP1 utiliza un registro de trabajo de 16 bits que est formado por la concatenacin de los registros CCPR1H-CCPR1L (direcciones 0x16 y 0x17). El registro de control del mdulo CCP1 es el CCP1CON, que ocupa la direccin 0x17. El mdulo CCP2 tiene como registros de trabajo a CCPR2H-CCPR2L (direcciones 0x1C y 0x1B) y como registro de control a CCP2CON en la direccin 0x1D. Las parejas de registros son las encargadas de capturar el valor del TMR1, de comparar el valor que tienen con el del TMR1 o, en el modo PWM, de modular la anchura del impulso. Modo de modulacin de anchura de pulsos (PWM) Con este modo de trabajo, se consiguen impulsos lgicos cuya anchura del nivel alto es de duracin variable, que son de enorme aplicacin en el contorno de dispositivos tan populares como los motores y los triacs.

El tiempo que dura el perodo de la onda depende del valor cargado en PR2, segn la frmula: Pperodo=((RP2) +1)(4)(Tosc)(valor predivisor TMR2) Cuando el valor del TMR2 coincide con el del PR2 suceden tres acontecimientos: 1 se borra el TMR2 2 la patita RC2/CCP1 se pone a 1 3el valor de CCPR1L, que es el que determina la anchura de impulso, se carga en CCPR1H

Prctica 5

Microcontroladores y DSPS Como se observa, se tiene la misma frecuencia con un diferente ancho de pulso (o ciclo de trabajo) de esta manera podemos regular la cantidad de energa que es aplicada a una planta como un motor DC o una lmpara, controlando de esta manera su velocidad o intensidad de luz. El uso de un micro controlador con modulo de PWM tiene varias ventajas sobre un circuito analgico, como lo son la precisin y un mejor control de las variables involucradas adems de espacio y ahorro de energa. Los pic disponen de un potente conjunto de temporizadores para manejar eficientemente todas las operaciones que involucran al tiempo y al contaje. Dichos temporizadores son tres y se denominan tcnicamente TMR0, TMR1, TMR2. El TMR2 tiene las siguientes caractersticas fundamentales: o o o o o o TMR2 es un temporizador de 6 bits Dispone de un Registro de Perodo de 8 bits(PR2) Leble y escribible Postdivisor de frecuencia programable Interrupcin opcional al coincidir TMR2 Y PR2 Posibilidad de generar impulsos al mdulo SSP

Se trata de un temporizador ascendente de 8 bits, que se puede leer y escribir, y que tambin puede realizar funciones especiales para la Puerta Serie Sncrona (SSP) y con mdulos de captura y comparacin. Ocupa la direccin 0x11 del mapa de los registros especficos. La seal de reloj del TMR2 es interna Fosc/4, y antes de ser aplicada pasa por un predivisor de frecuencia con rangos de 1:1, 1:4, 1:16. La salida del TMR2 atraviesa un postdivisor de frecuencia con rangos de divisin desde 1:1, a 1:16, pasando por los 16 valores posibles. Al entrar el microcontrolador en modo reposo o SLEEP, se detiene el oscilador interno y al no existir la seal Fosc/4 deja de funcionar el TMR2. Para controlar el funcionamiento del TMR2 se usa el registro T2CON, que ocupa la direccin 0x12 del mapa de los registros especficos.

El Timer 2 es un temporizador de 8 bits. Adems este mdulo cuenta con un registro de periodo PR2 que marca el valor mximo que puede alcanzar la cuenta del registro TMR2. Este incrementa su cuenta desde 000 con cada ciclo de instruccin hasta que el valor del registro TMR2 coincide con el del registro PR2 y despus, en el siguiente ciclo reinicia la cuenta desde 000.

METODOLOGA DE DISEO

1. Anlisis del diseo Utilizando el lenguaje ensamblador se configur el mdulo CCP como modo modulacin por ancho de pulso PWM el cual va a estar variando por medio de push button para incrementar o disminuir el ancho del pulso

Prctica 5

Microcontroladores y DSPS

iniciando 50% en ciclo para as al variar la velocidad del motor implementado al circuito por medio de una etapa de potencia ya que nuestro motor utilizado trabaja a 12 V mientras que nuestro Pic trabaja a 5V.

Segn la especificacin del problema el circuito tiene: Entradas: 2 Salidas:1 5V + 5V PWM

La salida PWM sale a una etapa de potencia que conecta con el motor, el cual trabaja a 12V.

12V R

Motor Para la implementacin del circuito hicimos uso de un Tip 41.

Clculos:
% Ancho 0 10 20 30 40 50 60 70 80 90 100 CCPRIL 000000 000010 000101 000111 001010 001100 001111 010001 010100 010110 011001 CCP1CON <5:4> 00 10 00 10 00 10 00 10 00 10 00 s 0 2.5 5 7.5 10 12.5 15 17.5 20 22.5 25

Prctica 5

Microcontroladores y DSPS

[(
( )( )( )( )

] ( )(

)(

)(

)(

2. Con la ayuda de MPLAB se realizo lo siguiente:

; ESTE PROGRAMA MUESTRA EN LA LCD UN MENSAJE Y SE HACE LA CONFIGURACIN EN


MODO MODULACIN DE ANCHURA DE PULSOS DEL CCP

#include<P16F877A.INC> INICIAR __CONFIG _WDT_OFF & _PWRTE_OFF & _CP_OFF & _XT_OSC & _BODEN_OFF & _LVP_OFF LIST P=16F877A PDel0 PDel1 FLINEA RDELAY EQU EQU EQU EQU 0X20 0X21 0X23 0X25 INICIAR STATUS,6 STATUS,5

GOTO ORG 0X05

BCF BSF BSF

TRISD,4 ;RPO ;RP1 0X00 EQU EQU ORG TRISC,2 5 6 BSF TRISD,6 BCF

Prctica 5

BCF STATUS,5 CLRW BSF STATUS,5 MOVLW B'00011000' ;SE CARGA PR2 00011000 MOVWF PR2 BCF STATUS,5 GOTO CINCO ;LLAMA A LA TABLA SUMA 0+1 Y ENCUENTRA A 0 X10

Microcontroladores y DSPS BCF CCP1CON,CCP1Y BSF CCP1CON,3 BSF CCP1CON,2 CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X9 GOTO DOS CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X10 GOTO CERO MOVLW ;20% MOVWF BCF BSF BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF B'00000101' CCPR1L T2CON,2 T2CON,2

X9

DOS

CERO MOVLW B'00000000' ;0% MOVWF CCPR1L BCF T2CON,2 BSF T2CON,2 BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF T2CON,2 X12 CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X11 GOTO UNO X11 CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X12 GOTO CINCO UNO MOVLW ;10% MOVWF BCF BSF BSF CCP1CON,CCP1X B'00000010' CCPR1L T2CON,2 T2CON,2

CCP1CON,3 CCP1CON,2

X8

X7

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X7 GOTO TRES CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X8 GOTO UNO

TRES MOVLW B'00000111' ;30% MOVWF CCPR1L BCF T2CON,2 BSF T2CON,2 BSF CCP1CON,CCP1X BCF CCP1CON,CCP1Y

Prctica 5

Microcontroladores y DSPS BSF BSF X6 CCP1CON,3 CCP1CON,2 X1 CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X2 GOTO SEIS CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X1 GOTO CUATRO ;CALL RETARDO MOVLW ;60% MOVWF BCF BSF BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF

X5

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X5 GOTO CUATRO CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X6 GOTO DOS MOVLW ;40% MOVWF BCF BSF BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF B'00001010' CCPR1L T2CON,2 T2CON,2

X2

SEIS

B'00001111' CCPR1L T2CON,2 T2CON,2

CUATRO

CCP1CON,3 CCP1CON,2 X14

CCP1CON,3 CCP1CON,2

X4

X3

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X3 GOTO CINCO CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X4 GOTO TRES

X13

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X13 GOTO SIETE CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X14 GOTO CINCO

CINCO MOVLW B'00001100' ;50% MOVWF CCPR1L BCF T2CON,2 BSF T2CON,2 BSF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF CCP1CON,3 BSF CCP1CON,2

SIETE ;CALL RETARDO MOVLW ;70% MOVWF BCF BSF BSF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF

B'00010001' CCPR1L T2CON,2 T2CON,2

CCP1CON,3 CCP1CON,2

Prctica 5

Microcontroladores y DSPS X16 CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X15 GOTO OCHO CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X16 GOTO SEIS X20 CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X19 GOTO DIEZ CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X20 GOTO OCHO

X15

X19

OCHO ;CALL RETARDO MOVLW ;80% MOVWF BCF BSF BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF X18

B'00010100' CCPR1L T2CON,2 T2CON,2

CCP1CON,3 CCP1CON,2

DIEZ ;CALL RETARDO MOVLW ;100% MOVWF BCF BSF BCF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF BSF X22

B'00011001' CCPR1L T2CON,2 T2CON,2

CCP1CON,3 CCP1CON,2

X17

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X17 GOTO NUEVE CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X18 GOTO SIETE ;CALL RETARDO MOVLW B'00010110' ;90% MOVWF CCPR1L BCF T2CON,2 BSF T2CON,2 BSF CCP1CON,CCP1X BCF CCP1CON,CCP1Y BSF CCP1CON,3 BSF CCP1CON,2

X21

CALL RETARDO BTFSS PORTD,4 ;AUMENTA GOTO X21 GOTO CINCO CALL RETARDO BTFSS PORTD,6 ;DISMINUYE GOTO X22 GOTO NUEVE

NUEVE

;==========================RETARDO ================ RETARDO movlw .110 ; 1 set numero de repeticion (B) movwf PDel0 ; 1 | PLoop1 movlw .181 ; 1 set numero de repeticion (A) movwf PDel1 ; 1 | PLoop2 clrwdt ; 1 clear watchdog clrwdt ; 1 ciclo delay decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)

Prctica 5

goto PLoop2 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 goto PDelL3 ; 2 ciclos delay PDelL3 clrwdt ; 1 ciclo delay end

return

Microcontroladores y DSPS ; 2+2 Fin.

3. Simulacin

Prctica 5

Microcontroladores y DSPS

5. Realizacin fsica del circuito

Prctica 5

Microcontroladores y DSPS

Para la implementacin del circuito se utilizaron los siguientes materiales: 1 PIC 16F877A 3 push button 2 capacitores 33pF 1 cristal de 4MH 1 fuente de 12 V 1 motor a 12 V 1 Tip 41c 1 fuente a 5V La implementacin se realiz para la conexin del Pic y para la configuracin de la etapa de potencia de nuestro circuito para poder incorporar el motor.

6. Implementacin Para realizar el cableado e implementar la configuracin correcta, se tomo como especificaciones el data sheet correspondiente al Pic 16F877A.

Prctica 5

Microcontroladores y DSPS

CONCLUSIONES

Como sabemos el Pic 16F877A tiene muchas formas para configurar sus entradas y salidas as como cada uno de sus mdulos los cuales pueden ser utilizados para fines especficos como en este caso al trabajar con los mdulos CCP1/CCP2, que pueden ser utilizado para modo captura, modo comparacin y modo modulacin de ancho de pulso(PWM), en este caso trabajamos con el modo modulacin de ancho de pulso y se puede observar las aplicaciones que este conlleva como por ejemplo y visto anteriormente el control de velocidad de un motor.

BIBLIOGRAFA Microcontroladores PIC diseo prctico y aplicaciones PI16F87X, Jos Ma. Aguilar Usategui, edit. Mc Graw Hill http://picmicrocontroller877.blogspot.com/ http://www.best-microcontroller-projects.com/pwm-pic.html

Prctica 5

También podría gustarte