Translate

sábado, 24 de octubre de 2015

MARCO TEORICO: TEORÍA DE COMPONENTES


REDUCTORES DE VELOCIDAD

Toda máquina cuyo movimiento sea generado por un motor (ya sea eléctrico, de explosión u otro) necesita que la velocidad de dicho motor se adapte a la velocidad necesaria para el buen funcionamiento de la máquina. Además de esta adaptación de velocidad, se deben contemplar otros factores como la potencia mecánica a transmitir, la potencia térmica, rendimientos mecánicos (estáticos y dinámicos).
Motoreductor para Rebotica
Esta adaptación se realiza generalmente con uno o varios pares de engranajes que adaptan la velocidad y potencia mecánica montados en un cuerpo compacto denominado reductor de velocidad, aunque en algunos países hispanos parlantes también se le denomina caja reductora.

MOTOREDUCTORES

Introducción

Los reductores y motorreductores mecánicos de velocidad se pueden contar entre los inventos más antiguos de la humanidad y aún en estos tiempos del siglo XXI se siguen utilizando prácticamente en cada máquina que tengamos a la vista, desde el más pequeño reductor o motorreductor capaz de cambiar y combinar velocidades de giro en un reloj de pulsera, cambiar velocidades en un automóvil, hasta enormes motorreductores capaces de dar tracción en buques de carga, molinos de cemento, grandes máquinas cavadoras de túneles o bien en molinos de caña para la fabricación de azúcar.
Características y funcionamiento
Un motorreductor tiene un motor acoplado directamente, el reductor no tiene un motor acoplado directamente. La sencillez del principio de funcionamiento y su grado de utilidad en una gran variedad de aplicaciones es lo que ha construido la trascendencia de este invento al través de los siglos.
Torque en un motor
El “torque” o “par” es una fuerza de giro; Por ejemplo, la fuerza de giro de la flecha de salida del motorreductor; es también la fuerza de giro en la flecha de un motor.
Es una fuerza de giro cuyas unidades son kilogramos – metro, o libra – pie, o libras – pulgada, o Newton – metro, etc.
Este torque o par mezclado con un tiempo de realización, aplicación o ejecución esentonces que se convierte en una “potencia”.
Un motor eléctrico tiene una determinada potencia en HP y tiene una cierta velocidad de operación a la cual gira la flecha de salida. Estas dos características que llevan aparejado un cierto “torque” o “par” que puede liberar el motor.El torque permitirá que podamos o no girar una determinada carga, cuanto más alto el “par” más grande será la carga que podamos girar. El que tan rápido podamos hacerlo dependerá de la potencia del motorreductor. Las dos características están interrelacionadas y dependen una de la otra.


PIC16F877A



El PIC16F877A es un microcontroladorcon memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con luz ultravioleta como las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser borrado con anterioridad.
El PIC16F877A fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estático, esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden.


El encapsulado más común para estemicrocontrolador es el DIP (Dual In-line Pin) de
40 pines, propio para usarlo en experimentación.
 


Descripción
·         El microcontrolador PIC16F877 4 Los pines de entrada/salida de este microcontrolador están organizados en cinco puertos, el puerto A con 6 líneas, el puerto B con 8 líneas, el puerto C con 8 líneas, el puerto D con 8 líneas y el puerto E con 3 líneas. Cada pin de esos puertos se puede configurar como entrada o como salida independiente programando un par de registros diseñados para tal fin. En ese registro un bit en "0" configura el pin del puerto correspondiente como salida y un bit en "1" lo configura como entrada
·         Los pines del puerto A y del puerto E pueden trabajar como entradas para el convertidor Análogo a Digital interno, es decir, allí se podría conectar una señal proveniente de un sensor o de un circuito analógico para que el microcontrolador la convierta en su equivalente digital y pueda realizar algún proceso de control o de instrumentación digital. El pin RB0/INT se puede configurar por software para que funcione como interrupción externa, para configurarlo se utilizan unos bits de los registros que controlan las interrupciones. 




Características
Ø  Para que un microcontrolador pueda funcionar apropiadamente, un uno lógico (VCC) se debe colocar en el pin de reinicio. El botón de presión que conecta el pin MCLR a GND no es necesario. Sin embargo, este botón casi siempre está proporcionado ya que habilita al microcontrolador volver al modo normal de funcionamiento en caso de que algo salga mal. Al pulsar sobre el botón RESET, el pin MCLR se lleva un voltaje de 0V, el microcontrolador se reinicia y la ejecución de programa comienza desde el principio. Una resistencia de 10k se utiliza para impedir un corto circuito a tierra al presionar este botón.
Ø  A pesar de tener un oscilador incorporado, el microcontrolador no puede funcionar sin componentes externos que estabilizan su funcionamiento y determinan su frecuencia (velocidad de operación del microcontrolador). Dependiendo de los elementos utilizados, así como de las frecuencias el oscilador puede funcionar en cuatro modos diferentes:
  • LP - Cristal de bajo consumo;
  • XT - Cristal / Resonador;
  • HS - Cristal/Resonador de alta velocidad; y
  • RC - Resistencia / Condensador.
Cristal de cuarzo: Al utilizar el cristal de cuarzo para estabilizar la frecuencia, un oscilador incorporado funciona a una frecuencia determinada, y no es afectada por los cambios de temperatura y de voltaje de alimentación. Esta frecuencia se etiqueta normalmente en el encapsulado del cristal. 
Resonador cerámico: Un resonador cerámico es más barato y muy similar a un cuarzo por la función y el modo de funcionamiento.No obstante, los valores de los condensadores difieren un poco debido a las diferentes características eléctricas.
Ø  Si la frecuencia de operación no es de importancia, entonces no es necesario utilizar los componentes caros y adicionales para la estabilización. En vez de eso, basta con utilizar una simple red RC.
Si se requiere sincronizar el funcionamiento de varios microcontroladoresuna señal de reloj se puede generar por un oscilador externo.

http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC16F877
http://ww1.microchip.com/downloads/en/DeviceDoc/30292D.pdf



CIRCUITO INTEGRADO LM3915

LM3915 se refiere a un circuito integrado que permite visualizar el nivel de un voltaje analógico de entrada al compararlo con un valor de referencia, presentando una escala de 10 pasos con una proporción de 3 dB cada uno. Puede manejar tanto dispositivos led como pantallas fluorescentes y LCD.
Permite diseñar medidores de nivel analógicos que no son afectados por vibraciones o desgaste como los de aguja. Si bien la escala es discreta y por lo tanto con poca resolución, su uso extendido se debe a su versatilidad y bajo costo. Presentándose en el formato PDIP de 18 patas.
Este circuito fue diseñado por National Semiconductor, adquirida luego por Texas Instruments, y se encuentra en producción desde 1988. En el momento de su lanzamiento había otros integrados especiales como el U237 de AEG y el UAA1701 y UAA1802 de Siemens, muchos discontinuados. Asimismo existen otros dispositivos de características similares,3 pero la familia LM391X es el estándar de facto.
Su funcionamiento se basa en 10 comparadores conectados a una serie de resistencias con varios modos de trabajo, que lo hacen versátil. Las características de este integrado LM3915, son similares a las del LM3914 de escala lineal, pero en éste la proporción entre los pasos de los comparadores es logarítmica que es más indicada para crear escalas de potencia. Existe también el LM3916 con una escala semilogarítmica especialmente diseñado para ser usado en dispositivos similares al vúmetro. Estos tres dispositivos comparten el mismo circuito interno formando la familia LM391X, variando entre ellos la proporción de los pasos de comparación y por lo tanto la escala mostrada.
Puede operar con un voltaje desde 3V hasta 25V y permite regular la corriente de salida desde 2 mA a 30 mA, por lo que no son necesarias resistencias para los displays con led y las salidas pueden dar señales tanto TTL como CMOS.
La relación de los valores entre las resistencias de la cadena de comparación interna, tiene un paso de 3 dB (1,41 veces), dando para todo el integrado un rango de 30 dB. A partir de la tensión aplicada entre la pata 6 (+) y la pata 4 (-), cada led encenderá en pasos de 3 dB con respecto a estas.
En la hoja de datos se especifican los valores de: 6,63K; 4,69K; 3,31K; 2,34K; 1,66K; 1,17K; 0,83K; 0,59K; 0,41K y 1K.
Si el primer led se enciende a 0 dB el último led encenderá a -27 dB.



TIRISTOR: 

Son dispositivos semiconductores de potencia, se puede definir como un dispositivo de operación biestable, ya que solo puede presentar dos estados el de conducción y no conducción. Dada su estructura interna multicapas que utiliza para su funcionamiento una retroalimentación positiva. Todos los tiristores trabajan como conmutadores; dichos dispositivos presentan un comportamiento como circuito abierto hasta que estos son disparados.

Al ser disparados pasan de un estado de alta impedancia a un estado de baja impedancia. Los tiristores permiten retirar la corriente de disparo sin que el tiristor se apague o cambie su polarización. Estos se apagarán de dos posibles formas: 1) Retirar la alimentación al dispositivo y 2) Si la corriente que fluye sobre dicho dispositivo disminuye por debajo del valor de corriente llamado de sostenimiento.


RECTIFICADOR CONTROLADO DE SILICIO 
(SCR)



Construccion interna de un tiristor (SCR)


El rectificador controlado de silicio (en inglés SCR: SiliconControlledRectifier) es un tipo de tiristor formado por cuatro capas de material semiconductor con estructura PNPN o bien NPNP.
Un SCR posee tres conexiones: ánodo, cátodo y gate. La Gate se encarga de controlar el paso de corriente entre el ánodo y el cátodo. Funciona básicamente como un diodo rectificador controlado, permitiendo circular la corriente en un solo sentido. Mientras no se aplique ninguna tensión en gate del SCR no se inicia la conducción y en el instante en que se aplique dicha tensión, el tiristor comienza a conducir.
Enlace del Datasheet:


LDR










Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también es conocido como fotoresistor y sus siglas son“LDR”, se originan de su nombre en inglés light-dependent resistor. Su cuerpo está formado por una célula o celda y dos paticas. En la siguiente imagen se muestra su símbolo eléctrico.
El valor de resistencia eléctrica de un LDR es bajo cuando hay luz incidiendo en él (puede descender hasta 50 ohms) y muy alto cuando está a oscuras (varios megohmios).

http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/40/LDR_NSL19_M51.pdf


FUENTE DE ALIMENTACIÓN


La fuente de alimentación (Powersupply en inglés) es la encargada de suministrar energía eléctrica a los distintos elementos que componen nuestro sistema informático.
Se trata de un transformador en el que entran 125v 0 220v en alterna y salen hacia el ordenador transformados en 12v, 5v y 3.3v en continua.
Su origen se debe a la necesidad de utilizar menor voltaje e intensidad en ciertos circuitos o dispositivos electrónicos.




TRANSISTORES DE UNIÓN BIPOLAR (BJT)


El transistor es un dispositivo semiconductor de tres placas, ya sean 2 placas de material “n”  o materia tipo “p” Al primero se le denomina transistor npn mientras que al segundo transistor pnp. Las placas que componen al transistor están dopadas (impurezas en el material)  según el terminal que tengan asignada.  La placa del emisor  se encuentra fuertemente dopada, la placa del colector sólo muy poco dopada y la placa de la base ligeramente dopada




 
El término bipolar refleja el hecho de que tanto huecos como electrones participan en el proceso de inyección hacia el material polarizado en forma opuesta. La operación del transistor npn es exactamente la misma que si se intercambian los papeles desempeñados por el electrón y el hueco. Para todos los BJT se cumple la siguiente condición:
"Una unión p-n de un transistor se encuentra en polarización inversa, mientras que la otra se encuentra en polarización directa.”
El transistor es un dispositivo cuya resistencia interna puede variar en función de la señal de entrada. Esta variación de resistencia provoca que sea capaz de regular la corriente que circula por el circuito al que está conectado.

CONTADOR

Se le denomina contador a un arreglo de flipflops, con un propósito de registrar el número de eventos que han ocurrido en nuestro sistema digital.
El número de flip-flops que se utilizan y la forma en que se conectan determinan el número de estados (módulo) y también la secuencia específica de estados por los que pasa el contador durante un ciclo completo. Dependiendo del modo en que se aplique la señal de reloj, los contadores se clasifican en dos amplias categorías: asíncronos y síncronos
En los contadores asíncronos se aplica la señal de reloj externa a la señal de reloj del primer flipflop, a partir de la salida del primer flip flop. Esta se conectará a la terminal del reloj del siguiente flipflop, a este tipo de conexión se  conoce como conexión en serie. Los sucesos no poseen una relación temporal fija entre ellos y generalmente, no ocurren al mismo tiempo. Un contador asíncrono es aquél en el que los flipflops (FF) del contador no cambian de estado exactamente al mismo tiempo, dado que no comparten el mismo impulso de reloj.
En los contadores síncronos, la entrada de reloj se conecta a todos los flip-flops, de forma que se les aplica la señal de reloj simultáneamente, se le conoce también como conexión en paralelo. Los eventos que tienen una relación temporal fija entre sí. Un contador síncrono es aquel en el que todos los flip-flops del contador reciben en el mismo instante la señal de reloj.



FLIP-FLOP’S 


Los flip-flops son los bloques básicos de construcción de los contadores, registros y otros circuitos de control secuencial, y se emplean también en ciertos tipos de memorias
Los flip-flops son dispositivos síncronos de dos estados, también conocidos como multivibradores biestables. En este caso, el término síncrono significa que la salida cambia de estado únicamente en un instante específico de una entrada de disparo denominada reloj la cual recibe el nombre de entrada de control, C. Esto significa que los cambios en la salida se producen sincronizadamente con el reloj.


Estos multivibradores biestablespuden cambiar sus estados de dos manera, por flancos, ya sea de subida o bajada y por niveles de voltajes, como son altos y bajos.

DIODOS EMISORES DE LUZ (LED):

LED significa: (Light-EmittingDiode) en español, diodo emisor de luz y podemos decir que este es un dispositivo semiconductor fabricado a base del semiconductor denominado arseniuro de galio (AsGa) y se caracterizan por emitir una radiación en el espectro visible e infrarrojo cuando este se polariza en forma directa (ver imagen 1.1).


Al igual que los diodos semiconductores este absorbe energía en la generación de pares Electrón-hueco donde esta energía se emite en forma de calor, sin embargo al hablar de diodo LED hablamos de que dicha energía se emite en forma de radiación. Se fabrican de diferentes colores, y este color (longitud de onda). Dicha longitud de onda dependerán del dopaje del semiconductor (impurezas colocados por el fabricante).
Para poder hacer que un diodo LED emita la radiación característica se necesita de una intensidad mínima de 4 mA (Miliamperes) y para evitar daño interno en nuestro dispositivo se recomienda no aplicar una intensidad mayor a 50mA, teniendo como valor típico de intensidad un rango dentro de los 10mA.
En la siguiente tabla se muestran los valores de tensión típica (Voltaje):

Símbolo:





RESISTENCIAS:

Estos elementos utilizados en electrónica, corresponden a los clasificados como elementos pasivos, son utilizados con el objeto de generar una caída de voltaje. Estos se pueden subdividir en fijos y variables. Permite distribuir la tensión y la corriente adecuadamente a todos los puntos necesarios. Se debe tener en claro que al hablar de un “resistor” se está hablando del componente físico, y al hablar de “resistencia” se habla de una propiedad eléctrica. Las unidades de medida de resistencia es el ohmio.
Símbolo de un resistor:



La visualización de la resistencia que posee el resistor se realiza a través del cogido de colores y mediante un código alfanumérico se indica el valor numérico de la resistencia del resistor y su respectiva tolerancia.

CÓDIGO DE COLORES:



DETECTOR DE PRESENCIA

SENSOR FIN DE CARRERA o SWICH DE LÍMITE


 Descripción: 
El final de carrera o sensor de contacto (también conocido como "interruptor de límite") o limit swicht, son dispositivos eléctricos, neumáticos o mecánicos situados al final del recorrido de un elemento móvil, como por ejemplo una cinta transportadora, con el objetivo de enviar señales que puedan modificar el estado de un circuito. Internamente pueden contener interruptores normalmente abiertos (NA), cerrados (NC) o conmutadores dependiendo de la operación que cumplan al ser accionados.
 Generalmente estos sensores están compuestos por dos partes: un cuerpo donde se encuentran los contactos y una cabeza que detecta el movimiento. Su uso es muy diverso, empleándose, en general, en todas las máquinas que tengan un movimiento rectilíneo de ida y vuelta o sigan una trayectoria fija, es decir, aquellas que realicen una carrera o recorrido fijo, como por ejemplo ascensores, montacargas, robots, etc.

Sensor fin de carrera
Configuración Interna
PIC16F84:




PICmicro (Peripheral Interface Controller), conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975 por la compañía General Instruments. Este chip denominado PIC1650. Diez años más tarde, al añadir una memoria EEPROM, y se convirtió en un verdadero microcontrolador PIC.

Microcontroladores PIC y sus variedades:

Todos los microcontroladores PIC utilizan una arquitectura Harvard, lo que quiere decir que su memoria de programa está conectada a la CPU por más de 8 líneas. Hay microcontroladores de 12, 14 y 16 bits, dependiendo de la anchura del bus.

Algunas ventajas de los microcontroladores PIC de Microchip:

· Eficiencia del código: permiten una gran compactación de los programas.

· Rapidez de ejecución: a frecuencia de 20MHz->5 millones de instr./seg.


· Seguridad en acceso por la separación de memoria de datos y de programa.

· Juego reducido de instrucciones y de fácil aprendizaje.

· Compatibilidad de pines y código entre dispositivos de la misma familia o sin reducción de las prestaciones internas (muy versátiles).

· Gran variedad de versiones en distintos encapsulados (desde 8 hasta 84 pines) sin reducción de las prestaciones internas (muy versátiles).

· Posibilidad de protección del código muy fiable.

· Herramientas de desarrollo software y hardware abundantes y de bajo costo






PIC16F84:


El PIC16F84 es un microcontrolador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con luz ultravioleta como las versiones EPROM sino, permite reprogramarlo nuevamente sin ser borrado con anterioridad. Por esta razón, lo usaremos en la mayoría de aplicaciones que se desarrollan a lo largo del curso. Pines y funciones El PIC16F84 es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estático, esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden.

El PIC16F84 tiene dos puertos. El puerto A con 5 líneas y el puerto B con 8 líneas, figura 1.3. Cada pin se puede configurar como entrada o como salida independiente programando un par de registros diseñados para tal fin. En ese registro un "0" configura el pin del puerto correspondiente como salida y un "1" lo configura como entrada. El puerto B tiene internamente unas resistencias de pull-up conectadas a sus pines (sirven para fijar el pin a un nivel de cinco voltios), su uso puede ser habilitado o deshabilitado bajo control del programa. Todas las resistencias de pull-up se conectan o se desconectan a la vez, usando el bit llamado RBPU que se encuentra en el registro (posición de memoria RAM) llamado OPTION. La resistencia de pull-up es desconectada automáticamente en un pin si este se programa como salida. El pin RB0/INT se puede configurar por software para que funcione como interrupión externa, para configurarlo se utilizan unos bits de los registros INTCON y OPTION.

PWM (Modulación por anchos de Pulsos)



Pulse Width Modulation (PWM) utiliza señales digitales para controlar aplicaciones de potencia, además de ser bastante fácil de convertir de nuevo a analógico con un mínimo de hardware.Los sistemas analógicos, tales como fuentes de alimentación lineales, tienden a generar una gran cantidad de calor, ya que son básicamente resistencias variables que llevan una gran cantidad de corriente. Los sistemas digitales por lo general no generan tanto calor. Casi todo el calor generado por un dispositivo de conmutación es durante la transición (que se realiza rápidamente), mientras que el dispositivo no es ni en ni fuera, pero en el medio. Esto es porque la energía sigue a la siguiente fórmula:


P = IE, o Watts = Voltaje x Corriente


Si cualquiera de voltaje o corriente es cercano a cero entonces el poder será cercano a cero. PWM saca el máximo partido de este hecho.PWM puede tener muchas de las características de un sistema de control analógico, en que la señal digital puede ser de rueda libre. PWM no tiene que capturar los datos, aunque hay excepciones a esta con controladores de gama alta. Uno de los parámetros de cualquier onda cuadrada es el ciclo de trabajo. La mayoría de las ondas cuadradas son 50%, esta es la norma cuando se habla de ellos, pero no tiene que ser simétrica. El tiempo de encendido se puede variar completamente entre la señal de estar fuera a ser totalmente encendido, 0% a 100%, y todos los intervalos entre. A continuación se muestran ejemplos de un 10%, 50%, y ciclo de trabajo 90%. Mientras que la frecuencia es la misma para cada uno, esto no es un requisito.



La razón PWM es popular es simple. Muchas cargas, tales como resistencias, integran el poder en un número que coincida con el porcentaje. Conversión en su valor equivalente analógico es sencillo. Los LEDs son muy lineal en su respuesta a la actual, dar una media LED su corriente nominal que sigue recibiendo más de la mitad de la luz del LED puede producir. Con PWM el nivel de luz producida por el LED es muy lineal.


sábado, 17 de octubre de 2015

PROGRAMAS



Código para la programación de la PIC16f877 para los mortoreductores en ensamblador.


;INSTITUTO POLITECNICO NACIONAL
;CECYT 9 JUAN DE DIOS BATIZ
;
;PROYECTO AULA: MPPACMAN (PAC-MAN MULTIJUDAGOR)

;

;GRUPO: 5IM3

;EQUIPO: ##

;INTEGRANTES:

;CRUZ MONTEJO JORGE LUIS

;LINO SUAREZ MARIA DE LOS ANGELES

;VELAQUEZ HERNANDES SANDRA

;TORRES RODRIGUEZ JOSE DESIDERIO

;ZUÑIGA ZAMUDIO ANGEL
;FECHA DE ENTREGA:
;

;COMENTARIO:

;

;---------------------------------------------------------------------------------------------------------------------------------------------------------------

list p=16f84A;
#include "c:\Program Files (x86)\Microchip\MPASM Suite\p16f84a.inc";
;---------------------------------------------------------------------------------------------------------------------------------------------------------------

;====================================================================
;
; Register Definitions

;

;==========================================================================





W EQU H'0000';

F EQU H'0001';





;---------------------------------------------------------------------------------------------------------------------------------------------------------------

;----- Register Files -----------------------------------------------------





STATUS EQU H'0003';

PORTA EQU H'0005';

PORTB EQU H'0006';










;---------------------------------------------------------------------------------------------------------------------------------------------------------------






;-----Bank1------------------

TRISA EQU H'0085';

TRISB EQU H'0086';





;----------------------------------------------------------------------------------------------------------------------------------------------------------------





;DEFINICION DE VARIABLES DEL PROGRAMA EN RAM





Contador1 EQU 0x20;

Contador2 EQU 0x21;

Contador3 EQU 0x22;






;-----------------------------------------------------------------------------------------------------------------------------------------------------------------

;

;----- STATUS Bits -----------------------------------------------------

C EQU H'0000';

DC EQU H'0001';

Z EQU H'0002';





;-----------------------------------------------------------------------------------------------------------------------------------------------------------------

;Definicion de constantes a utilizar





M EQU .255;

N EQU .255;

L EQU .255;

CAR_NULL EQU 00h;


;-----------------------------------------------------------------------------------------------------------------------------------------------------------------





;Definicion de puertos I/O





;----- PORTA Bits -----------------------------------------------------

Sin_UsoRA0 EQU .0;

AV_ADELANTE EQU .1;

AV_ATRAS EQU .2;

AV_DERECHA EQU .3;

AV_IZQUIERDA EQU .4;





progA EQU B'00001';






;----- PORTB Bits -----------------------------------------------------

Mot1 EQU .0;

Mot1_2 EQU .1;

MOT2 EQU .2;

MOT2_2 EQU .3;

Sin_UsoRB4 EQU .4;

Sin_UsoRB5 EQU .5;

Sin_UsoRB6 EQU .6;

Sin_UsoRB7 EQU .7;





progB EQU B'11110000';

;-----------------------------------------------------------------------------------------------------------------------------------------------------------------





;==========================

;====== VECTOR RESET ======


;==========================





vec_reset org 0000h;

clrf pclath;

goto prog_prin;





;-----------------------------------------------------------------------------------------------------------------------------------------------------------------





;=========================================

;====== SUBRUTINA DE INTERRUPCIONES ======


;=========================================





org 0004h;

vec_int nop;





retfie;





;-----------------------------------------------------------------------------------------------------------------------------------------------------------------





;===============================================

;====== SUBRUTINA DE INI. DE REG. DEL PIC ======


;===============================================





prog_ini bsf status,RP0; Ponte en el Banco 1 de RAM.

movlw 0x00;

movwf option_reg ^0x80;

movlw progA;

movwf TRISA ^0x80;

movlw progB;

movwf TRISB ^0x80;

bcf STATUS,RP0; Ponte en el banco 0 de la RAM.





return;

;-----------------------------------------------------------------------------------------------------------------------------------------------------------------





;================================

;====== PROGRAMA PRINCIPAL ======


;================================





prog_prin call prog_ini

;------------------------------------------------ MOVIMIENTOS PRIMARIOS, AVANCES;----------------------------------------------------------------------------------

INICIO BTFSC PORTA,1;

GOTO INI2;

BTFSC PORTA,2;

GOTO INI2;

GOTO GIROS;






INI2 BTFSS PORTA,1;

GOTO ATRAS;

BTFSS PORTA,2;

GOTO ADELANTE


GOTO OFF;





ADELANTE BTFSC PORTA,2;

GOTO OFF;


MOVLW CAR_NULL;

MOVWF PORTB;

MOTORES BCF PORTB,1;

BCF PORTB,3;

BSF PORTB,0;


BSF PORTB,2;


BTFSS PORTA,1;

GOTO INICIO

GOTO MOTORES;






ATRAS BTFSS PORTA,2;


GOTO OFF;


MOVLW CAR_NULL;

MOVWF PORTB;

MOTORESR BCF PORTB,0;

BCF PORTB,2;

BSF PORTB,1;

BSF PORTB,3;

BTFSS PORTA,2;

GOTO INICIO;

GOTO MOTORESR;





OFF MOVLW CAR_NULL;


MOVWF PORTB


NOP;

GOTO INICIO;

;---------- MOVIMEINTOS SECUANDARIOS (GIROS)---------------------------------------------





GIROS BTFSS PORTA,3;

GOTO IZQUIERDA;

MOVLW CAR_NULL;

MOVWF PORTB;

DERECHA BSF PORTB,0;

BTFSS PORTA,3;

GOTO OFF;

GOTO DERECHA;





IZQUIERDA BTFSS PORTA,4;

GOTO OFF;

MOVLW CAR_NULL;

MOVWF PORTB;

GOTO IZQ;

IZQ BSF PORTB,2;

BTFSS PORTA,4;

GOTO OFF;

GOTO IZQ;

;-----------------------------------------------------------------------------------------------------------------------------------------------------------------




end;



CÓDIGO EN ENSAMBLADOR PARA LA PROGRAMACIÓN DE LA PIC16f84.



La programación consiste en luces rítmicas que se colocaran en el Pacman y Blinky (el fantasma rojo)



;INSTITUTO POLITECNICO NACIONAL.

;CECYT 9 JUAN DE DIOS BATIZ.

;

;PROYECTO AULA.

;MANEJO DE 8 LEDS.

;

;EQUIPO: GRUPO:


;

;INTEGRANTES:

;

;

;FECHA DE ENTREGA:_____________________________.

;

;DESCRIPCION: ESTE PROGRAMA TIENE LA FINALIAD DE CONTROLAR EL ENCEDIDO Y EL APAGADO DE 8 LEDS

;

;----------------------------------------------------------------------------------------------------------------------------------------------------------------

list p=16f84a;Define el microcontrolador a usar.

#include "c:\Program Files (x86)\Microchip\Mpasm Suite\p16f84a.inc"; Adjunta las funciones de los registros especiales.







;----------------------------------------------------------------------------------------------------------------------------------------------------------------

;Definición de variables del programa en RAM.




Contador1 EQU 0x20;

Contador2 EQU 0x21;

Contador3 EQU 0x22;

;----------------------------------------------------------------------------------------------------------------------------------------------------------

;Definición de constantes a utilizar.

M EQU .12;

N EQU .255;

L EQU .255;

;---------------------------------------------------------------------------------------------------------------------------------------------------------

;Definición de caracteres.

Car_A EQU 0x07;

Car_b EQU 0x0E;

Car_C EQU 0x1C;

Car_d EQU 0x38;

Car_E EQU 0x70;

Car_F EQU 0xE0;

Car_g EQU 0xC1;

Car_H EQU 0x83;









;Puerto A.

CLk_Pto EQU .0;

Sin_UsoRA1 EQU .1;

Sin_UsoRA2 EQU .2;

Sin_UsoRA3 EQU .3;

Sin_UsoRA4 EQU .4;

Sin_UsoRA5 EQU .5;

Sin_UsoRA6 EQU .6;

Sin_UsoRA7 EQU .7;




progA EQU B'01111111';Define la configuración de los bits del puerto A.

;Puerto B.

D0_sega EQU .0;

D1_segb EQU .1;

D2_segc EQU .2;

D3_segd EQU .3;

D4_sege EQU .4;

D5_segf EQU .5;

D6_segg EQU .6;

D7_segh EQU .7;




progB EQU B'00000000';Define la configuración de los bits del puerto B.

;

;----------------------------------------------------------------------------------------------------------------------------------------------------------

;==================

;== Vector Reset ==

;==================

org 0000h;

vec_reset clrf pclath;

goto prog_prin;

;----------------------------------------------------------------------------------------------------------------------------------------------------------

;=================================

;== Subrutina de Intercepciones ==

;=================================

org 0004h;

vec_int nop;





retfie;

;---------------------------------------------------------------------------------------------------------------------------------------------------------

;=============================================

;== Subrutina de Inicio de Registro del PIC ==

;=============================================

prog_ini bsf status,RP0;Ponte en el banco 1 de RAM.

movlw 0x34;

movwf option_reg ^0x80;

movlw progA;

movwf trisA ^0x80;

movlw progB;

movwf trisB ^0x80;

bcf status,RP0;Banco 0 de la RAM.





clrf porta;


return;





;--------------------------------------------------------------------------------------------------------------------------------------------------------

;========================

;== Programa principal ==

;========================

prog_prin call prog_ini;

repite movlw car_A ;

movwf portb;

bsf porta,CLK_Pto;

nop;

bcf porta,CLK_Pto;

call retraso








movlw car_b;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso







movlw car_c;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso



movlw car_d;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso





movlw car_e;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso






movlw car_f;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso





movlw car_g;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso

movlw car_h;

movwf porta;

bsf portb,CLK_Pto;

nop;

bcf portb,CLK_Pto;

call retraso


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>









retraso movlw M;

movwf Contador3;

Loop3 movlw N;

movwf Contador2;

Loop2 movlw L;

movwf Contador1;

Loop1 decfsz Contador1,f;

goto Loop1;

decfsz Contador2,f;

goto Loop2;

decfsz Contador3,f;

goto Loop3;

return;

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
goto repite


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

end;