timer intel 8254 - unslpmp/archivos/teoria10p2y11_2014.pdf · hexadecimal devolviendo su valor en...

14
Timer intel 8254 Contenido del chip: 3 timers de 16 bits independientes, programables (6 modos), conteo en binario o BCD. Terminales y diagrama de bloques:

Upload: phungxuyen

Post on 08-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Timer intel 8254Contenido del chip:

• 3 timers de 16 bits independientes, programables (6 modos), conteo en binario o BCD.

Terminales y diagrama de bloques:

Timer intel 8254Acceso a los contadores y registros:

Formato de la palabra de control:

A1 A0 Selección:

0 0 counter 00 1 counter 11 0 counter 21 1 control register

Timer intel 8254Modos de funcionamiento:

Función de la entrada GATE para cada modo:

Timer intel 8254

Pasos a seguir para inicializar un contador:

1) Escribir una palabra de control en el registro de control.

2) Cargar el byte bajo de la cuenta en el registro contador.

3) Cargar el byte alto de la cuenta en el registro contador.

Timer intel 8254Ejemplo de conexionado:

Ejemplo: “obtener una onda cuadrada de 120Hz”

f0= 2MHz 2MHz / 120Hz = 16666,66…

N = 16667 = 411Bh

START: MVI A,B6h ; palabra de controlOUT 83h

MVI A,1Bh ; parte baja de NOUT 82h

MVI A,41h ; parte alta de NOUT 82h

HLT

7 6 5 4 3 2 1 0

1 0 1 1 0 1 1 0

binario

modo 2

byte bajo, luego alto

contador 2

Palabra de control para inicializar el contador 2:

Timer intel 8254

Ejercicio:

Haciendo uso del timer 8254 y de la salida Clock Out del 8085 (cristal de 4MHz), generar una interrupción cada 10 ms, por la entrada rst7.5 del micro.

SDK-85: mainboard

FFFF .....3400

33FF RAM (2114)(1K)3000

2FFFLibre

2800

27FF Repetición de la RAM (8155)2100

20FF RAM (8155)(256)2000

1FFF Keyboard/Display (8279)1800

17FFLibre

1000

0FFF Zócalo Expansión(2K)0800

07FF ROM(2K)

(Programa Monitor)0000

SDK-85: mapas

Port Función

20 Command/Status register21 Port A22 Port B23 Port C24 Low order byte – Timer Count25 High order byte – Timer Count

Mapa de memoria: Mapa de I/O:

SDK-85: Programa Monitor (ROM)

Que nos permite hacer:

• Examinar el contenido de cualquier posición de memoria y de los registros

• Modificar el contenido de la memoria y de los registros

• Ejecutar programas o subrutinas a partir de una direción determinada

• Ejecutar paso a paso un programa

• Resetear

Además, en la ROM existen una serie de subrutinas útiles (documentadas) que están a disposición del programador para el manejo (indirecto) del display, teclado, etc.

Dirección Nombre Descripción Registros afectados

05F1h DELAY Toma el contenido del registro par DE y cuenta descendente hasta llegar a cero antes de retornar.

A,D,E,flags

02E7h RDKBD Espera hasta que un caracter es entrado por el teclado hexadecimal devolviendo su valor en el registro A.

Nota: para que esta rutina funcione se debe desenmascarar primero la interrupción RST 5.5 por medio de la instrucción SIM.

A,H,L,flags

0363h UPDAD El contenido del registro par DE es mostrado en hexadecimal en el campo de direcciones del display.

all

036Eh UPDDT El contenido del registro A es mostrado en hexadecimal en el campo de datos del display.

all

SDK-85: Protoboard

1 +5V 24 MASA2 PA1 23 PA03 PA3 22 PA24 PA5 21 PA45 PA7 20 PA66 PB1 19 PB07 PB3 18 PB28 PB5 17 PB49 PB7 16 PB6

10 PC0 15 PC511 PC1 14 PC412 PC2 13 PC3

Conexionado de la protoboard con el chip 8155:

Tabla rápida de instrucciones:

SDK-85: Ejercicios

Ej. 1: “desensamblar” la subrutina DELAY y calcular los tiempos de retardo.

Ej. 2: realizar un programa que incremente un contador cada medio segundo y muestre el valor en el campo de datos del display.

SDK-85: vista completa

SDK-85: placa principal

SDK-85: placa de display/teclado (8279)