Está en la página 1de 7

Microcontroladores.

Gua 5

Facultad: Ingeniera
Escuela: Electrnica
Asignatura: Microcontroladores
Lugar de ejecucin: Laboratorio de
microprocesadores, Edif. 3 Electrnica.

Tema: Utilizacin del mdulo CCP (PWM) en los


microcontroladores PIC.
Objetivo general

Utilizar el mdulo CCP de los microcontroladores PIC en modo PWM


para disear sistemas que manejen cargas de potencia.

Objetivos especficos

Conocer la forma de inicializacin del mdulo CCP en modo PWM.


Conocer la forma de inicializacin del mdulo Timer2.
Realizar el control de potencia en un motor DC a partir de un
voltaje analgico.
Verificar la forma correcta en que se cargan los registros del
Timer2 de tal forma de poder generar ciclos de trabajo de 0 a
100%.

Materiales y equipo

Computadora personal con puerto paralelo, sistema operativo


Windows XP, software MPLAB y WinPic800.
Tarjeta de entrenamiento CP-PIC877 V1.0 R1.
Programador ET-CAB10PIN V2.
Fuente de poder de 12V con borne redondo de 5mm.
Cable de cinta plana de 28 pines con conector para breadboard.
Breadboard.
1 transistor MOSFET IRF540 (canal N).
1 Diodo rectificador 1N4001.
1 Motor DC pequeo de 12V, con consumo mximo (sin carga) de 1A.
1 Potencimetro de 1K.
1 Botn pulsador simple.
1 Resistencia de 10K.
Multmetro digital.
Cable UTP categora 5.

Microcontroladores. Gua 5

Procedimiento
1. Construya el circuito que se le presenta en la figura 1. Dicho
circuito se conectar a la tarjeta de entrenamiento con el
diagrama de pines que aparece en la figura 2.

Figura 1 - Diagrama de conexin para el circuito en la breadboard.

Figura 2 Organizacin de los pines de I/O de la tarjeta entrenadora.

2. Una vez ensamblado el circuito, conecte el cable plano a la


tarjeta entrenadora. Solicite a su docente de laboratorio que
verifique su circuito (el circuito se encender ms adelante).

Microcontroladores. Gua 5

3. A continuacin ejecute el programa MPLAB. Cree un nuevo proyecto


con el PIC16F877.
4. Agregue un nuevo archivo de cdigo fuente llamado Principal.asm
(no olvide agregar la extensin .asm cuando lo guarde). Y copie el
siguiente programa en el archivo:
;Programa de ejemplo para utilizacin de PWM controlado por ADC
list p=16f877
;Definicin del microcontrolador a usar
#include <p16f877.inc> ;Cabecera que define los registros del MCU
;Bits de configuracin del MCU
cfg1 equ _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_ON
cfg2 equ _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
__config cfg1 & cfg2
;Declaracion de datos en memoria
Mis_Variables udata
ConteoRetardo res 1 ;Variable que guarda el conteo de retardo
PROG1 code
;========================================================================
;Rutina principal
;---------------clrf PORTA
;Se coloca el valor de los puertos a 0 antes de
clrf PORTC
;establecerlos como salida
bsf STATUS, RP0

;Se selecciona el banco 1

;Se inicializa el registro ADCON1 del ADC


movlw 0x0E
;Configura los canales para usar solo RA0/AN0 y
movwf ADCON1
;selecciona la justificacion a la izquierda
;Configuracion de los puertos de I/O
movlw 0x01
;Se coloca RA0 como entrada (analoga), el resto son
movwf TRISA
;salidas
clrf TRISC
;Todo el puerto C se establece como salidas
;Configuracion de Timer2
movlw d'254'
;Se carga el valor 254 a Timer2 de manera que se den
movwf PR2
;255 pasos de conteo y permita generar PWM a 100%
bcf STATUS, RP0

;Selecciona el banco 0 nuevamente

;Se termina de configurar el ADC


movlw 0xC1
;Selecciona el reloj interno, canal cero (AN0) y
movwf ADCON0
;activa el ADC
;Se termina de configurar el modulo Timer2
movlw 0x04;
;Selecciona post escala 1:1, pre escala 1:1 y
movwf T2CON
;enciende el timer

Microcontroladores. Gua 5

;Frecuencia de conteo del Timer2:


;Fconteo = Fosc / (4 * PRESCALER) = 4MHz / (4 * 1) = 1MHz
;Se configura el modulo CCP
movlw 0x0C
;Se selecciona el modo PWM y se limpian los LSB del
movwf CCP1CON
;ciclo de trabajo
;Frecuencia del PWM:
;Fpwm = Fconteo / (PR2 + 1) = 1MHz / (254 + 1) = 3.92KHz
Rutina:
bsf ADCON0, GO_DONE
btfsc ADCON0, GO_DONE
goto $-1

;Inicia la conversion del ADC


;Espera a que la conversion termine por
;medio de verificar el mismo bit

movf ADRESH, w
movwf CCPR1L

;Toma el resultado del ADC y lo transfiere al


;registro de ciclo de trabajo del PWM

movlw d'1'
call Retardo

;Espera durante 1ms a que el ADC muestree el


;nuevo dato

goto Rutina

;Repite el proceso

;========================================================================
;Rutina de retardo variable
;-------------------------;Esta rutina genera un retardo segun la cantidad de milisegundos indicada
;en el acumulador. Si el acumulador vale 0, el retardo es de 256ms.
Retardo:
movwf ConteoRetardo ;Guarda la cuenta de milisegundos en memoria
Nuevo_Retardo:
movlw d'250'
Retardo_1ms:
addlw -d'1'
;Resta uno a la cuenta en el acumulador - 1 clock
btfss STATUS, Z
;Verifica si la cuenta llego a cero
- 1 clock
goto Retardo_1ms
;Continua iterando mientras no termina - 2 clock
;Calculo para el retardo interno:
;T = 4 x Numero de iteraciones x Intrucciones por iteracion
;
-----------------------------------------------------;
frecuencia de oscilador
;T = 4 x 250 x 4
;
----------;
4MHz
;T = 1ms
decfsz ConteoRetardo, f ;Decrementa la cuenta de milisegundos
goto Nuevo_Retardo
;Mientras no sea cero, repite
return
;Cuando llega a cero, retorna
end

;Fin del programa


Listado 1 Cdigo fuente del programa a implementar.

Microcontroladores. Gua 5

5. Agregue al proyecto el archivo de de guin de enlace (linker


script) con el nombre 16f877.lkr.
6. Compile el programa y verifique que no se generen errores.
7. Prepare el programador conectando primero la cincha plana al
ltimo conector del extremo del tablero, a continuacin conecte el
programador al puerto paralelo de su PC. Prepare la tarjeta
conectando el cable de poder a la misma y luego conectando la
cincha que viene del programador al conector amarillo. Finalmente
encienda la fuente de 5V. NOTA: No encienda todava la fuente de
12V.
8. Ejecute a continuacin el programa WinPic800. Asegrese de que
est elegido el programador ETT-LOW VPP ICSP en el puerto
paralelo correcto. Ejecute la rutina de deteccin automtica de
dispositivo para que el software quede configurado.
9. Cargue el archivo .hex generado al compilar el programa y
descrguelo en el PIC. Una vez terminado, corrobore que el
programa
fue
programado
correctamente
con
la
rutina
de
comprobacin del Winpic800.
10. Ajuste la perilla del potencimetro al valor mnimo de 0V. Ahora
encienda la fuente de 12V.
11. Mueva suavemente la perilla del potencimetro para ir elevando el
voltaje aplicado al PIC. En este momento el motor debera de
encenderse y elevar su velocidad a medida incrementa el voltaje.
12. Corrobore el funcionamiento del circuito variando el voltaje
entre 0 y 5V, el motor cambiar su velocidad en proporcin directa
al voltaje aplicado.
13. Apague el circuito y agregue el botn con la resistencia como
pull-up al en cualquier pin de I/O disponible.
14. Modifique el programa para que el microcontrolador acepte el
nuevo botn como una entrada. El programa deber apagar el motor
siempre que se mantenga apretado dicho botn.
15. Encienda nuevamente la fuente de 5V, luego ajuste la perilla a 0V
y encienda la fuente de 12V. Corrobore que el motor pueda ser
controlado con la perilla siempre que no se presione el botn, y
que se detenga mientras se presiona.

Microcontroladores. Gua 5

16. Apague la tarjeta de entrenamiento, desconecte el programador de


la tarjeta y la PC, y apague su computadora. Deje todo en orden en
su puesto de trabajo y entregue los materiales a su instructor.

Anlisis de resultados

Suponga que se tiene un medidor de velocidad conectado al motor,


el cual devuelve un voltaje analgico que representa dicha
velocidad. Qu cambios deberan hacerse al programa para que el
sistema controle y se ajuste a un valor preestablecido de
velocidad?
Porque se carga el valor d254 al registro PR2 y no d255?
Que ocurre si se carga dicho registro con el valor d100?

Investigacin complementaria

Investigue cules dispositivos puede operar correctamente si se


les aplica PWM y cules no.

Referencias bibliogrficas

Hoja tcnica del microcontrolador PIC16F877A:


http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
Palacios, Enrique - Remiro, Fernando y Lpez, Lucas.
Microcontrolador PIC16F84: Desarrollo de proyectos. Segunda
edicin. Coedicin Alfaomega RA-MA.

Microcontroladores. Gua 5
Hoja de cotejo: 5

Gua 5:Utilizacin del mdulo CCP (PWM) en los microcontroladores PIC.


Alumno:

Puesto No:

Docente:

GL:

Fecha:

EVALUACION
%

1-4

CONOCIMIENTO

25

APLICACIN
DEL
CONOCIMIENTO

25

Explica
deficientemente
cmo opera el
mdulo Timer2 y
el CCP.
No cre el
programa
correctamente y
posee muchos
errores.
El circuito armado
presenta
problemas y no
opera.
No hizo las
modificaciones de
los pasos 13 y 14
o las mismas no
son correctas.
Es un observador
pasivo.

25

20

ACTITUD

2.5

2.5

TOTAL

100

Es ordenado pero
no hace un uso
adecuado de los
recursos.

5-7

8-10

Explica cmo
opera un mdulo
pero no el otro.

Explica
claramente cmo
operan ambos
mdulos.

Cre el programa y
se compila, pero
no funciona ya en
el dispositivo.

El programa
creado se compila
y funciona
correctamente en
el dispositivo.
El circuito
ensamblado
funciona
correctamente.
Hizo las
modificaciones y
producen los
resultados
correctos.
Participa
propositiva e
integralmente en
toda la prctica.

El circuito
ensamblado
presenta algunos
problemas.
Hizo las
modificaciones
pero los resultados
difieren de lo
esperado.
Participa
ocasionalmente o
lo hace
constantemente
pero sin
coordinarse con su
compaero.
Hace un uso
adecuado de lo
recursos, respeta
las pautas de
seguridad, pero es
desordenado.

Hace un manejo
responsable y
adecuado de los
recursos conforme
a pautas de
seguridad e
higiene.

Nota

También podría gustarte