1- Microcontroladores PIC 2- Memoria de datos y programa en PIC 3- PIC 16F84 4- PIC 16F84. Instrucciones. Circuitería 5- Comentarios programa PIC 16F84
Repertorio de instrucciones
A continuación veremos algunas de las instrucciones más importantes, o al menos más empleadas en la programación de PICs, en ASM. Las restantes se irán viendo en entregas posteriores según vaya siendo necesario su manejo:
– Manejo de registros
- clrf f: limpia el registro f, es decir, pone todos sus bits a 0.
- comf f,d: complementa el registro fuente f cambia los 1 por 0 y viceversa) y el resultado lo deposita en el destino.
Si d = 0 el destino es W y si d = 1, el destino es el registro fuente f.
– Manejo de bits
- bcf f,b: pone a 0 el bit b del registro f.
- bsf f,b: pone a 1 el bit b del registro f.
– Brinco
- Btfsc f, b: explora el bit b del registro f y salta si vale 0
- Btfss f, b: explora el bit b del registro f y salta si vale 1
– Control y especiales
- Goto etiqueta: sitúa el cursor del programa (PCL), en etiqueta
Circuitería básica
En el siguiente esquema podemos ver la circuitería básica, es decir, el circuito mínimo que el PIC empiece a funcionar
Este consta básicamente de dos partes:
– Alimentación:
Se emplean para ello dos pines: 14 VDD (tensión positiva) y 5 GND (masa). Se incluye además un pulsador, conectado al pin 4: cuando se introduce un nivel alto de tensión (pulsador abierto) el PIC funciona normalmente y cuando se introduce un nivel bajo (pulsador cerrado) se resetea el PIC.
– Oscilación:
La lleva a cabo el cristal de cuarzo (de 4 MHz en nuestro ) junto con los dos condensadores cerámicos (27 pF). Existen otros tipos de osciladores que pueden sernos útiles cuando trabajemos con PICs, pero de momento no los veremos.
A continuación vamos a desarrollar nuestro primer programa. Este 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 estos, 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 entradas (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, porque 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:
/Tut_PICs4.asp PIC 16F84 /Tut_PICs5.asp
1- Microcontroladores PIC 2- Memoria de datos y programa en PIC 3- PIC 16F84 4- PIC 16F84. Instrucciones. Circuitería 5- Comentarios programa PIC 16F84