Programacion Pic
Con este tutorial solo pretendo introducir al lector en el mundo de la programación de microcontroladores PIC16f84 de
una 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 (un tipo de ROM), deniveles lógicos "0" o "1" y cosas por el estilo.
Algunas características mas representativas son:
W
or
k
&
* 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
Se
rv
ic
eEl PIC16F84 es un 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...
D
G
-T
AMO
il
1. 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 decuarzo) y el RC
(resistencia y condensador) el modo de conexionado es el siguiente:
Oscilador XT
C1=C2=33pF
Crystal = 4MHz
Se
rv
2. Organización de la memoria
En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:
ic
e
Oscilador RC
C1 alrededor de 20pF
5K O = R1 = 100K O
W
or
k
&
* Una: la memoria EEPROM donde almacenaremos el programaque haremos, esta memoria solo podrá ser leida por el
pic (el pic va leyendo las instrucciones del programa almacenado en 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 que
queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear.
D
G
-T
AM
O
il
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.
O
il
W
or
k
&
Se
rv
ic
e2.2 La memoria RAM
G
-T
AM
La memoria RAM no solo se usa para almacenar nuestras variables, también se almacenan una serie de registros que
configuran y controlan el PIC.
Podemos observar en la imagen que esta memoria esta dividida en dos bancos, el banco 0 y el banco 1, antes de acceder
a un registro de esta memoria tenemos que preguntarnos en que banco estamos, generalmente setrabaja en el banco 0,
ya veremos mas adelante como cambiamos de banco de memoria.
D
Fijándonos en el banco 1, las direcciones desde la 00h hasta la 0Bh están ocupadas por registros del pic, por lo que
tendremos que empezar a guardar nuestras variables a partir de la dirección 0Ch.
Podremos acceder al resto de registros para cambiar la configuración o el estado del pic.
Faltaría añadir a...
Regístrate para leer el documento completo.