Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIN
Cuando se est desarrollando un diseo tanto del hardware como del software conviene tener a mano las principales caractersticas del microcontrolador que se emplea. La gua rpida proporciona un resumen de la informacin ms importante del dispositivo y facilita, entre otras cosas, el nmero que corresponde a una patita, el bit especfico de un registro, los sealizadores a los que afecta una instruccin, etc. A continuacin, se presentan las caractersticas relevantes del PIC12F508.
CARACTERSTICAS GENERALES
En la tabla de la Figura A.1 se muestran las caractersticas representativas de PIC12F508.
PIC12F508 Memoria Reloj Perifricos Prestaciones De programa tipo FLASH De datos tipo RAM Frecuencia mx de funcionamiento Temporizador Despertar de sleep por cambio en una patita Patitas E/S Patita de entrada Resistencias pull-up internas Programacin serie en circuito Repertorio de instrucciones Tamao de los datos Encapsulados Coste Volumen Consumo 512 12 25 8 4 MHz TMR0 de 8 bits S 5 1 S S 33 de 12 bits 8 bits PDIP, SOIC y MSOP (8 patitas) Muy bajo (<0,5 ) Muy bajo (<mosca) Muy bajo (<350 A/2 V/4 MHz)
Ventajas
Figura A.1. Tabla que recoge las caractersticas fundamentales del PIC12F508.
DIAGRAMA DE CONEXIONES
El diagrama de conexionado de las patitas del PIC12F508, que coincide con el del PIC12F509, se muestra en la Figura A.2. La tabla de la Figura A.3 muestra la misin de cada una de las patitas del PIC12F508/509.
GUA RPIDA DEL PIC12 F508 Nombre GP0/ICSPDAT Funcin GPO Entrada TTL Salida CMOS Descripcin
Lnea de E/S bidireccional. Puede programarse con resistencia pull-up interna y salida del modo sleep por cambio de estado. Lnea de datos serie en la programacin de la memoria FLASH mediante ICSP. Lnea de E/S bidireccional. Puede programarse con resistencia pull-up interna y salida del modo sleep por cambio de estado. Lnea de reloj en la programacin ICSP. Lnea de E/S bidireccional. Puede programarse con resistencia pull-up interna y salida del modo sleep por cambio de estado. Entrada de reset. Cuando se configura como MCLR#, genera reset por nivel 0 y siempre dispone de resistencia pull-up. La tensin en esta patita no debe ser superior a VDD durante el funcionamiento normal del dispositivo, de lo contrario entra en el modo de programacin. Entrada de tensin VPP en el modo de grabacin (12,8 V).
ST TTL
CMOS CMOS
ST TTL
CMOS
MCLR#
ST
VPP GP4/OSC2 GP4 OSC2 GP5/OSC1/CLKIN GP5 OSC1 CLKIN VDD GND VDD GND
Lnea de E/S bidireccional. Conexin de salida con el cristal o resonador en los modos de oscilador XT y LP. Lnea de E/S bidireccional. Conexin de entrada con el cristal del oscilador. Entrada de reloj externo de trabajo Entrada del positivo de alimentacin. Entrada de la tierra de alimentacin.
ARQUITECTURA INTERNA
En la Figura A.4 se ofrece el esquema de la arquitectura interna del PIC12F508.
MEMORIA DE PROGRAMA
El PIC12F508 tiene implementado en FLASH una memoria de programa de 512 palabras de 12 bits cada una. El direccionamiento de la instruccin en curso corre a cargo del PC, que est asociado a una Pila con dos niveles (Fig. A.5). Conviene recordar que cuando se produce un reset en el PIC12F508, se ejecuta la instruccin de la ltima posicin (01FF h) de la memoria que viene grabada de fbrica con un valor XX (movlw 0xXX), que hay que cargar en el registro de calibracin (OSCCAL) para asegurar la frecuencia de funcionamiento del oscilador interno de 4 MHz.
Figura A.5. Estructura de la memoria de programa del PIC12F508. Los modelos PIC12F509 y PIC16F505 tienen el doble de capacidad.
MEMORIA DE DATOS
Es de tipo RAM y ocupa treinta y dos posiciones o registros de 8 bits de longitud cada uno, desde la direccin 00 h a la 1F h. Los siete primeros registros son los especficos (SFR) y los veinticinco restantes los de propsito general (GPR) (Fig. A.6.
GPWUF: Es un bit de STATUS que cuando vale 1 indica que se ha producido un reset por cambio de estado en una patita de entrada. PA0: Bit que selecciona una pgina de 512 posiciones de la memoria de programa. PD#: Se activa y se pone a 0 cuando el procesador entra en modo de bajo consumo tras ejecutar una instruccin SEP. TO#: Se activa y se pone a 0 cuando se desborda el WDT y se produce reset. Z: Se pone a 1 cuando el resultado de la instrucin ejecutada es 0. DC: Acarreo/llevada en el cuarto bit del resultado. C: Acarreo/llevada en el octavo bit del resultado.
Figura A.8. Estructura del registro de calibracin en el que se guarda el valor XX, que viene grabado de fbrica, en la ltima posicin de la memoria de programa.
Los 6 bits de menos peso de este registro se corresponden con el valor que tienen las lneas de E/S GP5-GP0, respectivamente.
Figura A.9. En el PIC12F508, el registro GPIO o PORTB contiene 6 bits vlidos que se relacionan con las seis lneas de E/S.
PS2, PS1, PS0: Eligen el rango de divisin de los impulsos de reloj del predivisor. PSA: Asigna el predivisor de frecuencia al TMR0 (0) o al WDT (1). T0SE: Selecciona el flanco en que se produce el contaje: 1, descendente. y 0, ascendente. T0CS: Si vale 0, los impulsos proceden del oscilador interno (Fosc/4), y si vale 1, se introducen desde el exterior por la patita GP2/T0CKI. GPPU#: Si vale 0, el procesador despierta del modo de reposo cuando cambia de estado una de las lneas de entrada GP0, GP1 o GP3. GPWU#: Cuando vale 1, las lneas GP0, GP1 y GP3, si son entrada, disponen de una resistencia pull-up.
PALABRA DE CONFIGURACIN
Es una posicin de la memoria de programa que slo es accesible al grabar el microcontrolador (Fig. A.12).
MCLRE: Control de la funcin de la patita GP3/MCLR#. Si vale 1, acta como MCLR#, y si vale 0, como GP3. CP#: Proteccin de cdigo. Cuando vale 0, hay proteccin del cdigo ante lectura. WDTE: Si vale 1 el WDT funciona, y si vale 0, no. FOSC<1:0>: Seleccin del tipo de oscilador. 11: EXTRC (externo); 10: INTRC (interno) 01: XT, y 00: LP.
REPERTORIO DE INSTRUCCIONES
En la Figura A.13 se presentan los nemnicos y las principales caractersticas de las treinta y tres instrucciones de los PIC de la gama bsica, entre los que se encuentra el PIC12F508.
INSTRUCCIONES ORIENTADAS AL MANEJO DE BYTES Nemnico operandos ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF NOP RLF RRF SUBWF SWAPF Descripcin Ciclos 1 1 1 1 1 1 1o2 1 1o2 1 1 1 1 1 1 1 1 Formato 12 bits MSb LSb 0001 11df ffff 0001 01df ffff 0000 011f ffff 0000 0100 0000 0010 01df ffff 0000 11df ffff 0010 11df ffff 0010 10df ffff 0011 11df ffff 0001 00df ffff 0010 00df ffff 0000 001f ffff 0000 0000 0000 0011 01df ffff 0011 00df ffff 0000 10df ffff 0011 10df ffff Bits afectados Notas STATUS C, DC, Z Z Z Z Z Z Ninguno Z Ninguno Z Z Ninguno Ninguno C C C, DC, Z Ninguno 2, 4 2, 4 1, 2, 4 2, 4 2, 4 2, 4 2, 4 2, 4 2, 4 2, 4 1, 4 1, 2, 4 2, 4 4
f,d Suma W y f f,d Operacin lgica AND de W y f f Establece f a ceros Establece W a ceros
f,d Complementa f f,d Decrementa f f,d Decrementa f y salta si cero f,d Incrementa f f,d Incrementa f y salta si cero f,d Operacin lgica OR de Wyf f,d Mueve f a d Mueve W a f No operar
MOVFW f
f,d Rotar a izquierda a travs del acarreo f,d Rotar a derecha a travs del acarreo f,d Resta W de f f,d Intercambia f y d
XORWF
2,4
INSTRUCCIONES ORIENTADAS A MANEJO DE BITS Nemnico operandos BCF BSF BTFSC BTFSS Descripcin Ciclos 1 1 1o2 1o2 Formato 12 bits MSb LSb 0100 bbbf ffff 0101 bbbf ffff 0110 bbbf ffff 0111 bbbf ffff Bits afectados Notas STATUS Ninguno Ninguno Ninguno Ninguno 2, 4 2, 4
f,b Borrar el bit b de f f,b Establece a 1 el bit b de f f,b Brinca si el bit b de f es cero f,b Brinca si el bit b de f es uno k k k k k k f k AND entre W y el literal k Llamada a subrutina Refrescar Perro Guardin Salto incondicional Operacin lgica OR con el literal k Mueve el literal a W Carga el registro OPTION Retorno subrutina, devuelve k en W Entra en modo sleep Carga el registro TRIS OR exclusiva con W y el literal k
INSTRUCCIONES DE CONTROL Y DE MANEJO DE LITERALES ANDLW CALL GOTO IORLW MOVLW RETLW SLEEP TRIS XORLW 1 2 1 2 1 1 1 2 1 1 1 1110 kkkk kkkk 1001 kkkk kkkk 0000 0000 0100 101k kkkk kkkk 1101 kkkk kkkk 1100 kkkk kkkk 0000 0000 0010 1000 kkkk kkkk 0000 0000 0011 0000 0000 0fff 1111 kkkk kkkk Z Ninguno TO#, PD# Ninguno Z Ninguno Ninguno Ninguno TO#,PD# Ninguno Z 3 1
CLRWDT
OPTION
Notas: 1. El noveno bit del contador de programa es puesto a 0 por cualquier instruccin que modifique el valor del PC excepto la instruccin GOTO. 2. Cuando un registro de E/S se modifica a si mismo (por ejemplo, MOVF PORTB,1), el valor usado es que est presente en los propios pines. Por ejemplo, si el registro de datos tiene puesto a 1 un pin configurado como entrada y es cambiado a nivel bajo por un dispositivo externo, el dato ser escrito con un 0. 3. La instruccin TRIS f, donde f es igual a 6, provoca que el contenido del registro W sea escrito en los registros tri-estados de la puerta B (PORTB). Un 1 pone el pin en un estado de alta impedancia y deshabilita los buffers de salida. 4. Si esta instruccin es ejecutada en el registro TMR0 (y donde sea aplicable, d=1), el preescaler ser puesto a 0.
Figura A.13. Principales caractersticas de las treinta y tres instrucciones del PIC12F508 de la g gama bsica.