Story Transcript
RECURSOS FUNDAMENTALES Los recursos que se considerarán son :
Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos
Curso de Microcontroladores Profr. Felipe Santiago E.
1
TEMPORIZADORES Una labor habitual en los programas de control suele ser la determinación de intervalos de tiempo concretos. Esto se hace a través de un elemento denominado Temporizador (Timer). Un temporizador básicamente es un registro de n-bits que se incrementa de manera automática en cada ciclo de instrucción o cuando ocurre un evento externo. Si la fuente de temporización es externa, se le conoce como contador de eventos. El registro puede ser precargado para iniciar su conteo a partir de un valor determinado. Cuando ocurre un desbordamiento en el registro (una transición de 1’s a 0’s) se genera alguna señalización. Curso de Microcontroladores Profr. Felipe Santiago E.
2
1
TEMPORIZADORES El PIC16F84 cuenta con un timer/couter de 8 bits, por lo tanto se desborda cuando ocurre una transición de 0xFF a 0x00h: CARGA
CONTADOR ASCENDENTE
TOIF
(Temporizador)
(Señalizador)
Puede funcionar como: Contador de eventos: Los eventos se reciben en la terminal RA4/TOCK1. Temporizador: El registro del timer se incrementa en cada ciclo de instrucción (cuatro ciclos de reloj). Incluye un pre-escalador para alcanzar conteos mas grandes. Curso de Microcontroladores Profr. Felipe Santiago E.
3
FUENTES DE TEMPORIZACION La fuente de temporización puede ser externa o interna. Si es externa, puede activarse por flanco de subida o de bajada.
Los bits para la configuración del Timer están en el registro OPTION. Sin embargo, la bandera de señalización de desbordamiento se encuentra en la posición 2 del registro INTCON (T0IF). Curso de Microcontroladores Profr. Felipe Santiago E.
4
2
TEMPORIZACION SIN PRE-ESCALADOR
TEMPORIZACION CON PRE-ESCALADOR DE 2:1
Curso de Microcontroladores Profr. Felipe Santiago E.
5
WATCH DOG TIMER Es una especie de temporizador que cuando se desborda produce un RESET del dispositivo. Su habilitación se realiza desde una “palabra de configuración” que debe ser definida en el momento en que se graba al dispositivo. No se habilita por software. Se produce cada 18 ms, pero con el divisor de frecuencia pueden alcanzarse hasta 2.3 segundos. En posiciones estratégicas del programa, deberán situarse instrucciones CLRWDT, que reinicien su cuenta y eviten el desbordamiento. La palabra de configuración permite definir otros parámetros que se revisarán mas adelante.
Curso de Microcontroladores Profr. Felipe Santiago E.
6
3
TEMPORIZADOR Y WDT CON EL DIVISOR DE FRECUENCIAS
Curso de Microcontroladores Profr. Felipe Santiago E.
7
REGISTRO OPTION
8
4
EJERCICIOS
Escribir una secuencia de instrucciones para generar una señal de 10 KHz en la terminal 1 del puerto B (Suponer que se está trabajando con un cristal de 4 MHz). Repetir el ejercicio anterior, pero ahora la frecuencia de la señal deberá ser de 500 Hz.
En un super mercado se ha determinado premiar a cada cliente múltiplo de 500, mostrar como un circuito basado en un PIC puede detectar a dicho cliente y generar un tono de 440 Hz (aproximadamente), por cinco segundos, cuando eso ocurra.
9
Curso de Microcontroladores Profr. Felipe Santiago E.
PUERTOS DE ENTRADA/SALIDA El PIC16F8X tiene dos puertos, PORTA y PORTB. Algunas terminales son multiplexadas para soportar una función alterna. Registros PORTA y TRISA PORTA es un latch de 5 bits. RA4 tiene entrada Schmitt Trigger (proporciona inmunidad al ruido) y una salida en drenaje abierto. El resto de las terminales tiene niveles TTL a la entrada y CMOS en sus salidas. Todas las terminales se pueden configurar como entradas o salidas (Resgistro TRIS). Ajustando un bit TRISA (=1) hará a la correspondiente terminal como entrada y pondrá al manejador de salida en alta impedancia. Limpiando un bit TRISA (=0) pondrá a la terminal correspondiente de PORTA como salida, es decir, pondrá el contenido del latch de salida en la terminal seleccionada. Curso de Microcontroladores Profr. Felipe Santiago E.
10
5
Registros PORTA y TRISA
Al leer el registro PORTA se lee directamente de las terminales, mientras que al escribir se hace en el latch del puerto. Todas las operaciones de escritura son del tipo leer-modificarescribir. La Terminal RA4 es multiplexada con la entrada de reloj TMR0.
11
Curso de Microcontroladores Profr. Felipe Santiago E.
Terminales RA3:RA0
Curso de Microcontroladores Profr. Felipe Santiago E.
Terminal RA4
12
6
Registros PORTB y TRISB El Puerto B es bi-direccional de 8 bits. El registro TRISB determina la dirección del flujo de datos. Cada bit en el puerto B tiene una resistencia de fijación hacia arriba débil, con el bit RBPU (OPTION_REG) se pude habilitar o deshabilitar dicha resistencia. Esta resistencia es automáticamente apagada después de un Reset y cuando la terminal es configurada como salida. Cuatro terminales del puerto, RB7:RB4, pueden usarse como interrupciones, para ello deben configurarse como entradas. Para que los cambios en alguna entrada sean reconocidos, deben producir un pulso al menos de un ciclo de instrucción. Curso de Microcontroladores Profr. Felipe Santiago E.
Terminales RB7:RB4
13
Terminales RB3:RB0
Curso de Microcontroladores Profr. Felipe Santiago E.
14
7
La Palabra de Configuración Es una posición reservada de memoria de programa situada en la dirección 2007h y es accesible únicamente durante el proceso de grabación del microcontrolador. Es necesario que se escriba, de acuerdo con las características del sistema. Se forma de 14 bits que son:
Curso de Microcontroladores Profr. Felipe Santiago E.
15
CP : Bits de protección de la memoria de código 1 : No protegida 0 : Protegida. El programa no sepuede leer, evitando copias. Tampoco se puede sobre escribir. Además evita que pueda leerse la memoria EEPROM de datos y, si se modifica el bit CP de 0 a 1, se borra completamente la memoria de código.
PWRTE : Activación del temporizador de encendido. Retraza 72 ms la puesta en marcha o reset que se produce al conectar la alimentación al PIC, para garantizar la estabilidad de la fuente de alimentación. 1 : Activado 0 : Desactivado
WDTE : Activación del Perro Guardián 1 : Activa al WDT 0 : Desactivado
Curso de Microcontroladores Profr. Felipe Santiago E.
16
8
FOSC1-FOSC0 : Selección del temporizador utilizado 1-1 : Oscilador RC 1-0 : Oscilador HS 0-1 : Oscilador XT 0-0 : Oscilador LP
El ambiente de trabajo del MPLAB permite definir directamente la palabra de configuración, al utilizar las herramientas de descarga desarrolladas por Microchip. Si se utilizan programadores no comerciales junto con programas de descarga como NOPPP, debe incluirse la definición de la palabra de configuración como parte del código, para ello se incluye: __config _CP_ON & _XT_OSC & _WDT_ON & _PWRTE_ON En lugar de ON puede usarse OFF, según convenga. Y en lugar de XT puede usarse RC, HS, LP. Curso de Microcontroladores Profr. Felipe Santiago E.
17
MEMORIA DE DATOS EEPROM Son 64 localidades de EEPROM que pueden ser escritas o leidas en cualquier rango de voltaje válido. No están mapeadas directamente dentro de la RAM de datos, por lo que su acceso requiere de la utilización de 4 registros de funciones especiales: EEDATA EEADR EECON1 EECON2
(BANCO 0) (BANCO 1)
En EEADR se coloca la dirección de la localidad a ser leída o escrita y en EEDATA se obtiene o coloca el dato. El tiempo de escritura esta en función del voltaje de alimentación y la temperatura. Y aún varia entre dispositivos. El registro de Control para el acceso de la EEPROM es EECON1, mientras que EECON2 sirve para manejar una secuencia de protección que evita escrituras no deseadas. Curso de Microcontroladores Profr. Felipe Santiago E.
18
9
REGISTRO EECON1
Curso de Microcontroladores Profr. Felipe Santiago E.
19
EJEMPLO DE LECTURA
; Se supone que inicialmente se encuentra en el Banco 0 MOVLW MOVWF
DIRECCION EEADR
; Dirección a leer
BSF BSF BCF
STATUS, RP0 EECON1, RD STATUS, RP0
; Cambia al Banco 1 ; Habilita la lectura ; Regresa al Banco 0
MOVF
EEDATA, W
; En W está el dato leído
Curso de Microcontroladores Profr. Felipe Santiago E.
20
10
EJEMPLO DE ESCRITURA ; Se supone que inicialmente se encuentra en el Banco 0 MOVLW MOVWF MOVLW MOVWF
DIRECCION EEADR DATO EEDATA
; Dirección a escribir
BSF BSF
STATUS, RP0 EECON1, WREN
; Cambia al Banco 1 ; Permite la escritura
MOVLW MOVWF MOVLW MOVWF
0x55 EECON2 0xAAh EECON2
BSF
EECON1, WD
; Inicia la escritura
EECON1, EEIF ESPERA
; Espera el final de la escritura
EECON1, EEIF STATUS, RP0
; Limpia bandera de fin de escritura ; Regresa al Banco 0
ESPERA: BTFSS GOTO BCF BCF
; Dato a escribir
; Escribe 55h en EECON2 ; Escribe AAh en EECON2
Curso de Microcontroladores Profr. Felipe Santiago E.
Secuencia requerida por seguridad
21
11