Pic 16f84a

Solo disponible en BuenasTareas
  • Páginas : 30 (7346 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de agosto de 2012
Leer documento completo
Vista previa del texto
Programación del PIC16F84
Introducción
Con este tutorial solo pretendo introducir al lector en el mundo de la programación de microcontroladores PIC de forma práctica y sencilla. Doy por supuestos unos conocimientos muy básicos sobre electrónica digital. Hablaremos de Instrucciones, registros de memoria RAM, memoria EEPROM , de niveles lógicos "0" o "1" y cosas por el estilo.
El PIC16F84 esun microcontrolador, una especie de "ordenador en miniatura" (con muchas comillas) que podremos programar. En su interior posee un microprocesador, una memoria RAM (volatil) donde guardaremos las variables, una memoria EEPROM (no volatil) donde guardaremos nuestro programa, un Timer o contador que nos facilitará algunas tareas, y alguna cosilla mas...
Algunas características mas representativasson:
* 1Kbyte de memoria EEPROM para nuestro programa
* 68 bytes (de 8 bits) de memoria RAM
* 64 bytes de memoria EEPROM para datos (no vátiles)
* Solo 35 instrucciones
* 13 pines de entrada/salida (un puerto de 8 bits + otro de 5 bits)
* Timer/contador de 8 bits

descripción de sus pines

RA0, RA1, RA2, RA3 y RA4: son los pines del puerto A
RB0, RB1, RB2, RB3,RB4, RB5, RB6 y RB7: son los pines del puerto B.
MCLR: Pin de reseteo del pic, cuando se pone a "0" el pic se resetea.
Vdd y Vss: pines de alimentación (Vdd 5V y Vss a masa)
OSC1/CLKIN y OSC2/CLKOUT: son para el oscilador Los tipos de osciladores mas usados son el XT (cristal de cuarzo) y el RC (resistencia y condensador) el modo de conexionado es el siguiente:

Oscilador XT | Oscilador RC |C1=C2=33pF Crystal = 4MHz | C1 alrededor de 20pF 5K O < R1 < 100K O |
Programación del PIC16F84
2. Organización de la memoria
En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:
* Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leida por el pic (el pic va leyendo las instrucciones del programa almacenadoen esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra.
* Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra.
* Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables quequeremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear.
2.1 La memoria EEPROM o memoria de programa
El espacio marcado como "User memory Space" es el espacio de memoria donde irá nuestro programa, comprende las direcciones de memoria desde la 0000h hasta la 3FFh (3FFh en decimal es 1023, mas la dirección 0000h hacen 1024 direcciones, es decir,1Kbyte)
"Reset Vector" es la primera dirección a la que se dirige el pic al encenderlo o al resetearlo.
"PC" y los "Stack Level" son empleados por el pic y nosotros no tenemos acceso a ellos.
 3. Registros internos
A continuación se explican todos los registros de configuración y control de la memoria RAM. Estos registros se usan para controlar los pines del pic, consultar los resultados de lasoperaciones de la ALU (unidad aritmética lógica), cambiar de banco de memoria... entre otras cosas.
En BANCO "0"
* INDF (direccionamiento indirecto): Dirección 00h, sirve para ver el dato de la dirección a la que apunta el registro FSR (dir. 04h) que veremos mas adelante
* TMR0 (Timer/contador): Dirección 01h, Aquí se puede ver el valor en tiempo real del Timer/contador. También se puedeintroducir un valor y alterar así el conteo. Este conteo puede ser interno (cuenta ciclos de reloj) o externo (cuneta inpulsos introducidos por RA4).
* PCL (Parte baja del contador de programa): Dirección 02h, Modificando este registro se modifica el contador de programa, este contador de programa es el que señala al pic en que dirección (de EEPROM) tiene que leer la siguiente instrucción. Esto...
tracking img