Sunteți pe pagina 1din 13

PROYECTO CON MICROCONTROLADOR PIC16F628A

I. OBJETIVOS
Tener un mejor entendimiento y familiarizarnos con lo microcontroladores, comprender
el uso de uno de sus caractersticas del pic 16f628A, el MODULACION POR ANCHO
DE PULSO (PWM). ya que se sabe que los microcontroladores PIC16F628A/648A
disponen de un modulo de Captura/Comparacin/PWM que en conjunto con los
temporizadores, permite realizar en forma sencilla las tareas de medicin de tiempo y
frecuencia, y generacin de seales digitales. El modulo CCP tiene 3 modos de
funcionamiento, que se describen a continuacin:
Modo captura: Permite capturar el valor que tiene en registro TMR1 cuando ocurre un
evento especial en la terminal RB3/CCP1.
Modo comparacin: Permite comparar el valor de 16 bits del TMR1 con un valor
previamente definido en los registros CCPRL1H y CCPR1L.
Modo PWM: Permite generar seales digitales moduladas en ancho de pulso
El registro principal de este mdulo se compone de dos registros de 8 bits,
denominados CCPR1H (16h) y CCPR1L (15h). La operacin del mdulo se controla
mediante el registro CCP1CON (17h) y el disparo de evento especial, el cual es
generado al alcanzarse la igualdad en un registro de comparacin que resetear el
Timer 1, sea que el mdulo CCP en modo comparacin en evento especial junto al
timer1 trabaja como el timer2 junto a PR2.



II. REQUERIMIENTOS

SOFTWARE
Para el desarrollo del programa del PIC

MPLAB IDE v8.87
Proteus 7 Professional
PICkit 2 v2.61








III. HARDWARE
Principales componentes
Pic16f628A
Protoboard
Estructura de un modelo de carro
Motores , en este caso 3

IV. DIAGRAMA ESQUEMATICO















V. ACERCA DEL PIC16F628A:
Caractersticas principales
Conjunto reducido de instrucciones (RISC). Solamente 35 instrucciones que aprender
a utilizar
Oscilador interno de 4MHz
Opera con una frecuencia de reloj externa de hasta 20 MHz (ciclo de mquina de 200
ns)
Memoria de programa: 2048 locaciones de 14 bits
Memoria de datos: Memoria RAM de 224 bytes (8 bits por registro)
Memoria EEPROM: 128 bytes (8 bits por registro)




Stack de 8 niveles
16 Terminales de I/O que soportan corrientes de hasta 25 mA
3 Temporizadores
Mdulo de comunicacin serie (Usart)
Mdulo CCP (captura/comparacin/PWM)
2 Comparadores analgicos, una referencia de voltaje programable

Nota: Los mdulos descriptos para el PIC16F628A son idnticos a los del
PIC16F648A, lo nico que vara entre ellos son las siguientes caractersticas:
Memoria de programa: PIC16F648A-4096 locaciones de 14 bits
Memoria de datos: PIC16F648A-Memoria RAM de 256 bytes (8 bits por registro)
Memoria EEPROM: PIC16F648A-256 bytes (8 bits por registro)
El diagrama de bloques general simplificado del hardware del 16f628 se muestra:

MODO EN MODULACION POR ANCHO DE PULSO
En ancho de pulso (PWM) de modo, el pin CCP1 produce hasta una resolucin de 10
bits de salida PWM. Desde el pin CCP1 se multiplexa con el pestillo de datos PORTB,
el TRISB <3> debe ser poco talados para dar el CCP1 un pin una salida. Simplificando
en bloque el pwm:

















Una salida PWM ,tiene una base de tiempo (perodo) y un tiempo que la salida
permanece alta (ciclo de trabajo). La frecuencia de la PWM es la inversa del perodo
(1/period).









PERODO DEL PWM:
El perodo de PWM se especifica por escrito a la PR2register. El periodo PWM se
puede calcular utilizando la siguiente frmula:






CICLO PWM CICLO DE TRABAJO DEL PWM:
El ciclo de trabajo PWM se especifica por escrito al CCPR1L registro y los CCP1CON
<5:04> bits. Hasta a 10-bits de resolucin est disponible: el CCPR1L contiene los
ocho MSB y el <5:04> CCP1CON contiene el dos LSB. Este valor de 10-bits est
representado por CCPR1L: CCP1CON <5:04>. La siguiente ecuacin es utilizada para
calcular el ciclo de trabajo PWM en el tiempo:






La siguiente formula nos ayuda ,poder configurar a que estado se encontraran los bits
en 1 o 0.
CCPR1L y CCP1CON <5:04> se puede escribir en cualquier tiempo, pero el valor del
ciclo de trabajo no se bloquea en CCPR1H hasta despus de un partido entre PR2 y
TMR2 se produce (es decir, el periodo es completa). En el modo PWM, CCPR1H es
un registro de slo lectura. El registro CCPR1H y un cierre interno de 2-bits son
utilizados para duplicar amortiguar el ciclo de trabajo PWM. Cuando el CCPR1H y 2-bit
partido pestillo TMR2 concatenada con un interior de 2-bits reloj Q o 2 bits de el
preescaler TMR2, el pin CCP1 se borra. PWM mxima resolucin (bits) para un
determinado PWM frecuencia:










Los registros que se usan para el PWM y el TIMER 2, se encuentra en el manual data
sheet:

CALCULO:
Periodo de PWM:
La frecuencia que se ha usado para el pwm es de 2khz,a un preescaler de divisor de
frecuencia de 16.






CICLO DE TRABAJO PARA EL PWM



Aqu no se har clculo alguno debido a que el DUTY CYCLE se ir incrementando
al momento que se pulse un pulsador. Es decir partir de un valor cero.
Por lo que se cargar a cero al registro CCPR1L /CCP1CON<CCP1X:CCP1Y>





VI. PROGRAMANDO

LIST P=16f628A
#INCLUDE <P16f628A.INC>
CON1 equ 0x20
CON2 equ 0x21
__CONFIG _INTOSC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON
&_LVP_OFF
INICIO
BANKSEL PORTA
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISA
MOVLW b'00000011'
MOVWF TRISB
MOVLW b'00000111'
MOVWF TRISA
BANKSEL PORTA
MOVLW b'00000110'
MOVWF T2CON
BANKSEL TRISA
MOVLW 0x1E
MOVWF PR2
BANKSEL PORTA
CLRF CCPR1L
BCF CCP1CON,CCP1X
BCF CCP1CON,CCP1Y
BSF CCP1CON,CCP1M3
BSF CCP1CON,CCP1M2




BCF PORTA,4
PRINCIPAL:
BTFSC PORTB,1
GOTO $+2
GOTO $+3
INCF CCPR1L,1
CALL Demora_50ms
MOVF PORTA,W
ANDLW b'00000111'
CALL TABLA
MOVWF PORTB
GOTO PRINCIPAL
TABLA:
ADDWF PCL,F
DT 0X00, 0X90, 0XA0, 0X80, 0X40, 0x04;
Demora_50ms
MOVLW 0xFF
MOVWF CON1
REP1
MOVLW 0x40
MOVWF CON2
REP2
DECFSZ CON2,1
GOTO REP2
DECFSZ CON1,1
GOTO REP1
RETURN
END





VII. ISIS PROTEUS
Simulando en forma virtual con proteus, para verificar la programacin si est en
funcionamiento o no. A la vez analizar con el osciloscopio el ancho de pulso (PWM)
,se puede ver que al pulsar el ciclo de trabajo varia e ir incrementando .


Aqu el ancho de pulso se a incrementado y se muestra que el nivel alto est en una
pequea porcin del periodo original.
















Al pulsar se muestra que sufre un cambio se incrementa el duty cicle












Aqu ya llega a un nivel del casi el 100% del ciclo de trabajo, causando que el motor gire a su
mxima velocidad.los diodos sirven para no desfasar y que se rectifique la corriente a causa del
motor.
















LOGICA DE LOS PULSADORES A, B, C:






La tabla lgica viene dado en el programa con la instruccin (DT):
Esta instruccin indica que cargara el dato que se encuentra en una determinada direccin,
dependiendo que valor contenga inicialmente el registro de trabajo (w)
ADDWF PCL,F
DT 0X00, 0X90, 0XA0, 0X80, 0X40, 0x04;
Luego de cargar al registro de trabajo (w) el valor que se encuentra en nuestra tabla lo
mostrara por el Puerto B y un bit del Puerto A .Esto a que 6 bits del puerto B han sido
configurados como salida mientras que el puerto A solo el RA4, ha sido configurado
como salida.





VIII. IMAGENES
El motor que se ha usado es de 6vdc como mximo que puede soportar, se usado una batera
de 9 voltios, y un regulador de voltaje 7805.una fuente para verificar el manejo del voltaje,
etc.

S-ar putea să vă placă și