Un ROBOT muy rentable utilizando el microcontrolador c 89 51. (5 / 6 paso)

Paso 5: programación

; P0.0 = RELÉ ADELANTE M1
; P0.1 = RELÉ INVERSA M1
; P0.2 = RELÉ ADELANTE M2
; P0.3 = RELÉ INVERSA M2
; P0.4 = RELÉ DELANTERO M3
; P0.5 = RELÉ INVERSA M3
; P0.6 = RELÉ ADELANTE M4
; P0.7 = RELÉ INVERSA M4
;
; P0.0 = D0 LCD
; P0.0 = D1 LCD
; P0.0 = LCD D2
; P0.0 = D3 LCD
; P0.0 = D4 LCD
; P0.0 = D5 LCD
; P0.0 = D6 DE LA PANTALLA LCD
; P0.0 = LCD D7
;
; P2.0 = VENTILADOR
; P2.1 =
; P2.2 = INTERRUPTOR DE LÍMITE 1
; P2.3 = DATOS RECIBIDOS
; P2.4 = LSB DE DATOS RECIBIDOS
; P2.5 = LSB DATOS RECIBIDOS + 1
; P2.6 = LSB DATOS RECIBIDOS + 2
; P2.7 = MSB DE DATOS RECIBIDOS
;
; P3.0 =
; P3.1 =
; P3.2 = RS DEL LCD
; P3.3 = LCD R/W
; P3.4 = LCD E
; P3.5 =
; P3.6 =
; P3.7 =

; Programa comienza aquí

ORG 0000H; INICIO

MOV P0, #00 H
MOV P2, #OFOH
SETB P2.3

MOV DPTR, #COMM1; REGISTRO DE COMANDO
UPI: CLR; PARA INICIALIZAR COMM1 CADENA
MOVC A,
INC DPTR

CJNE A, #' $', COMMAND1
AQUÍ:
MOV A, #80 H; DIRECCIÓN INICIAL DE LA LÍNEA 1
ALLEVAN COMANDO

MOV DPTR, #DATA 1; MOSTRAR LOS DATOS
LCALL LINE_DISPLAY_ROLL
HERE1:
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO

MOV DPTR, #DATA2
LCALL LINE_DISPLAY

LCALL CHECK_INPUT

CJNE A, #00 H, NEXT1
MOV P0, H #05
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA3
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

COMMAND1: ALLEVAN COMANDO
AJMP UP1

NEXT1:
CJNE A, #01 H, NEXT2
MOV P0, #0AH
LCALL RETARDO
LCALL RETARDO
MOV A, # 0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA4
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT2:
CJNE A, #02 H, NEXT3
MOV P0, H #09
LCALL RETARDO
LCALL RETARDO
MOV A, #OCOH; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA5
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT3:
CJNE A, #03 H, NEXT4
MOV P0, H #06
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA6
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT4:
CJNE A, #04 H, NEXT5
MOV P0, #10 H
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA7
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT5:
CJNE A, #05 H, NEXT6
MOV P0, #20 H
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA8
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT6:
CJNE A, #06 H, NEXT7
MOV P0, #40 H
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA9
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT7:
CJNE A, #07 H, NEXT8
MOV P0, #80 H
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA10
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT8:
CJNE A, #08 H, NEXT9
SETB P2.0;(CONDITIONAL.. SI SE AÑADEN FUNCIONES EXTRA)
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA11
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXT9:
CJNE A, #09 H, NEXTUNA
P2.0 DE CLR; (CONDICIONAL... SI SE AÑADEN FUNCIONES EXTRA)
LCALL RETARDO
LCALL RETARDO
MOV A, #0C0H; DIRECCIÓN INICIAL DE LA LÍNEA 2
ALLEVAN COMANDO
MOV DPTR, #DATA12
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

NEXTUNA:
LJMP HERE1; LAZO AQUÍ DESPUÉS DE LA PANTALLA

LINE_DISPLAY:
CLR A
MOVC A,
INC DPTR
CJNE A, #' $', 1
RET

1: ALLEVAN PANTALLA
AJMP LINE_DISPLAY

LINE_DISPLAY_ROLL:
LCALL RETARDO
CLR A
MOVC A,
INC DPTR
CJNE A, #' $', DISPLAY11
RET

DISPLAY11: ALLEVAN PANTALLA
AJMP LINE_DISPLAY_ROLL

RETARDO: MOV R7, #0FFH
LOOP1: MOV R6, #0FFH
LAZO: DJNZ R6, LAZO
DJNZ R7, LOOP1
RET

;************************************************************************************************

; COMANDO DE LUZ ESTROBOSCÓPICA DE LCD

COMANDO: ALLEVAN LISTO; CUANDO LA PANTALLA NO ESTÁ OCUPADA
MOV P1, A; CARÁCTER DE COMANDO EN EL PUERTO P1
P3.2 CLR; COMANDO REGISTRO ELEGIDO
P3.3 CLR; ESCRIBA ENABLE
SETB P3.4; PERSONAJE DE LA ESTROBOSCÓPICO A MUESTRA
P3.4 CLR
RET; VOLVER

;************************************************************************************************

EXHIBICIÓN: ALLEVAN LISTO
MOV P1, A; TOMAR DATOS
SETB P3.2; PS = P3.2 = 1 PARA REGISTRO DE DATOS SELECCIONE
P3.3 CLR; ESCRIBA ENABLE
SETB P3.4; PERSONAJE DE LA ESTROBOSCÓPICO A MUESTRA
P3.4 CLR
RET; VOLVER

;************************************************************************************************

LISTO: CLR P3.4; PANTALLA DE LUZ ESTROBOSCÓPICA
MOV P1, #0FFH; CONFIGURAR P1 PARA LA ENTRADA DE
P3.2 CLR; REGISTRO DEL COMANDO SELECT
SETB P3.3; LEER PERMITE
ESPERA: CLR P3.4; PANTALLA DE LUZ ESTROBOSCÓPICA
SETB P3.4
P1.7 JB, ESPERE; LEER ESTADO BUSY (BF = 0)
P3.4 CLR; FINAL PANTALLA ESTROBOSCÓPICA.
RET; VOLVER

; ************************************************************************************************

COMM1: DB 3CH, 0EH, 06, 01H, '$'
DATA1: DB 'DE BEBIL-ROBOT, $'
DATA2: DB 'INSTRUCTABLES, $'
DATA3: DB 'ADELANTE $'
DATA4: DB 'HACIA ATRÁS $'
DATA5: DB 'LEFT $'
DATA6: DB 'RIGHT $'
DATA7: DB 'CÁMARA IZQUIERDA $'
DATA8: DB 'CÁMARA DERECHA $'
DATA9: DB 'CÁMARA HASTA $'
DATA10: DB 'CÁMARA ABAJO$ '
DATA11: DB 'OPCIONAL $'
DATA12: DB 'OPCIONAL $'

CHECK_INPUT:
MOV P2, #0F0H
SETB P2.3
P2.3 JB, READ_INPUT
NOP
SJMP CHECK_INPUT

READ_INPUT:
MOV P0, #00 H
LCALL RETARDO
MOV A, P2
ANL A, #0F0H
INTERCAMBIO A
RET

CHECK_KEY_RELEASE:
SETB P2.3
NOP
P2.3 JB, CHECK_KEY_RELEASE
SETB P2.3
MOV P0, #00 H
RET

Artículos Relacionados

Construir un Robot muy pequeño: hacer el mundo más pequeño de ruedas Robot con una pinza.

Construir un Robot muy pequeño: hacer el mundo más pequeño de ruedas Robot con una pinza.

Construir un robot de 1/20 pulgada cúbica con una pinza que puede recoger y mover pequeños objetos. Es controlado por un microcontrolador Picaxe. En este momento, creo que esto puede ser más pequeño robot con ruedas del mundo con una pinza. Cambiará
Cómo hacer un robot muy simple

Cómo hacer un robot muy simple

este es mi 1 º instructable, así que por favor me diga si es bueno.así que va a mostrar cómo hacer un robot muy simple: el robot escarabajo!usa sin chip, sin programación, sólo la simple conexión 3Paso 1: obtener todos los materiales necesarios! ok a
Robot muy sencillo para principiantes

Robot muy sencillo para principiantes

Este instructable muestra cómo hacer robot muy sencillo. Detecta obstáculos y evitarlo. Este es el gran proyecto para alguien que es nuevo en arduino y quiere hacer el primer robot.¿Por qué robot?Porque es gran manera de aprender programación de ardu
Línea Robot seguidor sin Arduino o microcontrolador

Línea Robot seguidor sin Arduino o microcontrolador

aquí expliqué un robot seguidor de línea sin microcontroladores o Arduino. Este es un proyecto muy simple para principiantes. Aquí tienes la necesidad de no tener ningún conocimiento de programación. así que deja probarlo...Paso 1: Recoger el materia
Tu primer Arduino Robot (muy fácil) :-)

Tu primer Arduino Robot (muy fácil) :-)

HLO amigos!!!!!!Este es mi nuevo instructablesEn foto de arriba es solamente áspero montaje del robotTe guiará que cómo hacer tu primer Robot con Arduino muy fácilPaso a pasoAsí que vamos a reunir todas las piezas necesariasPaso 1: Reunir el Material
Robot control remoto utilizando Arduino y T.V. remoto

Robot control remoto utilizando Arduino y T.V. remoto

Este coche de control remota se puede mover utilizando prácticamente cualquier tipo de control remoto tales como TV, CA etc..Se hace uso del hecho de que el control remoto emite IR(infrared).Esta propiedad se hace uso de mediante el uso de un recepto
Estilo de Apple LED pulsación utilizando un microcontrolador $1,30

Estilo de Apple LED pulsación utilizando un microcontrolador $1,30

Atmel ATTiny85 el chip es una MCU de 8 pines que es totalmente impresionante.  Si usted ha programado con los chicos más grandes (la serie del ATMega), se trata de una aventura agradable - usted está algo limitado en el número de pines de salida, per
Juego de LED multifunción utilizando un microcontrolador ATmega32

Juego de LED multifunción utilizando un microcontrolador ATmega32

En primer lugar son mis respuestas para el concurso de Make-a-aprenda:¿Lo que?Hice un programa de matriz de LED multifunción, como mi anterior con Arduino UNO, pero esta vez la hice con un microcontrolador ATmega32. He utilizado regular C código a pr
Zumbador de quiz 8 candidato utilizando el microcontrolador 8051 (AT89C51)

Zumbador de quiz 8 candidato utilizando el microcontrolador 8051 (AT89C51)

el concurso zumbador sistemas son ampliamente utilizados en escuela, colegios y programas de televisión. El equipo que presiona el timbre más temprano tiene derecho a dar la respuesta. A veces resulta muy difícil identificar qué equipo ha presionado
SPROT, mi SimPleROboT

SPROT, mi SimPleROboT

en este instructable le mostraré cómo hacer un robot muy simple, utilizando un arduino. Este robot podría ser la base para una amplia gama de proyectos, estoy pensando en Añadir LDRs al mio por lo que puede buscar ponen luz y también seguir una línea
Crear un Robot controlado por Wi-Fi, utilizando un LinkIt

Crear un Robot controlado por Wi-Fi, utilizando un LinkIt

Aquí está una guía paso a paso que ayudará a construir el primer robot y añadir complejidad, siguiendo a lo largo. Además de construir un obstáculo básico evitando el robot con un sensor de ultrasonidos y Sparkfun motor driver , también aprenderá a c
Base de prototipos de Robot multiusos madera contrachapada

Base de prototipos de Robot multiusos madera contrachapada

Por qué gastar tu dinero en robot confeccionado de metal o acrílico bases cuando se puede hacer uno usted mismo! sí, así que este instructable va a enseñar cómo hacer una plataforma base de madera contrachapada robot prototipo. Seguramente necesite c
Robot seguidor de línea

Robot seguidor de línea

este es mi segundo Robot seguidor de línea y como su nombre sugiere, es un robot cuyo objetivo es siguiendo una línea. Este robot se puede utilizar en concursos donde un robot debe seguir un recorrido delimitado por una línea negra sobre un fondo bla
Cómo construir un simple móvil robot(beginners)

Cómo construir un simple móvil robot(beginners)

Un robot muy sencillo con componentes muy básicos que encendería a sus intereses en robótica. disfrutar de lo que es!Paso 1: Herramientas y componentes ¡ Comienzo con reunión es todas las partes. Puedes ir step-wise o terminarás corriendo todo al ini