Displays de 7 segmentos

February 26, 2007 at 8:40 pm | Posted in MPASM, Rutinas, Tutorial | 29 Comments

Un display de 7 segmentos no es otra cosa que 7 leds conectados entre si con su ánodo o su cátodo en común. Dependiendo del tipo de display será la manera en que se enciendan sus segmentos, un display de cátodo común requiere un 1 logico para encender mientras que uno de cátodo común un 0 así que dependiendo del display que se utilice cambiará la rutina encargada de controlarlo, pero en cualquier caso al momento de cambiar el tipo de display solo debemos cambiar los ceros por unos y viceversa.

Aqui supondremos que se usa un display de cátodo común así que los segmentos encenderán con un 1. El display estará conectado al puerto B, el segmento A estará conectado al bit RB0, el B al RB1, el C al RB2, el D al RB3 y así sucesivamente hasta llegar al G que estará conectado al bit RB6.

Encender y apagar los segmentos del display es igual que encender y apagar leds, podríamos hacerlo de la misma manera que en el tutorial 1, pero una manera mas eficaz de controlar un display es mdiante una tabla. Haremos que el display muestre los números 0 a 15 en hexadecimal (0 a F) con un retardo de medio segundo entre cada número. Para eso se declara el puerto B como salida. Una vez hecho eso se crea la rutina encargada de mandar llamar el numero correspondiente de una tabla y de desplegar el numero correspondiente por el puerto B. El programa principal es el siguiente:

Lea el artículo completo en el blog Circuitos electronicos.

Retardos por software

February 9, 2007 at 4:53 pm | Posted in Tutorial | 31 Comments

La semana pasada, en la segunda parte del tutorial 1, se habló un poco sobre los retardos por software. Ahora vamos a ver esto de la lógica de los retardos un poco más a fondo para poder crear nuestras propias subrutinas.

Como ya se dijo el pic 16F628A tiene un oscilador interno de 4MHz, si utilizamos ese oscilador tenemos que todas las instrucciones se ejecutan en 1uS, exceptuando los saltos que tardan 2 ciclos, es decir 2uS. Tomando en cuenta eso vamos a generar nuestros retardos, pero siempre partiendo de la suposición de que se esta trabajando a una frecuencia de 4MHz, si es así, crear rutinas de retardo para nuestro pic es muy sencillo.

Supongamos que tenemos la siguiente rutina:

ret11.png

A la derecha de cada instrucción aparece el número de ciclos que tomará cada una. Las primeras dos toman solamente 1 ciclo, la tecera decfsz toma (N-1)+2, porque decrementará N-1 veces la variable N y en el último decremento hará un salto, es por eso el +2.

Lea el artículo completo en el blog Circuitos electronicos.

Tutorial 1 – LED’s (tercera parte)

February 6, 2007 at 2:19 pm | Posted in Tutorial | 5 Comments

Los ejemplos anteriores ponian en alto o en bajo todos los pines del puerto B del PIC. Para terminar con este tutorial ahora veremos como modificar el estado de un solo pin y así encender o apagar cualquiera de los ocho leds conectados al puerto B. Vamos a ver cuatro formas distintas de hacer esto y así vamos a introducir algunas instrucciones nuevas.

Lo que se va a hacer en estos ejemplos es recorrer un “1” por el puerto B de tal modo que solamente uno de los 8 leds encienda a la vez. El programa utilizado cuando se habló del entorno de desarrollo MPLAB encendía un led utilizando la instrucción bsf, el siguiente ejemplo también utilizará esa instrucción.

Tutorial 1.3 – Encendiendo un led con bsf

bsf sirve para poner en alto el estádo lógido de un bit. En el siguiente ejemplo se utiliza para  encender los leds conectados al puerto B, para apagarlos se utiliza la instrucción bcf que sirve para poner en bajo un bit. La configuración del puerto es la misma que la de los ejemplos anteriores. Lo único distinto es la rutina que enciende y apaga los leds. La rutina la podemos ver en la siguiente imágen.

led13.png

Lea el artículo completo en el blog Circuitos electronicos.

Tutorial 1 – LED’s (segunda parte)

February 2, 2007 at 8:58 am | Posted in Tutorial | 13 Comments

Tutorial 1.2 – Encendiendo y apagando LED’s… ahora con retardo!

Como ya dijimos hay algo que no funciona bien en el programa anterior. Cada instrucción ocupa 1 ciclo de reloj para ejecutarse. Como utilizamos el reloj interno del 16F628A cada instrucción se ejecuta en (1/4MHZ)*4 o lo que es lo mismo 1uS. El programa ejecuta 5 instrucciones mientras los leds estan encendidos y otras 5 mientras están apagados, asi que encienden 5uS y apagan otros 5uS. Al ver el ejemplo en funcionamiento veremos que los leds nunca se apagan, ¿cómo hacemos para que esto se alcance a ver? La respuesta: utilizando un retardo al encender los leds y otro al apagarlos.

El principio del retardo es contar descendentemente desde un número dado y al momento de que la cuenta llega a cero dejar de contar. El cero indica el fin del retardo y una vez concluido puede continuar la ejecución del programa.

Lea el artículo completo en el blog Circuitos electronicos.

Tutorial 1 – LED’s

February 1, 2007 at 8:30 pm | Posted in Tutorial | 13 Comments

En el tutorial de MPLAB ya vimos un pequeño ejemplo de un programa que encendía un led, ahora vamos a empezar con el primer tutorial de  microcontroladores pic. Vamos a hacer algo sencillo, encender y apagar leds. Así, vamos a empezar por lo más básico para ir aprendiendo las instrucciones del micro y ver mas a detalle el funcionamiento del PIC.

Tutorial 1.1 – Encendiendo y apagando LED’s

Ya vimos como encender un led, ahora veamos también como apagarlo. Este programa lo que hace es encender ocho leds conectados al puerto B del micro y después apagarlos. El código es el siguiente (descargar código):

led1.png

Lea el artículo completo en el blog Circuitos electronicos.

MPLAB

January 22, 2007 at 12:06 am | Posted in MPLAB, Tutorial | 258 Comments

MPLAB es una herramienta para escribir y desarrollar código en lenguaje ensamblador para los microcontroladores PIC. MPLAB incorpora todas las herramientas necesarias para la realización de cualquier proyecto, ya que además de un editor de textos cuenta con un simulador en el que se puede ejecutar el código paso a paso para ver así su evolución y el estado en el que se encuentran sus registros en cada momento.

MPLAB es un software gratuito que se encuentra disponible en la página de Microchip, la versión actual (al momento de escribir estas palabras) es la 7.51 y será la versión utilizada en esta guía y en todos los ejemplos de esta página.

Empecemos por el principio. Lo primero es descargar e instalar el programa, para eso solamente se debe seguir el siguiente enlace: Descargar MPLAB 7.51; una vez hecho eso proceder a instalarlo cómo cualquier programa, con todas las opciones que vengan por defecto, también se puede hacer una instalación personalizada pero eso no lo explicaré aqui ya que por el momento no es importante. Al finalizar la instalación ejecutamos el recién instalado MPLAB y tendremos una pantalla como esta:

project0.jpg

Lea el artículo completo en el blog Circuitos electronicos.

Lenguaje Ensamblador

January 17, 2007 at 4:22 pm | Posted in Ensamblador, Tutorial | 37 Comments

El ensamblador que utiliza MPLAB por defecto y el que utilizaremos para programar los PIC es MPASM. Los elementos básicos del lenguaje ensamblador son:

  • Etiquetas
  • Instrucciones
  • Operandos
  • Directivas
  • Comentarios

Para la programación se utiliza una cierta tabulación que se debe respetar, además utilizar una tabulación adecuada hace los programas más claros y legibles. Las etiquetas se escriben en la primer columna de cualquier línea, las instrucciones y directivas en la segunda y por último, en la tercer columna, los operandos. Los comentarios se pueden escribir en cualquier parte del programa.

Etiquetas

Una etiqueta es una palabra utilizada para designar alguna línea o sección del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta. Es importante que las etiquetas empiecen con una letra o con un guión bajo “_”. La longitud de una etiqueta puede ser de hasta 32 caracteres y como ya se dijo se deben escribir en la primer colúmna.

Lea el artículo completo en el blog Circuitos electronicos.

« Previous Page

Create a free website or blog at WordPress.com.
Entries and comments feeds.