-
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