Académique Documents
Professionnel Documents
Culture Documents
DE MXICO
FACULTAD DE INGENIERA
PRCTICA 4
MATERIA:
MICROCOMPUTADORAS
PROFESORA:
QUIONES JUREZ ANGLICA
ALUMNO:
OLIVARES CASTILLO JOS LUIS
Grupo: 7
7-III-2016
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
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.
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.