Recursos Fundamentales - Universidad Tecnológica de la Mixteca

Anuncio
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<7>) 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
Descargar