Sei sulla pagina 1di 18

EL TIMER 8254

Microprocesadores

El temporizador /contador Intel


8254

Su Arquitectura interna
Modos de programacin
Su interconexin con un procesador
Aplicaciones

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Caractersticas principales del 82C54


9 Frecuencia del reloj de entrada de 8MHz a 12MHz
9 Versi
Versin mejorada del NMOS 8253
9 Tres contadores independientes de 16 bits
9 Seis modos programables de Contador
9 Comando Read Back de Status
9 Conteo en Binario o BCD
9 Completamente compatible con TTL
9 Una fuente de poder de 5V
9 Baja Potencia

ICCSB (corriente en Stand By). ... . . . . . .10


.10A
ICCOP (corriente en operaci
operacin) . .. .. . . . . 10mA a 8MHz
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Ejemplo de Aplicaciones del 8254


Algunas de las otras funciones computadora/timers comunes a
las microcomputadoras los cuales pueden ser implementados
con el 8254 son:

Reloj de Tiempo Real


Contador de Eventos
One-Shot Digital
Generador de baudaje Programable
Generador de Onda Cuadrada
Multiplicador Binario
Generador de forma de onda compleja
Controlador complejo de motor

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Arquitectura interna del 8254

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Arquitectura interna del 8254


D0-D7

WR
RD
A0
A1

Buffer
Buffer
deldelbus
bus
dededatos
datos

Contador
Contador00

CLK0
GATE0
OUT0

Lgica
Lgicadede
lectura/
lectura/
escritura
escritura

Contador
Contador1 1

CLK1
GATE1
OUT1

Registro
Registrodede
control
control

Contador
Contador2 2

CLK2
GATE2
OUT2

CS

BUS
BUSINTERNO
INTERNO
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Arquitectura interna de un contador del 8254


Bus
Businterno
internode
deDatos
Datos

Latch
Latchdedestatus
status
Registro
Registrodedecontrol
control

Lgica
Lgicadede
Control
Control

Registro
Registrodedestatus
status

Registro
Registrodedeconteo
conteo
(CRM)
(CRM)MSB
MSB

Registro
Registrodedeconteo
conteo
(CRL)LSB
(CRL)LSB

CONTADOR
CONTADORnn(CE)
(CE)
Latch
LatchDeDeSalida
Salida(OLM)
(OLM) Latch
Latchdedesalida
salida(OLL)
(OLL)
MSB
LSB
MSB
LSB

CLK n GATE n OUT n

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Distribucin De Terminales
OUT0
GATE0

Contador 0

D0D0-D7

CLK0
OUT1
GATE1
CLK1

Contador 1

RD
WR

CLK2

A1

D6
D5

2
3

D4
D3

D2
D1

6
7
8

CLK0
OUT0
GATE0

GATE2

Contador2

D0

OUT2

A0

D7

CS

GND

24
23
22
21
20

9
10
11
12

8254

VCC
WR
RD
CS
A1

19
18

A0

17

OUT2

16
15
14

GATE2

13

OUT1

CLK2

CLK1
GATE1

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Tabla de verdad de la operacin del 8254


CS

RD

WR

A1

A0

FUNCION

CARGA CONTADOR 0

CARGA CONTADOR 1

CARGA CONTADOR 2

ESCRIBIR PALABRA DE CONTROL

LEER CONTADOR 0

LEER CONTADOR 1

LEER CONTADOR 2

READ BACK (LEER STATUS)

BUS DE DATOS EN TRI- STATE

BUS DE DATOS EN TRI-STATE

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

FORMATO DE LA PALABRA DE CONTROL


D7
SC1
SC1

0
0
1
1

D6

D5

D4

SC0
SC0

RW1
RW1

RW0
RW0

Elegir contador:
0 contador 0
1 contador 1
0 contador 2
1 comando Read Back

0
0
1
1

D3
M2
M2

D2

D1

D0

M1M1

M0
M0

BCD
BCD

000
001
Operacin:
0 comando de enclavamiento x 1 0
x11
1 leer/escribir byte bajo
100
0 leer/escribir byte alto
101
1 leer/escribir byte bajo y
despus el alto

Modo:
modo 0
modo 1
modo 2
modo 3
modo 4
modo 5

Contador:
0 binario 16 bits
1 BCD 4 dcadas

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Operaciones de lectura de conteo.


Existen tres posibles mtodos para leer el valor de conteo de un
contador del 8254:
1).-Con un comando Read-Back.
2).-Leer simplemente el contador accediendo a su puerto
correspondiente:
este mtodo requiere inhibir la entrada CLK al contador (por
ejemplo, a travs de la lnea GATE o utilizando circuitera
exterior de apoyo) con objeto de evitar leer la cuenta en medio
de un proceso de actualizacin de la misma, lo que dara un
resultado incorrecto.
3).- Con un comando de enclavamiento
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Formato de Comando Read-Back.


D7

D6

D5

11

11

-CONTEO
-CONTEO

D4

D3

D2

D1

D0

-STATUS
-STATUS CONTADOR2
CONTADOR2 CONTADOR1
CONTADOR1 CONTADOR0
CONTADOR0

00

A 1 los contadores seleccionados


0 si enclava la cuenta
de los contadores
seleccionados
0 si enclava el byte de status del contador
seleccionado
Permite enclavar la cuenta en varios latches de salida (OL's
(OL's ) de varios
contadores de una sola vez, sin requerir m
mltiples comandos de
enclavamiento, poniendo el bit 5 a cero.
Los contadores permanecen enclavados hasta ser le
ledos, los que no son le
ledos
permanecen enclavados. Tambi
Tambin es posible enviar informaci
informacin de estado al
latch de salida ( OL), enclav

ndola
para
que
puede
ser
le
enclav
leda con comodidad
por el puerto que corresponda a ese contador.
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Palabra de status
D7

D6

OUTPUT
NULLCOUNT
COUNT
OUTPUT NULL

Valor de la
terminal out

D5

D4

RW1
RW1

RW0
RW0

D3
M2
M2

D2

D1

D0

M1M1

M0
M0

BCD
BCD

Modo del
contador activo
1 Null count
0 cuenta disponible para ser leda

Contador:
0 binario 16 bits
1 BCD 4 dcadas

Al leer la palabra de status se permite leer el valor actual de la cuenta, as


as
como averiguar tambi

n
el
modo
programado
para
un
contador
y
el
estado
tambi
actual de la terminal OUT, adem
adems de verificar la bandera de cuenta nula
(Null Count)
Count) de los contadores que se indiquen
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Comando de enclavamiento (Counter Latch Command).


D7
SC1
SC1

D6

D5

D4

D3

D2

D1

SC0
SC0

00

00

XX

XX

XX

D0
XX

Este comando se env


enva como una palabra de control

contador afectado: (A1=A0=1) con los bits 5 y 4 a cero.


0 0 contador 0
Cuando se env
enva el comando, el latch de salida (OL) del
0 1 contador 1
contador seleccionado queda congelado hasta que la CPU
1 0 contador 2

lo lee, momento en el que se descongela y pasa de nuevo a


seguir a CE.
Esto permite leer los contadores al vuelo sin afectar la
cuenta en curso. Se pueden enviar varios de estos
comandos a los diversos contadores, cuyos latches de
salida (OL's
(OL's)) quedar
quedarn enclavados hasta ser le
ledos.

Si se env
envan varios comandos de enclavamiento al mismo contador, separados por un
cierto intervalo de tiempo, s
slo se considerar
considerar el primero (por tanto, la cuenta le
leda
corresponder
corresponder al valor del contador cuando fue enclavado por vez primera).
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Modos de programacin del timer


8254

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Modo 0: Interrupt On Terminal Count (Interrupcin al final de la


cuenta).
CLK
Pulso de
escritura

WR
GATE

Se carga la cuenta al
registro de conteo

(4)

OUT

CLK
Pulso de
escritura

WR

(3)

(2)

Inicia conteo

(3)

(4)

(1)

(0)

(2)

(1)

Final de conteo

(0)

Conteo detenido

GATE
OUT

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Modo 1:Hardware Retriggerable One-Shot (Monoestable


programable).
(4)

CLK
WR
GATE
(TRIGGER)

N=4

(3)

(2)

(1)

(0)

(4)

(3)

(2)

(1)

Disparos del monoestable

OUT

T=NTc

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Modo 2: Rate Generator (Generador de ritmo).


(4)

CLK

(3)

(2)

(1)

(0) (4) (3)

(2)

(1)

(0) (4) (3)

N=4

WR
GATE
OUT

T=NTc

un periodo de reloj (Tc)

N=cuenta cargada
Tc=periodo del reloj en CLK=1/fclk

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Modo 3: Square Wave Mode (Generador de onda cuadrada).


(4)

CLK
WR

(3)

(2)

(1)

(0) (4) (3)

(2)

(1)

(0) (4) (3)

N=4

GATE
OUT

T1

T0-

T= NTc
N = cuenta cargada
Tc = periodo del reloj en CLK = 1/fclk

Ya que es una onda cuadrada T1 = T0 = N/2


Si N es impar entonces T1 = (N+1)/2 y T0 = (N-1)/2

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

MODO 4: Software Triggered strobe Mode (Pulso Strobe iniciado


por programa)
(4)

CLK

(3)

(2)

(1)

(0)

N=4

WR
GATE
OUT

un periodo de reloj (Tc)

T=NTc
N=cuenta cargada
Tc=periodo del reloj en CLK=1/fclk

Strobe
Strobe

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

MODO 5: Hardware Triggered strobe Mode (Pulso Strobe iniciado


por hardware)
(4)

CLK
WR

(3)

(2)

(1)

(0)

N=4

GATE
(TRIGGER)
OUT

Disparo del Strobe

T=NTc

un periodo de reloj (Tc)

Strobe
Strobe

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Interconexin del 8254 con un


microprocesador

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Ejemplo de Conexin del 8254 con el Z80


Bus
Busde
deDatos
Datos

RD

IORD

IORQ

RD

IOWR
WR

WR

Z80
Z80 A0
A1

BusdedeDirecciones
Direcciones(Bajo)
(Bajo)
Bus

A2
A3
A4
A5
A6
A7

A0
A1

Contador 0

Timer
8254
Contador 1

Out 1
Gate 1
Clock 1

Contador 2

Out 2
Gate 2
Clock 2

CS

74LS138
A2
A3
A4
A5
A6
A7

A
B
C
G1A
G1B
G2

Out 0
Gate 0
Clock 0

Y1=84H-87H

Direcciones
Direccionesvlidas
vlidas
para
paraelel8254:
8254:
84h
84h
contador
contador00
85h

contador
85h contador11
86H
86H
contador
contador22
87H

r.
87H r.control
control
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

EJEMPLO DE APLICACIONES DEL


8254

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Control de velocidad de un motor de CD con PWM

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

CIRCUITO DE CONTROL DE SENTIDO DE GIRO DE UN


MOTORES DE CD USANDO UN CI () L293
+VS

16

+VCC=5v

L293B
7

VEN

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Circuito de un sensor ptico herradura para un encoder


DISCO RANURADO O ENCODER

Motor
Motor
+5V

220

10 k
CLK 0
CLK 0

7414

Al 8254

CIRCUITO SUGERIDO PARA LIMPIAR LOS PULSOS


ENVIADOS POR EL ENCODER
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Circuito para contar el nmero de revoluciones de un motor de CD


Bus de Datos

Motor de CD

Z80
Z80

PPI
PPI
8255
8255

8254
8254

L293
L293

INT
Out 0

Clk 0

+5v
gate0

10 k

220

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores
Circuito L293B
doble puente H

PPI
PPI
8255
8255

+5V

+VS

alimentacin
del motor

IN1
1

Out1

Motor de CD

4.7 k

EN1

()L293B
()L293B

Out2

IN2

220

+5V

10 k

4.7 k

T0

8254
8254
GATE0 CONTADOR
CONTADOR00

74LS14

OUT 0
CLK 0
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores
Uso del 8254 para controlar el conteo del giro de un motor de CD

PA.7

PB.0
PB.1
PC.0

PPI
PPI
8255
8255

L293B
L293B

Start

Gate0
Contador0
Contador0

Encoder
Encoder

Clk0

Programado en modo 0

Out 0

INT

Z80

Tono de 1khz

Gate1
Contador1
Contador1 Out 1
Clk 1

fclk =2Mhz

Circuito
Circuito
DeDereloj
reloj
deldelz80
z80

Contador2
Contador2

Programado en modo 3

No
Noseseusa
usa

TIMER 8254
Carlos E. Canto Quintal M.C.
M.C.

EL TIMER 8254

Microprocesadores

Esquemtico de la conexin del 8254 con el z80 para la prctica 9


4.7 K

2
7
10
15

PA.7

PPI
8255

+5V

PB.0
PB.1

1
9
16
8

1Y
2Y
3Y
4Y

1A
2A
3A
4A

3
6
11
14

MOTOR CD
D1

1/2EN
3/4EN

D2

2
D4

VCC1
VCC2

D3

L293
2

INT

7414

1
+5V

+5V

BUS DE DATOS

+5V
24
8
7
6
5
4
3
2
1

IORD
IOWR
BUS DE DIRECCIONES

22
23
19
20

A0
A1

PPI
8255

1
2
3

A7
A6
A5

6
4
5

A
B
C

74LS138
G1
G2A
G2B

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

15
14
13
12
11
10
9
7

21
12

G0
OUT0
CLK0

8254 CLK1

G1
OUT1

RD
WR
A0
A1

OUT2
CLK2

CS
GND

G2

11
10
9

10K
2

7414

220

15
14
13
17
18
+5V

16

SENSOR PTICO

84H-87H

SPEAKER

A2
A3
A4

VCC
D0
D1
D2
D3
D4
D5
D6
D7

2N3904

2.7 K
1

START

VS

PRACTICA NUM.9
APLICACIONES DEL TIMER /CONTADOR 8254

VCC

PC.0

CIRCUITO DE
RELOJ DEL
Z80

A7
1

A6 A5 A4 A3 A2 A1 A0
1 X
X
0
0 0
0
AL 8254

LAS DIRECCIONES SELECCIONADAS SON DE 84H A 87H


Carlos Canto

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Final
Finaldede
conteo
conteo
Out 0

1 segundo

Gate1
Pita
Pitalalabocina
bocinapor
por1 1seg.
seg.

Tono de 1KHZ
Out 1

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254
Inicio
Inicio
Ubica
Ubicaelel
Stack
Stack

Microprocesadores
Diagrama de flujo que muestran las tareas a realizar por el
programa
RSI
RSI

Configurar
Configurar
PPI
PPI

Detener
Detenerelel
motor
motor

Programar
Programar
ElEl8254
8254

iniciar
iniciarpitido
pitido
Bocina
Bocinaa a1khz
1khz

Inicializar
Inicializar
ElEl8254
8254
Habilitar
Habilitar
Interrupciones.
Interrupciones.
enenmodo1
modo1
Arranca
Arrancamotor
motor

Aqu
Aqu el Z80 entra en un
estado HALT hasta que ocurra
la interrupci
interrupcin

Si

Delay
Delay1 seg
1 seg
Parar
Pararpitido
pitido
DeDebocina
bocina
Si

CALL
CALLRSI
RSI

Inicializar
Inicializar
ElEl8254
8254

Motor
Motorgir
gir
1000
1000vueltas?
vueltas?
Out
Out0=alto?
0=alto?

Rehabilitar
Rehabilitar
Interrupciones.
Interrupciones.

No
RETI
RETI

Invertir
Invertirgiro
giro
deldelmotor
motor

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

Definicin de los smbolos usados en el programa


STACK
PORT_A
PORT_B
PORT_C
CTRL_PPI
PAL_CTRL
CONT_0
CONT_1
CTRL_TIM
CONT_0_MOD0
CONT_1_MOD3
CONT_INICIAl_LSB
CONT_INICIAl_MSB
DIV_LSB
DIV_MSB

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

1000H
80H
81H
82H
83H
88H
84H
85H
87H

0F0H
07H

; Inicio del stack


; direccin del puerto A
; direccin del puerto B
; direccin del puerto C
; direccin del registro de control del PPI
; palabra de control del PPI el pto.Ch =entrada
; direccin del contador 0
; direccin del contador 1
; direccin del registro de control del 8254
; palabra de control para el contador 0, en modo 0
; palabra de control para contador 1 en modo 3
; Byte menos significativo del valor de conteo inicial
; Byte menos significativo del valor de conteo inicial
; Byte divisormenos significativo
; Byte divisor ms significativo

Carlos E. Canto Quintal M.C.


M.C.

EL TIMER 8254

Microprocesadores

;UBICA EL STACK

LD SP, STACK

; CONFIGUARCIN DEL PPI


LD A , PAL_CTRL
OUT (CTRL_PPI) , A

; PROGRAMACIN DEL TIMER 8254


LD A , CONT_0_MOD0
OUT (CONT_0) , A
LD A , CONT_1_MOD3
OUT (CONT_1) , A

; Carga de palabra de control del PPI

;Configura el contador 0 en modo 0


; Configura contador 1 en modo 1

; INICIALIZACIN DEL TIMER 8254


CALL INICIA_8254

; HABILITACIN DE LA INTERRUPCIONES Y SELECCIN DEL MODO1


IE
IM1

LEER:

;ARRANCA EL MOTOR

IN A , (PTO_A)
AND 80H
JP NZ, LEER
LD A, 01H
OUT (PTO_B) , A
HALT

; Habilita las interrupciones del Z80


; Seleccin del modo 1 de interrupciones

;leer tecla start del puerto A


;enmascara bits no usados
;si no se oprimi la tecla vuelve a checar
; si se oprimi la tecla , arranca el motor
; espera que ocurra la interrupcin
Carlos E. Canto Quintal M.C.
M.C.

INICIA_8254 :

;INICIALIZACIN DEL CONTADOR 0


LD A, CONT_INICIAL_LSB
OUT (CONT_0) , A
LD A, CONT_INICIAL_MSB
OUT (CONT_0) , A

;INICIALIZACIN DEL CONTADOR 1


LD A , DIV_LSB
OUT (CONT_2) , A
LD A , DIV_MSB
OUT (CONT_2) , A

;Carga el byte menos significativo del valor


; de conteo inicial al contador 0
;Carga el byte ms significativo del valor
; de conteo inicial al contador 0
;Cargar al contador1 con el divisor de frecuencia
; menos significativo
; Cargar al contador1 con el divisor de frecuencia
; ms significativo

RET

EL TIMER 8254

Microprocesadores

Generador de seales en una IBM PC

Carlos E. Canto Quintal M.C.


M.C.

Potrebbero piacerti anche