Vous êtes sur la page 1sur 5

UNIVERSIDAD NACIONAL AUTNOMA

DE MXICO
FACULTAD DE INGENIERA
PRCTICA 4
MATERIA:
MICROCOMPUTADORAS
PROFESORA:
QUIONES JUREZ ANGLICA
ALUMNO:
OLIVARES CASTILLO JOS LUIS
Grupo: 7

7-III-2016

PUERTOS PARALELOS III


(CONTROL DE MOTORES DE CD)
OBJETIVO
Emplear los puertos paralelos que contiene un microcontrolador, para controlar la operacin de
dos motores de corriente directa.
INTRODUCCIN
El circuito que nos permite entregar la potencia y seales de control a motores de corriente
directa es el L293 B/D o en caso de requerir mayor corriente usar el L298; se sugiere para una mayor
informacin revisar la hoja de datos de este circuito. El circuito tiene dos terminales para alimentacin,
una de ellas es para el propio dispositivo, el cul debe ser de 5 volts, y otra para la tensin en los
motores la cual puede ser desde 0.2 volts hasta 32 volts (de acuerdo al voltaje de operacin del motor),
as mismo permite tener el control de la velocidad de rotacin del motor, mediante las terminales EN1
y EN2; por ltimo la direccin de rotacin se establece de acuerdo al nivel lgico existente entre las
terminales identificadas como DIR1 y DIR2 para un motor, DIR3 y DIR4 para el otro motor. Por
ejemplo si EN=1, Dir1=1 y Dir2=0, el motor girar hacia un sentido y cuando DIR1=0 y DIR2=1, el
motor girar en sentido contrario. El motor se mantiene parado cuando EN1=0 o el valor en Dir1=
Dir2.
DESARROLLO
Utilizando el circuito de potencia de motores de corriente directa y el sistema de desarrollo del
microcontrolador PIC, realizar los programas solicitados.
1. De acuerdo a la asignacin de la tarjeta del driver de motores realizar un programa, el cual
permita controlar el funcionamiento y sentido de giro de cada uno de ellos por separado, a
travs del puerto paralelo A, el puerto B deber mandar las seales al driver, como se indica en
la tabla 4.1.
MOTOR

ENTRADA BINARIA
PUERTO A

IZQUIERDO

DERECHO

SENTIDO DE GIRO
PUERTO B

000000

OFF

OFF

PARO

000010

OFF

ON

HORARIO

000100

OFF

ON

ANTIHORARIO

001000

ON

OFF

HORARIO

010000

ON

OFF

ANTIHORARIO

Tabla 4.1
Se obtiene la siguiente tabla para poder manipular el puente H en funcin de los casos que se deben
realizar segn las entradas.

MOTORES
PORTB

PORTA

IZQUIERDO

DERECHO

EN1

DIR1

EN2

DIR2

000000

000010

000100

001000

010000

Cdigo:
processor 16f877
XORLW H'04'
include <p16f877.inc>
BTFSC STATUS,Z
org 0h
CALL CASO3
goto inicio
;PARA CASO4
org 05h
MOVF PORTA,0
;inicio de programa
XORLW H'08'
inicio: clrf PORTA
;Limpia registros.
BTFSC STATUS,Z
CLRF PORTB
CALL CASO4
BSF STATUS, RP0
;Cambiamos al banco 1
;PARA CASO5
BCF STATUS, RP1
;
MOVF PORTA,0
MOVLW 06H
XORLW B'0010000'
MOVWF ADCON1
;se configuran las entradas como
BTFSC STATUS,Z
MOVLW 3FH
;digitales.
CALL CASO5
MOVWF TRISA
;Se configura PORTA como entradas.
;SINO SE AFECTA Z, REGRESA A LA MISMA SUBRUTINA.
MOVLW 00H
;Configura PORTB como salida.
CALL PUERTOA
MOVWF TRISB
BCF STATUS,RP0
;Regresa al banco 0.
CASO1: CLRF PORTB
;Se limpia PORTB
;Aqu se comparan uno a uno las entradas con los valores de la tabla y en caso
RETURN
;de coincidir con algn caso, se dirige a esa subrutina, sino salta la instruccin y
;sigue verificando, si ninguna entrada altera el valor dela bandera Z se llama a CASO2: MOVLW H'03'
;Se carga el valor para que el motor
;s misma con CALL PUERTOA.
MOVWF PORTB
;motor derecho gire en sentido horario
RETURN
;y el motor izquierdo apague
;PARA CASO1
PUERTOA: MOVF PORTA,0
;Carga el contenido del PORTA a W.
CASO3: MOVLW H'02'
;Se carga el valor para que el motor
XORLW H'00'
;Con la instruccin XORLW comparamos
MOVWF PORTB
;motor derecho gire en sentido antihorario
BTFSC STATUS,Z
; el valor de la tabla con W y se verifica
RETURN
;el estado de la bandera Z para ir a
;alguno de los casos u omitir la
CASO4: MOVLW B'00001100'
;Se carga el valor para que el motor
;instruccin
MOVWF PORTB
;izquierdo gire en sentido horario
CALL CASO1
RETURN
;PARA CASO2
MOVF PORTA,0
XORLW H'02'
BTFSC STATUS,Z
CALL CASO2

CASO5: MOVLW B'00001000'


MOVWF PORTB
RETURN

;Se carga el valor para que el motor


;izquierdo gire en sentido antihorario

END

;PARA CASO3
MOVF PORTA,0

2. Considerando la informacin y los circuitos del ejercicio anterior, realizar un programa que de
acuerdo a una seal de control ingresada por el puerto A, se genere la accin indicada en la
tabla 4.2.

ACCIN

DATO
PORTA

MOTOR1

MOTOR2

$00

PARO

PARO

$01

DERECHA

DERECHA

$02

IZQUIERDA

IZQUIERDA

$03

DERECHA

IZQUIERDA

$04

IZQUIERDA

DERECHA

Tabla 4.2
Al igual que en el problema anterior, es necesario conocer los valores que se deben ingresar al puente H
para mover los motores segn las entradas.

DATO
PORTA

MOTORES
PORTB
IZQUIERDO

DERECHO

EN1

DIR1

EN2

DIR2

00000000

00000001

00000010

00000011

00000100

Cdigo:
processor 16f877
include <p16f877.inc>
org 0h
goto inicio
org 05h
inicio: clrf PORTA
CLRF PORTB
BSF STATUS, RP0
BCF STATUS, RP1
MOVLW 06H
MOVWF ADCON1
MOVLW 3FH
MOVWF TRISA
MOVLW 00H
MOVWF TRISB
BCF STATUS,RP0

;Limpia registros.
;Cambiamos al banco 1
;
;se configuran las entradas como
;digitales.
;Se configura PORTA como entradas.
;Configura PORTB como salida.

;PARA CASO4
MOVF PORTA,0
XORLW H'03'
BTFSC STATUS,Z
CALL CASO4
;PARA CASO5
MOVF PORTA,0
XORLW H'04'
BTFSC STATUS,Z
CALL CASO5
;SINO SE AFECTA Z, REGRESA A LA MISMA SUBRUTINA.
CALL PUERTOA
;CAS01: DETIENE AMBOS MOTORES
CASO1: CLRF PORTB
RETURN

;Regresa al banco 0.

;CASO2: AMBOS MOTORES GIRAN EN SENTIDO HORARIO


;Aqu se comparan uno a uno las entradas con los valores de la tabla y en caso CASO2: MOVLW H'0F'
;de coincidir con algn caso, se dirige a esa subrutina, sino salta la instruccin y
MOVWF PORTB
;sigue verificando, si ninguna entrada altera el valor dela bandera Z se llama a
RETURN
;s misma con CALL PUERTOA.
;CASO3: AMBOS MOTORES GIRAN EN SENTIDO ANTIHORARIO
;PARA CASO1
CASO3: MOVLW H'0A'
PUERTOA: MOVF PORTA,0
;Carga el contenido del PORTA a W.
MOVWF PORTB
XORLW H'00'
;Con la instruccin XORLW comparamos
RETURN
BTFSC STATUS,Z
; el valor de la tabla con W y se verifica
;el estado de la bandera Z para ir a
;CASO4: MOTOR 1 GIRA EN SENTIDO HORARIO Y MOTOR 2 EN
;alguno de los casos u omitir la
;ANTIHORARIO
;instruccin
CASO4: MOVLW H'0E'
CALL CASO1
MOVWF PORTB
;PARA CASO2
RETURN
MOVF PORTA,0
XORLW H'01'
;CASO5: MOTOR 2 GIRA EN SENTIDO HORARIO Y MOTOR 1 EN
BTFSC STATUS,Z
;ANTIHORARIO
CALL CASO2
CASO5: MOVLW B'00001011'
;PARA CASO3
MOVWF PORTB
MOVF PORTA,0
RETURN
XORLW H'02'
BTFSC STATUS,Z
END
CALL CASO3

CONCLUSIONES
Con la prctica se logra manipular motores DC con ayuda de un puente H, el cual se debe
alimentar con una fuente de voltaje independiente que slo alimente al puente, ya que trabaja con
diferente voltaje que el microcontrolador, el puente H facilita el control de los motores ya que slo
depende de unas pocas variables de entrada para activar o desactivar el motor as como su sentido de
giro.

Vous aimerez peut-être aussi