Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Interrupciones, cuando una seal externa, o una condicin interna activa una lnea
de interrupcin, dejando de lado la tarea que esta ejecutando, atiende dicha
interrupcin y luego contina con lo que estaba haciendo.
Estado de bajo consumo. Sleep. Si el micro debe esperar mucho tiempo sin hacer
nada, posee una instruccin especial, Sleep, que lo pasa al estado de reposo. Al
activarse una interrupcin se despierta y reanuda su trabajo. (Reset externo,
desbordamiento de Watchdog, interrupcin por RB0, interrupcin por cambio de
nivel en RB4 a RB7, interrupcin por escritura completada en EEPROM)
Veamos el diagrama de pines, para ver como estn distribuidos sus pines. Este
microcontrolador cuenta con dos puertos configurables como estradas y salidas, y consta
de 18 pines los cuales se encuentran asignados de la siguiente manera:
El puerto A tiene solo cinco pines, el pin 3, sea, RA4/TOCKI puede ser configurado a su
vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta
como colecto abierto, por lo tanto debemos poner una resistencia Pull-up a Vdd de 1 Kohm.
Cuando se configura como entrada, funciona como disparador Schmitt Trigger por lo que
puede reconocer seales con un poco de distorsin.
El puerto B tiene 8 pines que pueden ser configurados como entrada/salida. RB0 puede
programarse adems como entrada de interrupcin externa. Los pines RB4 a RB7 pueden
programarse para responder a interrupciones por cambio de estado y los pines RB6 y RB7
se corresponden con lneas de entrada de reloj y entrada de datos cuando esta en modo
programacin.
MCLR/Vpp, es la entrada de reset si esta a nivel bajo, tambin es habilitador de tensin
de programacin. Cuando su tensin es Vdd el PIC funciona normalmente.
Vss y Vdd, son los pines de masa y alimentacin. La tensin de alimentacin esta
comprendida entre los 2 y 5.5 Volt.
OSC1/CLKIN y OSC2/CLKOUT, pines de entrada externa de reloj y salida de oscilador a
cristal respectivamente.-
El Oscilador externo.
Es un circuito externo que le indica al microcontrolador la velocidad a la que debe trabajar.
Puede utilizar cuatro tipos distintos:
RC, Oscilador con resistencia y condensador (Poco preciso)
XT, Cristal de cuarzo.
HS, Cristal de alta velocidad
LP, Cristal de baja frecuencia y bajo consumo de potencia.
Al momento de programar un micro se debe especificar que tipo de oscilador se usa.
Internamente la frecuencia del oscilador es dividida por 4, as que si temeos un oscilador de
4 MHz, la frecuencia de trabajo es de 1 MHz, por lo que cada instruccin se ejecuta cada 1
us.
Aqu utilizaremos un cristal XT de 4 MHz que debe ir acompaado de dos condensadores:
Reset.
El PIC 16F84A posee un temporizador interno conectado al pin de reset, que funciona
cuando se da alimentacin al microcontrolador. Esto hace que al encender el sistema el
microcontrolador quede en reset por un tiempo mientras se estabilizan todas las seales del
circuito. Para tener control sobre el reset se utiliza el siguiente circuito:
Primero que nada debemos especificar con que microcontrolador estamos trabajando, esto
lo realizamos es las dos primeras lneas:
Cdigo: ASM
2. list p=16F84A
3. #include P16F84A.inc
Configuracin de fusibles. Hay ciertos aspectos del PIC que han de ser activados o
desactivados mediante hardware a la hora de programarlo. Esto quiere decir que no se
pueden volver a cambiar hasta que el chip no se reprograme de nuevo. El PIC16F84A
dispone de 4 fuses (los modelos superiores tienen ms). Cada fuse activa o desactiva una
opcin de funcionamiento.
OSC: Este fuse controla el modo de oscilacin que usar el PIC para funcionar. Como ya
sabemos, el oscilador se puede configurar de 4 maneras distintas, dependiendo de la
velocidad y del tipo de circuito oscilador empleado.
WDT: El famoso "perro guardin" del PIC se configura aqu. Esta es una capacidad del
microcontrolador de autorresetearse.
PWRT: Si activamos este fuse, lo que conseguimos es que se genere un retardo en la
inicializacin del microcontrolador.
CP: Activando este fuse tendremos la garanta de que el cdigo que escribamos en el PIC
no pueda ser ledo por otra persona, para que no nos lo copien, modifiquen, etc. (Code
Protection). Esto no impide que el PIC funcione como siempre, ni que no se pueda
sobrescribir su contenido
Cdigo: ASM
Definicin de variables que utilizaremos en nuestro proyecto. En este caso solo definiremos
bits, por ejemplo Led y Pulsador.
Para organizar nuestro programa lo estructuraremos de la siguiente manera:
Nivel Directiva Operandos ; Comentarios
Cdigo: ASM
Configuracin de puertos.
Para la configuracin necesitamos los siguientes registros:
STATUS > 0x03; PORTA > 0x05; PORTB > 0x06; TRISA > 0x86 y TRISB > 0x86.
Por defecto los puertos quedan configurados como entradas de datos y si se quiere cambiar
hay que configurarlos. Esto se realiza con los registros TRISA y TRISB, teniendo en cuenta
que si se asigna un cero (0) a un pin, quedara como salida y si se asigna un uno (1),
quedara como entrada.
En nuestro caso se necesita colocar TRISA igual a 11111 (o se puede dejar por default) y
TRISB 11111110. Ahora bien, cuando el PIC arranca se encuentra en el Banco 0, TRISA y
TRISB se encuentran en el Banco 1, entonces debemos cambiar de Banco. Esto se realiza
con el bit RP0 del registro STATUS. Si este se pone un cero a RP0, estaremos en el Banco 0.
Si se coloca un uno, estaremos en el Banco 1.
Registro W: es el registro ms importante que tiene el microcontrolador y es denominado
ACUMULADOR.
Cdigo: ASM
8. movlw b'11111110'
9. movwf TRISB
6.
9.
10. end
Ciclo de maquina:
Cdigo: ASM
1. Demora_xxus
4. Repeticion
Para lograr demoras de mayor duracin deben utilizarse lazos anidados, poniendo un lazo
de demora dentro de otro.
Cdigo: ASM
1. Demora_xx
4. Repeticion1
7. Repeticion2