Pwm Modulacion Por Ancho De Pulso
Enviado por AngeloRodriguez • 22 de Junio de 2014 • 758 Palabras (4 Páginas) • 409 Visitas
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
CARRERA DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
ASIGNATURA MICROCONTROLADORES
INFORME DE LABORATORIO No.2_4
TEMA: PWM
Profesor: Ing. Danny Sotomayor
EQUIPO No5:
Angelo Rodríguez
SANGOLQUÍ 19-06-2014
1. Tema: PWM (MODULACION POR ANCHO DE PULSOS)
2. Objetivo(s)
2.1. General
2.2. Diseñar un circuito usando el microcontrolador PIC16F877A que mediante dos teclas del teclado matricial, aumente y con la otra disminuya el pwm respectivamente.
2.3. Específicos
• Aplicar los conocimientos adquiridos sobre el PWM
3. Diagrama de bloques
4. Valor de los registros de configuración:
PR2=.255
TRISC= 0XFDH (Pin C1 como salida)
CCPR2L = 127
CCP2CON=0XCH
T2CON = 0x06H
5. Diagrama de flujo:
6. Diagrama electrónico.
7. Cálculos
Periodo PWM
PWM = [(PR29+1}*4T*(TMR2 Prescale Value)
PWM = (255+1)*1us*16
PWM= 4096us = 4ms
PWM DUTY CITE
PWMDC=(CCPR2L:CCPICON<5:4>)* TOSC*(TMR2 PRESCALE VALUE)
PWMDC = 508*0,25*16
PWMDC = 2032us
8. Programa:
list p=16f877a;tipo de procesador
INCLUDE "P16F877A.Inc"; librerias del registro del pic
__CONFIG(0x3f71);Grabar desde el Programa del PICKIT
DATO EQU 20H
;Define constantes para 20 milisegundos
N EQU 0x1A
M EQU 0x0
CONT1 EQU 0x20
CONT2 EQU 0x21
;Define constante para mascara 0xFF (tecla pulsada)
MASQ EQU 22H
ORG 00H
;____________________________CONFIGURACIÓN______________________________________________________
CONFI
CLRF STATUS
BSF STATUS,RP0 ;Banco1
MOVLW 0xF0
MOVWF TRISB ;Puerto B teclado
BCF OPTION_REG,7 ;Conecta todas las resistencias Pull-Up
BCF STATUS,RP0 ;Banco 0
CALL INICIA_PWM
;CLRF PORTC
CLRF PORTB
;_________________________________MAIN____________________________________________________
INICIO MOVLW .127
MOVWF CCPR2L
LOOP MOVLW 0xFF ;Almacena en W la mascara 0xFF
MOVWF MASQ ;Almacena en masq la mascara 0xFF
CALL DETECTAR ;Llama a la subtutina detect
SUBWF MASQ,1
BTFSS STATUS,Z ;Resultado en W=0
GOTO LOOP ;Repite el proceso
CALL CODIFICAR ;Llama a la subtutina codif
MOVWF DATO ;Mueve la tecla presionada al puerto C
SUBLW 'A' ;Comparo el valor ingresado
BTFSC STATUS,Z
GOTO INC
MOVF DATO,0
SUBLW 'B'
BTFSC STATUS,Z
GOTO DEC
GOTO LOOP
INC INCFSZ CCPR2L,1 ;Incremento Dutty Cicle
GOTO LOOP
GOTO DEC
DEC DECFSZ CCPR2L,1 ;Decremento Dutty Cicle
GOTO LOOP
GOTO INC
;___________________________________PWM________________________________________________
INICIA_PWM
BSF STATUS,RP0
MOVLW .255
MOVWF PR2 ;Establece periodo del PWM
BCF TRISC,1 ;Pin C1 como salida
BCF STATUS,RP0
CLRF CCPR2L ;inicializa Ciclo de Trabajo en cero
MOVLW 0CH
MOVWF CCP2CON
MOVLW 06H
MOVWF T2CON ;Habilita Timer 2
RETURN
;__________________________________TECLADO______________________________________________
DETECTAR
CLRF PORTB ;activa las cuatro filas
BTFSS PORTB,7 ;lee renglón 1,2,3,A
GOTO REBOTE ;si tecla presionada limpia rebote
BTFSS PORTB,6 ;lee renglón 4,5,6,B
GOTO REBOTE ;si tecla
...