Electrónica Unicrom

 Portada  Componentes electrónica  Conceptos electrónica  PIC, PLC, Osciladores, Filtros  Digitales 
 Circuitos  UPS y Fuentes  Instrumentos y mediciones  Telecom  Computadoras  Artículos  Foros 
Registro Ayuda
Usuario:
Contraseña:
Recordar contraseña Olvidó contraseña?
Menú para Invitado
- Tópicos activos (0)
- Artículos nuevos (0)
- Nuev. descargas (0)
- Mensajes priv.
- Mis favoritos
- Estadísticas
- Mensajes en línea

Miembros: 24023
Miembros Hoy: [4]
Usuarios activos:
2 miembros y 453 invitados
 
 

Contenido adicional
Normas y Guía de los Foros
Foros archivados
Artículos generales
Avisos Clasificados
Directorio de Enlaces
Sitios amigos
Archivo de noticias
Descargas
Mapa del Sitio
Colaboran con Unicrom
Mensaje de bienvenida
Principiantes
Glosario electrónica
 
 

Microcontroladores PIC (Parte # 5)

PIC 16F84
Nuestro primer programa

A continuación vamos a desarrollar nuestro primer programa.
Éste activará un LED conectado a RB0 siempre que el interruptor conectado a RA0 este cerrado.

Para ello vamos a montar el siguiente circuito:

En el circuito podemos ver como lo único que hemos añadido al circuito base es un pulsador conectado al pin 17 (RA0), de forma que cuando lo pulsemos se introduzca un cero lógico en el pin y cuando no lo pulsemos se introduzca un uno lógico. Hemos añadido además un LED con su correspondiente resistencia limitadora de corriente en el pin 6 (RB0).

De lo que hemos comentado en esta práctica, caben destacar dos cosas:

 - La elección de los pines ha sido arbitraria: se han escogido éstos, pero podíamos haber escogido otros. No obstante, mientras sea posible es mejor organizar el esquema y el programa, y una forma de hacerlo es agrupando por un lado las entrada (Puerta A) y por otro las salidas (Puerta B). Por la misma razón, hemos escogido el pin 0 de cada puerta, en vez de escoger en un sitio el 3 y en otro el 7, por ejemplo.

 - En el caso de las entradas, es trivial que cuando se pulse o deje de activar el pulsador se envíe un cero o un uno, pues lo único que queremos es que el PIC pueda detectar un cambio. Así, igual nos da comprobar cuando se envía un cero que cuando se envía un uno, ya que en ambos casos podremos verificarlo. En este caso se ha elegido el cero como activado porque es lo más común. En el caso de las salidas no ocurre lo mismo, ya que en este caso no se trata de detectar un cambio, sino de activar un dispositivo, por lo que se hace necesaria que el PIC "genere" una diferencia de potencial. Así, la forma de indicar al PIC que lo haga es poniendo a uno la salida.

Hechas estas aclaraciones, veamos el programa:

ESTADO		EQU		0x03
PORTA		EQU		0x05
PORTB		EQU		0x06

		org		0

		bsf		ESTADO,5
		clrf		PORTA
		comf		PORTA,1
		clrf		PORTB
		bcf		ESTADO,5

INICIO		btfsc		PORTA,0
		goto		APAGAR
		goto		ENCENDER
APAGAR		bcf		PORTB,0
		goto		INICIO
ENCENDER	bsf		PORTB,0
		goto		INICIO

		end

Comentemos el código:

- Las tres primeras líneas, cuyo núcleo es EQU, permiten que el compilador interprete a partir de ese momento los nombres de la primera columna con las dirección de memoria de la derecha. El objetivo de estas instrucciones es obvio: facilitar la comprensión del código, ya que es más fácil recordar un nombre que nos sugiere algo que dirección en hexadecimal.
- La siguiente instrucción, org 0, no la analizaremos de momento. Simplemente decir que es necesaria para el correcto funcionamiento del programa, ya que indica el comienzo del código.
- bsf ESTADO,5 nos permite poner a 1 el bit 5 de ESTADO, con lo que conseguimos acceder al banco 1, donde se encuentran los registros de configuración de las puertas.
- clrf PORTA: pone a cero todos los bits del registro porta, con lo que se consigue que dicha puerta se configure al completo como salida. En este caso lo usamos conjuntamente con comf, que transforma los 0 en 1 y viceversa. Así, se consigue configurar la puerta a como entrada. Podríamos usar otros métodos, como movlw 0xFF junto con movwf PUERTAA, pero el primero lo considero más elegante.
- clrf PORTB: pone a cero todos los bits del registro PORTB, configurando éste como salida.
- bcf ESTADO,5 pone a 0 el bit 5 de ESTADO, volviendo así al banco 0.
- Inicio, apagar y encender son etiquetas, cuya utilidad es marcar un punto del programa; así, si queremos volver a ese punto sólo tendremos que hacer referencia a su nombre.
- btfsc PORTA,0 sirve para saltar si el bit 0 de PORTA vale 0, es decir, cuando se activó el pulsador. En ese caso, vamos a ENCENDER mediante goto ENCENDER, se pone a 1 el bit 0 de PORTB, que es donde está conectado el led y volvemos a INICIO.

Si no está pulsado el interruptor vamos a APAGAR, y hacemos la operación contraria a la anterior. Finalmente volvemos a INICIO.
 

Enlaces relacionados
-
Programador de PICs y Memorias
- Niveles lógicos
- Tutoriales de computadoras / ordenadores
Sección de PICs en nuestros Foros
- Microcontroladores PSOC
 

< Anterior          Siguiente >
 

Recomendar a un amigo Recomendar este Tutorial a un amigo
 

 
 

Servicios


  Correo Unicrom

Suscríbirme al boletín de
Electrónica Unicrom

Alojado en eListas.net
 
 

Patrocinadores




 

 
 


Poner Unicrom como página de inicio Poner Unicrom en Favoritos Privacidad   © 2002-8 Unicrom.com All Rights Reserved. MaxWebPortal Snitz Forums Ir arriba