Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

El microcontrolador PIC16F8X (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

13
REGISTROS DE FUNCIONES ESPECIALES (SFR)

Monografias.com

14
REGISTRO DE ESTADO

Monografias.com

15
Registro de opciones

Monografias.com

16
Registro de control de interrupciones

Monografias.com

17
EL CONTADOR DE PROGRAMA: PCL Y PCLATH
Contador de programa (PC): 13 bits –> 213 = 8 K máximo de memoria de programa
Se distinguen dos bytes:
PCL: Byte menos significativo PC< 7:0>. Accesible al usuario de forma directa (lectura, escritura) Escribir en PCL implica un salto (salto programado)
PCLATH: byte más significativo PC < 12:8>. No es accesible directamente por el usuario.Se ve modificado por las instrucciones CALL y GOTO cuyo parámetro inmediato es de 11 bits.
Rango del 'salto programado':
256 instrucciones
Rango del CALL o GOTO:
2048 (2K) instrucciones

Monografias.com

18
La Pila

Sólo se utiliza para anidar llamadas a rutinas: CALL, interrupciones.
Tiene una amplitud de 13 bits
no hay que tener en cuenta la diferenciación PCL-PCLATH.
La recuperación de la pila se realiza exclusivamente a través de RETURN, RETLW y RETFIE.

COMENTARIO:
La pila solo tiene 8 niveles. Almacenar un noveno dato implica sustituir el primer dato almacenado por el nuevo.
9?1; 10 ?2…

Monografias.com

19
MODOS DE DIRECCIONAMIENTO DE LOS DATOS
Tres modos de direccionamiento
Inmediato: El operando (8 bits) se encuentra de forma inmediata (literal) en la propia instrucción
Ejemplo:

Directo: La dirección del dato aparece de forma explícita en la propia instrucción
Ejemplo:En este modo, hay que mantener controlado el bit RP0. Observar que en la dirección especificada en el código sólo aparecen los 7 bits menos significativos.(d es una indicación de dónde se almacena el resultado)

Monografias.com

20
Modos de direccionamiento (II)
Indirecto: El registro FSR (4/84) ha de contener la dirección de memoria a la que se desea tener acceso. El registro INDF (se trata de un registro ficticio) se volverá virtualmente aquella localización. Sobre INDF se pueden realizar lecturas y escrituras que afectarán directamente a la localización de memoria RAM señalada por FSR.

Ejemplo: Borrar la memoria haciendo uso del direccionamiento indirecto
movlw 0x20 ; inicializa puntero a RAM
movwf FSR ;
next: clrf INDF ; borra dirección dada por el contenido de FSR
incf FSR ; incrementa puntero
btfss FSR,4 ; bit test f ,skip if set -> Fin?
goto next
continue:

Nota: Observar que en este modo en FSR se especifican los 8 bits de la dirección, donde el bit 7 está indicando el banco de memoria.

Monografias.com

21
Direccionamiento directo/indirecto

Monografias.com

22
PUERTOS DE ENTRADA-SALIDA (I):
Se dispone de un total de 13 líneas.
Cada una programable individualmente como entrada o como salida

Se distribuyen en dos puertos: PORT A, PORT B
Se accede a cada puerto leyendo o escribiendo en su registro (5h y 6h en RAM)

Para configurar cada línea como entrada o salida se modifica su bit correspondienteen el registro TRIS del puerto asociado: TRIS A, TRIS B (85h y 86h en RAM)
'1' línea configurada como entrada
'0' línea configurada como salida

Nota: Una lectura obtiene el resultado de leer el estado de la línea de entrada.
Una escritura carga el latch de salida con el resultado de comparar el estado de la línea de salida con el nuevo estado que se le desea dar. (Si la línea está configurada como entrada el resultado puede ser imprevisible)

Monografias.com

23
Puertos de entrada-salida (II)Puerto A

El puerto A gobierna 5 líneas. RA4..RA0
RA4 :
Schmit Trigger en modo entrada
Open Drain en modo salida
RA3..RA0
TTL en modo entrada
CMOS en modo salida

Monografias.com

24
Puertos de entrada-salida (III)Puerto B
El puerto B gobierna 8 líneas.
Todas las líneas tienen una resistencia a Vcc (configurable mediante el bit 7 del registro de opciones)
RB7..RB4 generan una interrupción cuando se detecta un cambio de estado desde la última entrada en cualquiera de ellas. (se desactiva mediante una lectura del puerto o clear del bit 0 del registro de control de interrupciones. )

Monografias.com

25
Puertos de entrada-salida (IV)Consideraciones de programación.

Una escritura se realiza de forma efectiva al final de un ciclo de instrucción.
Una lectura se realiza de forma efectiva al comienzo de un ciclo de instrucción.
Realizar una escritura seguida inmediatamente de una lectura de puerto puede generar resultados poco fiables.
Conclusión: sería juicioso intecalar un nop entre una operación y otra.

Monografias.com

26
Timer/counter (I)

El timer es un mecanismo contador de eventos. El resultado de la cuenta se va almacenando en TMR0 (1h de RAM)

Ofrece las siguientes características:
Contador de 8 bits (TMR0)
TMR0 se puede leer y escribir (iniciar la cuenta en cualquier valor)
Permite seleccionar el evento:
interno (frecuencia del procesador)
externo (señal de entrada por RA4(TOCKL)
Permite seleccionar el flanco activo para el reloj externo.
Genera una interrupción en fin de cuenta (TMR0: FFh?00h)
Permite utilizar un divisor de frecuencia de la señal de entrada: prescaler.

Monografias.com

27
Timer/Counter(II)

Monografias.com

28
Timer/Counter(III)
Modo Timer

Para seleccionar el modo Timer hay que 'limpiar' el bit TOCS del registro de opciones.
En este modo se incrementa TMR0 en cada ciclo de instrucción.
Si TMR0 es escrito, se inhibe el incremento en los dos siguientes ciclos

Cuando se alcanza el final de cuenta se activa TOIF (registro de control de interrupciones)
TOIE (reg. Int) habilita o deshabilita la generación de la interrupción.
La interrupción en este modo no sirve para despertar al procesador de un estado SLEEP.

Monografias.com

29
Timer/Counter (IV)
Modo Contador
Para activar este modo hay que activar el bit TOCS del registro de opciones.
En este modo, TMR0 se incremente con cada flanco de la señal que llega por RA4/TOCKI.
Esta señal debe cumplir algunos requerimientos si se quiere asegurar su buen funcionamiento: mínima duración de semiperiodo 2 TOSC

Monografias.com

30
Timer/Counter (V)
Prescaler
El prescaler es un divisor de frecuencia programable. (Registro de opciones)
Comparte función con el WatchDog.
En modo counter, su función es dividir la frecuencia de la señal de entrada, el resultado de lo cual será el estímulo del contador. (El contador se incrementa en flancos de reloj de la señal dividida)
Cuando se usa prescaler los requerimientos de la señal de entrada varían: 4TOSC/división.

Monografias.com

31
EEPROM (I)

Existen 64 bytes de localizaciones EEPROM a disposición del usuario.

Es posible leer o escribir en cada localización

Una escritura sigue un proceso de borrado del datos anterior e implantación del nuevo dato.

La EEPROM no está mapeada en RAM, por lo que todos los accesos se deben realizar de forma indirecta

Los registros implicados son:
EEDATA (08h): es la ventana de datos
EEADR (09h): la ventana de datos se sitúa sobre la localización apuntada por este registro.
EECON1 (88h): registro de control (activa lectura o escritura)
EECON2 (89h): registro intermedio en el proceso de escritura (sin interés para el usuario)

Monografias.com

32
EEPROM (II)
EECON1

Monografias.com

33
EEPROM (III)
Lecturas:
Cargar en EEADR la dirección.
Activar RD en EECON1
En el siguiente ciclo (accesible a la siguiente instrucción) se encuentra el dato en EEDATA.
Escrituras:
Cargar en EEADR la dirección.
Cargar en EEDATA el dato.
Habilitar WREN en EECON1
Deshabilitar interrupciones.
Seguir la siguiente secuencia estrictamente para cada byte:
Escribir 55h en EECON2
Escribir AAh en EECON2
Activar WR en EECON1
Deshabilitar WREN.
Habilitar interrupciones.
Esperar. (La escritura se habrá realizado cuando WR vuelva a cero y EEIF se active.)

Monografias.com

34
CARACTERÍSTICAS ESPECIALES DE LA CPU
Circuitos especiales orientados a las aplicaciones en tiempo real

PALABRA DE CONFIGURACIÓN
CIRCUITO OSCILADOR
RESET
Power-on Reset (POR)
Power-up Timer (PWRT)
Oscillator Start-up Timer
INTERRUPCIONES
PERRO GUARDIÁN O WATCHDOG (WDT)
BAJO CONSUMO O SLEEP
CÓDIGO DE PROTECCIÓN
POSICIONES DE IDENTIFICACIÓN O ID LOCATIONS
PROGRAMACIÓN EN CIRCUITO

Monografias.com

35
PALABRA DE CONFIGURACIÓN
Palabra en la dirección 2007H de memoria
Sólo se accede a ella durante la programación
Selección de varias configuraciones del dispositivo

Monografias.com

36
CIRCUITO OSCILADOR
Cuatro modos de funcionamiento:
LP Low Power Crystal
XT Crystal/Resonator
HS High Speed Crystal/Resonator
RC Resistencia/Condensador

Monografias.com

37
CIRCUITO DE RESET
Se distinguen hasta cinco clases de RESET:
Power-on Reset (POR)
MCLR' reset durante el funcionamiento normal
MCLR' reset durante SLEEP
WDT reset durante funcionamiento normal
WDT Wake-up durante SLEEP

Monografias.com

38
DIAGRAMAS DE TIEMPO DEL RESET (I)
Se pueden establecer varias temporizaciones antes de que se produzca la señal de reset interno. Estas temporizaciones son:

Power-on Reset (POR)
Se activa cuando se detecta VDD (1.2-1.7 V)
Power-up Timer (PWRT')
Establece una temporización fija de 72 ms (TPWRT). El chip seguirá en el estado de "reset" mientras esté activa esta señal (nivel bajo).
Oscilador interno para establecer la temporización de 72 ms
Oscillator Start-up Timer (OST)
Establece una temporización (TOSC) de 1024 ciclos de la señal de reloj OSC1 una vez termina la temporización de PWRT.
Esta temporización sólo funciona si se dan los siguientes casos:
Modos de oscilador XT, LP o HS y
Power-on Reset o Wake-up from sleep

Monografias.com

39
DIAGRAMAS DE TIEMPO DEL RESET (II)

Monografias.com

40
INTERRUPCIONES
Sistemas de interrupciones autovectorizado. La dirección a donde bifurca es fija (0004H).
Detección por consulta de estado del dispositivo que interrumpe (flags de interrupción) y cálculo de la dirección de la rutina de servicio.
Cuatro fuentes de interrupción:
Interrupción externa RB0/INT
Desbordamiento del TIMER0 (TMR0)
PORTB (RB7:RB4) interrupción cuando se produce un cambio
Operación de escritura de datos en EEPROM completada

INTCON REGISTER (ADDRESS 0Bh, 8Bh)

Monografias.com

41
DIAGRAMA DE TIEMPOS:INTERRUPCIÓN RB0/INT
Activa por flanco de subida o de bajada (INTEDG bit en OPTION_REG)

Monografias.com

42

PUSH MOVWF W_TEMP ; Copia W en W_TEMP
SWAPF STATUS, W ; Swap status y deja resultado en W
MOVWF STATUS_TEMP ; Salva STATUS EN STATUS_TEMP register
ISR : :
: ; Rutina de servicio
: ; Seleccionar bancos si se necesitan
: ;
POP SWAPF STATUS_TEMP, W ; Recupera STATUS en W
;
MOVWF STATUS ; Mueve W a STATUS
; (Colocar bancos al estado original!)
SWAPF W_TEMP, F ; Recupera W
SWAPF W_TEMP, W ;
SALVADO DEL CONTEXTO DURANTE LAS INTERRUPCIONES
Cuando el PIC reconoce una interrupción sólo guarda en la pila el registro PC
Puede ser necesario salvar otros registros.
Ejemplo: Salvado de los registros W y STATUS
Uso de variables temporales implementadas en memoria RAM

Monografias.com

43
EL PERRO GUARDIÁN (WATCHDOG)
El WatchDog es un contador autónomo a partir de un oscilador interno. Mantiene su actividad incluso si el dispositivo está en estado SLEEP

En funcionamiento normal el WatchDog reinicia el dispositivo una vez que ha finalizado su cuenta. Esto implica que si está activo, deben intercalarse entre las instrucciones del programa que se ejecuta sentencias de reinicialización del contador. CLRWDT

En modo SLEEP el WatchDog retoma la ejecución a partir de la siguiente instrucción a SLEEP.

Se puede habilitar o inhibir permanentemente partir de la palabra de configuración.
Su duración media es de 18ms. Pero puede asignándole el preescaler

Monografias.com

44
SLEEP
El estado SLEEP es un estado de reposo del chip. Bajo consumo.
Se sale de un SLEEP:
Tras un reset. Se reinicia todo el proceso de arranque.
WDT. Se continúa la ejecución a partir de la siguente sentencia a SLEEP.
Una interrupción procedente de RB0/INT, cambio en RB o escritura completa de EEPROM.
Si las interrupciones están habilitadas:
1º ejecuta la siguiente instrucción a SLEEP.
2º salta a la rutina de atención.
Si las interrupciones no están habilitadas:
continúa la ejecución a partir de la siguiente instrucción SLEEP
A partir de los bits PD y TO se puede determinar cual ha sido el proceso de arranque:
PD es activado cuando se arranca y desactivado cuando se ejecuta SLEEP.
TO es activado si se produce un final de cuenta de WatchDog

Nota: cuando las interrupciones están deshabilitadas, pero el flag de habilitación de cualquier fuente de interrupción está activo y el bit de interrupción también está activo antes de la llamada a SLEEP, este se comporta como un NOP

Monografias.com

45
ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES
Formato de las instrucciones

Monografias.com

46
REPERTORIO DE INSTRUCCIONES

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter