El 8254 Programmable Interval Timer se utilizó por primera vez en el PC de IBM en 1981, según Gary Barr en Ingeniería Concept. En las computadoras de tipo 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 uno o dos chips de 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 integrado independiente . Divide una señal de entrada de 64.536 y también 36
Los siguientes programas de código del 8254 PIT ( Programmable Interval Timer ) para dividir una señal de entrada de 64,536 producir un 50 por ciento del ciclo de onda cuadrada deber. También divide la misma señal de entrada por 36 la producción de un 50 por ciento del ciclo de onda cuadrada deber
PIT_C0_M3 .... equ .... 36h ; . 8253 canal temporizador PIT 0 Modo 3
PIT_C1_M3 .... .... equ 77h ; 8253 PIT canal temporizador 1 Modo 3
TIMER0 .... equ .... 40h ... ; 8254 canal /contador a cero ( 0 ), la dirección del puerto
TIMER1 .... equ .... 41h ... ; 8254 canal /contador de un ( 1) puerto dirección
TIMER2 .... equ .... 42h ... , la dirección del puerto 8254 canal /contador de dos ( 2 ) (n /a )
modo_temporizador .... equ .... 43h ... ; 8254 control_port PIT de modo
TICS . ... equ .... 36H ....; 8254 valor para el contador 1 - valor BCD de 36 decimal
mov ... al, PIT_C0_M3 ....; carga time0 valor del modo < br . >
out ... modo_temporizador , al ... ; enviarlo a modo de 8,254 reg . - Puerto 43H
xor ... al, al ... ; cero al cabo , es decir, el valor del contador de 00
out ... TIMER0 , al .. , enviar LSB de div . contar, entonces
mov ... al, TICS ... ; cargar el valor del contador ( 36 decimal en formato BCD )
out ... TIMER1 , al .... , enviar LSB counter valor
xor ... al, al ....; cero MSB
ou ... TIMER1 , al ... ; enviar counter 1 valor MSB
< p > ; Hecho ! -
inicializar el valor del contador de 0 a 30d
MOV DX , COUNTER0
MOV AL, 30
FUERA DX , aL
inicializar el valor del contador de 0 a 256d
MOV DX , COUNTER0
MOV aL, 0
FUERA DX , AL
inicializar el valor del contador de 0 a 1010D
MOV DX , COUNTER0
MOV AX , 1010
FUERA DX , AL ; LSB
MOV aL, AH
FUERA DX , AL ; MSB
Inicializar el 8254
Set cOUNTER0 para reconocer el byte menos significativo solamente. Ajuste el 8254 para producir una onda cuadrada y poner el contador a binario ( 16 bits)
MOV DX , TCW
MOV AL, 00010110B , . Control de Word of
FUERA DX , AL
;
MOV DX , COUNTER0
MOV AL, 4H ; LSB
FUERA DX , AL