practica 4 micros
DESCRIPTION
MICROCOMPUTADORASTRANSCRIPT
![Page 1: practica 4 micros](https://reader036.vdocuments.net/reader036/viewer/2022071808/577c86751a28abe054c14146/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071808/577c86751a28abe054c14146/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071808/577c86751a28abe054c14146/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071808/577c86751a28abe054c14146/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071808/577c86751a28abe054c14146/html5/thumbnails/5.jpg)
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.