Timer intel 8254

Anuncio
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:
Timer intel 8254
Acceso a los contadores y registros:
A1 A0
Selección:
0
0
1
1
counter 0
counter 1
counter 2
control register
0
1
0
1
Formato de la palabra de control:
Timer intel 8254
Modos de funcionamiento:
Timer intel 8254
Función de la entrada GATE para cada modo:
Timer intel 8254
Pasos a seguir para inicializar un contador:
Ejemplo de conexionado:
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.
Ejemplo: “obtener una onda cuadrada de 120Hz”
f0= 2MHz
2MHz / 120Hz = 16666,66…
N = 16667 = 411Bh
Palabra de control para inicializar
el contador 2:
7
6
5
4
3
2
1
START:
0
1 0 1 1 0 1 1 0
binario
modo 2
byte bajo,
luego alto
contador 2
MVI
OUT
A,B6h
83h
; palabra de control
MVI
OUT
A,1Bh
82h
; parte baja de N
MVI
OUT
A,41h
82h
; parte alta de N
HLT
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
SDK-85: mapas
Mapa de memoria:
FFFF
3400
33FF
3000
2FFF
2800
27FF
2100
20FF
2000
1FFF
1800
17FF
1000
0FFF
0800
07FF
0000
Mapa de I/O:
Port
Función
20
Command/Status register
21
Port A
22
Port B
RAM (2114)
(1K)
23
Port C
24
Low order byte – Timer Count
Libre
25
High order byte – Timer Count
.
.
.
.
.
Repetición de la
RAM (8155)
RAM (8155)
(256)
Keyboard/
Display (8279)
Libre
Zócalo Expansión
(2K)
ROM
(2K)
(Programa Monitor)
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
Conexionado de la protoboard con el chip 8155:
1
2
3
4
5
6
7
8
9
10
11
12
+5V
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
PC0
PC1
PC2
24
23
22
21
20
19
18
17
16
15
14
13
MASA
PA0
PA2
PA4
PA6
PB0
PB2
PB4
PB6
PC5
PC4
PC3
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.
Tabla rápida de instrucciones:
SDK-85: vista completa
SDK-85: placa principal
SDK-85: placa de display/teclado (8279)
Descargar