practica 4 micros

5
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PRÁCTICA 4 MATERIA: MICROCOMPUTADORAS PROFESORA: QUIÑONES JUÁREZ ANGÉLICA ALUMNO: OLIVARES CASTILLO JOSÉ LUIS Grupo: 7 7-III-2016

Upload: jose-luis-olivares

Post on 16-Jul-2016

4 views

Category:

Documents


2 download

DESCRIPTION

MICROCOMPUTADORAS

TRANSCRIPT

Page 1: practica 4 micros

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA

PRÁCTICA 4

MATERIA:MICROCOMPUTADORAS

PROFESORA:QUIÑONES JUÁREZ ANGÉLICA

ALUMNO: OLIVARES CASTILLO JOSÉ LUIS

Grupo: 7

7-III-2016

Page 2: practica 4 micros

PUERTOS PARALELOS III(CONTROL DE MOTORES DE CD)

OBJETIVOEmplear los puertos paralelos que contiene un microcontrolador, para controlar la operación de

dos motores de corriente directa.

INTRODUCCIÓNEl circuito que nos permite entregar la potencia y señales 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 mayorinformación revisar la hoja de datos de este circuito. El circuito tiene dos terminales para alimentación,una de ellas es para el propio dispositivo, el cuál debe ser de 5 volts, y otra para la tensión en losmotores la cual puede ser desde 0.2 volts hasta 32 volts (de acuerdo al voltaje de operación del motor),así mismo permite tener el control de la velocidad de rotación del motor, mediante las terminales EN1y EN2; por último la dirección de rotación se establece de acuerdo al nivel lógico existente entre lasterminales identificadas como DIR1 y DIR2 para un motor, DIR3 y DIR4 para el otro motor. Porejemplo si EN=1, Dir1=1 y Dir2=0, el motor girará hacia un sentido y cuando DIR1=0 y DIR2=1, elmotor girará en sentido contrario. El motor se mantiene parado cuando EN1=0 o el valor en Dir1=Dir2.

DESARROLLOUtilizando 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 asignación de la tarjeta del driver de motores realizar un programa, el cualpermita controlar el funcionamiento y sentido de giro de cada uno de ellos por separado, através del puerto paralelo A, el puerto B deberá mandar las señales al driver, como se indica enla tabla 4.1.

ENTRADA BINARIAPUERTO A

MOTOR SENTIDO DE GIROPUERTO BIZQUIERDO DERECHO

000000 OFF OFF PARO

000010 OFF ON HORARIO

000100 OFF ON ANTIHORARIO

001000 ON OFF HORARIO

010000 ON OFF ANTIHORARIOTabla 4.1

Se obtiene la siguiente tabla para poder manipular el puente H en función de los casos que se deben realizar según las entradas.

Page 3: practica 4 micros

PORTA

MOTORESPORTB

IZQUIERDO DERECHO

EN1 DIR1 EN2 DIR2

000000 0 0 0 0

000010 0 0 1 1

000100 0 0 1 0

001000 1 1 0 0

010000 1 0 0 0

Código:

processor 16f877include <p16f877.inc>org 0hgoto inicio org 05h;inicio de programainicio: clrf PORTA ;Limpia registros.

CLRF PORTBBSF STATUS, RP0 ;Cambiamos al banco 1BCF STATUS, RP1 ;MOVLW 06HMOVWF ADCON1 ;se configuran las entradas comoMOVLW 3FH ;digitales.MOVWF TRISA ;Se configura PORTA como entradas.MOVLW 00H ;Configura PORTB como salida.MOVWF TRISBBCF STATUS,RP0 ;Regresa al banco 0.

;Aquí se comparan uno a uno las entradas con los valores de la tabla y en caso ;de coincidir con algún caso, se dirige a esa subrutina, sino salta la instrucción y;sigue verificando, si ninguna entrada altera el valor dela bandera Z se llama a ;sí misma con CALL PUERTOA.

;PARA CASO1PUERTOA: MOVF PORTA,0 ;Carga el contenido del PORTA a W.

XORLW H'00' ;Con la instrucción XORLW comparamosBTFSC STATUS,Z ; el valor de la tabla con W y se verifica

;el estado de la bandera Z para ir a ;alguno de los casos u omitir la ;instrucción

CALL CASO1

;PARA CASO2MOVF PORTA,0XORLW H'02'BTFSC STATUS,ZCALL CASO2

;PARA CASO3MOVF PORTA,0

XORLW H'04'BTFSC STATUS,ZCALL CASO3

;PARA CASO4MOVF PORTA,0XORLW H'08'BTFSC STATUS,ZCALL CASO4

;PARA CASO5MOVF PORTA,0XORLW B'0010000'BTFSC STATUS,ZCALL CASO5

;SINO SE AFECTA Z, REGRESA A LA MISMA SUBRUTINA.CALL PUERTOA

CASO1: CLRF PORTB ;Se limpia PORTBRETURN

CASO2: MOVLW H'03' ;Se carga el valor para que el motorMOVWF PORTB ;motor derecho gire en sentido horarioRETURN ;y el motor izquierdo apague

CASO3: MOVLW H'02' ;Se carga el valor para que el motorMOVWF PORTB ;motor derecho gire en sentido antihorarioRETURN

CASO4: MOVLW B'00001100' ;Se carga el valor para que el motorMOVWF PORTB ;izquierdo gire en sentido horarioRETURN

CASO5: MOVLW B'00001000' ;Se carga el valor para que el motorMOVWF PORTB ;izquierdo gire en sentido antihorarioRETURN

END

2. Considerando la información y los circuitos del ejercicio anterior, realizar un programa que deacuerdo a una señal de control ingresada por el puerto A, se genere la acción indicada en latabla 4.2.

Page 4: practica 4 micros

DATOPORTA

ACCIÓN

MOTOR1 MOTOR2

$00 PARO PARO

$01 DERECHA DERECHA

$02 IZQUIERDA IZQUIERDA

$03 DERECHA IZQUIERDA

$04 IZQUIERDA DERECHATabla 4.2

Al igual que en el problema anterior, es necesario conocer los valores que se deben ingresar al puente Hpara mover los motores según las entradas.

DATOPORTA

MOTORES PORTB

IZQUIERDO DERECHO

EN1 DIR1 EN2 DIR2

00000000 0 0 0 0

00000001 1 1 1 1

00000010 1 0 1 0

00000011 1 1 1 0

00000100 1 0 1 0

Page 5: practica 4 micros

Código:processor 16f877include <p16f877.inc>org 0hgoto inicio org 05h

inicio: clrf PORTA ;Limpia registros.CLRF PORTBBSF STATUS, RP0 ;Cambiamos al banco 1BCF STATUS, RP1 ;MOVLW 06HMOVWF ADCON1 ;se configuran las entradas comoMOVLW 3FH ;digitales.MOVWF TRISA ;Se configura PORTA como entradas.MOVLW 00H ;Configura PORTB como salida.MOVWF TRISBBCF STATUS,RP0 ;Regresa al banco 0.

;Aquí se comparan uno a uno las entradas con los valores de la tabla y en caso ;de coincidir con algún caso, se dirige a esa subrutina, sino salta la instrucción y;sigue verificando, si ninguna entrada altera el valor dela bandera Z se llama a ;sí misma con CALL PUERTOA.

;PARA CASO1PUERTOA: MOVF PORTA,0 ;Carga el contenido del PORTA a W.

XORLW H'00' ;Con la instrucción XORLW comparamosBTFSC STATUS,Z ; el valor de la tabla con W y se verifica

;el estado de la bandera Z para ir a ;alguno de los casos u omitir la ;instrucción

CALL CASO1;PARA CASO2

MOVF PORTA,0XORLW H'01'BTFSC STATUS,ZCALL CASO2

;PARA CASO3MOVF PORTA,0XORLW H'02'BTFSC STATUS,ZCALL CASO3

;PARA CASO4MOVF PORTA,0XORLW H'03'BTFSC STATUS,ZCALL CASO4

;PARA CASO5MOVF PORTA,0XORLW H'04'BTFSC STATUS,ZCALL CASO5

;SINO SE AFECTA Z, REGRESA A LA MISMA SUBRUTINA.CALL PUERTOA

;CAS01: DETIENE AMBOS MOTORESCASO1: CLRF PORTB

RETURN

;CASO2: AMBOS MOTORES GIRAN EN SENTIDO HORARIOCASO2: MOVLW H'0F'

MOVWF PORTBRETURN

;CASO3: AMBOS MOTORES GIRAN EN SENTIDO ANTIHORARIOCASO3: MOVLW H'0A'

MOVWF PORTBRETURN

;CASO4: MOTOR 1 GIRA EN SENTIDO HORARIO Y MOTOR 2 EN;ANTIHORARIOCASO4: MOVLW H'0E'

MOVWF PORTBRETURN

;CASO5: MOTOR 2 GIRA EN SENTIDO HORARIO Y MOTOR 1 EN;ANTIHORARIOCASO5: MOVLW B'00001011'

MOVWF PORTBRETURN

END

CONCLUSIONES

Con la práctica se logra manipular motores DC con ayuda de un puente H, el cual se debealimentar con una fuente de voltaje independiente que sólo alimente al puente, ya que trabaja condiferente voltaje que el microcontrolador, el puente H facilita el control de los motores ya que sólodepende de unas pocas variables de entrada para activar o desactivar el motor así como su sentido degiro.