TEMPORIZADOR

18
El temporizador /contador Intel 8254 Su Arquitectura interna Su Arquitectura interna Modos de programaci Modos de programación Su interconexi Su interconexió n con un n con un µ µ procesador procesador Aplicaciones Aplicaciones EL TIMER 8254 EL TIMER 8254 Microprocesadores Microprocesadores Carlos E. Canto Quintal Carlos E. Canto Quintal M.C M.C. EL TIMER 8254 EL TIMER 8254 Microprocesadores Microprocesadores Carlos E. Canto Quintal Carlos E. Canto Quintal M.C M.C. Características principales del 82C54 Frecuencia del reloj de entrada de 8MHz a 12MHz Frecuencia del reloj de entrada de 8MHz a 12MHz Versi Versión mejorada del NMOS 8253 n mejorada del NMOS 8253 Tres contadores independientes de 16 bits Tres contadores independientes de 16 bits Seis modos programables de Contador Seis modos programables de Contador Comando Comando Read Read Back de Status Back de Status Conteo en Binario o BCD Conteo en Binario o BCD Completamente compatible con TTL Completamente compatible con TTL Una fuente de poder de 5V Una fuente de poder de 5V Baja Potencia Baja Potencia ICCSB (corriente en Stand By). ... . . . . . .10 ICCSB (corriente en Stand By). ... . . . . . .10 µ µ A A ICCOP (corriente en operaci ICCOP (corriente en operaci ó ó n) . .. .. . . . . 10mA a 8MHz n) . .. .. . . . . 10mA a 8MHz

description

TEMPORIZADOR

Transcript of TEMPORIZADOR

Page 1: TEMPORIZADOR

El temporizador /contador Intel 8254

•• Su Arquitectura internaSu Arquitectura interna•• Modos de programaciModos de programacióónn•• Su interconexiSu interconexióón con un n con un µµprocesadorprocesador•• AplicacionesAplicaciones

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Características principales del 82C54Frecuencia del reloj de entrada de 8MHz a 12MHz Frecuencia del reloj de entrada de 8MHz a 12MHz

VersiVersióón mejorada del NMOS 8253n mejorada del NMOS 8253

Tres contadores independientes de 16 bitsTres contadores independientes de 16 bits

Seis modos programables de Contador Seis modos programables de Contador

Comando Comando ReadRead Back de StatusBack de Status

Conteo en Binario o BCD Conteo en Binario o BCD

Completamente compatible con TTLCompletamente compatible con TTL

Una fuente de poder de 5VUna fuente de poder de 5V

Baja Potencia Baja Potencia –– ICCSB (corriente en Stand By). ... . . . . . .10ICCSB (corriente en Stand By). ... . . . . . .10µµAA–– ICCOP (corriente en operaciICCOP (corriente en operacióón) . .. .. . . . . 10mA a 8MHzn) . .. .. . . . . 10mA a 8MHz

Page 2: TEMPORIZADOR

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Ejemplo de Aplicaciones del 8254Algunas de las otras funciones computadora/timers comunes a

las microcomputadoras los cuales pueden ser implementados con el 8254 son:

Reloj de Tiempo RealContador de EventosOne-Shot Digital Generador de baudaje ProgramableGenerador de Onda CuadradaMultiplicador Binario Generador de forma de onda complejaControlador complejo de motor

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Arquitectura interna del 8254Arquitectura interna del 8254

Page 3: TEMPORIZADOR

Arquitectura interna del 8254Arquitectura interna del 8254

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Buffer del busde datos

Buffer del busde datos

Lógica de lectura/escritura

Lógica de lectura/escritura

Registro de control

Registro de control

Contador 0Contador 0

Contador 1Contador 1

Contador 2Contador 2

BUS INTERNOBUS INTERNO

D0-D7CLK0

CLK1

CLK2

GATE0

GATE1

GATE2OUT2

OUT1

OUT0

WRRDA0A1

CS

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Lógica de Control

Lógica de Control

Registro de controlRegistro de control

Latch De Salida (OLM)MSB

Latch De Salida (OLM)MSB

Latch de statusLatch de status

Registro de statusRegistro de status

Registro de conteo(CRM) MSB

Registro de conteo(CRM) MSB

CONTADOR n (CE)CONTADOR n (CE)

Bus interno de DatosBus interno de Datos

Registro de conteo (CRL)LSB

Registro de conteo (CRL)LSB

Latch de salida (OLL)LSB

Latch de salida (OLL)LSB

CLK n GATE n OUT n

Arquitectura interna de un contador del 8254Arquitectura interna de un contador del 8254

Page 4: TEMPORIZADOR

8254

242322

21

1

2

3

4

5

6

78

9

10

1112

VCC

RDCSA1

A0

CLK2

OUT2

GATE2

WR

CLK1

GATE1

OUT1

D3

D2D1

D0

CLK0

OUT0

GATE0

GND

D7

D6D5

D420

1918

17

161514

13CS

RD

WR

OUT0OUT0

OUT1OUT1

OUT2OUT2

GATE0GATE0

GATE1GATE1

GATE2GATE2

CLK2CLK2

CLK1CLK1

CLK0CLK0

A0

A1

D0D0--D7D7 Contador 0

Contador 1

Contador2

DistribuciDistribucióón De Terminales n De Terminales

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

BUS DE DATOS EN TRI-STATEXX110

BUS DE DATOS EN TRI- STATEXXXX1

READ BACK (LEER STATUS)11100

LEER CONTADOR 201100

LEER CONTADOR 110100

LEER CONTADOR 000100

ESCRIBIR PALABRA DE CONTROL11010

CARGA CONTADOR 201010

CARGA CONTADOR 110010

CARGA CONTADOR 000010

FUNCIONA0A1WRRDCS

Tabla de verdad de la operaciTabla de verdad de la operacióón del 8254n del 8254

Page 5: TEMPORIZADOR

FORMATO DE LA PALABRA DE CONTROLFORMATO DE LA PALABRA DE CONTROL

SC1SC1 SC0SC0 RW1RW1 RW0RW0 M2M2 M1M1 M0M0 BCDBCD

D0D1D2D3D4D5D6D7

Elegir contador:0 0 contador 00 1 contador 11 0 contador 21 1 comando Read Back Operación:

0 0 comando de enclavamiento0 1 leer/escribir byte bajo1 0 leer/escribir byte alto1 1 leer/escribir byte bajo y

después el alto

Contador:0 binario 16 bits1 BCD 4 décadas

Modo:0 0 0 modo 00 0 1 modo 1x 1 0 modo 2x 1 1 modo 31 0 0 modo 41 0 1 modo 5

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Operaciones de lectura de conteo.Operaciones de lectura de conteo.Existen tres posibles métodos 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 método requiere inhibir la entrada CLK al contador (por ejemplo, a través de la línea GATE o utilizando circuitería exterior de apoyo) con objeto de evitar leer la cuenta en medio de un proceso de actualización de la misma, lo que daría un resultado incorrecto.

3).- Con un comando de enclavamiento

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Page 6: TEMPORIZADOR

11 11 -CONTEO-CONTEO -STATUS-STATUS CONTADOR2CONTADOR2 CONTADOR1CONTADOR1 CONTADOR0CONTADOR0 00

0 si enclava la cuenta de los contadores seleccionados 0 si enclava el byte de status del contador

seleccionado

A 1 los contadores seleccionados

D0D1D2D3D4D5D6D7

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Formato de Comando Formato de Comando ReadRead--Back.Back.

Permite enclavar la cuenta en varios Permite enclavar la cuenta en varios latcheslatches de salida (de salida (OL'sOL's ) de varios ) de varios contadores de una sola vez, sin requerir mcontadores de una sola vez, sin requerir múúltiples comandos de ltiples comandos de enclavamiento, poniendo el bit 5 a cero.enclavamiento, poniendo el bit 5 a cero.Los contadores permanecen enclavados hasta ser leLos contadores permanecen enclavados hasta ser leíídos, los que no son ledos, los que no son leíídos dos permanecen enclavados. Tambipermanecen enclavados. Tambiéén es posible enviar informacin es posible enviar informacióón de estado al n de estado al latch de salida ( OL), enclavlatch de salida ( OL), enclaváándola para que puede ser lendola para que puede ser leíída con comodidad da con comodidad por el puerto que corresponda a ese contador. por el puerto que corresponda a ese contador.

Palabra de statusPalabra de status

OUTPUTOUTPUT NULL COUNTNULL COUNT RW1RW1 RW0RW0 M2M2 M1M1 M0M0 BCDBCD

D0D1D2D3D4D5D6D7

Valor de la terminal out

1 “Null count”0 cuenta disponible para ser leída

Modo del contador activo Contador:

0 binario 16 bits1 BCD 4 décadas

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Al leer la palabra de status se permite leer el valor actual deAl leer la palabra de status se permite leer el valor actual de la cuenta, asla cuenta, asíícomo averiguar tambicomo averiguar tambiéén el modo programado para un contador y el estado n el modo programado para un contador y el estado actual de la terminal OUT, ademactual de la terminal OUT, ademáás de verificar la bandera de cuenta nula s de verificar la bandera de cuenta nula ((NullNull CountCount) de los contadores que se indiquen) de los contadores que se indiquen

Page 7: TEMPORIZADOR

Comando de enclavamiento (Comando de enclavamiento (CounterCounter Latch Latch CommandCommand).).

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

SC1SC1 SC0SC0 00 00 XX XX XX XX

D0D1D2D3D4D5D6D7

contador afectado:0 0 contador 00 1 contador 11 0 contador 2

Si se envSi se envíían varios comandos de enclavamiento al mismo contador, separadosan varios comandos de enclavamiento al mismo contador, separados por un por un cierto intervalo de tiempo, scierto intervalo de tiempo, sóólo se considerarlo se consideraráá el primero (por tanto, la cuenta leel primero (por tanto, la cuenta leíída da correspondercorresponderáá al valor del contador cuando fue al valor del contador cuando fue enclavadoenclavado por vez primera).por vez primera).

Este comando se envEste comando se envíía como una palabra de control a como una palabra de control (A1=A0=1) con los bits 5 y 4 a cero. (A1=A0=1) con los bits 5 y 4 a cero. Cuando se envCuando se envíía el comando, el latch de salida (OL) del a el comando, el latch de salida (OL) del contador seleccionado queda congelado hasta que la CPU contador seleccionado queda congelado hasta que la CPU lo lee, momento en el que se lo lee, momento en el que se descongeladescongela y pasa de nuevo a y pasa de nuevo a seguir a CE. seguir a CE. Esto permite leer los contadores Esto permite leer los contadores al vueloal vuelo sin afectar la sin afectar la cuenta en curso. Se pueden enviar varios de estos cuenta en curso. Se pueden enviar varios de estos comandos a los diversos contadores, cuyos comandos a los diversos contadores, cuyos latcheslatches de de salida (salida (OL'sOL's) quedar) quedaráán enclavados hasta ser len enclavados hasta ser leíídos.dos.

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Modos de programaciModos de programacióón del timer n del timer 82548254

Page 8: TEMPORIZADOR

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Modo 0: Interrupt On Terminal Count (Interrupción al final de la cuenta).

(3) (2) (1) (0)Inicia conteo

Final de conteoSe carga la cuenta al registro de conteo

(4)

Pulso de escritura

CLK

WR

GATE

OUT

(3) (2) (1) (0)(4)Pulso de escritura

CLK

WR

GATE

OUT

Conteo detenido

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Modo 1:Hardware Retriggerable One-Shot (Monoestable programable).

(3) (2) (1) (0)(4)

N=4

CLK

WR

OUT

T=NTc

Disparos del monoestable

(3) (2)(4) (1)

GATE (TRIGGER)

Page 9: TEMPORIZADOR

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Modo 2: Rate Generator (Generador de ritmo).

(3) (2) (1) (0)(4)

N=4

CLK

WR

OUT

T=NTc

(3) (2)(4) (1)

GATE

un periodo de reloj (Tc)

N=cuenta cargadaTc=periodo del reloj en CLK=1/fclk

(0) (4) (3)

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

N = cuenta cargadaTc = periodo del reloj en CLK = 1/fclk

T= NTc

(3) (2) (1) (0)(4)

N=4

CLK

WR

OUT

(3) (2)(4) (1)

GATE

(0) (4) (3)

T1 T0-

Ya que es una onda cuadrada T1 = T0 = N/2Si N es impar entonces T1 = (N+1)/2 y T0 = (N-1)/2

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

Page 10: TEMPORIZADOR

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

(3) (2) (1) (0)(4)

N=4

CLK

WR

OUT

T=NTc

GATE

un periodo de reloj (Tc)

N=cuenta cargadaTc=periodo del reloj en CLK=1/fclk StrobeStrobe

MODO 4: Software Triggered strobe Mode (Pulso Strobe iniciado por programa)

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

(3) (2) (1) (0)(4)

N=4

CLK

WR

OUT

T=NTc

GATE (TRIGGER)

un periodo de reloj (Tc)

StrobeStrobeDisparo del Strobe

MODO 5: Hardware Triggered strobe Mode (Pulso Strobe iniciado por hardware)

Page 11: TEMPORIZADOR

InterconexiInterconexióón del 8254 con un n del 8254 con un microprocesadormicroprocesador

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Ejemplo de Conexión del 8254 con el Z80

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Direcciones válidas para el 8254:

84h contador 0 85h contador 186H contador 287H r. control

Direcciones válidas para el 8254:

84h contador 0 85h contador 186H contador 287H r. control

Gate 1Clock 1

Z80 Z80

Bus de DatosBus de Datos

CS

RD

WR

RD

WR

A0

A1A0

A1A2A3A4A5A6A7

Bus de Direcciones (Bajo)

Bus de Direcciones (Bajo)

ABCG1AG1BG2

74LS138

Y1=84H-87HA3A2

A6A5A4

A7

IORQ

Out 0Gate 0

Clock 0

Out 1

Out 2

Gate 2

Clock 2

Contador 0

Contador 1

Contador 2

Timer 8254

IORD

IOWR

Page 12: TEMPORIZADOR

EJEMPLO DE APLICACIONES DEL EJEMPLO DE APLICACIONES DEL 82548254

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Control de velocidad de un motor de CD con PWMControl de velocidad de un motor de CD con PWM

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Page 13: TEMPORIZADOR

CIRCUITO DE CONTROL DE SENTIDO DE GIRO DE UN CIRCUITO DE CONTROL DE SENTIDO DE GIRO DE UN MOTORES DE CD USANDO UN CI (MOTORES DE CD USANDO UN CI (½½) L293 ) L293

½ L293B

VEND C

+VCC=5v

+VSM

816

217

6 3

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Circuito de un sensor Circuito de un sensor óóptico herradura para un encoder ptico herradura para un encoder

DISCO RANURADO O ENCODER

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Motor Motor Motor

CIRCUITO SUGERIDO PARA LIMPIAR LOS PULSOS ENVIADOS POR EL ENCODER

+5V

CLK 0CLK 0

220Ω10 kΩ

7414Al 8254

Page 14: TEMPORIZADOR

Circuito para contar el nCircuito para contar el núúmero de revoluciones de un motor de CDmero de revoluciones de un motor de CD

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

82548254

Motor de CD

10 kΩ220 Ω

Clk 0

L293 L293 PPI

8255

PPI8255

Bus de Datos

Z80 Z80

Out 0

INT

gate0

+5v

PPI8255

PPI8255

(½)L293B(½)L293B

1

2

IN1

IN2

EN1

74LS14T0

Circuito L293B doble puente” H”

Out1

Out2

Motor de CD

10 kΩ220 Ω

+5V

4.7 kΩ

8254CONTADOR 0

8254CONTADOR 0

CLK 0

+VS

GATE0

+5V

4.7 kΩ

OUT 0

alimentación del motor

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Page 15: TEMPORIZADOR

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

Contador2Contador2

Contador1Contador1

Contador0Contador0

Clk 1

CircuitoDe reloj del z80

CircuitoDe reloj del z80

Out 1

Encoder Encoder

L293BL293B

Z80

INT

Clk0 Gate0

Gate1

Out 0

PPI 8255

PPI 8255

TIMER 8254

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Programado en modo 0Programado en modo 0

Programado en modo 3Programado en modo 3No se usa No se usa No se usa

Tono de 1khz

fclk =2Mhz

Start

PA.7

PB.0PB.1PC.0

EsquemEsquemáático de la conexitico de la conexióón del 8254 con el z80 para la prn del 8254 con el z80 para la prááctica 9ctica 9EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

VS

A0

LAS DIRECCIONES SELECCIONADAS SON DE 84H A 87H

PB.1

INT

VCC

A1

PPI8255

PRACTICA NUM.9APLICACIONES DEL TIMER /CONTADOR 8254

A2

AL 8254

+5V

D1

Carlos Canto

L293

27

1015

19

361114

168

1A2A3A4A

1/2EN3/4EN

1Y2Y3Y4Y

VCC1VCC2

A3

741412

A0

PPI8255

A5

+5V

+5V

START

SPEAKER

D4

220

2N3904

3

2

1

A4

+5V

MOTOR CD

1 2

A1

A6

VCC

PA.7 D2

A2

2.7 K

A7

D3

IORD

A3

0

IOWR7414 12

A4

8254

87654321

22231920

21

9

11

10

151413

18

16

17

24

12

D0D1D2D3D4D5D6D7

RDWRA0A1

CS

CLK0

G0

OUT0

CLK1G1

OUT1

CLK2

G2

OUT2

VCC

GND

84H-87H

0 X

+5V

4.7 K

A5

0

CIRCUITO DE RELOJ DEL Z80

PB.0

SENSOR ÓPTICO

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

A6

BUS DE DIRECCIONES

0

10K

A7

1 X1

BUS DE DATOS

PC.0

Page 16: TEMPORIZADOR

Out 0

Out 1

Gate1

Final de conteo

Final de conteo

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Pita la bocina por 1 seg.Pita la bocina por 1 seg.

Tono de 1KHZ

1 segundo

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

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Inicio Inicio

Configurar PPI

Configurar PPI

Programar El 8254

Programar El 8254

Arranca motorArranca motorMotor giró

1000 vueltas?Out 0=alto?

Motor giró1000 vueltas?Out 0=alto?

Detener elmotor

Detener elmotor

iniciar pitido Bocina a 1khz

iniciar pitido Bocina a 1khz

Invertir girodel motor

Invertir girodel motor

Inicializar El 8254

Inicializar El 8254

Inicializar El 8254

Inicializar El 8254

Habilitar Interrupciones.

en modo1

Habilitar Interrupciones.

en modo1

Rehabilitar Interrupciones.

Rehabilitar Interrupciones.

No

Si

Ubica el Stack

Ubica el Stack

Si

Delay 1 segDelay 1 seg

Parar pitidoDe bocina

Parar pitidoDe bocina

RSIRSI

RETIRETI

CALL RSICALL RSI

AquAquíí el Z80 entra en un el Z80 entra en un estado HALT hasta que ocurra estado HALT hasta que ocurra la interrupcila interrupcióónn

Page 17: TEMPORIZADOR

Definición de los símbolos usados en el programaSTACK EQU 1000H ; Inicio del stackPORT_A EQU 80H ; dirección del puerto APORT_B EQU 81H ; dirección del puerto BPORT_C EQU 82H ; dirección del puerto C CTRL_PPI EQU 83H ; dirección del registro de control del PPI PAL_CTRL EQU 88H ; palabra de control del PPI el pto.Ch =entradaCONT_0 EQU 84H ; dirección del contador 0CONT_1 EQU 85H ; dirección del contador 1CTRL_TIM EQU 87H ; dirección del registro de control del 8254CONT_0_MOD0 EQU ; palabra de control para el contador 0, en modo 0 CONT_1_MOD3 EQU ; palabra de control para contador 1 en modo 3CONT_INICIAl_LSB EQU ; Byte menos significativo del valor de conteo inicialCONT_INICIAl_MSB EQU ; Byte menos significativo del valor de conteo inicialDIV_LSB EQU 0F0H ; Byte divisormenos significativo DIV_MSB EQU 07H ; Byte divisor más significativo

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

;UBICA EL STACKLD SP, STACK

; CONFIGUARCIÓN DEL PPILD A , PAL_CTRL ; Carga de palabra de control del PPIOUT (CTRL_PPI) , A

; PROGRAMACIÓN DEL TIMER 8254LD A , CONT_0_MOD0 ;Configura el contador 0 en modo 0OUT (CONT_0) , ALD A , CONT_1_MOD3 ; Configura contador 1 en modo 1OUT (CONT_1) , A

; INICIALIZACIÓN DEL TIMER 8254CALL INICIA_8254

; HABILITACIÓN DE LA INTERRUPCIONES Y SELECCIÓN DEL MODO1IE ; Habilita las interrupciones del Z80IM1 ; Selección del modo 1 de interrupciones

;ARRANCA EL MOTORLEER: IN A , (PTO_A) ;leer tecla start del puerto A

AND 80H ;enmascara bits no usadosJP NZ, LEER ;si no se oprimió la tecla vuelve a checarLD A, 01HOUT (PTO_B) , A ; si se oprimió la tecla , arranca el motor

HALT ; espera que ocurra la interrupción

EL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..

Page 18: TEMPORIZADOR

INICIA_8254 :;INICIALIZACIÓN DEL CONTADOR 0

LD A, CONT_INICIAL_LSB ;Carga el byte menos significativo del valor OUT (CONT_0) , A ; de conteo inicial al contador 0LD A, CONT_INICIAL_MSB ;Carga el byte más significativo del valor OUT (CONT_0) , A ; de conteo inicial al contador 0

;INICIALIZACIÓN DEL CONTADOR 1LD A , DIV_LSB ;Cargar al contador1 con el divisor de frecuenciaOUT (CONT_2) , A ; menos significativoLD A , DIV_MSB ; Cargar al contador1 con el divisor de frecuenciaOUT (CONT_2) , A ; más significativo

RET

Generador de señales en una IBM PCEL TIMER 8254EL TIMER 8254 MicroprocesadoresMicroprocesadores

Carlos E. Canto Quintal Carlos E. Canto Quintal M.CM.C..