Tecnología

Inicio

8254 Programas de ejemplo PIT

8254 Programas de ejemplo PIT


El temporizador de intervalos programable 8254 se utilizó por primera vez en el PC de IBM en 1981 según Gary Barr al concepto de ingeniería. En los ordenadores de estilo de IBM, que funciona como el reloj del sistema. Con las mejoras en los componentes electrónicos, las funciones del conjunto de chips se han combinado en una o dos chips LSI (Large Scale Integrated). A pesar de que el temporizador de intervalo programable 8254 se diseñó y se distribuye durante los primeros PC de IBM originalmente, todavía está disponible hoy en día como un circuito autónomo integrado.

Dividir una señal de entrada 64536 y también 36

Los siguientes programas de código del 8254 PIT (temporizador de intervalos programable) para dividir una señal de entrada 64536 que produce una onda cuadrada de ciclo de trabajo del 50 por ciento. También divide la misma señal de entrada en un 36 por producir una onda cuadrada de ciclo de trabajo del 50 por ciento.

PIT_C0_M3 .... .... equ 36h; 8253 PIT canal de cronometraje 0 Modo 3

PIT_C1_M3 .... .... equ 77h; 8253 PIT canal 1 del temporizador modo 3

TIMER0 .... .... equ 40h ...; 8254 canales / contador (0) dirección de puerto cero

CRONOM1 .... .... equ 41h ...; 8254 canales / contador de una (1) dirección de puerto

TIMER2 .... .... equ 42h ...; 8254 canales / contador de dos (2) la dirección del puerto (n / a)

Modo_temporizador .... .... equ 43h ...; 8254 control_port PIT para el modo

TICS .... equ .... .... 36H; 8254 el valor para el contador 1 - valor BCD de 36 decimales.

mov ... al, PIT_C0_M3 ....; valor de modo de carga TIME0

fuera ... modo_temporizador, col ...; enviarlo a 8254 reg modo. - 43H puerto

xor ... col, col ...; cero fuera al; es decir, el valor del contador de 00

fuera ... TIMER0, al ..; enviar LSB del div. contar, a continuación,

mov ... col, tics ...; cargar el valor del contador (36 decimal en formato BCD)

fuera ... CRONOM1, col ....; enviar LSB valor del contador

xor ... col, col ....; cero MSB

ou ... CRONOM1, col ...; enviar el contador 1 valor MSB

;¡¡Hecho!! -

Inicializar el valor del contador de 0 a 30d

MOV DX, COUNTER0

MOV AL, 30

OUT DX, AL

Inicializar el valor del contador de 0 a 256D

MOV DX, COUNTER0

MOV AL, 0

OUT DX, AL

Inicializar el valor del contador de 0 a 1010D

MOV DX, COUNTER0

MOV AX, 1010

DX OUT, AL; LSB

MOV AL, AH

OUT DX, AL; MSB

Inicializar el 8254

Conjunto Counter0 reconocer el byte menos significativo solamente. Ajuste el 8254 para producir una onda cuadrada y poner el contador a binarios (16 bits).

MOV DX, TCW

MOV AL, 00010110B; Código de control

OUT DX, AL

;

MOV DX, COUNTER0

MOV AL, 4H; LSB

OUT DX, AL