Carro Seguidor De Linea
dash253 de Junio de 2014
664 Palabras (3 Páginas)476 Visitas
INTITUTO TECNOLOGICO DE ESTUDIOS SUPERIORES DE OCCIDENTE
FUNDAMENTOS DE MICROPROCESADORES
PROYECTO FINAL
Carro seguidor de línea
Roberto Escalante
Ana Karen Castañeda
Jin Chao
Ulises Horta
Objetivo:
Diseñar un carro electromecánico que siga una línea de color negro.
Material:
• 2 motores a paso
• 8 transistores tip41c
• 8 transistores 2n3904
• 2 sensores CNY70
• Micro 89s52
• Resistencias
• Leds
• Material del carro
• 2 protos
• 1 dipswich
• 8 diodos in4004
Desarrollo:
Primeramente para poder realizar este proyecto se necesitó saber cuál era el funcionamiento del carro, posteriormente investigar los sensores que utilizaríamos y saber cómo funcionaban y como se conectaban y también revisar y saber cuál era la secuencia de activación cada una de las bobinas de los motores a paso, ya teniendo esto listo dimos paso a realizar el esquemático que se ocuparía para el proyecto, en esta parte hubo varias propuestas pero se optó por utilizar una etapa de potencia con transistores tip41c que se necesitó ser reforzada con una configuración Darlington para obtener la secuencia de activación esperada, ya teniendo el código para el micro se dio paso a checar el funcionamiento de carro donde se llevó bastante tiempo para dejarlo en funcionamiento correcto debido a complicaciones de hardware y software pero finalmente quedo listo para su revisión.
Diagrama de Flujo:
Código:
ORG 0000H
LJMP INICIO ; nos manda al parte princiapl del programa
ORG 0003H ; vector de interrupccion INT0
LJMP INTERRU
ORG 0030H ; salta vectores de interrupccion
/* Programa principal*/
INICIO: SETB IE.7 ; acticacion genereal de interrupccion
SETB IE.0 ; activacion de INT0
LOOP: SJMP LOOP
INTERRU: CLR IE0 ; borarar bandera de interrupccion externa 0
/* lectura de sensores*/
LEER: MOV A,P0
CJNE A,#03H,NEXT
LJMP APAGAR
NEXT: CJNE A,#02H,NEXT2
LJMP ACTIVAUNO
NEXT2:CJNE A,#01H,NEXT3
LJMP ACTIVADOS
NEXT3:CJNE A,#00H,LEER
LJMP ACTIVAR
LJMP LEER
RETI
/* nos manda a la subrutina para detener los 2 motores */
APAGAR: ACALL DETENER
LJMP LEER
/* nos manda a la secuencia de activacion del motor 1*/
ACTIVAUNO:ACALL MOTORUNO
LJMP LEER
/* nos mnada a la secuencia de activacion del motor 2*/
ACTIVADOS:ACALL MOTORDOS
LJMP LEER
/* nos manda a la secuencia de activacion de los 2 moteres */
ACTIVAR: ACALL ENCENDER
LJMP LEER
/* subrutina para detener los 2 motores*/
DETENER: MOV P2,#0000H
RET
/* subrutina para activar el motor 1 */
MOTORUNO: MOV P2,#00000001B
ACALL RETARDO
MOV P2,#00000010B
ACALL RETARDO
MOV P2,#00000100B
ACALL RETARDO
MOV P2,#00001000B
ACALL RETARDO
RET
/* sunrutina para activar el motor 2*/
MOTORDOS: MOV P2,#00010000B
ACALL RETARDO
MOV P2,#00100000B
ACALL RETARDO
MOV P2,#01000000B
ACALL RETARDO
MOV
...