You are on page 1of 5

CARACTERSTICAS DEL PIC 16F84

El PIC16F84 es un micro controlador, una especie de "ordenador en miniatura"


(con muchas comillas) que podremos programar. En su interior posee un microprocesador,
una memoria RAM (voltil) donde guardaremos las variables, una memoria EEPROM (no
voltil) donde guardaremos nuestro programa, un Timer o contador que nos facilitar
algunas tareas, y algunas cosas ms.
Algunas caractersticas ms representativas son:
Opera a una frecuencia mxima de 10 MHz
1Kbyte de memoria EEPROM para nuestro programa
68 bytes (de 8 bits) de memoria RAM
64 bytes de memoria EEPROM para datos (no voltiles)
Solo 35 instrucciones
13 pines de entrada/salida (un puerto de 8 bits + otro de 5 bits)
Timer/contador de 8 bits
CARACTERSTICAS DEL MICROBOT
La idea de crear un microbot no era de crear un proyecto muy complejo pero s que tuviera
una funcionalidad.
El microbot que desarrolla haramos para este proyecto tendra la capacidad de que al
chocar con alguna pared pudiera detenerse y cambiar el sentido de orientacin para seguir
el movimiento. Pensamos en muchas alternativas a la hora de la deteccin de la pared
pero llegamos a la conclusin de que sera mucho ms fcil y conveniente aparte
econmico utilizar switches lmites.
Aparte de la creacin del circuito tendramos el gran problema de que acero circuito en
baquelita que tendr que ir montado en una estructura para el desplazamiento de microbot.
LA PROGRAMACIN
La programacin de microbot realizada en un programa denominado mplab en lenguaje
assembler.
Verdaderamente fue un gran reto empezar con la programacin del pic 16f84, como
sabemos no es mentira que la programacin de nuestro fuerte. Tuvimos que leer bastante
con lo relacionado al pic 16f84 y en algunos casos pedir ayuda a personas que conocen de
programacin.
Ya con el conocimiento necesario pudimos realizar la programacin del pic 16f84, y la
verdad nos pareci ya muy compleja. La programacin dada al pic 16f84 fue la siguiente:
LIST P=16F84 , R=HEX
INCLUDE "P16F84.INC"
;-------REGISTROS DE USUARIO--------------------RA EQU 10H
RB EQU 11H

RC EQU 12H
;************************************************
ORG 0X00
goto inicio
;-------CONFIGURACION PUERTOS-------------------iniciobsf STATUS,RP0 ; BANCO 1
movlw 00H
movwf TRISB; Configuracion de todo puerto B como salida
movlw 0FFH
movwf TRISA ; Configuracion de todo el A como entrada
bcf STATUS,RP0 ; Volver a BANCO 0
clrf PORTB ; limpia residuos de Puerto B
;-------AVANCE NORMAL DE LOS MOTORES---------avancemovlw 18H
movwf PORTB ; CARGA 00011000 EN PUERTO B PARA ATERRIZAR LOS MOTORES y
que avancen
;-------DETECCION SENSORES DELANTEROS-----------izq
btfss PORTA,0 ; comprueba que SENSOR 1(RA0) sea 0, SI ES UNO sAlta a STOP
goto der; salta a der
goto STOP ; salta a la subrutina que detiene los motores
goto retro ; salta a la subrutina que hace retroceder
goto giro_der ;sigue a la subrutina que hace girar el motor 1---giro a la derecha
goto avance ; avanza nuevamente hacia adelante

der btfss PORTA,1 ; Comprueba que sensor 2(RA1) sea 0, si es uno salta a stop
goto izq ; salta a izq
goto stop; salta la subrutina que detiene los motores
goto retro ; salta a la subrutina que hace retroceder los motores
goto giro_der ;sigue a la subrutina que hace girar el motor 2---giro a la izquierda
goto avance ;avanza nuevamente hacia adelante

;-------RETROCESO DE MOTORES---------------------

retro movlw 1EH


movwf PORTB ; carga 00011110 en el puerto B para M1 y M2 retrocedan
call retardg ; Llama al retardo
return
;---------DETENCION DE LOS MOTORES------STOPmovlw 00H
movwf PORTB;CARGA 00000000 EN EL PUERTO B --M1 Y M2 QUEDAN SIN TIERRA
call retardg;llama al retardo
return

;-------SUBRUTINAS DE GIRO DEL MICROBOT-----giro_dermovlw 08H


movwf PORTB ; CARGA 00010000 EN PUERTO B PARA aterrizar M1 y que gire a la
derecha
call retardr ; llama al retardo de giro
return
giro_izq movlw 10H
movwf PORTB;CARGA 00010000 EN EL PUERTO B PARA ATERRIZAR M2 Y QUE GIRE
A LA IZQUIERDA
call retardr ; LLAMA AL RETARDO DE GIRO
return
;-------RETARDO GRAL----------------------------retardgmovlw 40
movwf RA
tresg movlw 40
movwf RB
dosg movlw 20
movwf RC
unog decfsz RC
goto izq_tr
decfsz RB
goto dosg
decfsz RA
goto tresg
return
;-------RETARDO DE GIRO--------------------------

retardr movlw 20
movwf RA
tresr movlw 10
movwf RB
dosr movlw 10
movwf RC
unor decfsz RC
goto unor
decfsz RB
goto dosr
decfsz RA
goto tresr
return
end
;-------FIN DE PROGRAMA--------------------------+

Como puedes ver en la programacin aparece rutinas retardos y subrutinas, coloque que
aclar que el funcionamiento de nuestro MICROBOT ser en base de subrutinas.
Por ejemplo:
Cuando un microswitch se ha presionado iniciar una subrutina para que el microbot se
detenga otra para que el microbot gire y otra para que el microbot retome su marcha hacia
adelante.
LA SIMULACIN
para la simulacion del proyecto utiliza el proteus...es un programa muy especial que nos
ayudad a realizar practicamente la simulacion que queramos...

para la creacion de la parte mecanica lo que hicimos fue desmontar dos carritos de juguete
muy economicos para realizar unmontaje resistente

un disito rapido de lo que creimos necesario

y despues la compra
empezamos con esto

..
bueno despues de hacer esto realizamos el montaje en la placa de baquelita....
y nos quedo asi... algo muy improvisado...