ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sistemas con Microprocesador.


Enviado por   •  12 de Abril de 2016  •  Trabajos  •  43.606 Palabras (175 Páginas)  •  308 Visitas

Página 1 de 175

Reporte Examen 1: Piano con Timer

Erick Alonso Anaya Martínez. Matrícula: 112951

Fredy Fernando Álvarez Sánchez. Matrícula: 109311

e-mail: Fredy_bat@hotmail.com

Ingeniería en Sistemas Digitales y Comunicaciones

UACJ, IIT, Departamento De Ingeniería Eléctrica y Computación

Materia: Sistemas con Microprocesador, Catedrático: Dr. Juan de Dios Cota Ruiz

16 de marzo de 2015

1. Introducción

1.1. Temporizadores

El temporizador es una herramienta del microprocesador que incrementa el registro contador cada ciclo de maquina(la temporización se produce contando los ciclos maquina hasta sobrepasar el valor prefijado). El AT89LP6440 tiene cuatro modos de funcionamiento para sus timers 0 y 1, contador de ancho variable, auto recarga de 16 bits, auto recarga de 8 bits, y dos contadores de 8 bits.

2. Desarrollo teórico

2.1. Interrupciones

            Una interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que está realizando para atender dicho acontecimiento y luego regrese y continúe la tarea que estaba realizando antes de que se presentara la interrupción. Las interrupciones son útiles para ahorrar energía, ya que se pueden utilizar para despertar el microprocesador de modo standby cada vez que se presente la interrupción y posteriormente se puede poner al microprocesador en modo standby nuevamente. El AT89LP6440 tiene 12 fuentes de interrupción:

  • 2 interrupciones externas
  • 3 interrupciones por timers
  • 1 por puerto serial
  • 1 por comparador analógico
  • 1 por captura/comparación
  • 1 por [pic 1]
  • 1 por SPI
  • 1 por GPIF(7-0)
  • 1 por ADC

Las interrupciones por timer se ejecutan cada tick-period que se calcula según el modo que se quiere utilizar, en esta ocasión se utiliza el modo 1 para generar la interrupción por timer, que es la de 16 bits con auto recarga, que tiene la siguiente fórmula:

Tick_period= [pic 2]

Donde RH1 y RL1 son dos registros de 1 byte cada uno que trabajan juntos para crear un numero de comienzo donde va contar hasta 65535 donde se va a desbordar y producir una interrupción que se va estar ejecutando mientras esté activado el timer. El inverso de esta fórmula dividido entre dos nos da la frecuencia que se necesita para cada frecuencia que se necesita. , de donde se despeja Val, que es el valor que va entrar a RL1  y RH1.
[pic 3][pic 4]

2.2. Registros de Interrupciones  

        Es necesario habilitar las interrupciones que se desean utilizar en el programa, esto se hace a través del registro de habilitación de interrupciones, se pone el registro que se quiere habilitar a '1'. 

Registro IE (Interrupt Enable)

EA

EC

ET2

ES

ET1

EX1

ET0

EX0

EX0 - Interrupción externa 0
ET0 - Timer 0
EX1 - Interrupción externa 1
ET1 - Timer 1
ES - Puerto Serial
ET2 - Timer 2
EC - Comparador analógico
EA - Enable All


Registro IE2(Interrupt Enable 2)

 -

 -

-

ETW

EADC

ESPI

ECC

EGP

EGP-Interrupción de propósito general

ECC-Interrupción por captura y comparación

ESPI-Interface serial SPI

EADC-Convertidor analógico digital

ETW- interface serial[pic 5]

TCON
A través de este registro podemos configurar de qué forma se activaran las interrupciones, en este caso estamos trabajando con interrupciones externas, podemos configurar la interrupción para que se active por nivel o por flanco de bajada, a través de la manipulación de los bits de este registro, en este caso estamos trabajando con flanco de bajada, por lo tanto ponemos IT0 y IT1 en '1' para trabajar con flanco de bajada en las interrupciones externas INT0, INT1 respectivamente.

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

  GPI(General Purpose Interrupt)
Este tipo de interrupción sirve para tener 8 diferentes interrupciones que trabajan de la misma forma que las funciones externas, solamente que tienen sus propios registros de funcionamiento, cualquier interrupción por el puerto 1 activa esta interrupción, así que se tiene que leer el registro GPIF para revisar cual bandera fue la que se activó y así determinar por cual pin se activó la interrupción.   
Se tienen que configurar tres registros para utilizar la interrupción de propósito general:
GPMOD, GPLS, GPIEN y para poder utilizarlos se tiene que leer el GPIF para saber por cual entrada se produjo la interrupción.
 
El GPMOD sirve para declarar si la interrupción se va activar por nivel o por flanco, en 0 es por nivel, en 1 es por flanco. El GPLS sirve para declarar por alto o bajo, es decir, por nivel alto o bajo, o por flanco de bajada o subida. En cero es bajo y uno es para alto. Finalmente, el GPIEN sirve para activar la interrupción, se pone '1' para activar cada una que se quiere utilizar.
Interrupción por timer
Para trabajar con interrupción con el timer, se trabajan con los siguientes registros: Registro IE, con el bit ET0 y ET1 para los timers 0 y 1, también se necesita activar EA para activar todas las interrupciones.
En el TCON se activa TR0 o TR1 para activar el timer 0, 1 respectivamente.
TMOD(Timer Mode) Se utiliza para configurar el timer como temporizador o contador, activación por hardware o software, y el modo que se va a usar.

...

Descargar como (para miembros actualizados)  txt (72.6 Kb)   pdf (543.2 Kb)   docx (974.2 Kb)  
Leer 174 páginas más »
Disponible sólo en Clubensayos.com