Vous êtes sur la page 1sur 9

INSTITUTO

TECNOLOGICO DE TOLUCA
INGENIERA ELECTRNICA

Cruce por 0

REPORTE PPRCTICA

PRESENTA:
LUIS VIDAL ALVA DE LA CRUZ
RACIEL ANGELES SALAZAR
FRANCISCO RIVERA ALBA

METEPEC, ESTADO DE MXICO, 6 DE JUNIO DEL 2016

Introduccin
En este documento se redacta la elaboracin y programacin de un PIC
cuya funcin ser, mandar una seal de salida en forma de pulso
unitario cada vez que una seal sinodal que entra en el PIC cruce por el
punto de referencia establecido, puesto que no puede cruzar el cero real
de positivo a negativo, esto se debe a que el PIC no manipula voltajes
negativos en entradas ni salidas, solo cero y Vcc, por lo tanto se debe
establecer un punto de referencia en Vcc que est en el rango de 0V a
5V, de preferencia en medio de este intervalo para aprovechar toda la
amplitud disponible.

Objetivo
Observar la forma en que opera una de las funciones bsicas del puerto PWM
del PIC18F4550 y trabajar con esta funcin.

Material
-

PIC 18F4550
Programador de Microcontroladores
Convertidor Digital/Analgico DAC0800
Resistencias y Capacitores
Oscilador, Cristal de Cuarzo a 20Mhz

Programa
Libreras y Configuraciones Principales
LIST P= 18F4550
INCLUDE <P18F4550.INC>
config PLLDIV = 1
;// Queremos 4MHz a la entrada del PLL,
cuya salida es de 96MHz => 20/5 = 4 (el PLL multiplca por 24 la f de entrada)
config CPUDIV = OSC1_PLL2 ;// Como el reloj se conecta al PLL de
96MHz, queremos que el pic trabaje a la mitad, es decir 48MHz, que es la max
del PIC
config USBDIV = 2
;// El reloj del USB viene del divisor que
est a la salida del PLL, para que la f sea de 48MHz => 96MHz/2 = 48MHz que
es la f de un USB de alta velocidad
config FOSC
queremos el PLL
config FCMEN

= HSPLL_HS ;// Tenemos XT de alta velocidad y

= OFF

;// Si falla el osc.ppal. NO entra el osc.

sec.
config IESO
= OFF
;// Al polarizar el PIC NO inicia con el
osc.sec mientras el osc.ppal. arranca
config PWRT
= ON
;// Retraza el arranque del osc cuando el
pic es polarizado
config BOR
= OFF
alimentacin baje de cierto umbral
config BORV
=3
config VREGEN = ON
del USB, que es de 3.3V

;// NO genera int cuando el voltaje de


;// el umbral (no utilizado)
;// ENCENDIDO el Regulador de voltaje

config WDT
= OFF
;// NO se usa el perro guardian
config WDTPS = 32768
;// escala del perro guardian
config MCLRE = OFF
;// la pata del reset SI est
(cONFIGURACIN INICIAL ON)
config LPT1OSC = OFF
;// EL Timer1 NO trabaja en modo de
bajo consumo
config PBADEN = OFF
;// Los pines PB<4:0> se configuran
como digitales (si fuese ON, se configuran como analgicas) al resetear

config CCP2MX = ON
;// CCP2 aparece en RC1 (si fuese OFF,
CCP2 aparece en RB3)
config STVREN = OFF
;// NO resetear cuando se desborde la
pila
config LVP
= OFF
;// NO se quiere voltaje de programacin
bajo (Single-Supply ICSP)
config ICPRT = OFF
;// Dedicated In-Circuit
Debug/Programming
config XINST = OFF
;// Extended Instruction Set
config DEBUG
= OFF
;// NO modo debug RB6 y RB7
como lneas normales, en caso contrario, RB6 y RB7 estan dedicadas
;
// Los
siguientes son proteccin de memoria
config CP0
= OFF
;// NO protege acceso a 000800-001FFF
config CP1
= OFF
;// NO protege acceso a 002000003FFF
config CP2
= OFF
;// NO protege acceso a 004000005FFF
config CP3
= OFF
;// NO protege acceso a 006000007FFF
config CPB
= OFF
;// NO protege acceso a 0000000007FF
seccin de boot
config CPD
= OFF
;// NO protege EEPROM
config WRT0
= OFF
;// NO protege escritura de
000800-001FFF
config WRT1
= OFF
;// NO protege escritura de
002000-003FFF
config WRT2
= OFF
;// NO protege escritura de
004000-005FFF
config WRT3
= OFF
;// NO protege escritura de
006000-007FFF
config WRTB
= OFF
;// NO protege escritura de 0000000007FF seccion de boot
config WRTC
= OFF
;// NO protege escrituta de bits de
configuracin 300000-3000FF
config WRTD
= OFF
;// NO protege escritura de
EEPROM
config EBTR0 = OFF
;// NO protege de lectura desde
otros bloques a 000800-001FFF
config EBTR1 = OFF
;// NO protege de lectura desde
otros bloques a 002000-003FFF
config EBTR2 = OFF
;// NO protege de lectura desde
otros bloques a 004000-005FFF
config EBTR3 = OFF
;// NO protege de lectura desde
otros bloques a 006000-007FFF
config EBTRB = OFF
;// NO protege de lectura desde
otros bloques a 000800-0007FF seccion de boot

Declaracin de variables y de valores iniciales


REG1
REG2
REG3
IGUAL1
IGUAL2

EQU
EQU
EQU

0CH
0DH
0EH
EQU
EQU

02H
03H

ORG 00H
GOTO INICIO
ORG 08H
GOTO INTERRUPCION

Inicio del Programa


INICIO
CLRF PORTA,0
CLRF PORTB,0
CLRF
PORTD,0
CLRF TRISB,0
CLRF
TRISD,0
MOVLW
0ffH
MOVWF
TRISA,0
MOVLW
00H
MOVWF
TRISB,0
MOVLW
00H
MOVWF
TRISD,0
MOVLW
0EH
MOVWF
ADCON1,0
MOVLW
0BFH
MOVWF
ADCON2,0
MOVLW
00H
MOVWF
ADCON0,0
GOTO
CONVERTIR

Subrutina de Conversin de Analgico a Digital


CONVERTIR
BSF
ADCON0,0,0
BSF
ADCON0,1,0
CALL INTERRUPCION
MOVF ADRESL,0
MOVWF
PORTB
MOVF ADRESH,0

MOVWF
PORTD
MOVLW
0FFH
MOVWF
IGUAL1,0
CPFSEQ
PORTB,0
GOTO CONVERTIR
MOVLW
01H
MOVWF
IGUAL2,0
CPFSEQ
PORTD,0
GOTO CONVERTIR
BSF
PORTD,7,0
GOTO CONVERTIR

Apartado que indica si se a cruzado por la referencia, si es as


enva un pulso rpido a una salida.
INTERRUPCION
NOP
BTFSCADCON0,1,0
GOTO
INTERRUPCION
BCF
ADCON0,1,0
RETURN

END

Diagrama del Circuito

Fig1. Diagrama de Circuito

Resultados

Fig2. Seal de salida mostrada en el osciloscopio

Fig3. Circuito ensamblado en protoboard

Conclusiones

La aplicacin de cruce por cero existe en muchos procesos industriales que


requieren de la indicacin del cambio de condicin en sistemas de control o
procesos de precisin, es muy til para muchos sistemas controlables, y
aunque el pulso no sea preciso al momento del cambio, se busca se sea lo
ms exacto, de tal forma que se considere que ha reaccionado al mismo
momento que el cambio.
La nica limitante que se tiene en este ejercicio es el hecho de que el PIC solo
manipule un intervalo de voltaje bajo, por lo que sera necesario acoplar un
circuito externo de potencia que sea controlado por el PIC y que funcione en
alto voltaje y/o amperajes y por consecuente altas potencias.