universidad autonoma metropolitana

Anuncio
UNIVERSIDAD AUTONOMA METROPOLITANA
Unidad:
lztapalapa.
División:
Ciencias Básicase Ingeniería.
Carrera:
lng. Electrónica en Computación.
Materia:
Proyecto Terminal I y I t .
Titulo:
Diseño, realización de un Autómata Robot
y comunicación a una PC.
Fecha:
21 de septiembre de 1999.
Alumnos:
Juan Carlos Rosas Cabrera 94217975
94218449
Javier Tores Vigil
Asesor:
UNIVERSIDAD AUTONOMA METROPOLITANA
Unidad lztapalapa
Ciencias Básicase Ingeniería
Proyecto Terminal
Ingeniería en Electrónica
Diseño, realización de un Autómata Robot
y comunicaci6n a una PC
Asesor:
JesúsBarriosRomano
Integrantes:
Juan
Carlos
Rosas
Cabrera
Torres Javier
Vigil
Matricula:
94217975
94218449
Indice
Prologo.......................................................................
1
Introduction.. .....................................................
3
Etapa I..................................................................................
7
. I
Una visión en general del sistema y
Como se compone..................................................
Partes del sistema en general................................
El Autómata-Robot y sus partes..............................
Sistema de tracciony movimiento........................
Plataforma y estructura para soporte
de los circuitos controladores................................
13
Lista de las partesdel Automata-Robot................
14
Sistema minim0 (8031)............................................
16
Circuitos controladores delos motores
a pasos.......................................................................
17
Motores parala tracción .........................................
17
Motor para el sensor................................................
19
Sistema de alimentacibn de energía
........................
21
Sistema de sensores ..................................................
22
Sistema de conversión halógico-Digital ...............
24
Primer programa.....................................................
26
...................................................................................
Etapa I1
28
Comunicación entre PC'y el Autómata.Robot .......
29
Sistemade Madulacicin FSK....................................
30
Sistema
de
Transmisión
...............................
31
Sistema de Recepción de F M ...................................
32
Sistema de Demodulación FSK. ..............................
33
Inicialización del puerto del Autómata-Robot........
33
Inicialización del puerto dela PC.............................
34
Transmisicin de la PCI .................................................
34
Transmisión del Auhjmata-Robot ............................
34
de
.,
Recepclondela Pc'.....................................................
34
Recepcicin del Autcimata-Rahat...................................
35
Control y monitoreo del Autómata-Robot
en una PC ......................................................................
37
Tipo deencabezado y datos (Protocolo de
. .,
comumcaclon)...............................................................
37
Descripción dela pantalla del monitor.......................
38
Descripcicin de las comandos al Autiimata-Rahat.... 39
Ejemplos de exploraciones..........................................
43
Programas finales ........................................................
45
Programa del Autómata-Robot..................................
45
Programa del monitor dela PC ..................................
46
Apéndice A................................................................................
A-i
Apéndice B ................................................................................
€3-1
Bibliografirt
.
Prólogo
El proyecto descrito en este reporte se realizo con la inquietud de hacer algo nuevo e
losaavances tecnológtcos
innovador en los proyectos de investigación, inquietud que surge, debido
que hemos tenido en esta era, hoy en día
la mayoría de las empresas, industrias, oficinas, escuelas,
etc. se utiliza al menos una computadora
y como consecuencia estas intervienen cada vez mas en la
vida diaria del hombre.
Comohemosvistoenpelículasdecienciaficción,
105
robots o autómatas, así como
también lo hacen las computadoras, intervienen en la vida del hombre, ya sea en el hogar, oficina,
industria, etc. en tareas especificas que pueden sustituir al hombre. Cuando se hablaun
derobot se
piensa que es algo tecnológicamente complejo, por varias razones, el primer punto, la tecnología,
por que hace tiempo, a pesar de que se tenia idea de como construirlos, no se contaba con la
tecnología de hoy; como segundo punto el costo, porque aún hoy en día
los circuitos integrados,
servomotores, sensores, estructura y partes módes, son caros; y como otro punto importante las
tareas que va a realizar ya que debido a esto dependerá su diseño y complejidad.
Muchas personas piensan en un robot como una maquina que debería actuar como
persona
normal,
imitar
sus
movimientos,
reacciones
y sentimientos;
pero
una
un robot
real
(actualmente) está totalmente fuera de alcance de imitar en todos sentidos a una persona.
Podemosdefinir
un Robotcomounamaquinaquepuedeejecutarciertastareas
respondiendo a estímulos externos; esto nos lleva a una gran variedad
de robots, dependiendo de las
aplicaciones que estos puedan tener, para poder
ser llamados robots estos deben cumplir varios
puntos en general:
- Tener sistemasde control de movimientos
- Tener sistemas sensores
- Ser totalmente independiente de la intervención
de hombre
Existen tres clasificaciones para los Robots que dependen de
l a s respuestas de estos a
estímulos externos, estas clasificaciones son:
1
- RobotsClaseAlfa:
Estaclaseesla
massimplepuessolamentepuedenrespondera
estímulos y realizar alguna acción en respuesta ellos.
a
- Robots Clase Beta: Esta clase es un poco mas "inteligente" que la clase Alfa,
claseAlfa,
la clase Beta tambiénreaccionaa
habilidadde"recordar"
estímulos,el
los estímulosexternos,peroéstaclase
las reaccionesadichosestímulos,estoes
Robot almacena la informaciónnecesariapara
igual que la
tiene la
, teniendo un conjuntode
un estímulodado
y utilizaésta
información posteriormente si vuelve a ocurrir el mismo estimulo.
- Robots Clase Gama: Esta clase incluya las mismas características de las clases Alfa y Beta
eincorporanuevas
características que lo hacenmuysuperiora
generalizartodos los estímulosquepuededetectar.Como
las anteriores. Esta clase puede
la claseBeta,también"recuerda"
las
solucionesde un estimulo y ademásgeneraliza Csta respuestaparaunavariedaddeestímulos
similares que no hayan ocurrido aún.
Para este proyecto se tuvo la inquietud de construir un
librarobstáculos y moverselibremente,porsi
Robot Clase Alfa pues éste podrá
solo, mediante un sistemaquemidadistancias
y
algoritmos que procesen la información y decidan que ruta es la adecuada para no chocar con los
obstáculos que pueda encontrar para que éste sea autómata, y de que además la información de las
la pantalla de unaPC y junto con
distancias obtenidasse enviaran por radio, para ser desplegadas en
un software que funcionará como monitor que se pueda controlar
al Robot enviándole ordenes o
comandos para que sean ejecutadas por el autómata-robot para que se mueva de un punto a otro a
otro o que reinicie con la exploración del entorno por ejemplo.
Durante la última década, el empleo de un microprocesador como dispositivo compensador
ha aumentado, ya que su precio y confiabilidad ha mejorado notablemente. Enla figura siguiente se
muestra un diagramadebloquesde
un sistemadecontroldigitalde
circuito simple.Esta
configuración dc sistema digital recibe el error, e(g, y realiza los cálculos para proporcionar una
, formaque
salida, ~ * ( t )de
el hcionamiento delproceso sea igual,
0
casi, al funcionamiento
deseado. Muchos microprocesadores tienen la capacidad de recibir y manipular diversas entradas,
por lo que un sistema de control digital constituye frecuentemente
un sistema multivariable.
ficroprocesahr
U
*(o
Proceso
Salida
t
Medicion
Dagrama a bloques de un sistema de control d i g i t a l
En la siguiente figura se muestra un diagrama de bloques más completo de
controlpormicroprocesador.Estediagramamuestraque
formadigital(num6rica)
un sistema de
un microprocesadorrecibeseñalesen
y operacon ellas, encontrastecon
los que lo hacenmediante seaales
continuas. Los datos medidos se convierten de una forma analógica a otra digital por medio de un
convertidor, como se muestra
en la figura. Después de procesar las entradas, el microprocesador
proporciona una salida en forma digital. Esta salida, a su vez,se convierte en analógica mediante el
cclnvertidor digital a analógico como se observa
en la figura.
Entrada de
Diagrama de bloques de un sistema de control por un microprocesador que incluye
los convertidores de seRales
3
12oooo000
1o m o O 0
80000000
60000000
40000000 i
20000000
O
i
1
]Aiio
Cantidad
1
1
1960
100
~~~~
1970
1OOOO
1
I
1980
1000000
1
1990
10000000
1
2000
1
1 10o0o0000
~
Numero total de sistemasde control por computadoras instaladosen industrias
Como se muestraenlasiguiente
g r s c a elnúmerototaldesistemas
de controlpor
computadoras instalados en la industria y/o empresas ha crecido en las dos últimas décadas.
Un computadora consiste en una unidad de procesamiento y control (CPU), unidades de
tamaño y capacidad de una computadora varían con
entrada y salida, y una unidad de memoria. El
1965 se han hecho cada vez más comunes
el tamatlo, la velocidad y la potencia del CPU, que desde
y más baratos las computadoras pequeñas, llamadas microcornputadoras
o computadoras personales
(PC).
En los últimos años han disminuido exponencialmente el tamaño delos componentes y el
costo de los dispositivos lógicos empleados en la construcción de computadoras.
Los sistemasdecontroldigitalseempleanenmúltiplesaplicaciones:paramáquinas
herramienta, procesos metalúrgicos, procesos químicos, control de aviones, control de tráfico de
automóviles, control de inyección electrónica deun auto, etc., y para que estas sean más eficientes
en la aplicación en las que se desempeñan. Ya que las ventajas de usar un control digital son:
1)
Mejoría en la sensibilidad de manejo en diversos dispositivos. 2) El empleo de sdales digitales
4
permite una aplicación m k amplia de los dispositivos. 3) E1 uso de sensores y transductores se
pueden realizar mediciones, transmisiones y acoplar
seíiales de dispositivos de una manera
efectiva.
E1 manejo automático de equipos para el hogar, la escuela y la industria es particularmente
útil para tareas peligrosas, repetitivas, tediosas
cargan, descargan,sueldan,cortan
o simples. En la industria se emplean máquinas que
o moldean,con el objetodeconseguir
precisión, seguridad,
economia y productividad.
El empleo de sistemas digitales integrados a máquinas que realizan tareas como lo hace un
ser humano,fueprevistopordiversosautorescomo
el de las “Guerras de las Galaxius ”. Con
frecuencia sustituyen la labor humana en tareas repetitivas especificas. Algunos dispositivos tienen
incluso
mecanismos
antropomorfos,
incluyendo
algunos
que
reconoceriamos
como
brazos
mecánicos,muñecas
y manos. Los robotspuedenemplearseampliamenteen
la exploración
espacial, en ensamblajes de autos,etc.
Un robot se podría definir como un manipulador reprogramabley multifuncional diseñado
para realizar diversas tareas.
5
El Proyecto de Investigaciónse divide en dos etapas:
Primera Etapa: Para el hcionamiento delautómata-robotsehará
uso de un sistema
microcontrolador basado en el 805 1 , donde este va a ser el responsable de codificar y traducir las
instrucciones que, interna ó externamente, comanden los movimientos del robot así como también
el control de los demás sistemas que son parte de
61 para que sea autómata.
Segunda Etapa: La comunicaciónentre el robot y cualquierPCpodráseralámbrica
o
inalámbrica, dependiendo de la disponibilidad de los componentes y de la complejidad de estos;
tambiénserá
factible usarunaPCpara
exhibir, y compartircon
el autómata, la inspección,
interpretación y resolución de obstáculos que encuentre en su camino en una área determinada, así
como también el control deéste.
Por cansiguicntc para mayor cxplicacióndc su hcionamicnto, cl “sistcma” sc analizará cn
cuatro partesprincipales:
1) Una visión en general del Sistema
y como se compone.
2) El Autómata-Robot y sus partes.
3) Comunicación entre el Robot y la PC.
4) La PC como monitor e interprete de comandos entre el usuarioy el Robot.
6
Etapa I
7
Una vkibnen general del Sistema v como se compone
Se tienela inquietud de realizar un autómata que haga la tarea de reconocer las dimensiones
o explorar una área determinada
y que estassean mostradas en el monitor de una PC. Este autómata
que se controlaasí mismo por medio deun sistema mínimo basado en el procesador803 1 realiza las
tareas de desplazarse y medir las distancias de dicha área, la tarea de moverse a otras áreas para
realizar una nueva exploración se hará por medio de la PC de
2 formas: 1) La PC, por medio del
usuario se le indica que área se tiene que explorar.
2) La PC automatiza toda la exploración del área
total.
Partes del Sistema en General
Sistema de
Comunicación
1
Medidorde 1 I
Distancias
1
Controlador
-
deservomotores
m
Software
-
Sistema de
Comunicación
€
8
El Aut6mata-Robot v sus Dartes
A continuacijn sedescribelaspartesyfuncionamientodelAutjmata-Robot:este
se
componedepartesprincipalescomoloson:sistemadetracciónymovimiento,plataforma,
estructuraparasoportedeloscircuitoscontroladoresysistema
mínimo, así como tambiénsu
sistema dealimentacijn y sistema de sensores.
El Autómata-Robot esta diseñado como su nombre lo dice para moverse por si solo, este
y circuitos de control)
autómata fue creado (tanto sistema mecánico, sistema eléctrico y de potencia,
por nosotros, la mayoria de las piezas del sistema mecánico fueron ‘recolectadas’.
platdoma,
La
el
sistema de tracción y movimiento
y la estructura para el soporte de
los circuitos y batería se
muestran enlas figuras siguientes y por consiguiente
la explicación de cada una de ellas.
Sktema de tracción y movimiento.
3
La figura anterior muestra la forma de la plataforma que esta hecha de madera la cual tiene
tres puntosde apoyo en el piso, dos son
los que van a proporcionar la tracción para su movimiento y
uno solo funciona como puntode apoyo al sueloo plano; se diseiio así de tal forma que formaraun
triángulo equilátero,yaqueestetipodegeometriaharíafácilsudesplazamientopara
girar a
cualquier dirección sobre su propio centro de gravedad, ya que también el ancho de esta plataforma
ayuda a tener una mejor distribución del peso que soportaría el Autómata-Robot. El otro
apoyo fue
disehado por nosotros el
cual consiste en un volumen cilindnco hueco de tal forma que en
interiorhay un cojinete'cónico'elcualsirvecomoapoyo
su
y permitequelaesferaruedecon
facilidad, proporcionándonos asíun movimiento mas eficiente.
g"
Figura de como se l o g r a la tracción del robot por medio de Motoresa pasos
La anterior figura muestra el mecanismo empleado
así como tatnbikn el ilisefio del sistema
de tracción del robot el cual es proporcionado por el movimiento de dos motorespasos,
a se eligió
este tipo de motor para lograr una mayor exactitud en cuanto a su desplazamiento hacia adelante,
hacia atrás y cambios de dirección ya que el objetivo de este
lo requiere. Ya que este tipo de
10
motimientos si se quiere que avance o retroceda el robot, los motores giraran en un solo sentido y
uno, dejar fija una llanta y la otra proporciona la
para dar vuelta se puede lograr de dos maneras:
tracción adecuada para cambiar la dirección del desplazamiento; y dos, girar una llanta o motor en
un sentido y el otro en el opuesto al primero (ventaja que nos proporcionanlos motores a paws por
la facilidad de su control), para queeste gire o cambie de dirección de una manera mas rápida que
la
anterior y su movimiento sea sobre su propio centro de masa.
La tracción, como ya se dijo anteriormente es proporcionada por motores a pasos, esta es
proporcionada por un engrane sinfin, que es perpendicular al eje de la llantita y al plano, la cual,
esta va unida a
un engrane que hace contacto con
el engrane sin fin anteriormente mencionado,
proporcionándonos así un libre movimiento del motoren los dos sentidos y a velocidades variables.
Los motores a pasos sonmotoresqueseobtuvieronde
motoresdedosbobinas
como la figuraquesemuestra
Drives de 3 %,, paraPC's
y son
a continuación y así comotambiénsus
partes:
Figura de un moto:
3 pasos
de dos bobims
Las partes del motor son:
Estator cup A : Encapsulado del Estator A
Estator cup B : Encapsulado del Estator B
output Shaft : Salida
Bobina A
coil A :
coil B : Bobina B
Los Motores a pasossonusadoscuando
el movimiento y posicióntienen
queser
precisamente controlados. Como su nombre implica el motor a paso se mueve en pasos discretos,
11
cada paso corresponde un
a pulso que es suministrado uno
a de los enbobinados del estator como
se
muestra a continuación ,dependiendo del diseño puede avanzar
90° 45" , 18" ,o por una fracción de
y
grado , el desempeño de un motor a pasos depende grandemente del poder suministrado que lo
dirige, es decir, la fuente de alimentación. El cual
su movimiento y control se hace a través de
controladores de motores a pasos y este a su vez son controlados por el sistema mínimo ya antes
mencionado.
Figura que ilustra como realiza los pasos un motor
En la figura anterior se muestra el ciclo para que el motor realice pasos que a continuación
se describe y consiste enun motor de un Estator con 3 polos salientes yun rotor de 2 polos hecho
de hierro dulce (moldeable). Las bobinas pueden ser exitosamente conectadas a una fuente D. C.
por medio de 3 switches A, B , C. Cuando los conmutadores están abiertos el rotor puede tomar
cualquier posición. De todas maneras si el conmutadorA es cerrado el campo magnético resultante
.
creado por el polo1 atraerá el rotory entoces se alineara como se muestra
Si abrimos el conmutadorA y si simultáneamentecenamos el conmutador B el conmutador
se alinea con el polo2 , en ese momento rotarh unos60". La próxima vez si abrimos el conmutador
B ysimultáneamentecerramoselconmutadorCelrotorgiraraunos
Inomento se alinea en el polo
60" adicionales , enese
3. C1aramente podemos hacer que el motor avance
60° por paso
cerrando o prendiendo los conmutadores en la secuencia A, B, C , A, B , C . De igual manera
podemosponerenreversalarotaciónoperandolascomputadorasen
la secuenciadereversa
A,C,B,A,C,B. En ordende arreglar la posición final del rotor.
E1 último conmutador que fue cerrado
12
en una secuencia de conmutación debe ser nuevamente cerrado. Esto mantiene el rotor en su irltima
posición y previene de moverlobajo lainfluencia de fuerzas externas.
Con el sistema de alimentacih de los motores a pasos y el diseño del sistema mecánico de
transmisióndemovimiento(engranes)soncapacesdemoverhasta
4 Kgrs. elcualespotencia
suficiente para cualquier tipo de desplazamiento.
Plataforma, y estructura para soporte de los circuitos controladores.
La estructura y soporte para los circuitos, así como también la del sistema minim0 es como
semuestra en la siguientefigura, la cualtambiénestahechademadera
y seeligiómadera
en
general para el Autómata-Robot por su fácil manejo, economía, resistencia y por su poco peso. Esta
solo sufunción es endesempeiiar un soporteadecuadoparalastarjetasdelsistema
sistemadecontrol
y potencia de los motores,batería,circuitosdemodulación
mínimo, el
y demodulación
FSK, y circuitos de transmisión y recepción deFM.
La plataforma sirve para apoyo y fijación, corn9 ya hemos dicho anteriormente a los tres
puntosdeapoyo
en elsueloparaelrobot,
la otra como sepuedeapreciarenlafiguraanterior
13
también hay espacio para una batería, la cual es recargable y nos proporciona la energía necesaria
paratodoelsistema.Estabatería
nos proporciona12Volts
DC 4 Amperespara
un ciclo
el soporte de los
aproximado de trabajo de10 a 15 minutos; al rededor de ésta está la estructura para
circuitos.Cstaestructurasoportalossiguientescircuitos:en
un nivel se encuentraelsistema
mínimo, circuitos para la transmisión serial y controladores para los motores a pasos.
Y a un
costado de la estructurase encuentra el circuito que va a controlar un
a tercer motor de pasos de4
bobinas el cualnos proporciona el movimiento angular de los sensores, la etapa de potencia los
de
y el circuito convertidor de Analógico-Digital de
sensores, la etapa de amplificación de los sensores
la señal de los sensores,
los cuales le dirán al robot a que distancia se encuentra el objeto mas
cercano a él.
Lista de las partes del Automdta-Robot
1) Platdonna o base
2) Orificios para partes de tracción
3) Base para alojar el cilindro que contendrá ala esfera.
4) Cilindrohueco,partesuperior.
5) Cojinctc cónico para apoyo dc la csfcra
Esfera
6)
7) Tapa cilindrica para sostener la esfera
8) Cuerpodetracción
9) Base larga para sostener el extremo interno del eje
10) Perno para fijar el movimiento de la llanta
11) Llanta con engrane para tracción
12)Eje
13) Base corta para sostener el extremo externo lateral del eje
14) Motor de pasos dos bobinas, que proporciona tracción
15) Tomillos 1/8”
16) Base para fijarel motor a la plataforma
17) Base del motor
18) Engrane sinfin acopladoalejedelmotorparatracción,comotransmisorde
movimiento
19) Eje del motor
20) Engrane de la llanta como receptorde movimiento
21)Llanta
22) Orificios pma tomillos 1/8”
23) Tuercas para tornillos 1/8”
24) Ratería
25) Compartimento para alojar la batería
26) Base para motor a pasos de cuatro
bobinas para sensores
27) Estructura para colocar circuitos de manera lateral u horizontal
28) Alojamiento para circuitos nivelI
29) Alojamiento para circuitos nivelI1
14
Plataforma, estructuray sistema de traccicin.
La base principal de éste sistemamínimo es el microprocesador803 1, el cual se escogió por
tener un puerto externo de 8 bits libre para controlar algún dispositivo externo; en nuestro caso se
utiliza para controlar tres motores de pasos(4 bits para controlarel motor del medidor de distancias
y 4 bitsparacontrolas
los motoresde la tracción),tambiénseescogiópor
la similitudde los
mnemónicos y la forma de programación conla familia 80x86 de INTEL
Este sistema esta compuesto comose muestra en la figura siguiente:
~~~~
~
~~~~
~
Figura d e l sistema minim0 y circuitos para comunicación serial
E1 sistemaestacompuestoporuna
EPROM 2764 de 8Kb, una RAM 6264 de 8Kb, un
decodificador de direcciones 74138, un latch 74373 (que multiplexa el bus) y el microprocesador
803 l .
E1 microprocesador tiene dos puertos uno para datos de
8 bits y una para la parte alta de
direcciones de 8 bits, con el puerto de datos y el latch se genera la parte baja del bus de direcciones
16
de 16 bits; los tres bits mas significativos del bus de direcciones se conectan a un decodificador el
cualsirve para mapear la memoria,es decir, dividetoda la memoriadireccionable (64Kb) en
bloques de 8Kb cada uno para habilitar dispositivos diferentes conectadosal decodificador.
Circuitos Controladores de
los Motores a pasos
En general hay dos circuitos controladores para los motores a pasos: uno para el sistema de
tracción y el segundo encargado para proporcionar el movimiento angular delos sensores.
El primeroes un circuito MC3479 deMotorola el cualcontrolamotoresde
2 bobinas,
mediante tres bits; el primero para controlar el consumo de corriente, el segundo para controlar el
sentido de giro del motor, el tercero controla
la velocidad de las revoluciones del motor, como se
muestra enel circuito siguiente:
I
+IN
i51
CLK M1
M1
cor4rol& lor h€O?,?r.s
Circuito controlador delos motores depasos y especificaciones
17
Para el circuito anterior, el programa en ensamblador o lenguaje de máquina para moverlos
motoresdepasosmencionadosanteriormentecon
los controladores MC3479 espormediodel
siguiente procedimiento:
~
~
;RUTINA PAPA MOVER E L MOTOR DE LA
TRACCION
MUEVE:
MOV
DPTR, 119FOOH
MCVX
A, @ C P T R
MOV
DPTR, #9FFOH
MOVX
@ D P T R , P.
MOV
DPTR, Y 9 F 0 l H
MOVX
@DPTR
A,
MOV
DPTR, U9FFlH
MCVX
@DPTR,A
CLR
c::
CICLOM: RETARDO2
LCALL
CFL
RELOJ
LCALL
RETARDO2
LPL
REiúJ
LCALL
RETARDO1
LCALL
DEC16
JNB
C16,CICLOM
RET
Listadopara mover los motores depasos
Del listado anterior las direcciones #9F00H y #9F01H sirven para almacenar el número de
pasos que deberán girar los motores, como este número de pasos es mayor que 256 se tuvo que
implementar funciones de 16 bits para soportar estos números tan grandes; una de estas fimciones
es DEC 16 que analizanen el Apéndice A con mas detalle.
Para escribir los valores correctos en las direcciones del contador se da a continuación el
siguiente ejemplo:
No. Pasos en Decimal
No.
Pasos
Hexadecimal
88470H
(2 vueltas)
(mris significativo)
O 1 B8H
440 (1 vuelta)
03H
0370H
Cabe señalar que una vuelta de
en Registro YFOOH
OlH
Registro YFOlH
(menos significativo)
B8H
I
la llanta corresponde a 90 grados aprox. (Si los motores
giran en sentido contrario) y avanza 12.5cm qrox. (si los motores giran en el mismo sentido); si se
quiere girar 45,270 6 360 grados, o avanzar 25,37.5 ó 50cm se puede hacer una regla de tres para
obtener el número depasos adecuados.
1s
Las funciones de ~
T
~ y RETARDO1
O
2
sirven para ajustar la fiecuencia adecuada
para el buen funcionamiento de motor (para que giren mas lento
o más rápido los motores se deben
modificar estos procedimientos).
E1 circuito que controla el movimiento angular del sensor es proporcionado por 4 bits del
8031 y una etapa de potencia para suministrar suficiente corriente para
la fuerza del motor; este
motor de pasos es de4 bobinas y por tanto no se necesita
un controlador especial para61 como para
la etapa de potenciaal motor.
los de2 bobinas, en el siguiente circuitose muestra como se conecta
P4
P5
P6
P7
Etapa de potencia d e l motor de 4 bobinas
Fara el circuito anterior, el programa en ensambladoro lenguaje de máquina para mover el
motor de pasos mencionado anteriormente con el circuito anterior es por medio de los siguientes
procedimientos:
;RUTINA PARA CAMBIAR LOS
DECMD:
MOV
A, U0
BITS
DE MOTOR (UN PASO ADELANTE)
1
19
MOV
MOV
MOV
MOV
MOV ACC
MOV
Mnv
CLR
RRC
CJNE
SETE
MOTlA:
SETB
MOTZA:
MU/
MOV
ACC.1.C
MOV
MOV
MOV
MOV
MOV
MOV
ACC.7,C
C.Pl.6
ACC.6,C
C,P1.5
.5, C
C,P1.4
wr. 4 , c
C
a
A,
IZ4,MOT:A
ACC.7
CJNE
A, t72,MOTZA
ACC.7
MOV
C,Pl.0
Aii. O , i
C,P1.1
C,P1.2
ACC.?,C
C,P2.3
ACC.3,C
P1.A
RET
;RUTINA PARA CAMBIAR
LOS BITS DE MOTOR [UN PASO ATRAS)
I?!cw":
!?X?
n,t C
MOV
C,P1.7
MOV
acc.7,~
MO'J
C,P1.6
i"iüi
ACi .ó ,5
MOV
C,P1.5
MOV
ACC.5,C
MOV
MOV
CLR
A RLC
CJNE
SETB
MOT1:
SETE
MOTZ.
MOV
MOV
MOIJ
C,P1.4
ACC.4.C
c
A,
11128,MOTl
a~c.4
CJNE
A. #32,MOT2
ACC.4
M011
Mjov
c, P i . 2
MOV
ACC.Z,C
C,P1.3
ACC . 3 , C
P1.A
MOV
MOV
MOV
r,P 1 . D
ACC.O,C
C,P1.1
ACC .1,C
RET
Rutinas para mover el motor del sensor de distancias
Las rutinas &XMD y DECMD solo hacen el corrimiento de bits para que
el motor avanceo
retroceda un solo paso. Estos procedimientosse llamarán el número de veces que sea necesario por
otrosprocedimientosque
mas adelante se explicarán. La secuenciadebits
para el correcto
funcionamientode los motores es el siguiente:
Estado1
O
0
1
1
Estado2
O
1
1
0
Estado3
1
1
0
0
Estado4
1
0
0
1
20
Como ya se había mencionado anteriormente, el sistema se alimenta con una batería de 12
Volts DC 4 Ampers la cual proporciona como muestra en el circuito siguiente: +12 Volts DC,+5
Volts DC;los +5 V son proporcionadospor un regulador de +5 V 7805.
Adicionalmentepara
los integradosoperacionales
Lh.1741 los cualesson
la etapade
amplificación de los sensores requieren de una fuente simétrica, la parte positiva nosla proporciona
la batería anterior, para la parte negativa nos la proporciona una batería de 9 Volts DC como lo
muestra la figura siguiente:
ELL-
+12v
12v
+
+5V
9v
-5v
Circuito del sistema de alimentación
21
Este sistema constade l a s siguientes etapas:
1-Etapa dereloj: genera pulsos conuna frecuencia determinada para sincronía.
2-Etapa de potencia del transmisor infrarrojo:
A partir de los pulsos de reloj
junto con esta etapa suministrala corriente necesaria para el transmisor.
3-Etapa del emisor infrarrojo: Emite los pulsos que serán reflejados en alguna
superficie dada.
4-Etapa del receptor infrarrojo: Esta etapa recibe los pulsos del transmisor que
hayan sido reflejados en alguna superficie.
5-Etapa de amplificación: Como los pulsos recibidos son del orden demilivolts
en esta etapa se amplifican para que estos pulsos varíen de O a 5 volts y sean
enviados a la. etapa de acoplamiento.
Las cinco etapas anteriores coafoman el sistema sensor el cual se muestra
en el circuito
siguiente:
I
tsv
P
Circuito sensor
22
Este sistema sensor se encarga de proporcionar información de que tan cerca se encuentra
un objeto del robot, para ello el transmisor y el receptor están colocados una distancia de tal forma
que entre ellos se forma un hngalo de reflexibn con el objeto donde se va a reflejar la señal, A partir
del circuito anterior la amplitud de la señal recibida varia de acuerdoa la distancia que se encuentre
el objeto del sensor.
El emisor y receptor infrarrojo están montadosen un motor de pasos de cuatro bobinas que
hace un barridode 180" donde este motorda 100 pasos y portantoobtenemos
100 datos. Para
obtener éstos 100 datos primero se regresa el motor a su posición de ángulo cero con
la siguiente
rutina:
II
I
;REGRESA A
?~EG?s?.:?%'.J
SU POSICION ORIGINAL
p.?, !IC1
EL
MOTOR ?.NGULO=O
CICL0R:LCALL INCMD
LCALL
RETARDO3
DJNZ
RET
R7,CICLOR
Regresa motor a su ángulo cero
I
23
Sistema de conversidn Analógico-Digital
ElsistemadeconversiónAnalógico-Digitalconsisteenobtenerla
seiial que recibe del
sistema de sensores para convertirlos datos
a
de 8 bits que se hace por medio de un ADC0808; y se
hace de la siguiente manera: T,os sensores estrin acoplaBos a. un motor de pasos de c~latrobobinas
y en cada paso
que hace un barrido de 180" el cual para llegar a estos 180" el motor da 100 pasos
obtiene un dato del ADC, lo cual quiere decir que al final de cada barrido de 180" tendremos 100
datos los cuales se almacenanen la memoria RkM (6264) los cualesson procesados por el803 l. El
circuito Tire hace esta conversiónse muestra a continuación.
De el Sensa
Paralalectura
de un datcidelconvertidorAnalógicci-Digitalsedebenderealizarlos
siguientes proceditmentos:
;HACE QUE EL A/D EMPIEZE A CONVERTIR
KG:'
DPTTR, /GAGG"O::
P1.3,
CINIAD
P1.3.CINIAD2
;RETARDO
R7, #21H
:::IA3:
CINIAD: JNB
CINIADZ: JB
MGV
ClNIXU4:UJNZ
K~,LlNIHU¶
MOW.
PDPTR,
A
CI?!I?.D3: ,??!E
CAD, CI?!I?.D3
FINAD:
RET
;RUTINA DE INTERRÜPCIGN DEL A/D
PÜSH
ÜPi,
iNTAD:
DPH
PUSH
MGV
DPTR, iiOAOOOH
MOVX
A, @DPTR
MOV
DPTR, #9FF2H
?IC'.?
DPH POP
POP
CSAEDT 9
.m..
..
uv
!?DER,?.
DPL
- .-
-..
IL, 08'311
RET1
Kutina para convertir la &al
anal6gica a dato
24
La rutina INIAD hace que
el convertidor comience a convertir, pero como éste se tarda
loops se debe esperarhasta que este listo el dato convertido
y la rutina de interrupción active
el bit
CAR,para continuar con el programa.
La rutina de interrupción lee
el dato convertido en la dirección AOOOH , lo almacena un
registro en la dirección9FF2H y pone en ‘bl” el bit CAI).
Paraqueloanteriorfuncionesenecesitaqueelmicroprocesadoracepteinterrupciones
externas (registro IE)y ésta debe estar activada.
Procedimientos para leer I 00 datos delsemor
Como el motor debe hacer
un barrido de 180grados para obtener100 datos se deben de
Ilamar Las siguientes rutinaspara obtenerlos.
; L E EL A SD I S T A N C I A S
Y LAS GUARDA APARTIR
DE 9EOOH
; 1 n c psscs i” - 1 . 8 ;rzdcs
LEEDIST:!%’!
P.?, ulnC
MOV
DPTR,
f9EOGH
CICD1ST:CLR
CAD
DPLPUSH
pijjii
T,CAI,l
MOV
MOVX
POP
PC?
MOVX
LCALL
INC
LLUL
DJNZ
PET
DPH
TNTAD
DPTh,#9FFZH
@DPTR
A,
DPH
EPL
@DPTR,A
DECMD
DPTR
RETAhTIDu3
h4,CICDIST
:T,T,AMA AR ITIATPTA
NRAA
CONVTFRTR
CON FT. A / D
;LEE VALORA/D
DEL
;GUARDA LO CONVERTIDO TABLA
EN LA
Rutina para leer 100 datos
Primero se debe regresar
el motor a su posición en ángulo cero
y después se llama a
LEEDIST.
25
Paraprobar el sistemaquemueve
al aut6mataseelaborci
un programadondesepuede
demostrar todoslos movimientos posibles porél.
Para entender el programa primero se tiene un diagrama de flujo en donde se muestran los
pasos a seguir para conseguir queel automata se mueva.
+
Cargar No de paso S
Mntorl-1
c.% j
I
ik
ueve Motorer
a la Derecha
!
Avanza de frente
9
Cargar No de paso S
__r_
ucn Motons
Avanza de fnnte
Motorl-1
T
Avanza de hacia
atms
--”-I
w
[ F i n ]
Motor14
Motor2-1
A partir del diagrama de flujo y entendiendo los pasos que se realizan se puede obtener el
programa completo en lenguaje ensamblador para
el 803 1 (Ver Apéndice A “Primer Programa”).
26
Etapa I1
Pasa realizar esta segunda etapa y tomando como base la etapa anterior, se desarrolló el
sistema de comunicaciónentrela
PC y elAutómata-Robot, y elprogramaparaelcontroly
monitoreo delmismo.
Contunicacidn entre PC y el Autdnfata-Robot
Para establecer la comunicación entre PC
la y el Autómata-Robot se usa una comunicación
punto a punto, pues los dos aparatos mencionados son los únicos que actúan
la comunicación.
en
A continuación se presenta el siguiente diagrama a bloques que explica la TransmisiónRecepción de los datos:
YY
Se escogió que la transmisióny recepción de datos entre laPC y el sistemahera mediante
la cuentan con estey su bajo costo.
el puertoserial debido a que la mayoría dePC's
Para lograr la transmisión de los datos
se requiere de4 módulos:
1 - modulación FSK
2 - transmisión FM
3 - recepción FM
4 - demodulación FSK
Debido a que la transmisih de los datos se hace m ambos sentidos se requieren estos 3
módulos tanto para la
PC y paraelAutómata-Robot,
lo única que difiere en la transmisión
y
recepción es en la frecuencia a la que se sintonizan.
29
Con lo anteriorsedefineengeneralcomoestá
transmisión en un sentidoesexactamenteigualque
el sistemadecomunicación
y como la
la recepción en sentido inverso, sólose
describirá en un solo sentido. A continuación se tiene el diagrama completo de
la transmisión de
datos de cada bloque:
t
Circuito para la modulación FSK
Lo que hace el circuito anterior es modularlos pulsos TTL como se muestraen la siguiente
figura:
1 ov
Sa lid o
Moduloci6n FSK
ov
5v
Pulsos de
Entroda
ov
J
I
LnJ
t
30
Comoseobserva
en la figuraanterior,cuandose
tiene un nivelalto la frecuencia de
modulación a la salida del circuito FSK es de 1 . 4 m z y cuando se tiene nivel bajo la frecuencia es
la frecuencia de modulación ver el apéndice
C.
de 2.4KHz.Para ver mas con detalle como se logra
IL
T
7
Antena
c
L
Transmisor de FM
Para variar la frecuencia de transmisih basta con variar el valor del inductor que esta entre
los pines 10 y 1 1 . Para nuestro caso fl y f2 se encuentran dentro de la banda comercial donde fl
104.lMHz y f2 = 102.8MHZ, seutilizandosfrecuencias
=
distintas paraenviar y recibir datos
simultáneamente sin que ocurrainterferencia.
31
-
I
Receptor de FM
Para sintonizar la &frecuencia adecuada del transmisor hay que variar el potenciometro del
circuito el cual se encuentra en la banda comercialy para que 1 receptor se encuentre en ésta banda
se debe devariar L l .
32
Debido a las características que presentó éste circuito, la frecuencia máxima a
la que se
puede demodular sin distorsión es a 600Hz.
Con los circuitos anteriores yase puede realizarla comunicación entre el Autómata y PC
la
mediante sus respectivos puertos que se programaron las
consiguientes características:
1 - Velocidad:
600bps
2 - Paridad:
3 - Longitud de palabra:
4 - Bits de parada:
bit1
Ninguna
S bits
Los programas siguientes inicializanlos puertos de comunicaciones;la programación enla
PC se hizo en lenguajes C++ para DOS debido a l a s facilidades que éste ofiece para el control de
los puertos:
MOV
MOV
TH1,
MOV
SCON,W01010010B ;INICIALIZA LA TRANSMISION SERIAL
; VALOR DE AUTO-RECARGA PARA 300 BAUDS
#OF3H
; MODO DE AUTO-RECARGA
TMOD, X20H
SETB
MOV
IE,#85H
TR1
;HABILITA LAS 1NTERRUPClONES
inicia el puerto de1 Autómata-Robot
I
33
Inicializacidn del puerto de la PC
COM
SETTINGS
#define
#define
bioscom ! O , SETTINGS,
CCM)
1
(@xA@1OxO3~0x0010x001
;
Los siguientes programas muestran la transmisib serial de la PC y del Autbrnata:
I
void,
I
transmite-car
(char
c)
int status2;
s t a t u s 2 = l ; i o s c ~ m ~ 3 O, , COMI ;
if (status2L DATA-READY)
bioscom(2, O, COM);
b i o s c o n l l . c, COMl;
Transmision de un caracter en lenguaje C
Transmisión de Autómata
I
I
I
; T R A N S M I T EC A a C T E R
OUTCHAR: JNB T I , $
CLR
TI
MOV
SBUF,A
; ESPERAR A TRANSMISOR L I S T O
; LIMPIARLA
BANDERA
i
; TRANSMITIR
RET
Transmisi6n de un caricter en lenguaje ensamblador
I
r
int recivcarfint 'ban)
I
int s t a t u s 2 ,
while [ ;DONE1
I
out3,
DONE=FALSE;
= bioscom(3, O , COMI;
f l s t a t i i ? & DATA-HRADYI
status2
1
1
o u t 3 = broscom(2, O , COM);
DONE = TRUE;
+L."".
uuII-I,
I
1
return o u t 3 ;
I
R e c e p c i h de un crrnicter en lenguaje C
34
;LEE CARkTER
INCHAR: J N B
CLR
MOV
RET
I
RI, $
RI
A,SBUF
; LECTUKA
Recepción de un carhcter en lenguaje ensamblador
I
Para realizar la comunicación entre la PC y el Autómata-Robot se us6 el siguiente control
de flujo, ya que el robot no puede realizar
la transmisión y recepción simultáneamente debido a
características internas del microcontrolador(Ver Apéndice B):
35
Ejemplo: Si se quiere transmitir 2 bytes.
36
A pesardequeelRobotesautónomosenecesita.de
un programaqueadministrela
transmisión y recepción de datos para su monitoreo, exposición de datos y control del AutómataRobot en donde quiera que se encuentre. Para esto se eligió el lenguaje C++ para DOS como
lenguajes de control de esta interfaz.
Comoelautómata
mmda datosala
comunicación entre éstos, ya que la
PC y viceversa,debeexistir
un protocolode
PC o el autómata deben diferenciar los datos que se están
recibiendo y codificar los que se están mandando. Para esto se diseño el siguiente formato para el
protocolo de comunicación:
Encabezado
Encabezado:
Datos:
I Datos 1
Es el que identifica que tipo de dato se va a transmitir
o recibir
y tiene como longitud 1 byte
(un caracter).
(un byte) o un
Este pude ser: cadena (varios bytes),un carácter
número compuesto(doso mas bytes) .
Tipos de Emabezadoy Datos
Como para cada tipo de encabezado hay diferentes datos, para diferenciarlos se tiene la
siguiente tabla:
37
Teniendo el protocolo y la forma de comunicar entrela PC y el Autómata-Robot se realizó
una interfaz para interactuar con el autómata, a continuación se presenta
la pantalla que aparece:
En esta pantalla se pueden apreciar
5 ventanas:
1 -Mapa
2 - Atributos del mapa
3 - Estado del sistema
4 - Recepción
5 - Herramientas
Estas ventanas realizanlas siguientes hciones:
1 - Mapa: Despliegalos datos enviados por el autómata, éstos datos son: distancia
y ángulo;
éstos datos se grafican con respectoal centro de la ventana y con la posición que
tenga el robot.
35
2 - Atributos del mapa: Presenta
la escala (ZOOM) a la que se está observando
los datos
que se despliegan, además
de indicar la posición del centro del mapa que se
puede alterar con los botones con flechas.
3 - Estado del sistema: Esta ventana presenta
3 cosas:
a) Comando
- Es el comando que está en espera de ser enviado al autómata
y
que fue seleccionado de la ventana de Herramientas.
b)
Estado - Es el estado en que se encuentra el robot,i. e., mensajes que dicen
quefunciónestárealizando,comoporejemplo:
“EXPLORANDO,
”TRANSMITIENDO”, etc
...
c)
Error - Mensaje de error que envía el robot .
d) Mensaje
- Cualquier otro mensaje
que envíe el robot.
4 - Recepción: Indicalos datos que está enviando el robot, desde su posición
y ángulo hasta
los datos de las distancias medidas.
5 - Herramientas: Son las funciones que se pueden escoger para que las realice el robot
a) Reiniciar
- El
robot espera hasta que se ejecute éste comando
y comenzar
su tarea autónoma.
39
b)Pausa
-
Detienetodaactividadhastaque
se melva apresionasFausa o
Reiniciar.
c)Moverse
-
Al presionarestebotónsedebeseleccionarconelMousela
posición (dentro de la ventana Mapa) a donde se quiere que se mueva el
robot y posteriormente presionar el botón Enviar (éste es el mismo botón
pero muestra otro nombre durante la ejecución). El ejemplo para utilizar
esta función se explica mas adelante.
d) Recupera
- El robot vuelve a realizar las mediciones en la misma posición
donde se encuentreademk de que reinicia el estado del monitor
y del robot
a cero.
e)
Salir - Cierra el programa.
40
Una delos botones de la ventana de
Herramientas que se debe explicar con
mas detalle esel
se desplace a
de “MOVERSE”, éste botón manda una serie de comandos al autómata para que éste
la posición que se haya seleccionadoy una vez que se ha alcanzado la posición se continua con la
exploración.
Ejemplo para la selección un
de punto a donde se quiere desplazar el autómata:
1 - Al presionar el botón“MOVERSE en este apareceel texto “ENVIAR”, además que
en la ventana de “Estado del sistema” aparece el mensaje “Seleccione
(X,Y) en el mapa”.
2 - Ahora con el apuntador del “mouse” seleccione un punto cualquiera dentro del mapa a
donde quiera que se mueva el autómata,
al hacer click apareceránlas coordenadas X y Y
41
4 - Al tener la posición deseada se presionael botón “ENVIAR”,éste botón regresara a su
y con esto se envía los comandos necesarios para que el autómatase
texto original (“MOVERSE”)
mueva a la posición deseada.
42
Ejemplo para la exploración de una superficie semicircular cóncava que se encuentra enfkente del
robot.
43
Ejemplo de una exploración de una superficie plana aplicando una
algoritmo para visualizar la
geometría de la superficie.
44
Programasfinales
Programa del Autómata-Robot
El primerprogramaquesedescribirá
es eldelAutómata-Robotquetomapartedelas
rutinas hechas para el Proyecto I e incorpora nuevos, como son el de la transmisión y la recepción
de datos, así como la selección y ejecución de comandos enviados desde
la PC, para entender la
lógica del programa se tiene el siguiente diagrama deflujo:
Verifica el comando
enviodo
D
Moverse o
...
Moviniento
4utbnono
I
Diagnuna de Flujo de Autómata-Robot
A partir del diagrama de flujo se puede crear el &digo para el autómata, en éste código se
incluyen rutinas de16 bits y ambos se encuentran en el Apéndice A (Programas Finales).
45
Apéndice A
Programas
A
F u n c i h de incremento 16 bitf ..............................................................
A-ii
Funcion de decremento de16 bits.........................................................
A-ii
Puncicin para multiplicar dos n6meros de 16 bits...............................
A-iii
FuncMn para sumar dos números de 16 bits.......................................
A-iii
Rutina para restardos números de16 bits..........................................
A-iv
Rutina para comparardos números de 16 hits...................................
A-iv
Primer programa ...................................................................................
A-v
Programa del Autbmata-Robot............................................................
A-vi
Programa del monitor de la P(1............................................................
A-xv
i
Este apéndicecontiene las rutinas querealizanoperacionesde16
bits, éstas fueron
necesarias de implantar ya que el microprocesador solo tiene registros de 8 bits y muchas de las
variable que se usan parael control de Autjmata-Robot debenser mayores de 8 bits.
Función de incremento 16 bits
;INCREMENTA LA VARIABLE
INCi6: CLR
OOH
MOV
B.#D
1,^T,
L.,""
nu rn lm, , n, " , In..r_nsl
L L " i ,
MOVX
ADD
JC
A, @DFTR
MOVX
LJMP
IUPlK,H
I?!CUIGU:MOT.'
MOVX
CLR
ADD
i.iG""i
DE 16
BITS EN YFFOH Y 3FFlH
A. #1
INCHIGH
PINS16
EPTP..#OFF15
A, @DPTR
DOH
A, If1
@LPTR,i.
FiNS16: RET
E~ttix
pare ir,crerr.entar en 1 le variaS!e de 16 Sits
Función de decremento de16 bits
Esta rutina incrcmmta a uno la variablc dc 16 bits, NO altera ninguna bandcra.
;DECREMENTA LA VARIABLE DE 16 BITS EN 3fFOH Y 9FFlH
,. D Y r h l n C D T 7 r ? c
MOV
DPTR,#3FFOH
;VERIFICA
SI ES CERO Y
MOVX
;PRENDE BIT
A, FDPTR
CJNE
A, #DDH,SIGUE
~ ~ ~
"~ ~,.
DPT
~
F
~
i
~
MOV7
a, PDPTR
CJNE
A, #OGH, SIGUE
SETB
C16
LJMP
FiNRl6
..II..LI
y _ _
1 _ 1
DEC16:
cLp\
.
C, &
T rYlV
rL
O...
C
CLR
MOV
MOV
AC
B,#O
M0Q-A
A, @DP'IR
A, #1
SUBB
DPTR, I1YFFOH
FEPT?.. P.
JC
DECHIGH
LJMP
FINR16
DECH1GH:MOV
DPTR,
U9FFIH
(.I""*
A, GÜFTR
CLR
C
AC
CLR
SUBB
A, X1
MOVX
@DPTR,A
MOW
.,-.-,
rT*rDli.
i-l..I".
T
.D O ~
- ~
Rutilia pata iui;lenieida elk 1 la w~iabtljiada Iú bits
Esta rutina decrementa en uno la variable de 16 bits, éSta rutina pone a uno el bit C16 s6:o
si la variable ha llegado acero,
A
Función ipara multiplicar dos números de 16 bits
; M U L T I P L I C A DOS VARIABLES DE 1 6 B I T S A = 9FFOH Y 9 F F 1 H
; B = 9FF2H Y 9 F F 3 H , RESULTADO EN 9FFOH Y 9FFOH
K 2 L T l S : "SH
"S"'
RS1
SETB
SETB
RSO
MOV
DPTR,89FFOH
.I W
V ~
MOB
MOV
INC
MOVX
MOV
LCPLL
ML'LTB
MOV
MOV
MOV
i.lG<
MOV
A. R4
R6.A
A.R5
R7.A
A,R2
MWJX
MOV
INC
:.:c'"y
MOV
i(?:A
LCALL
MOV
MOV
MULTE
DPTR, YBFFOH
A,R5
14n.r"
1'Y"&
DPTR
A, @DPiR
RO, A
DPTP
A. @OPT!?
Rl,A
DPTR
4 , PrjPTR
R2.A
DPTR
A, @DPTR
RJ, A
1°C
onnmn
C Y T I I I , "
n
I
INC
MOV
MOVX
A, 800
@DPTR,A
INL
UPlK
MOT1
F.. a 5
MOVX
INC
MOV
DPTR
@DPTR,A
,.".",
A,R7
LCALL
POP
RET
SUMA16
PSW
,.,U"A
O.."^
I
CLJrln,n
; r n ~ l t i p l i c a valores de 8 b i t s p a r a MULT16
KLLTB:
U""'
MOV
MUL
?.,?.I
B,R3
MOV
AB
R5,A
M
ü
'
R4,
MOV
MGV
MUL
A,RO
ADD
?G"J
MOV
RET
a
a, ~3
AB
A.R4
R?,A
R3,B
!?u&
para multiplicar dm variables de 16 bits
Esta rutina multiplica dos variables de 16 bits cada una y el resultado es de 3 bytes; no toma en
cuenta los signos de las variables,
Función para sumardos números de 16 bib
I
;SUMA DOS VARIABLES DE 1 6 B I T S A
MOVX
MOV
AC
DPTR, 8 9 F F l H
A, PDPTR
B.A
DPTR, U9FF3H
A, @DPTR
A, B
DPT?., $ ? F F l H
@DPTR,A
DPTR, X9FFOH
MOVX
A, @DPTR
MOY
MOV
a,ñ
CLFl
MOV
.,-.",
h
",.L
Y
MOV
PlOV
MOVX
ADD
Mnii
j .
l.
I
9FFOH Y 9 F F l H
;SUMA 9 F F O , 9 F F 1
CON
9FF2,9FF3
DPTR, X9FFZH
MOlnr
A;
ADDC
MOV
A, B
MOVX
=
@DPTP
DPTR, I19FFOH
I?DPTR. A
RET
Rutina para s u m a r dos variables de 16 bits
Esta rutina suma dos variables de 16 bitscada una, NO detecta sobreflujo.
-4
...
111
Rutina para restardos números de 16 bits
= 9FFOH Y 9 F F l H
;RESTA DOS VARIABLES DE 1 6B I T SA
; B = 9 € F 2 HY 9FF3H , RESULTADO EN 9FFOH Y 9 F F l H
RESTAI6:CLR
-77.
iun
MOV
MOVX
MOV
MOV
MOVX
SL'BB
MOV
MOVX
MOV
i"iiiv;i
MOV
MOV
MOVX
A , BS U B E
?$O'.'
MOVX
RET
I
1
7
"
nc
D P#T9RF, F; R3 H
E S9Tf FAO , 9 F F 1
H. @DPTR
;RESULTDO
B,A
UPI'K, X Y L t IH
@DPTR
A,
F., B
DPTR,
U9FFlH
IPDPTR, A
DPTR,
#9FFZH
A, PDpTñ
MENOS
9F€?, 9 F F 3
EN 9 FPFFOF .l
R,A
DPTR,
%9F€OH
A, @DPTR
E# X
? F? F, ,C H
@DPTR,A
Rutina para restar dos variables de 16 bits
Esta rutina restar dos variables de16 bits cada una, NO detecta acarreo.
Rutina para comparar dos nrimeros de 16 bits
;COMPARR DOS VARIABLES DE 1 6 B I T S A
," - 9?F?!? Y 9?F3!?
;RESULTADOS:
MA
ME
O
;
A>B
1
i
;
A<B
O
;
+
,E
J
.-
;
CMP16:
A, iaüPTiK
R1.A
T kt¡-
DDT?.
MOVX
MOV
INC
A, PDPTR
m,A
DPTR
CLR
CLR
CLR
xcv
CJNE
MOV
CJNE
5 LXP
NOEQ?:
JC
SETE
CLR
S LmP
MENOR2 : CLR
NOEQ1:
PSW
MiiV'Y,
;.;o."A
MOV
A, ? ü E ñ
K3.A
C
MA
NE
",,o n
L
1
;W EN EL BANCO 3
= 1A
;R3 EN EL BANCO 3
=
1B
."
M4
ME
ECMP16
S LlNP
JC
SETB
MA
u n
ML
X?
"
EiHPi6
MENOR2
SETÜ
.""
.- -
~
A. OlAH, NOEQl
A, R1
A , OlBH, NOEQL
.,-
SX P
MENOR1:
CLR
SETB
FCMPi6: POP
9FFlH
RS 1
MOVX
MOV
INC
MOV
Y
1
RSO
D X R , #?F%H
A, @DPTR
RO,A
DPTR
::O':
9FFOH
"
xyxxyxx
PUSH
SETB
SETB
=
M
A
,-AL
FCMP16
MENOR1
FPMDl 6
ME
MA
PSW
I
Rutina para Comparar dos variables de 16 bits
Esta ultima rutina ponea uno o borra ciertos bits o banderas (MAy Me) para sabersi la
primera variables es mayor, menor o igual.
A
Primer Programa
MOVX
MOV
MOVX
OOOOH
ORG
RELOJCLRMAIN:
SETÜ
MiiQ
SETB
MDER
VARIABLES PARA AVANZAR DEREHO
MOV
DPTR, X9FOOH
MOV
A, ROEOH
M'3W
?OPT?.. R
PASOS PARA QUE
LAS
INC
DPTR
MOV
A, X06H
;";c"-x
BDPTR, A
LCALL
MUEVE
MOVFR
MCITCIRCS
CLR
SETB
nnn
lrnnTnnTrC n
rn._
"n,\LnuYIu
MOV
MOV
MOVX
DPTR, X9FOOH
A, #OEOH
@DPTR,
A
SETB
MIZQ
MnFR
VARIABLES PARA GIRARA
MOV
DPTR, X9FOOH
MOV
A, XOBRH
MGVX
D???.. A
PASOS P A WG I R A R
INC
DPTR
MOV
A.XO1H
Mü"X
?ÜPTR,A
LCALL
MUEVE
MO1IF.R MOT0RF.S
r1.R
"n,,Lni,A,ud
nnnn
cfi>-
;Y
LLAMA LA
RUTINA
PARA
MIZQ
MDER
."",7.,
,<LLn,\L,wL.,>u"
; L A DERECHA
;CARGAEL
NÍJMERO DE
;GRADOS
; Y LLAMA LA RUTINA PARA
;LOS
;VALORES DE LAS
;CARGAEL
NUMERO
DE
;LLANTAS DEN 4 VUELTAS
;Y T LAMA
1.A
RIJTTNA PARA
;LOS
;VAl.CRFS
nF
1.4s
;LA IZQUIERDA
;c?.?.G?.
CL ?!%E?.O
DE
LLAMA LA
RUTINA
;Los
;VALORES
DE
PARA
xn?ll
l\L,V"dL2
Ri,XO3H
RETARD02:MOV
CICLOR2: MOV
R1, #16H
CICLOR12:DJNZ
RZ.CICLOR12
D.TN7
RET
R2,CICLORll
R1, CICLORl
R2, #16H
~1
rTrT.oR?
;DFCRFMFNTA 1.A VARTAR1.F n F 1 6 RTTS FN 9FFOH Y qFF1H
D P T R , X 9 F F O; VHE R I F IECSSA
I
CERO
DECl6:
MOV
;PRENDE B I T
MOVX
A, @DPTR
CJNE
A, X O O H , SIGUE
nPTR, P9FFlH
MOV
A, BDPTR
MOVX
CJNE
A, #flOH,SIGUE
SET9
C16
T,.TMP
FTNRl fi
SIGUE:
CLR
C
CLR
AC
MOV
8, #O
MOV
nPTR, It9FFnH
MOVX
A, iaDPTR
SUBB
A, X 1
MOVX
BDPTR,A
7,"ECUIC-U
FINR16
LJMP
DECH1GH:MOV
DPTR, b 9 F F l H
MOVX
A, @DPTR
CLR
CLR
AC
SIIRA
A: n 1
MOVX
BDPTR, A
F I N R 1 6R:E T
Y
LAS
I?"N""I\
RELOJ
EQUMIZQ
MDER
;DEREHO
EQU
EQU
CLR
CLR
MDER
VARIABLES PARA AVANZAR HACIA
C16
PARA
; D I R5 F O 0
; D I R9 F 0 1
;Los
;VALORES DE LAS
:ATRAS
DPTR, Y9FOOH
A, XOEOH
@DPTR,
A
LAS
DPTR
A. #06H
BDPTR, A
MUEVE
:RUTINA PARA
MOVER
EL MOTOR
DE
MUEVE:
MOV
DPTR,
t9FOOH
;CARGA EL NUMERO
DE
;LLANTAS ÜEN 4 W E L T A S
: Y LLAMA LA
RUTINA
LATRACCION
;bit fl
;bit 1
;bit 2
reloi
sentido motor izquierdo
sentido motor derecho
=
1 AVANLA
DE FRENTE
;LLANTAS DEN 4 VUELTAS
:Y LLAMA LARUTINA
Pl.0
P1.l
P1.2
; b l B I T > M l d U Y MULK
; C A K W LL NUMLKV U L
EQU
PARA
26H.0
PARTE
BAJA
DEL
PARTEALTADEL
END
MIZQ
A
nl
CICLOR1: MOV
CICLOR11:DJNZ
DJNZ
KL I
n3,nrrrnn
MOV
DFTR, X9FOOH
MOV
A, XOEOH
MOVX
@Ut'lK,A
PASOS PARA QUE LAS
INC
DPTR
MOV
A,XO6H
MOVX
BDPTR, A
MUEVE
LCALL
MOVER MOTORES
MOV
MOV
MOT'
PASOS PARA QUE
INC
MOV
MOVX
LCALL
MOVER MOTORES
RET
..
_ 1
; 9 O GRADOS
;Y
."./.J
YrlK,t?C"ln
_","..
MOVX
A. BDPTR
MOV
DPTR, R 9 F F l H
MOVX
@DPTR,A
C16
CLR
CICLOM: LC?LL
P.E?P.?.DO?
RELOJ CPL
RETARDO2
LCALL
RELOJ CPL
LCALL
XTARDOi
LCALL
DEC16
,JNR
C 1 6 : C T r l OM
RET
nrmnnmii,
n
SET9
MIZQ
SETB
MDER
VARTART.F.S PARA AVAN7AR nF.RCHO
MOV
DPTR, X9FOOH
MOV
A, XOEOH
MOVX
@DPTR,
A
PASOS PARA ClIF T A?
INC
DPTR
MOV
A, Xfl6H
MOVX
@DPTR,A
T.CAT.1.
MIJFVF
MOVER MOTORES
SETB
SETB
DE
;LLANTAS DEN 4 VUELTAS
fi
PAbO5 P A W U I W K J b U
DPTR INC
MOV
A.XO6H
MOVX
@DPTR,
A
LCALL
MUEVE
MOVFR MOTORFS
.,"nTn"TP.C
,. r_
a D C n EL ?!TLyE!?."
<.I""
;Los
;VALORES DE LAS
MIZQ
MDER
rrnnn
( 1 I 1 - l i
..-,,
;INICIALIZA
;LOS
:VALORES DE LAS
@DPTR
A,
DPTR,
X9FFOH
@DPTR,A
; B I T DE CERO PARA 1 6 B I T S
CERO
; 1 S I VARIABLEES
CONTADOR DE PASOS
CONTADOR DE PASOS
Programas Finales
Programa del Autómata-Robot
MnV
OOOOB
OR@
SUMAR
MAIN
LJMF
ORG
MOVX
MOV
0003H
INTAD
LJMP
;INTERRUPCION
;p3OG"a.A
PRi;<C.pz
MAIN:
MOV
SCON.XO101001OB ; I N I C I A L I Z A LA
TRANSMISIONSERIAL
MOV
T H 1 , XOF3H
; VALOR DE AUTORECARGAPARA
3 0 0 BAUDS
,
TMOD, f2QH
,. unno T)E , r . u ~ ~ RECARGA
TR1SETB
MOV
I E , #RSH
;HABILITALAS
iNiERRiiPcIONEj
IP,XOOH
ESPCOM
LCALL
HASTA R E C I A I RR E I N I C I A
; V E R I F COMANDO NO SALE
CAD
INIDATOS
INICIAMD
LCALL
UtIMOV
::':""E
INC
DPTR
MOVX
INC
WVX
INC
MOVX
DPTR INC
MOVX
IE?TR,
X,Y,ANGULO
SX
"..
A, BDPTR
DPTR. l9FFlH
JNB
@DFTR,A
SUMAX,RESX
S W P
_In
IL
LChLL
4ZSX1
RESTAP
MOV
DPTR, X9FFOH
MOVX
MCV
MOVX
MOV
MOVX
A, @DPTR
QPTR.' aeFndu
@DPTR,A
DPTR, U9FFlH
A, ODPTR
;DEVUELVE
RESULTADO
EL
""
,#"-Ar,,
V r l n , *,I".,"
MOVX
@ DPTR, A
POP
ACC
LC?TI.
;MOV
;D I V
ccwn
I-.."
i"lU"
"
"
;CALCULAELSENO
DEL
ANGULO
A
B, (IOFFH
AB
UFlK,
"
X 3 r r L"
;;"rcLT E L ,?&GU.i;iO FOR
LADISTANCIA
MOVX
LDPTR,A
MOV
DFTR, X9FO8H
A, @DPTR
DPTR, #9FF2H
MOVX
MOV
*An>/"
'" "
MOV
MCVX
MOV
MOVX
'.
@UPTR,A
CLR
RET
DPTR, X9F04H
n nnovn
DPTR, #9FFOH
@DPTR, A
DPTR, #9F05H
..,.I
LCALL
:<e<
y S I G N O DE
@DPPR,A
DPT?
laDPTR,
A
'
.
"
Ill
;CARGA FT VAl.nR A
A X
DFTR
@DPTR,A
C T n
VUPl'K, X
u-.
RET
; I N I C I A L I Z A LOS VALORED DE
X, Y
INIDATOS:
nPTR, it9FO7H
MOV
MOV
A, XOOH
@ DM
P TORW, A
INC
DPTR
MUVX
T
RESX:
RESX1:
CLR
LCALi
LCALL
DPTR, #9FF2H
CDPTK,A
DPTR, #9FFlH
A, @DPTR
DPTR, X9FF3H
"
MOV
??"'.X
MOV
MOVX
MOV
%p".X
MOV
MOKL
. j _ L
MOV
'.
MOV
MOVX
MOV
..-I,"
1 I V
O0
"'.- .
nPTR,49FFOH
LA OP.
A, @DPTR
A X Y RERLIZA
;~&LU-&
f i 5 D I $ , i m - L i u PARA ANI;ULO$, MENORES QUE iii
GRADOS DADO EN ACC
.C
~
,
- TR- T T - -a-. - .~.. ==n 1 5rjM-n.
; S I BIT S U M == O RESTA
n
R n n l l n
CY'
''l,.-.
DFTR, 89F09H
A, @DFTR
DPTR, X9FF3H
PDPiR,A
MCiV
DPTR, 89FFnH
MOV
MOVX
LCALL
A, # O
@DPTR,A
MULT16
ACT9OG:
ACC
-PUSH
_l_. COS-,i.iO
l,C&L,L
:MOV
;DIV
MOV
L?. "IST?.?!CI?.
MOVX
MOV
MOVX
XÜF
MOVX
Mnv
MOX
MOV
MOVX
l l V Y
MOV
MOVX
LCALL
B.
;VXOR iGLT
:io2
dOFFH
DPTR, #9FFlH
DPTR, #9FFOH
KLKLlLA LX U P .
MOVX
@DPTR
A,
MOV
DPTR, bOFF2H
MOVX
@DPTR,A
MOV
DPTR, X9FF1H
MOVX
A, @DPTR
MOV
bUMAK X Y ,
AB
;MULT EL ANGULO POR
@DPTR,A
DPTR, X9F08H
A, @DPTR
DPT2, C9FFiH
@DPTR,A
DPTR; uqFnsw
ODPTR
A,
DPTR, #9FF3H
@DPTR, A
mnmn
Yrln,
;CARGA EL VALOR
A
Y
~ " ~ ~urin,fyrrJn
".
-_I"
I ^
MOVX
MOV
MOVX
MOV
?1O'N
MOV
MOVX
MOV
HO-vX
#:KO::
A, X0
@D?TR,A
JNB
rcnu
MULT16
RESY:
RESY1:
A Y
PDPTR.A
DPTR, #9F06H
@DPTR
A,
DPTR, X9FFOH
C^DDTP,,?.
DPTR, #9F07H
PDPTR
A,
DPTR, X9FFlH
iaDPiR, A
SUMAY, RESY
sl.w.w
LJMP
RESTAP
LCALL
MOV
RESYl
MOVX
MOV
MOVX
MOV
A,@DPTR
DPTR, #9F06H
@DPTR,A
MOVX
A,(anPTR
D?TR,#9FFOH
DPTR,
;DEVUELVE
RESULTADO
EL
#YFFlH
6
MClV
MOVX
RET
MOV
MOVX
MOV
DFTR, ItQF07H
@DPTR,A
MOVX
MOT1
MOVX
MOV
MOVX
MOV
MOV
MOVX
MOV
MOW
LCALL
MOV
MOVX
;ACTUALIZALAPOSICION
YA S ET I E N EE L
NUEVO
ANGULO Y DISTANCIA
S E CALCULA
LA
POSICION
;RECORRIDA,SOLO
ACTPOS.
;DEBE CARGAR Y SUMAR EL NUEVO ANGULO
;DECIDE CUANTO AVANZAR
MOV
DPTR,
#9FO2H
MOVX
@DPTR
A,
MOV
DPTR,
19FFOH
RnPTR,A
MOW
MOV
DPTR, # 9 F 0 3 H
MOVX
A, @DPTR
MOV
DFTR,
UBFFlH
PnPTR, 4
MOW
INC
DFTR
MOV
A, #O0
MOVX
BDPTR,
A
DPTR INC
MOV
A, X58H
; 9 1 GRADOS
MOVX
@DPTR,A
LCALL
CMP16
:MFNOR QIIF 91 GRADOS
,JNR
MF,MA90
O<=RNGULOc=90
SETB
SUMAX
SWY
SET6
ACT90G
T.CAl.1,
FINACPOS
LJMP
MA90:
MOV
X9FFZH
DPTR,
MOV
A, #O0
MOW
RI)PTR,A
DPTR INC
MOV
#0B5H
A,
;181 GRADOS
@M
D POTWR , A
T,CAT,T,
CMPl F
JNB
ME,MA18O
;MENOR QUE 1 8 1 GRADOS
91<=ANGULO<=180
DFTR, '49F03H
MOV
A, R n P T R
MOW
MOV
6,A
MOV
A,#100
C
CLR
MA180:
DPTR
RESTA16
DFTR, #9FFIH
A, @DPTR
!;FTR
SilMAX
CLR
SWAY
ACT90G
LCALL
FINACPOS: RET
:SE N E V E
MOVERSEA:
LCALL
MOV
MOVX
INC
LCALL
LCALL
MOW
INC
LCALL
LCALL
A LA POSICIONINDICADA
INCHAR
DPTR, #9FFAH
RDFTR, A
DPTR
OUTCHAR
INCHAR
QDPTR, 4
DPTR
OUTCHAR
INCHAR
MOVX
INC
LCALL
LCALL
MOW
LCALL
PnFTR, A
DPTR
OUTCHAR
INCHAR
IanPTR, A
OUTCHAR
MOV
MOW
MOV
DPTR,
#9FFAH
MOVX
A,@DPTR
DPTR,
b9FOOH
9C
MOV
A,B
CLR
SUMAX
SETB
SWAY
MOVX
MOV
MOVX
T.CA1.T.
ACT90G
SfTR
LJMP
MOV
MOV
MOVX
INC
MOV
MOVX
FINACPOS
DPTR,
X9FFZH
A, #O1
CLR
LCALL
@DPTR,A
DFTR, 1IQFFRH
A, @DPTR
DPTR, 119F01H
@DPTR,A
MTXQ
MDER
MUEVE
MClV
MOVX
MOV
DFTR; I Q F F T H
A, @DPTR
X9FOOH
DPTR,
l.CAT.1.
BnPTR, A
;271 GRADOS
1.CAT.T.
MOW
MOV
MOVX
MOV
MOW
MIZQ
SETB
SETB
LCALL
GRADOS
PARA
;
LEE VALORES
PARA
PnPTR,A
DPTR,
X9FFDH
@D?TR
A,
DPTR,
X9FOlH
RDPTR,
A
MDER
MUEVE
RFT
; E S P E R AI N I C I O
ESPCOM:
Mnv
A , Y O ~
C22:
LCALL
TXSTATUS
,WB
RI.CP2
INCHAR
LCALL
T,lNf.
A, 11
rOM1P:
MOV
LCALL
LCALL
r,MF
MOV
LCALL
MOV
A,#'*'
OUTCHAR
INCHAR
A:ln:FRRTNT
A, Y10
TXSTATUS
A, #O0
TCAT T.
;.3hO
LEE
VALORES
AVANZAR
RfSTA1 h
MOV
DPTR, Y9FFIH
MOVX
A, @DPTR
SUMAX
CLR
ri R
SIMAY
ACT90G
LCALL
FINACFOS
LJMP
MA270: MOV
DPTR,
X9FF2H
A,flOl
MOV
MOVX
@DPTR,A
DPTR INC
MOV
A,%68H
@DPTR,A
MOW
LCALL
CMFlB
ME,FINACPOS
JNB
271<-ANGULO<360
;
GIRAR
SUBB
A.XOFH
BDPTR,A
CMFl 6
: 360
PDFTR: A
CT,R
ME,MA2iO
JNB
;MENOR QUE 2 7 1 GRADOS
181<=ANGULO<=270
MOV
DPTR,
Y9F02H
MOW
A, R n P T R
MOV
DPTR,
#9FFOH
MOVX
@D?TR,A
MOV
DPTR, # 9 F 0 3 H
A,RI)FTR
MOW
MOV
DPTR, X 9 F F l H
MOVX
@DPTR,A
DPTR
INC
MOV
A,Itn
MOVX
@DFTR,A
;1 6 0
MOV
A, bOB4H
MOVX
@DPTR,A
A
nPTR; YQFO?H
A, @DPTR
DPTR, #9FF2H
BDPTR, h
nFTR, iiQF07H
A, @DPTR
DFTR, 119FF3H
BDPTR, A
DFTR, t9FFOH
A , X01
PDPTR,A
A, # 6 @ H
' * ' ,r 7 7
TYSTATIIS
LJMP
FINCOMZ
E R R I N I : MOV
A,#Ol
LCALL TXERR
T..lMF
F,SPCOM
FINCOMP : RET
;MENOR QUE 360 GRADOS
VERIFCOM:
; H A R T T T T AR F C F F r T O E l
Ci:
Mnv
A,#o=,
LCALL TXSTATUS
MOV
R 1 , XOFFH
MOV
R2,#OFFH
c11:
,TR
;UARTT.TTA
RFCFPCTON
R T COMA
~
DJNZ
R2,Cll
DJNZ
R1,Cl
LJMP
FINCOM
COMA:
LCALL
INCHAR
CJNE A, # ' +' , FINCOM
MOV
A,#'"'
LCALL OUTCHAR
LCALL INCHAR
COM1:
CJNE
A, #O,COM2
MOV
A,#10
LCALL TXSTATUS
MOV
A,Uflfl
LCALL
TXSTATUS
MOV
SP.XO7
;REINICIA LA PILA Y
REGRESA ALA DIR OOOOH
MOV
A, YO
PUSH
ACC
PUSH
ACC
RET
CnM7 :
C,TNF
A, $1, r o w
MOV
A, X10
LCALL
TXSTATUS
MOV
A, #OB
T.CAT.1.
LCALL
LJMP
CJNE
COM3:
A, $1 o
TXFRR
A, #O6
FINCOM: MOV
RECEPCION
LCALL TXSTATUS
;DESHABILITA
LCALL
TXPOS
; T W S M I T E LA POSICION
LCALL
VERIFCOM
;VERIFICA SI HAY COMRNDC
LCALL
T,TAT.T.
LCALL
CL?E
S,MP
JC
LCALL
MOV
T,MP
CJNE
DM3:
MOV
COMIP:
A
SI CABE???
M 4
PDPTR, A
LCALL
MOV
DPTR,#9FFOH
ANGULO DE LA POSICION
MOV
A,
#O0
MOVX
ODPTR,A
DPTRINC
A,it?nU
MOV
MOVX
@DPTR,A
LCALL SUMAG
LTMP
:TONVTFRTF FI. V A N R DF
EN 5F00 Y 5F01
CONVAP: MOV
B, 8 2
de 2 bytes se indexa 2
AR
MI11
MOV
Ri,A
MOVCA,@AtDPTR
MGV
R0,A
MOV
A?Rl
A INC
MOVC
A. BAtDPTR
R1,AMOV
A;Yln
;SUMA 45 GRADOS AL
RET
ACT A PASOS 1 . 0 GIIARnA
; Corno
la t a b l a es
; "s.rsq
; SF. c i i r q n e1
TXSTATIIS
RFGRFSA
CARGA O A LA
DM4
A,tflq
TXSTATUS
FINCOM
A,t2,COMlP
;
MUEVE
STOPMOV:
MOV
A.tO2
TXSTATUS
LCALL
LCALL LEEDIST
;REINTENTALEERDISTANCIAS
1.CAT.T.
;
DM?
DM3
DETMM
;;;;
R3, #OOH
A, #1,COM3P
A,P10
TXSTATUS
LCALL
TXSTATUS
MOV
A, # O 4
LCALL
TXSTATUS
MOVFASFA
l.CAT,T.
FINCOM
LJMP
CJNE
A, I3,COMERRP
MOV
A,#lO
T,I-AI,I.
PROM
R5, #SO,DM1
A, #O0
MOV
MOV
DPTR,R9FOBH
DISTACIA MOVIDA
MUG
@DPTR,
A
INC
DPTR
@DPTR,A
MOVX
RET
COM2P:CJNE
MOV
LCALL
MOV
LCALL
LJMP
COM3P: CJNE
;LEE DISTANCIA
R3,XOB.DMS
MOW
.
LEEDIST
RFGRFSP.
VER:
;LCALL VERIFCOM
;VERIFICA
SI SE HA
RECIBIDO COMANDO
MOV
R3, #OOH
LJMP
DM4
;NO SE PUEDE MOVER mi
VER
;SJMP
H A S T A RFCTRTR
;NUEVO CAOMNDO
;NO LLAMA NI A MENOR
INC
DM5:
R3
Y NI
A MAYOR
SETB
MIZQ
:GIRA
A
LA DERECHA
CLR
MDER
;CARGAR EL NoDE
MOV
DPTR,
t5FOOH
PASOS AMOVERSE (45 GRADOS1
A, YOCOH
MnV
MOVX
@DPTR,A
DPTR
INC
MOV
A,#OOH
RFT
;ESPERA A SER
REINICIADO O QUE SE QUITE LA PAUSA
VERPAUSA:
RI COMB
COMB
JNB
LCALL
INCHAR
CJNE
A, P ' * ' ,FINPAUSA
MOV
A,#'"'
LCALL OUTCHAR
LCALL
INCHAR
COMlP: CJNE
A, #O,COMZP
MOV
A,#10
LCALL TXSTATUS
MOV
A,#OO
LCALL
TXSTATUS
MOV
SP,#07
;REINICIA LA PILA
Y
RFGRFSA A T.A nTF flflnflH
MOV
A. #O
PUSH
ACC
PUSH
ACC
DECIDE HCIA QUE ANGULO TENE QUE
;;PARA AVANZAR
;DETERMINA QUE MOVIMIENTO TIENE QUE HACERSE
DETMOV: MOV
R3,#00H
TCAlT.
ATTDOS
; A C T I I A l T ~ A 1.A POSTCTON nFT.
nM4:
ROBOT
DM1:
DMZ:
VERPAUSA
FINCOM
A, #2,COM4
TXSTATUS
LCALL
MOV
A, #O2
LCALL
TXSTATUS
:REINTENTALEERDISTANCIAS
LCALL LEEDIST
LCALL
REGRESA
LJMP
FINCOM
A, #O1
COMERR: MOV
T CAT,T
; ;RUTINA QUE
;DESHABILITA
GIRAR
TXSTATIIS
A, # i n
MOV
TXSTATUS
LCALL
MOV
A, # O 4
TXSTATUS
LCALL
;SE MUEVE A LA POSICION
LCALL MOVERSEA
INDICADA
FINCOM
LJMP
A, 63,CGMERR
COM4:
CJNE
Mnlr
LMP
FTNCOM
C0MERRP:MOV
A, (01
LCALL
TXERR
FINPAUSA:MOV
A, X06
RFCFPCTON
LCALL TXSTATUS
RET
numero depasosobtenidosde
MOV
MOV
DPTR.19FOOH
t;a bl al a
; Menos
A.Ri
RTFN R O Y R 1
signifiravivo A S TF S T A
8
MOW
ROPTR, A
PROM:
DPTRINC
MOV
A,RO
MOVX@DPTR,A
;
Mas signlficativo
RFT
DE 9FOO Y 9FO1ADISTANCIANADA
CNVPDIS:
;DETERMINA HACIA ADONDE TIENE QUR MOVERSE
MOV
O P T R , $9FOOH
MOV
RO, UOFFH
MOV
R1, #OFFH
LCALL MAYOR
T CAT T
MFNOR
MOV
A,RO
ADD
A,R1
MOV
B,#2
DIV
AB
CJNE
A, 1132H.NOEQ
SETB
MIZQ
SETB
MDER
;IG U m AVANZA
DERECHO
UNA
MOV
DPTR,
#9FOOH
VUELTA
MOV
A, #OB8H
MOW
@nPTR,A
INC
DPTR
MOV
A, Y O l H
MOVX
@DPTR,A
:PONESENTIDO
CONVAP
;CONVIERTE ACC
PRTMFR ANGII1.O
MAYOR:
MOVX
A,@DPTR
CJNE
A, #ROH,NEQMAX
1,OWMAX
S.TMP
NEQMAX: MOV
RO,DPL ;SI FUE MAYOR
QUE 80
SJMP
E'MAYOR
LOWMAX: INC
DPTR;SIFUEMENOR
IGUAL QUE 80
MOV
A,IWT.
CJNEA,
#66H,MAX2
SJMP
EWAYOR
;IGUAL
MAX2: DPTR
;INC
A, #ÜFFH
@DPTR,A
nPTR,
$9FF?H
A, YO2
TXSTATUS
; I O 0 pasos
R4, X100
inc
~
1.8
qrarlos
MOV
DPTR,lt9EOOH
CICD1ST:CLR
CAD
PUSH
DPL
PUSH
DPH
LCALL INIAD
PARA CONVIERIR CON
EL A/D
MOV
DPTR,#9FFZH
MOVX @ OA P, T R
POP
DPH
EN LA TABLA
POP
DPL
MOW
BDPTR,A
LCALL
DECMD
INC
DPTR
LCALL
RETARDO3
Ts;M7,
;LLAMA A LA RUTINA
;LEE VALOR
DEL
A/D
;GUARDA LO CONVERTIDO
R4,CTCnTST
MOV
A, #O7
LCALLTXSTATUS;TRANSMITE
Txrx
on
100 DATOS
;
RET
OEl,
PRlMRR
A,XBOH,NEQMIN
LOWMIN
DPTR;SIFUEMAYORIGUAL
A,DPL
A, #66H,MIN2
MFNOR
ANGlI1.O
QUE
80
;1C.IIPIT.
R1,DPL
MRNOR
;SI RIEMENORQUE
;INICIALIZA Y REGRESA
n T S T A N C T A SA
80
;OBTIENE CUANTOS NUMEROS FUERON
MAYORES QUE
MOTORQUE MIDE
ANC-0
INICIAMD:CLR
PARA EL
CLR
DISTANCIAS
SETB
SETB
MOV
MOV
DPTR
FMENOR: RET
'4
;MOV
;MOV
;MOVX
;LEE LAS DISTANCIAS Y LAS GUARDA A PARTIRDE
LEED1ST:MOV
LCALL
MOV
r.rar.r.
MAYOR
RET
1.A POSTCTON
:~F,VlIFl.VF
XOH
CAD. FINAD
A,#OÜ
TXERR
ALA
;CONVIERTE 'A' A
;nF.VlIFT.VF.
l . AP O S T C T O NO F I ,
SJMP
;LCALL
;ERROR €N EL ADC
;PONE SENTIDO A LA
MAYOR QUE a0
MENOR
JMP
LOWMIN: MOV
;RETARDO
JE
;MOV
RET
S.WP
P1 . 3 : C T N T A n
,TNR
;
;;DEBE SUMAR O RESTAR AL ANGULO
LCALL MUEVE
MIN2:
;INC
P22
PMIN
R5
DPTR
8, C
PROM
CINIADZ:JB
P1.3,CINIADZ
MOV
R?, #21H
CINIAD4:DJNZ
R7,CINIAD4
MOVX
laT)PTR,A
CAD.CINIAD3
CINIAD?.:JNE
FINAD:
RET
:RA2
MENOR QUE 6 0
MENOR:
MOVX
A.@DPTR
CJNE
SJMP
NEQMIN: INC
MOV
CJNE
A, XRflH,N&nA
;RUTINA DE INTERRUPCION DELA/D
INTAD:
PUSH
DPL
DPH
PUSH
Mnv
nPTR, m m n m
MOVX
A,@DPTR
MOV
DPTR,#9FFZH
@DPTR,A
MOVX
POP
DPH
DPL POP
SETB
CAD
KOV
IE, Y85H
RET1
UFOOH
.JMP
SJMP
JC
INC
INC
;HACE QUE EL A/D EMPIEZE A CONVERTIR
INIAD: MOV
DPTR, XOAOOOH
A PA.SOS
FMAYOR:
:
CTNTAT):
PASOS
DETGI
8 , WlOl
;CARGA NoDE PASOS
LCALL MUEVE
SJMP
DETGIRAZ
JC
DETMIN
NOEQ:
DETMAX: MU$
B,A
MOV
A,#180
SUBE
A,B
SFTR
MT70
CLR
MDER
IZQUIERDA
SJMP
DETGIRA
DETMIN: CLR
MIZQ
DERECHA
SETB
MDER
DETGIW\:MOV
DPTR,
#TABLA
LCALL
R5, #OOH
A, @ D P T R
P22 :
PMIN:
SCPROM: D J N Z
RET
RET
PARA
MOV
MOV
CPROM: MOVX
C,TNF.
;CONVIERTEPASOS
OFT":
O P T R , XOF.OOH
MOV
P1.4
;INICIA LOS VALORES
P1.5
;MOTOR QUE MIDE
P1.6
Pl.?
DPTR,#'?FFOH
A,Y9H
MOVX
ibDPTR,A
MOV
DPTR,
I9FFIH
A , UOOH
MOV
MOW
BnPTR;A
;#lo1
MOV
R7,XlOl
C1CLOMD:LCALL INCMD
LCALL RETARDO3
DJN7.
R7,CTCI.OMn
o
MOV
ANGULO ACERO
MOV
MOVX
RET
DPTR,$QFO?H
;PONF
A,#OO
@DPTR,A
:RIITTNA PARA TNCRCMFNTAR
DISTANCIAS
INCMD:
MOV
MOV
Mnv
MOV
MOV
MOV
MOV
MOV
MOV
CLR
MOT1:
SFTR
MOTZ:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
;PARTE BAJA
T rpi1.l
RFTARnOl
LD
CEACLlL6
JNB
C16,CICLOM
RET
TIN
PASO FT. MOTOR
QlIF MTnF
RET
C,P1.6
ACC . 4 , C
A
A, # l z a , M m
C,P1.0
ACC.0.C
C,P1.1
Arr. 1 , C
VALIDA
RESTAG:
;SUMA
PUSH
rm
C.Pl.2
SETB
C.Pl.3
MOV
MOVX
.
ACC 2,C
ACC. 3 , C
P1,A
MOTOR
?.NGULO=O
.m8
A,XO
MIDE
MOV
MOW
~rr.4:~
CLR
RRC
CJNE
c
Mnvx
A. 1 2 4 , M O T l A
Arr.7
A,%7i,MOTZA
C,Pl.O
MOV
MOV
MOV
MOV
MOV
MOV
MOV
RFT
:RUTINA PARA
MOVER
WdEVE:
MOV
LCALL
MOVX
CT,R
CICLOM:
LCALL
RETARDO2
CPL
LCALL
CPT.
A
UN PASO EL MOTOR
QUE
MOV
MOVX
MOV
MOVX
MOV
MOVX
MOV
MOVX
MOV
R1,C I C L O R 3
r\cc.n,c
C,P1.1
ACC . 1 , C
C.Pl.2
ACC.?,C
C. P 2 . 3
ACC.3,C
P1,A
E L MOTOR DE LA TRACCION
A, 1 0 4
TXSTATUS
I?PTR, $9FflflH
A, @DPTR
DPTR, R9FFOH
BDPTR,A
nPTR, 8 9 F n l H
A, @DPTR
DPTR, #9FFlH
@DPTR,A
C1 6
RELOJ
RETARD02
RF1.O.T
AL
ANGULO E L DATO EN 9FFOH Y 9 F F 1 H Y
PSW
w 1
RSO
DPTR,
t9FOZH
A; laDPTR
MOV
D P T R , # 9 F F i;H
C O P IEAL
ANGULO
PARA
SUMARSE
MOVX
BDPTR,
A
;EN9FFO
DEBE TENERLO
QUE S EL E SUMARA
MOV
DPTR, I 9 F O J H
A, @DPTR
MOVX
MOV
DPTR, #9FF3H
MOW
PnPTR,A
LCALL
CMPl6
MOV
MOVX
MOV
MOV
;20
R?,TTCT.ORI~
RET
C.Pl.7
ACC.7,C
C,P1.6
acr. 6 , c
C. P 1 . 5
ACC. 5 , C
C,P1.4
MOV
R 1 , ;#2305 H
R2.135H
ACC.~
SFTR
MOTZA:
Rl.CiCLOR2
DJNZ
A, #32,MOT2
MOV
MOV
MOV
Mnv
MOV
MOV
MOV
ACC
S E. 7T B
MOV
R2,CICLORlZ
RETARD03:MOV
C I C L O R 3 : MOV
rTrT.nRi.?:n.TN7,
c
;RUTINA PARA
DECREMENTAR
DISTANCIAS
MOTlA:
CJNE
$1 f i H
R2, # 1 6 H
RFT
T.iAT,T,
A
U1
DJNZ
A V . 5,C
C.Pl.4
;REGRESA A SU POSICIONORIGINALEL
REGRESA:MOV
R7, #lo1
CTCT.OR: 1,CAT.l
TNCMn
RETARDO3
LCALL
DJNZ
R7,CICLOR
RET
Mnv
R2,103H
R?, rTrT,nR11
R1,C I C L O R l
RFTARn0P:MOV
CICLORZ: MOV
CICLORl2:DJNZ
ACC.6.C
P 1 .C5 ,
MOV
RET
ncrMn:
R1, # 0 3 H
RETARDO1:MOV
C I C L O R 1 : MOV
rTrT.nRi1: nm7
DJNZ
A,#O
C,Pl.i
Acr. 7 r
R1.r
CJNE
ACC.4
SETB
CJNE
DFT.
VA1,OR
MOW
MOV
MO\i
INC
MOV
MOVX
T CA1,l.
LJMP
RESl:
MOV
TGIJAT.FS
MOVX
MOV
I NC
RFSTAlh
DPTR, # 9 € F O H
A, @DPTR
DPTR, #9FFZH
PnPTa, A
DPTR, 1 9 F F l H
A, @DPTR
DPTR, #9FF3H
QDPTR,A
PDPTR,A
DPTR, #9FFOH
A,
BDPTR
RO,A
DPTR
R1,A
DPTR
A, @DPTR
A
MOV
:'R
INC
MOVX
MOV
A, @DPTR
R3,A
DPTR
MOV
MOVX
INC
DPTR, U9FFOH
A. R2
@DPTR,A
nPTa
A , R3
@DPTR, A
DPTR
MOV
A:
MOV%
$DPTR,A
DPTR
A , R1
laOPTR,A
RESTA16
ww
LCALL
FTNRFS1 .MOV
> R
DPTR
A, 168H
@DPTR,A
RESTA1 6
FINRESl
A, (al)PTR
INC
MOV
:A
DPTR, #9FFOH
A , #O1
MOV
INC
MOVX
ThlC
Y 9FF1
MA, R E S l
MOVX
MOV
MOV
MOVX
VALOR DEL
un
nPTR. Y9FF'OH
; A < B
E
MOV
MOVX
RESULTANTEDEL
MOV
MOVX
MOV
MOVX
POP
RET
DP'IR, # 9 F 0 2 H
ODPTR,A
;COLOCA
ANGULO
[?PTR, t 9 F F 1 H
A, FDPTR
DPTR, Y9F03H
@DPTR,A
PSW
a, P ~ P T R
MOW
CJ N E
SETB
LJMP
VALOREL
c
<'1.R
STGIIF:
CLR
MOV
MOV
MOW
SUBE
MOVX
AC
B, x0
DPTR, X9FFOH
A,BDPTR
A. #l
@DPTR,A
DECHIGH
PTNR1 C.
X9FFiH
A, ODPTR
JC
LTMP
DECH1GH:MOV
DPTR,
MOVX
CLR
SUMAG:
MOV
DPTR, X9FC2H
MOVX
A,PnPTR
MOV
D P T R r # 9 F;FC2OH
EPLI A
ANGULO PARASUMARSE
MOVX
FDPTR,A
DEBETENERLOQUE
S EL E SUMARA
MOV
U9FO3H
DPTR,
MOVX
A. @DPTR
MOV
DPTR, # 9 F F 3 H
MOVX
IdnPTR, A
LCALL
SUMA16
MOV
MOV
MOVX
PARA COMPARAR
INC
MOV
MOVX
JB
MOV
MOV
;CARGA
MOVX
PARA RESTARLE
I NC
MOL'
MOVX
LCALL
LJMP
EQSG:
ANGULO
DE 361
A,dOl
A
ODPTR,
360
DPTR
A:#6RH
@DPTR,A
RESTA16
FINSG
MOV
=
;CARGA 359
; S E ?'GO
DPTR, X9F02H
;PONE ACERO
A 360
A, # O
@nPTR,A
DPTR
@DPTR,A
MOV
MOVX
INC
MOVX
FiNSG2 LJMP
FINSG:
FINSGZ :
T.CAl.1.
POP
RET
6 , x0
nPTR, #9FFnH
A, l@DPTR
A, X 1
INCHIGH
PnPTR, A
FINSlG
DPTR, # 9 F F 1 H
A, @DPTR
A
:PRF.NDF R T T m 6
MOV
D P T R , # 9 F F; VOEHR I F I C A
MOVX
A, ODPTR
CJNE
A. UOOH, S I G U E
MOV
nXP 9TFRF, l H
MOV
MOV
MUL
MOV
MOV
MOV
MOV
h i t s p a r a MIIT.Tlh
A,R1
B,R3
AB
RS,A
R4, B
A,RO
B,R3
Mili.
AR
ADD
MOV
MOV
RFT
A,R4
R4,A
R3,B
;SUMA DOS VARIABLES DE 1 6 B I T S A
OOH
=
9FFOH y
9FF1 H
A, # l
@DPTR,A
;B
= 9FF2H
Y 9FF3H , RESULTADO EN PFFOH y
9FFlH
SUMA16: CLR
DE 1 6 B I T S EN 9FFOH
9PF2.9FF3
Y 9FFlH
DEC16:
v a l n r ~ rd e R
;milifi?Ii?a
MULTE:
OCH
:DECREMENTALAVARIABLE
~:#nn
laDPTR, A
DPTR
A.RG
IdnPTR, A
DPTR
A.R7
@DPTR,A
STIMAl fi
PSW
INC
MOV
MOVX
: TNCRF.MF.NTA 1,A VARTART.F, nF, 1 C. RTTS F,N qFF"H
MOV
MOV
MOVX
ADD
JC
MOVX
LJMP
1NCHIGH:MOV
MOVX
C1.R
ADD
MOVX
F I N S 1 6 : RET
Mnv
MOVX
INC
MOV
MOVX
MOV
X9FFCH
DPTR,
;REGRESAEL
VALORDEL
ANGULO
MOVX
A, @DPTR
MOV
nPTR, #I)FO?H
MOVX
@DPTR,A
MO?
DPTR, XYFFlH
MOVX
A, @DPTR
MOV
1I9FO7H
nPTR,
MOVX
laDPTR,
A
RET
Y 9FFlH
I N C 1L6R:
@DPTR,A
;MULTIPLICA DOS VARIABLES DE 1 6 B I T S A =
9FFOH Y 9 F F l H
; B = 9 F F 2 H Y 9FF3H , RESULTADO EN 9FFOH Y
9FFOH
MULT16:
PUSH
PSW
SETB
RS1
SETB
RSO
MOV
nPTR, YOFFDH
MOVX
A, @DPTR
MOV
RC,A
DPTR INC
MOVX
A;PnPTR
MÜV
R1,A
INC
DPTR
MOVX
A, ODPTR
MOV
R?, A
INC
DPTR
MÜVX
A, @DPTR
MO?
R3,A
1 rAT.7.
MlIT.TR
MOV
A,R~
MOV
R6,A
MOV
A,R5
MOV
Rl, A
MOV
A,R2
MOV
R3, A
LCALL
MULTE
MOV
nPTR,
#qFFOH
MOV
A,R5
MOVX
@DPTR,A
INC
DPTR
MP16
ME, F I N S G
MA,EQSG
119FF2H
DPTR,
Al'
A,#l
SUBB
MOVX
RET
FINR16:
DPTR
A,rth;RH
ODPTR,A
LCALL
JNB
;EN 9FFO Y 9FF1
DPTR, #9FF2H
~ ; t n l
ODPTR, A
C
CT.R
VALOR
DEL
A, XOOH, S I G U E
C16
FiNR16
S ICERO
ES
;PRENDE B I T
Y
C
CLR
MOV
AC
MOVX
MOV
MOV
MOVX
ADD
MOV
A, @DPTR
R?A
DPTR,
U9FF3H
A, @DPTR
A,B
nXP 9TFRF, l H
DPTR. U9FFlH
;SUMA 9FFO,9FF1
CON
11
MOW
lanPTR,
A
MOV
DPTR,
X9FFOH
MOW.
A, @DPTR
B. A
MOV
MOV
nPTR,
*BFF7H
MGVX
A, @ D P T R
ADDC
A,B
MOV
DPTR, B9FFOH
RnPTR:A
MOW
RET
:CIJRNTA F.T. STGNOnFT.
PRTMFRO CN
FT,
;RESULTADO EN BFFOH Y 9 F F l H
SUMAP: PsW
PUSH
SETB
RS1
SFTR
RSn
JB
SIGN0,SUMAPl
SUMA16
LCALL
SJXP
FINSP
.%MAP1 : T.CA1.T
CMPl 6
JB
ME,SUMAP3
;RESTA DOS VARIABLES
DE 1 6B I T S A
=
9FFoH y
VFF1 H
=
9FF2H Y 5FF3H
,
RESULTADO EN 9FFOH y
5FFlH
RESTA15:CLR
C
T1.R
AY
X, @DPTR
SURR
30s
;MAYOR
SlJMA1 fi
FINSP
=
~FFOH
=
:
A<R
;
A-B
o
xxxxxxx
CMP16:
PUSH
SFTR
SETB
MOV
O
1
CJNE
MOV
CJNE
A. OlBH,NGEQZ
MGV
ME
O
1
O
1
PSW
RSl
RSO
DPTR, It9FFOH
A. @DPTR
RO,A
DPTR
@DPTR
A,
R1,A
DPTR
A, @DPTR
RZ, A
DPTR
A, POPTR
R3,A
C
MA
ME
A, RO
A, OIAH, NGEQl
Moa
MOV
INC
MOVX
MOV
INC
MOVX
MGV
INC
MOVX
MOV
CLR
CLR
CLR
FINSF:
;R2
EN EL BANCO 3
=
BANCO 3
=
1A
F C MSFJ1X6P
.lC
SETB
CLR
SJMP
C1.R
SETB
SJMP
JC
SF.TR
CLR
SJMP
MENGRl:
CLR
SETÜ
MOV
Rn: E
INC
MGVX
DPTR
A, @DPTR
R1,A
DPTR
A, @DPTR
RZ,A
DPTR
MO'J
1NC
VARIABLES DE 1 6 BITS A
9FF2H Y 5FF3H
;RESULTADOS :
m
;
A>B
1
A,R1
; R 3 EN EL
MFNOR?
MA
ME
FCMP16
MA
ME
FCMP16
MENOR1
MA
ME
FCMP16
MA
ME
psw
FCMP16:
POP
RET
o Y
;PARALAPGSICIGNX
:SUMA AL
VALOR
EN RFFOH Y 9 F F l H MAS 9FFZH Y ~ F F ~ H
TOMANDO FN
A
DPTR, # 9 F F 4 H
A. $ 0
@ C P T R ,A
DPTR
@DFTR,A
FTNSP
;MENOR
;INTERCAMBIA OPERANDOS
DPTR,
#9FFOH
A, @DPTR
MGV
MGVX
DPTR,
X9FFOH
PDPTR,
A
;CGMPAiL4
NOE@l:
MOV
SIGNO
SUMAP3:
CLR
A,R
Y 9FFlH
;E
;RESULTDO EN
DPTR,#9FFZH
Al P n P T R
B,A
DPTR,
#9FFOH
A, @DPTR
MOV
MOVX
RET
MFNOR?:
SIGNO
MGVL
INC
MOVX
T.,lMP
B,A
DPTR, X 9 F F l H
A. @DPTR
A,R
D #P9TFRF, l H
PDPTR,A
MOV
MOVX
MOV
MOVX
MGV
MGV
MOVX
NOFQ?:
MA,sUMApz
MOV
GPTR, d 9 F; R
F 3E9HSFTFAO , 5 F F l
SIJRR
1B
JNB
SETÜ
T,CAl.T,
LJMP
s uS;M
IICGGA
LNUPROm
2:
MOV
MENOS 9 F F 2 . 9 F F 3
MOVX
VFFO, YFF1
MGV
MOV
MOi'X
;
R T T *SIC.NO#
MOVX
MOV
INC
MOVX
A, PnPTR
MGV
R3,A
MGV
DPTR, 19FFOH
MOV
A, R2
MOW
PnPTR,A
INC
DPTR
MGV
A, R 3
MOVX
@DPTR,A
T NT
nPTR
MOV
A, RO
MOVX
@DPTR,A
INC
DPTR
MOV
A , R1
MOVX
@DPTR,A
LCALL
RESTA16
MGV
DPTR, 6 9 F F 4 H
MOW
A, P n P T R
MGV
DFTR, X9FFOH
MOVX
A, @DPTR
MGV
DPTR, 6 9 F F 5 H
MOW
A , PnPTR
MOV
DPTR, #5FFlH
MOVX
A, @DPTR
POP
PSW
RET
;PARA LA PGSICIONX
o Y
:RESTA AT. VAT.OR FN9FFOH
Y 9 F F l H MFIUOS 9 F F P H Y ~ F F ~ H
TOMANDO EN
'SIGNO'
;CUENTA E L S I G N O DEL PRIMERO EN E LB I T
;RESULTADO EN 9 F F 4 H Y 9 F F 5 H
RESTAP: PUSH
PSW
R S 1S E T B
SETB
RSO
SIGNO,
JNB
RESTAPl
T.rAT.1.
SIIMA1 fi
FINRESP
LJMP
RESTAP1:LCALL
CMP16
JB
ME, RESTAP3
%lNR
MA, RCSTAP?
LCALL
RESTA16
;MAYOR
LJMP
FINRESP
RESTAPZ :CLR
SIGNO
;IGLIAL
DPTR, 1 Y F F 4 H
MOV
MGV
A,#O
Mob3
@DPTR,A
INC
DPTR
MOW
@I)PTR.A
FINRESP
LJMP
RESTAP3:SETB
SIGNO
;MENOR
;INTERCAMBIA
MOV
DPTR,
B5FFOH
OPERANDOS
MOVX
A, @DPTR
MGV
RO, A
INC
DPTR
MOW
A, @ n P T R
MGV
R1,A
INC
DPTR
MOVX
A, @DPTR
MOV
R7, A
12
INC
MOVX
MOV
MGV
MOV
DPTR
DPTR
DPTR
A, PDPTR
R3,A
DFTR,
X9FFOH
LCALL
POP
LCALL
RET
R,R7
MO'JX
ODPTR,A
INC
MOV
A,R3
MOVX
PnPTR,A
; T W S M I T E CODIGC DE ERROR DADO EN ACC
T'XERR:
PUSH
ACC
MOV
A,#'!
INC
MOV
A,RO
MGVX
@DPTR,A
INC
MOV
A,R1
MOVX
@DFTR,A
LCALL
RESTA1
6
DFTR
A, @DPTR
DPTR,
#9FFOH
@DPTR
A,
nPTR:
lt9FFTH
A, PDPTR
DPTR, I 9 F F l H
A, PDPTR
PSW
MOVX
MOV
MGbX
POP
RET
;CALCULAELSENODEL
ANGULO DADO EN ACC
SOLO 0-90
GRAnOS
;DEWELVERESULTADO
EN A ( E L RESULTADOESTA
MULT
'10)
SENO:
MOV
MOVr
RET
DPTR. YTSEN
R, PAtnPTR
ANGULO DADO EN ACC
;CALCULA
EL
COSENO
DEL
sn mnnos
SOLO O-
DllTrHAR
ACC
OUTCHAR
1.TAT.T.
OllTTHRR
INC
MOVX
DPTR
A, @DPTR
OUTCHAR
DPTR
A, PDPTR
GUTCHAR
DFTR
LCALL
INC
MGVX
LCALL
INC
MOVX
A < @nPTR
LCALL
OUTCHAR
MOV
DPTR, #9F02H
MOVX
A, PDPTR
l.CRT,l.
OIJTCHPR
IN2
MOW.
LCALL
DFTR
A, @DPTR
OUTCHAR
MOV
MOV
MGV
MOV
LCALL
RET
C. SX
ACC.0.C
Mnv
EN A ( E L RESULTADO ESTA VULT
;DEVUELVE
RESULTADO
*lo)
COSENO: MOV
MOV
DPTR,
XTSEN
R,R
MOV
A,#9Q
C
A,B
CLR
SUBB
a,@atnPTR
Mnvr
REP
;TRANSMITECARACTER
OllTrHAR!,T!JR
TT,$
CLR
MOV
RET
; FSPFRAR A TRANSMTSOR
; L I M P I A R LA BANDERA
; TRANSMITIR
TI
SBUF,A
;TRANSMITE CADENA,DEBETERMINAR
A
OUTSTR:
CLR
Mnvr
A, a a t n P T R
JZ
OUTST2
FIN
LCALL
GUTCHAR
INC
DPTR
SJMP
OUTSTR
OUTSTP : RET
;T.FF CliRACTCR
JNB
INCHAR:
CLR
MOV
RFT
;TRANSMITELA
TERMINAR EN O
TXCAnFNR!MOV
LCALL
LCALL
OUTSTR
MOV
T r A T T.
RI,S
RI
A,SBUF
EN O
; TOMAR
IJN
RYTF
; Si ES
EL
IJLTIMO,
; S I NO,
ENVIARLO
; LECTURA
if'$'
OUTCHAR
A,#'$'
OTTTCHAR
RET
;TRANSMITEEL
NUMERO
DE
FORDPTR
A,#'#'
TXNUM: M W
LCALL
OUTCHAR
MOVX
A, PDPTR
1.CAl;I.
OllTCHRR
INC
MOVX
LCALL
A. PDPTR
1 6 B I T S QUE ESTE APUNTADO
ACT. 1 ,
r
OUTCHAR
ANGULO L9FF2H,9 F F 3 H )
TXDATO: MGV
A,X'D'
LCALL
OUTCHAR
A, OnPTR
MOVX
LCALL
GUTCHAR
INC
DPTR
MOVX
A, @DPTR
LCALL
OUTCHAR
INC
DFTR
MOVX
A, PDPTR
LCALL
OUTCHAR
TNC
nPTR
MOTA
A, e n p m
LCALL
GUTCHAR
RET
;TRANSMITE 1 0 0 DATOS
A,R4
PUSH
ACC
R4, i i l n l
MOV
MOV
DPTR, K9FFCH
MOV
A, X0
MOVX
PDPTR, A
MOV
DPTR, 09FFnH
MOV
A, #O
MOVX
@DFTR,A
DPTR
INC
MOVX
FnPTR; n
DPTR
INC
MOVX
@DPTR,A
DPTR
INC
MOV
A: # l R
MOVX
PDPTR,
A
MGV
DPTR, #9EOOH
DPL
PUSH
PUSH
DPH
TXD1:
MOVX
A, @DPTR
TIENEEL
DATO DE LATABLA
MOV
DPTR, 49FFDH
MOVX
PnPTR,A
;A
DPTR
MOV
MOW
MDV
MOVX
OUTCHAR
RFT
;TRANSMITEELCODIGO
TXSTATUS: PIJSH
ACC
MOV
C,SY
TXD100: MOV
CADENA APUNTADA POR DPTR,DEBE
A,
A ; fnnH
iTRANSMTTC DTSTANCTA IqFFnH,.9 P F l H ) Y
LISTO
A
1,CRT.l.
POP
LCALL
RET
;TRANSMITEPGSICION
XL9F04H. 9 F 0 5 H ) , Y ( 9 F 0 6 H , 9FG7H),
;SINGOS DE X.0 Y . l (EN UN BYTE,PRIMEROS DOS B I T S ) ,
ANG(9FOZH, 9FO3H)
TXPOSr
MOV
A, d ' P '
LCALL
OUTCHAR
MOV
DPTR, # 9 F @ 4 H
MOVX
A, @DPTR
;;;;
FTNRFSP:MnV
nPTR;
ltqFF4H
MOVX
MOV
MOVX
MOV
OUTCHAR
ACC
OUTCHAR
DE STATUS DADO
EN
A,Y'@'
ACC
MOV
MOVX
MDV
DPTR, X9FFOH
A, PDPTR
0 9nFPFTFRH,
PDPTR,A
DPTR, # 9 F € l H
A. @DPTR
XQFFFH
llPTR,
13
MOLT
DPL
MOV
LCALL
T,CAT,i,
LCALL
POP
POP
TNC
PUSH
PUSH
DJNZ
POP
POP
POP
MOV
RET
CADFNAOO:
CADENAOI:
CADENADZ:
CADENAOS:
CAnFNAO4:
COMREC:
RELOJ
MIZQ
MDER
PDPTR, A
SUMA16
DPH
DPL
DPTR
DPH
R4, TXDl
DPT.
DFH
ACC
R4,A
',O
'TNTCTA1,TZANW
nR
STSTFMA.
DB
'ESTOY
ATRAPADO
! ! ! I,O
',O
DE
MOVIMIENTO.
'EN
DE
'YA
LLEGE!
! I, O
DR
'QIIF MAS HAGO! ' , O
DE
'COMANDO R E C I B I D O ' , O
EQU
EQU
EQU
P1.0
P1.l
P1.2
;blt O
;bit 1
;bit 2
reioj
s e n t i d o motor izquierdo
sentido
motor
derecho
:ST R T T S M T Z Q Y MnER = 1
AVANZA DE FRENTE
ENCEN
EQU
P1.3
DB
TSEN:
O, 1,3,5,6,8,10,12,13,15,1?,19,20,22.24,25,27,29,30
DB
37,34,.35: 37,39,40,47,43,45: 46,48,49,51,57, 54,5s,
57
DB
58,6O,61,62,64,65,66,68,69,?0,71,13,74.75,76.77,78
DE
79,RO,Rl,R',U3,R4,R5,Rh~~7,RR~Rq~Rq,9~,9l~q?~qO~93
DB
FQN
7FH.0
CAD
EQU
DEL A / D
26H.1
9?,97,98,98,98,99,99,99,99,95
93,94,95,95,96,96,9?,
DB
Clh
Y 90
i l W E L T A DE LA
LLANTA
CORRESPONDE
A
01B8H
GRADOS
;180 GRADOS CORRESPONDEA 0 3 7 0 H
: 4 1 GRanOS CORRWPONDR A OOF.0H
DPTR, X9FFCH
TXDATO
RF,TARDO?
:RTT DF CFRO PARA 1 h R T T S
; I S I VARIABLEESCERO
:BANDERA DE RESULTADO L I S T O
;O2 ; O1
;BANDERAS DE RESULTADODECOMPARACIONDE
NUMEROS DE 1 6 BITS
MA
EQU
26H.2
;NUMERO DE 1 6 B I T S MAYOR
MF
FQU
76H.3
:NIIMFRO DF 1 6 RTTS MFNOR
;O3
-
;O1 :10 -
a/D
;DIR9FOOPARTEBAJA
DEL CONTADOR DE PASOS
; D I R 9 F O 1 PARTE
ALTA
DEL
CONTADOR DE PASOS
;DIR 9 F F 0 PARTE
BAJA
SUMA, RESTA,
; D I R9 F F 1
PARTE
ALTA
MIIT,T,nTV Y COMP.
; D I R 9FF2
; D I R9 F F 3
; D I R9 F F 4
:nTR 9 6 6 5
DE VARIABLE DE 1 6 B I T S
=>
DE VARIABLE DE i 6 B I T S
=>
;DIR9FO2PARTEBAJA
; D I R9 F 0 3 FARTEALTA
DEL ANGULO
DEL ANGULO
PARA
:nTR 9 F 0 4 PARTF
RAJA
n FP O S T r T O N
X
; D I R9 F 0 5
PARTEALTA
DE P O S I C I O N X
EQU
26H.4
; S I G N O DE P O S I C I O N X
SX
R E I N I C I A ROBOT
PAUSE
MOVER A
RECUPERACION DE DATOS
1 !
;FRRORFS
;O0
;DIRECCION AOOOH * CONVERTIDORA/D
= PEGI'TRO
DE RETilL.TPLKDEL
t D I R . E K I O NR F F Z H
*'
;COMANDOS
;O0
: D T R 9FOR
PARTF
RA,TA nF, T,A nTSTANCTA QlJF S F MOVTO FT,
ROBOT
; D I R 9 F O 9 PARTEALTA
DE LA DISTANCIA QUE S E MOVIO EL
ROBOT
1
FALLO EN EL ADC
ERROR EN COMANDO
NO HAY COMUNICACION CON EL ROBOT
;ESTADO DEL SISTEMA
'tu
;ESTADOS DEL ROBOT
;O0 - REINICIANDOSISTEMA
: O 1 - TNACTTVO
;O2
EXPLORANDO
;O3 - OCUPADO
;O4 - MOVIENDOSE
: O 5 - FSFCRANnOCOMANM
;O6 - DESHABILITA COMANDO
; O ? - TRANSMITIENDO DATOS
;O8 - EN PAUSA
:O9 - CONTTNIIANnO
;MENSAJES DEL ROBOT
;IO - COMANDO R E C I B I D O
-
:RF,SPtIF,STASnET.
:COMANDO
RESPUESTA
ENVIADO
POR PC
;
00
:nTR 9Ffl6
PARTF
RA,TA n F POSTCTON Y
; D I R9 F 0 7
PARTEALTA
DE P O S I C I O N Y
SY
EQU
26H.5
; S I G N O DE P O S I C I O N Y
99,99,99,100
ROROT
DEL
ROBOT (ESTADO)
O1
O0
01
O2
03
o2
u4
m
;nTR 9FFAH
; D I R5 F F B H
; D I R9 F F C H
DATOS DE ANGULO AMOVERSE
EN PASOS
;DIR 9FFDH DATOS DE DISTANCIA A
MOVERSE
EN PASOS
:STGNO PRRA HACFR i,AS
STGNO
OF6aH
l l. 6
OPERACIONES DE SUMA Y RESTA
DISTANCIAS
i D I R 9EOOH GUARDA LOS 100 DATOSDE
FQII
97H.0
; R T T PARA SARFR ,ST S F SUMA O
SINAX
RESTA A LA POSICION X
SUMAY
EQU
27H.1
; B I T PARA SABER S I S E SUMA O
RESTA ALA
POSICION Y
::ST
FT, RTT == 1 SE S t M A
== O S E RESTA
; ; S I E LB I T
A
14
#include
#include
#include
#include
tlnclude
*inrlor?e
COM
#define
#define
FALSE
<bios.h>
<canm.h>
<etdio.h>
<stdlib.h>
<mouae.h>
<qTCfirUT'b
1
T"Z
O
ldefine
Xdetme N
100
#define DATA-READY
0x100
#define
TIME-OUT
OX8000
*defina
SETTINGS
lOxAO1OxO31OxOO1Ox0O)
raliiinmize, I
setfillstyle!SOLID_FILL,BLACK1;
farli=0;i<=3000;i+=0.1)
x=randm(314j+lG3;
y=Lanaornflbl)tlbu:
barix.y.x+l,ytl);
x=randoml3141+163;
y=randomilGl)+160;
harlx,y,x+l,~+~l;
void msjlchar 'cad:
void 'S;
int n ;
n=strlen!cad)*4;
~=mnllorlim~g~si~~l7OD-n;7ln;?lnin,7Ln)i;
getimagsl300-n,2i0,340+n,zGO,Sl;
~ a r c a l 3 0 0 - n , 2 1 0 , 3 4 0 t n . 2 6 0 , . . N E N S A J E"1;
z c t c c l c r [LIGETC-MY!;
outteXtxyl320-n,210,~ad!;
getcn( I ;
setfillstylelSOLID-FILL,6LACK);
bar!300-n.z10,3~0tn,26n);
putlmagal300-n,210,S,XORPUT);
froelsi:
static void status!voidl
I
void rnarcoiint x1,int yl.int x2,int y2,char 'cad!
i
rectanglelxl,yl,xZ,yz];
setfillstylelSOLID_FILL,BLVEl;
i~'(nili,yii2,hi-i,yi+::i,
reitanglefxltZ,yl+i7,~2-2,~2-21;
SetcolorILIGHTGPAY!;
rect~"gle!xitl,yl+l,xZ-l,y2-li:
linel~ltl,yl+l6,x2-l,~l+lG~;
SetcolorfGREENl:
^.itte~tE:l!(r.l'r?!,l-a?rlen!cad"?,yl~~,~=~);
itrbotbnl536,200,516,210;boton4):
butonupl53n,Z50,510,290];
strbotcnl530,250,6i0,290,"Salir"];
I
int x.y;
A
Yoid bz::s<i:t X2,iT.t y1,ir.t .x2,izt
I
~etfill3tylelSOLID~FILL,6LACIo;
y?]
whilelstatus2 6 DATA-RMDYI
status2 = biascoml3, O, COM);
bioscomiZ, 0, c m ) ;
trmsnite C I Z ! C r n d ! . .
5uitchlcmd)
case
0:liberalkL);
L=ENLL;
redLbu3 a-manual I 1 :
break:
1
else ifiy >= 100 66 y <= 1401
/ + Boton 2'1
botondownl530,100,61C,1401;
strbotonl532,102,610.l4O,boton2);
deiayti0ü);
void redibuja-auto(void1
I
datos 'aux;
botonup~530.100.610.140);
strb.?tonI53@,100,610,1~0,botonZ);
setflllStylelSOLID_FILL,BLAcKl;
barlL72.432.497.4411;
barl272,442,497,450);
~-"~~?,esf,197,4?7::;
I
SetcOlorILIGHTGRAY;;
outtextxy1275.432," PAUSA temporal del ROBOT
int px.py:
X=260;
-
Y_?-,,_
"",
1
f-1;
p"sh':'j;
pushill:
botondowni530,150.610,1901:
strboton1532.152.610.190.baton3);
px=X+ceilflaux-~x+lcosiaul-~an~ulo~M_PI/l80l'aux-~dist!l*fl;
if IPY c= 22 I I px >= 4981
delayl100);
botonup~530.150,610,1901;
j
f-=.n!;
,".,. I s "
s+rh-+.tm,6?"lGn 6 , "
g o t o rei
~
h , , + , , " l $ .,
setfillstyle(SOLID_FILL,BLACK);
~ ~ ' ~ ~ 7 2 , ~ 3 ~ , ~ 9 ~ ' ~ 4 i , ~
bar(272,442,497,450);
barIZ72,462,497,472);
s~~~o~~~ILIGHTGRAYJ;
outteXtxy1275,432.'* MOVIMIENTOdel ROBOT ! " ) ;
py='i+ceilliaux-~y-isinlaur-~an~~l~~M_PI/l8@l~aux~~dist)]*f);
if lpy <= 38 I I py >= 397)
f-1.01;
goto r e ;
push('*');
pushl2);
1
else if(y >= 200
66
y
I=
2401 I + %ton
4*/
botondown1530.200,610,240):
strbotanI532.202.610.240.boton4~:
!
1
8158
void transmite_cai(charc ;
1
sonido1 1 :
1
if
,i(
;5r"Z iL
ii
~
L 1 1 ,
.>,,
+
,
1
if ly>-203 6 6 y (217)
v o i d verif_rec!int cmdl
botondam(503.203.517.217);
flechaizq~504,204,518.218);
delay(l00);
botonupf503.203,517,2171;
flechaizq(503,203,517,217);
int status2;
status2 = bioscom(3, 0. Con];
statusi);
redlbuja-manualil;
A
x ;
PhXXix, ' i
/ M U AREA
datos a:
Arch=fopenf"a:\\mapaZ.c","rt");
while('feofIArch1)
status2 = b l o s c o m l 3 , O, COM):
ifl3tatus2 & DATA-READY)
I
Out3
"a>;z
=
bioscoml2,
= ". n
. *Y~l ~
, "
O,
COMI:
'ban-I:
I
if isrmuli
I -
I
WNE=TRUE;
I
I
vola
h IifiE-cFÚi!
*ban=O:
I
*I
iatuin %t::
veriiicacomlint OUT,
l
int px. py, ban = 1;
int a, W N E = FALSE;
b:
sditchfautl
datos
void herr-mapalconst int x,const int y1
int mx,my,b,ban=O:
..*id '3:
S~malloc!imagesize!r,y,~ilO0,yt7Olj;
gerimage,x,y.xrí~ü,y+iO.j,;
A P A"):
setrolorlLIGHTGRRY);
marcoIa,y,x+:OO,yt7O,"M
!=
o
1
~uttext~yIx+15,y+25,"Z~
OUT"1:
outtextxylx'l5,yt35."Z00n
outtextxyIx+15,yt45,"
o"ttBXtXyIxt15.yt55,"
rn7,CFtT"
do
Iflban == O 1
continue;
if1 out != 'S' !
1N"I;
AUTO");
Salir");
_T ' ( t C " 0 :
else
DONE
=
TRUE:
J
nwnl6R = out << 8;
"lit
= r~rivl-arirhan!;
if Iban == O 1
break;
numl6R t = OUti
printf I"%d\n",numl6Rl;
oculta rato"(1:
setf~llstylrlSOLID_FILL.9LACK);
case '@':out
DreaX:
= recivcarfsbani;
if (ban == O!
barlx,y,xt:OO,yt70l;
putimape(x.lr.S.KOR_PUTi:
free(S!;
ir ~
-
~ ( ; t; j
goto fin:
I + Status * /
break:
setfillstyle!SOLID~FILL.BLRCKI;
if !out c 10)
? " i n , .
" " ~ ~ ~ , ~ I,n ~
-~,~,,,~"",,
1 1 1
.","m
else
barl272,462,497,P721;
5wlrcnIouEi
1
else
I
sonidof1 :
ca3e O
:outtextny(275,442,"Reiniciando Sistema"):
else
sonido! 1 ;
!
break:
ca5e 1
:~uttextxy:?75,94ZI"Inactivo"i;
else if!b == 21
break:
- .." ..
.nnihi!;
I
wniietban := i,;
oc"lta_ratonll;
setfillstylefSOLID_FILL,BLACK);
CIS*
2
case
3
:outte~ttry1275,442,"Explorando"l:
mear:
:outtextxyf275,44Z,"Ocupado"l;
barfn,y,xt100,yt7OI;
putimapsIx.y.S.XOR~PUTI;
freels);
redibuja-manuaio;
rnllratr-,
break;
cas* 4
:olltt~~t~yl275,44?,"Moi~iendose");
break:
rat"*,!:
fin:;
Lb*r_c.F'"i,
break:
void leemapalvoid1
i
ban-espera=O:
break;
FILE 'Arch;
A
xvii
case 7
:outtextxyl275.442,"Transmitiendo
Dato5
..."1;
break;
cese
lO:euttextxyI275,(62,"Ccrmando Recibido");
LrraL;
I
case
o
:outtextxyI275,452,"FALLO en el k l ~ ! ' ~ ) ;
Llreax:
case I
:outtextxyl?75,15?."ERR@R
en Comando!");
break;
I
outtextxy1580.362,
out = recivcar(&brtn):
if Iban == O )
whilelban != 1 ) :
iiberaihL1;
clasegraphlI ;
printfl"%d",contador);
I
setfillstyleisoLID_FILL.BLACKl:
~ar(580.422.627.44:);
outtextxyI580,122,DRi;
QlJt = r.ci%.<.riit.*l!:
lf Iban e= 0 1
oreai;
ADR = out << 8;
but = reclvcar(6ban);
ADR += out:
ADR I = 10;
outtex:xy1580,(32,klR);
i'
b.X=XR;
h.y=y?:+i
b.x=O;
L.y-o;
b.angula=/'ARt*/
ADh;
b.llg=NULL:
contadartt:
ifi!esta_dataI&bl 6 6 Dh
void verifica_ratonlint x , int y, int b, int 'ban)
A
c 12Cl
Apéndice B
Hojas Técnicasy de
Especificaciones
Especificaciones Técnicas del8051.. ......................
iii
Especificaciones Técnicas del Convertidor Analógico
Digital ADCOSOS..............................................
..
vii
Especificaciones Técnicasdel Sensor Infrarrojo
HOAI405 (Honey Weeli) ...................................
xi
Especificaciones Técnicas del MC2833 (Transmisor
de FM). ..........................................................
xi¡
Especificaciones Técnicas del Controlador MC 3472
del Motor a pasos del Sistema
de Tracción..............
B
xv
1
Especificaciones Técnicasdel XR215, Modulador
de FSK..........................................................
xviii
EspecificacionesTécnicas del LM565, VCU............
xxii
Especificaciones del Circuito Integrado LM555,
Timer. ..........................................................
xxiv
Especificaciones del Amplificador Operacional
B
LilX74l.........................................................
KKV
Especificaciones del TDA7000 (Receptorde FM).....
xxvii
Especificaciones Técnicas del8051
Pines del 805 1
vss
PO.0-PO.?
P1.0-P1.7
P2.0 - P2.7
P3.0-P3.?
RST
ATX
PSEN
1
B
EA
XTALl
XTAL2
lmentaclóa +5 V
Tierra.
E/S Puerto 0 bidireccional.
EíS Puerto 1 cuasiibidireccioaal.
E/S Puerto 2 cuasibidireccional.
E/S
Puerto 3 cuasibidireccional.
E
Reset
S
Address Latch Enlabe
S
Program Store Enlabe
E
External Accses Enlabe
E
Cristal 1
S
cristal 2
Descripción de conexiones.
20
39 - 32
1 -8
21 - 28
10- 17
9
30
29
31
19
18
E
...
111
Diagrama abloques del 805 1
nu ,uhirr,,
Organización del la Memoria Interna del 8051
iv
Una del a s maneras decómo mapear la memoriapor medio del 74 138:
Diagrama a bloques del m o d e m interno del 805 1:
B
Registro de control del modem interno
Configuración del =ado de transmisión del puerto serial
B
Especificaciones Técnicas del Convertidor Analógico DigitalADCOSOS
B
vii
"."
i"-
Connection Diagrams
Timing Diagram
"
B
m
a
...
m11
B
B
A
Especificaciones TCcnicas del Sensor Infrarrojo HOA1405 (Honey WeellCompany)
TEST ZUfiFhCE
Especificaciones del Sensorinfrarrojo HOA1405
....... .........
:,
B
..,*."I
Especificaciones Técnicasdel MC2833, Transmisor de Fill
Low Power FM
Wansmitter System
"~
LOW POWER
FM TRANSMITTER
SYSTEM
SEMtCONDUCTOR
TECHNICAL DATA
Users Must Comply wtth Local Regubtmns on R F
Transmisscon (FCC. DOT, PT 1,et(:)
i
B
B
Especificaciones Técnicas del Controlador MC 3472
SEMICONWCTOR
DATA
TECHNICAL
I
i
1
...
-
I -
..............
....
^
I
I
1
P sumx
PIASTIC PACKAGE
CASE W G
.
.
.
I
- ......
-.. . . . . . . . . . . .
PIN CONNECTloNS
I
1
I
I
I
i1
c
... _
-.........
~
................
'I!
?,
B
ORDERING INFORMATION
~
_"
"
"
!
. . . . .
I
.
B
I
....
.
.
Especificaciones Técnicas delXR215, Modulador de FSK
B
xviii
DC ELECTRICAL CHUIACTEW'IWX( W D )
B
XiX
t
E
. ...
rw
""1
I
Especificaciones Técnicas delLM565, VCO
'801
I
B
t
"
-
1
r
0.1
04
0.15
2
2.2
05
2.5
o1
02s
1251"
B
xxiii
Especificaciones delCircuito Integrado LM555,Timer
I"
t
'E
8
i
.
"
..
B
Especificaciones del Amplificador Operacional LM741
-
!
Naiional Semiconductor
LM741Operational Amplifier
General Deswbtion
"
!
Especificaciones delTDA7000 (Receptor de FM)
FM radio circuit
TOA7000
."'
47
B
2
u:
A.
'.5
B
Bibliografía
P
MANUAL Y APLICACIONES DEL MICROCONTROLADOR 8051.
Alejandro VegaSalinas. CINVESTA V IPN.
P THE MICROCONTROLLER
Scott Mackenzie Universityof Guelph.. Ptinted in Macmillan Publishing Company.
P
EXAR.
1997 ComunicationsProducts Data Book.
(http://www.exar.com).
>
ECGProducts.
Philips Consumer Electronic Company.
(http://www.ecgprdcts.com).,
P NATIONAL SEMICONDUCTORDataAcquisition.
P
NATIONAL SEMICONDUCTOR OperationalAmplifiers.
P NATIONAL SEMICONDUCTOR Aplication Specific Analog Products
(http://www.nsc.com)
P
MOTOROLA. Analoglinterfaces ICSVol. I
>
MOTOROLA. Wireless Seimiconductor Solutions Vol. II
P MOTOROLA. Fast and LS TTL Data.
P
MOTOROLA.BipolarPower.
P
MOTOROLA.Rectifier.
@ttp://www.motorola.com/sps/).
P
SISTEMAS MODERNOS DE CONTROL. Teona y Practica.
Richard C. Do6 Ed: Addison Wesley Iberoamericana.
Descargar