Post on 28-Jan-2016
11
Teclados.Teclados.
Teclados.Teclados.
1.1. Fundamentos físicos.Fundamentos físicos.2.2. Estructura y funcionamiento del teclado.Estructura y funcionamiento del teclado.3.3. Controlador de teclado.Controlador de teclado.4.4. Ejemplo de aplicación.Ejemplo de aplicación.
22
Fundamentos físicos.Fundamentos físicos.
Fundamentos físicos. Fundamentos físicos.
Funcionamiento básico de un tecladoFuncionamiento básico de un teclado
Decod. ColumnasDecod. Columnas
Circuito Circuito de de
ControlControl
Deco
d.
Fila
sD
eco
d.
Fila
sTeclaTecla
33
Tipos de pulsadores.Tipos de pulsadores.
De laminas(reed)De laminas(reed)
ReléRelé
ReedReed
ImánImán
PulsadorPulsador
NN
SS
MecánicoMecánico
ContactosContactosPulsadorPulsador
BobedillaBobedilla
ContactosContactos
PulsadorPulsador
CapacitivoCapacitivo
OsciladorOsciladorContactosContactos
PulsadorPulsador
AmplificadorAmplificador
Fundamentos físicos. Fundamentos físicos.
44
Tipos de pulsadores.Tipos de pulsadores.
De efecto HallDe efecto Hall
SalidaSalidaEntradaEntrada
PulsadorPulsador
Sonda detectoraSonda detectora
efecto Hallefecto Hall
Fundamentos físicos. Fundamentos físicos.
55
Perfil del teclado. Realimentación Perfil del teclado. Realimentación fisiológica.fisiológica.
InclinadoInclinado
HorizontalHorizontal
CurvadoCurvado
FF
DD
Sensación:Sensación:•TactilTactil
• Soft-touchSoft-touch•SonoraSonora
• ClickClick
Fundamentos físicos. Fundamentos físicos.
66
Los conectores del teclado.Los conectores del teclado.
11 33
2244 55
Pin Señal
1 Reloj
2 Datos
3 Reset
4 Masa
5 Vcc (+5 )
Conector tipo ATConector tipo AT
5-pin DIN 5-pin DIN
11
33
22
44
55 66
Conector tipo PS/2Conector tipo PS/2
Miniature 6-pin DINMiniature 6-pin DIN
Pin Señal
1 Datos
2 N/C
3 Masa
4 + 5 Vcc
5 Reloj
6 N/C
Fundamentos físicos. Fundamentos físicos.
77
Formatos de los teclados.Formatos de los teclados.
Teclado XTTeclado XT
Teclado AT (84 teclas)Teclado AT (84 teclas)
Fundamentos físicos. Fundamentos físicos.
88
Teclado Multifunción MF-II (101 teclas)Teclado Multifunción MF-II (101 teclas)
Formatos de los teclados.Formatos de los teclados.
Fundamentos físicos. Fundamentos físicos.
99
Códigos de exploración (Scan Codes).Códigos de exploración (Scan Codes).
• Pulsación tecla Pulsación tecla Generación código Generación código Scan o Scan o MakeMake
• Liberación tecla Liberación tecla Generación código Generación código BreakBreak
Fundamentos físicos. Fundamentos físicos.
1010
• Teclas normalesTeclas normales• Make/Brake code Make/Brake code (Press/Release code) (Press/Release code)
• Tecla PAUSETecla PAUSE • E1hE1h
• Teclas grises (MF-II)Teclas grises (MF-II)
y Alt-Gry Alt-Gr• E0hE0h• Make/Break/ Special codeMake/Break/ Special code
Fundamentos físicos. Fundamentos físicos.
1111
Estructura y funcionamiento de un Estructura y funcionamiento de un teclado.teclado.
AplicaciónAplicación
Controlador deControlador de
teclado (8042)teclado (8042)
Controlador deControlador de
interrupciones (8259)interrupciones (8259)
CPUCPU
(60h - 64h)(60h - 64h)
BIOSBIOS
(Int 16h)(Int 16h)
DOSDOS
(Int 21h)(Int 21h)
TecladoTeclado
87428742
00 Cod. MakeCod. Make
11 Cod. BrakeCod. Brake
BIOSBIOS
Manejador/DriverManejador/Driver
del tecladodel teclado
Vecto
r 09h
Vecto
r 09h
Pulsación teclaPulsación tecla
Buffer deBuffer de
tecladoteclado
ASCII -ScanASCII -Scan
Estructura y funcionamiento de un teclado.Estructura y funcionamiento de un teclado.
1212
Interfaz serie bidireccional (10 Kbits/seg)Interfaz serie bidireccional (10 Kbits/seg)
CLOCKCLOCK
DATADATA STOPSTOPSTARTSTART 00 11 22 33 44 55 66 77 PP
IdleIdle
IdleIdle
PCPCTecladoTeclado
KBD CLOCKKBD CLOCK
KBD DATAKBD DATALíneas bidireccionales (colector abierto) Líneas bidireccionales (colector abierto)
Estructura y funcionamiento de un teclado.Estructura y funcionamiento de un teclado.
La interfaz del teclado.La interfaz del teclado.
1313
PCPC TecladoTeclado
CLOCKCLOCK
DATADATA STOPSTOPSTARTSTART 00 11 22 33 44 55 66 77 PP
IdleIdle
IdleIdle
ACKACK
PCPC
Formato de los datos:Formato de los datos:• START = Bit de inicioSTART = Bit de inicio• DB0 ..7 = Bits de datosDB0 ..7 = Bits de datos• PAR = Bit de paridad imparPAR = Bit de paridad impar• STOP = Bit de StopSTOP = Bit de Stop• ACK = Bit de reconocimientoACK = Bit de reconocimiento
Estructura y funcionamiento de un teclado.Estructura y funcionamiento de un teclado.
1414
3.3. El controlador del teclado.3.3. El controlador del teclado.
Buff
er
Buff
er
En
trad
aEn
trad
aB
uff
er
Buff
er
Salid
aSalid
aR
egis
tro
Regis
tro
Contr
ol
Contr
ol
Regis
tro
Regis
tro
Est
ado
Est
ado
Puert
oPuert
oSalid
aSalid
aPuert
oPuert
oEntr
ada
Entr
ada
60h60h
60h60h
64h64h
64h64hRatón PS/2Ratón PS/2
TecladoTeclado
8042/8748042/87422
IRQ1IRQ1
El controlador del teclado.El controlador del teclado.
1515
El controlador del teclado: Registro de El controlador del teclado: Registro de Estado.Estado.
77 66 55 44 33 22 11 00
PARE: Error de paridadPARE: Error de paridad
TIMOUT: Error de ‘timeout’TIMOUT: Error de ‘timeout’AUXB: Datos de teclado o disp. auxiliarAUXB: Datos de teclado o disp. auxiliar
KEYL: Estado del tecladoKEYL: Estado del tecladoC/D: Comando o datoC/D: Comando o datoSYSF: Indicador del sistemaSYSF: Indicador del sistemaINPB: Estado del buffer de entradaINPB: Estado del buffer de entradaOUTB: Estado del buffer de salidaOUTB: Estado del buffer de salida
Registro de EstadoRegistro de Estado
El controlador del teclado.El controlador del teclado.
1616
El controlador del teclado: Puertos de El controlador del teclado: Puertos de entrada/salida.entrada/salida.
77 66 55 44 33 22 11 00
KBDO: Datos de salida para el tecladoKBDO: Datos de salida para el tecladoKCLK: Reloj del tecladoKCLK: Reloj del teclado
AUXB: Buffer de salida del disp. aux. llenoAUXB: Buffer de salida del disp. aux. llenoOUTB: Buffer de salida llenoOUTB: Buffer de salida llenoACLK: Reloj del disp. auxiliarACLK: Reloj del disp. auxiliarAXDO: Datos de salida del disp. aux.AXDO: Datos de salida del disp. aux.GA20 : Habilitar/deshabilitar A20GA20 : Habilitar/deshabilitar A20SYSR: Reset del procesadorSYSR: Reset del procesador
Puerto de SalidaPuerto de Salida
77 66 55 44 33 22 11 00
ReservadoReservadoC/B: Monitor color/MonocromoC/B: Monitor color/Monocromo
AUXD : Entrada de datos desde disp. aux.AUXD : Entrada de datos desde disp. aux.KBDI: Entrada de datos desde el tecladoKBDI: Entrada de datos desde el teclado
Puerto de EntradaPuerto de Entrada
KBLK: Bloqueo del tecladoKBLK: Bloqueo del teclado
El controlador del teclado.El controlador del teclado.
1717
Programación del controlador del teclado.Programación del controlador del teclado.
Acceso al buffer de Acceso al buffer de salidasalida
INICIOINICIOINICIOINICIO
Leer registro deLeer registro deestadoestado
Leer registro deLeer registro deestadoestado
¿ Bit 0 = 1 ?¿ Bit 0 = 1 ?¿ Bit 0 = 1 ?¿ Bit 0 = 1 ?Bit 0 = 0Bit 0 = 0
NONO
Leer datoLeer dato(Puerto 60h)(Puerto 60h)
Leer datoLeer dato(Puerto 60h)(Puerto 60h)
Bit 0 = 1Bit 0 = 1SISI
FINFINFINFIN
INICIOINICIOINICIOINICIO
Leer registro deLeer registro deestadoestado
Leer registro deLeer registro deestadoestado
¿ Bit 1 = 1 ?¿ Bit 1 = 1 ?¿ Bit 1 = 1 ?¿ Bit 1 = 1 ?
Bit 1 = Bit 1 = 00
Escribir comandoEscribir comando(Puerto 64h)(Puerto 64h)
Escribir comandoEscribir comando(Puerto 64h)(Puerto 64h)
NONOBit 1 = 1Bit 1 = 1
SISI
FINFINFINFIN
Programación del controladorProgramación del controlador
El controlador del teclado.El controlador del teclado.
1818
Programación del controlador del teclado.Programación del controlador del teclado.
INICIOINICIOINICIOINICIO
Leer registro deLeer registro deestadoestado
Leer registro deLeer registro deestadoestado
Bit 1 =1Bit 1 =1 Bit 1 =1Bit 1 =1SISI
Leer registro deLeer registro deestadoestado
Leer registro deLeer registro deestadoestado
Bit 0 = 1Bit 0 = 1Bit 0 = 1Bit 0 = 1NONO Leer datoLeer dato
(puerto 60h)(puerto 60h)Leer datoLeer dato
(puerto 60h)(puerto 60h)
SISI
FINFINFINFIN
Escribir comandoEscribir comando(Puerto 60h)(Puerto 60h)
Escribir comandoEscribir comando(Puerto 60h)(Puerto 60h)
NONO
El controlador del teclado.El controlador del teclado.
1919
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al controlador (8742).Comandos dirigidos al controlador (8742).
Comando Descripción
a7h Deshabilitar dispositivoauxiliar
Deshabilita el dispositivo auxiliar
a8h Habilitar dispositivo auxiliar Habilita el dispositivo auxiliar
a9h Comprobar interfaz aldispositivo auxiliar
Comprueba el interfaz hacia el dispositivoauxiliar devolviendo su estado en el buffer desalida.
(00h= no error, 01= linea del reloj baja, 02h=linea de reloj alta, 03h= linea de datos alta, 04h=linea de datos baja, ffh= no hay dispositivoauxiliar)
aah Auto-Test El controlador del teclado ejecuta un auto test yescribe 55h en el buffer de salida si no sedetecta ningún error.
abh Comprobar interfaz de teclado Comprueba el interfaz hacia el tecladodevolviendo su estado en el buffer de salida.
(00h= no error, 01= linea del reloj baja, 02= lineade reloj alta, 03h= linea de datos alta, 04h= lineade datos baja, ffh= error general)
adh Deshabilitar teclado Deshabilita el teclado.
aeh Habilitar teclado Habilita el teclado
El controlador del teclado.El controlador del teclado.
2020
Comando Descripción
c0h Leer puerto de entrada Lee el puerto de entrada y transfiere sucontenido al buffer de salida
d0h Leer puerto de salida Lee el puerto de salida y transfiere sucontenido al buffer de salida
d1h Escribir puerto de salida Escribe el byte siguiente en el puerto desalida
d2h Escribir buffer de salidadel teclado
Escribe el byte siguiente en el puerto desalida y pone el bit AUXB del registro deestado a 0
d3h Escribir buffer de salidadel dispositivo auxiliar
Escribe el byte siguiente en el puerto desalida y pone el bit AUXB del registro deestado a 1
d4h Escribir en el dispositivoauxiliar
Manda el siguiente byte hacia el dispositivoauxiliar
e0h Leer y comprobar el puertode entrada
Lee el test del puerto de entrada y escribe t0en el bit 0 y t1 en el bit 1 del buffer de salida
El controlador del teclado.El controlador del teclado.
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al controlador (8742).Comandos dirigidos al controlador (8742).
2121
Código Comando Descripción
edh Encender/apagar LEDs Enciende o apaga los LEDs del teclado (A partirMFII)
eeh Eco Devuelve el byte eeh
f0h Seleccionar/identificarcódigos scan
Selecciona un juego de códigos de exploracióne identifica el actual juego de códigos.
f2h Identificar el teclado Identifica el teclado(ACK=AT,ACK+abh+41h=MFII.
f3h Ajustar la tasa derepetición/retardo.
Ajustar la tasa de repetición/retardo del teclado.
f4h Habilitar teclado Habilita el teclado.
f5h Deshabilitar/standar Selecciona los valores standar y deshabilita elteclado
f6h Habilitar/standar Selecciona los valores standar y habilita elteclado
feh Reenviar Reenviar el último carácter enviado alcontrolador del teclado.
ffh Reset Reinicializa el teclado internamente y ejecuta elBAT
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al procesador (8042).Comandos dirigidos al procesador (8042).
El controlador del teclado.El controlador del teclado.
2222
DEL1,DEL0 : Retardo en milisegundos 00 = 250 ms 01 = 500 ms 10 = 750 ms 11 = 1000 ms RAT 4..0 : Tasa de repetición en caracteres por segundo. 00000=30.0 00001=26.7 00010=24.0 00011=21.8 00100=20.0 00101=18.5 00110=17.1 00111=16.0
01000=15.0 01001=13.3 01010=12.0 01011=10.9 01100=10.0 01101=9.2 01110=8.5 01111=8.0
10000=7.5 10001=6.7 10010=6.0 10011=5.5 10100=5.0 10101=4.6 10110=4.3 10111=4.0
11000=3.7 11001=3.3 11010=3.0 11011=2.7 11100=2.5 11101=2.3 11110=2.1 11111=2.0
Ajustar el factor de repetición del teclado (Código f3h ) : Con este Ajustar el factor de repetición del teclado (Código f3h ) : Con este comando podremos ajustarel factor de repetición del teclado y también comando podremos ajustarel factor de repetición del teclado y también el tiempo de espera hasta que comienzan las repeticiones. Después de el tiempo de espera hasta que comienzan las repeticiones. Después de pasar el comando (f3h) el teclado responde con ACK y espera un byte pasar el comando (f3h) el teclado responde con ACK y espera un byte de datos cuya estructura se puede apreciar en la figura X.de datos cuya estructura se puede apreciar en la figura X.
00 DEL 1DEL 1 DEL 0DEL 0 RAT 4RAT 4 RAT 3RAT 3 RAT 2RAT 2 RAT 1RAT 1 RAT 0RAT 0
7 6 5 4 3 2 1 07 6 5 4 3 2 1 0
El controlador del teclado.El controlador del teclado.
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al procesador (8042).Comandos dirigidos al procesador (8042).
2323
Encender/apagar leds ( Código edh ): Tras este comando, el teclado Encender/apagar leds ( Código edh ): Tras este comando, el teclado responde con ACK y espera que le mandemos la nueva disposición de LEDS responde con ACK y espera que le mandemos la nueva disposición de LEDS mediante un byte indicador a través del buffer de entradamediante un byte indicador a través del buffer de entrada
Identificar el teclado(Código f2h): Este comando identifica el tipo de teclado Identificar el teclado(Código f2h): Este comando identifica el tipo de teclado que el PC tiene conectado. Si el teclado conectado es un XT, no responderá que el PC tiene conectado. Si el teclado conectado es un XT, no responderá nunca y por tanto ocurrirá un error de timeout. Un teclado AT retorna el nunca y por tanto ocurrirá un error de timeout. Un teclado AT retorna el código ACK y un teclado MF-II retorna ACK seguido de dos bytes con valores código ACK y un teclado MF-II retorna ACK seguido de dos bytes con valores abh, 41h. abh, 41h.
CPLS = Led para el bloqueo de mayusculas.CPLS = Led para el bloqueo de mayusculas.NUML = Led para el bloqueo numérico.NUML = Led para el bloqueo numérico.SCRL = Led para el bloqueo de desplazamiento.SCRL = Led para el bloqueo de desplazamiento.
00 00 00 00 00 CPLSCPLS NUM LNUM L SCRLSCRL
7 6 5 4 3 2 1 07 6 5 4 3 2 1 0
Byte IndicadorByte Indicador
El controlador del teclado.El controlador del teclado.
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al procesador (8042).Comandos dirigidos al procesador (8042).
2424
Código Significado
00h Error de desbordamiento
ffh Error de tecla
41abh Identificador del teclado MFII
aah BAT completado
eeh Eco tras comando de eco
fah ACK Reconocimiento
fch Error en el BAT
feh Petición de reenvio
1h-58h Códigos make-break de las teclas
El controlador del teclado.El controlador del teclado.
Programación del controlador del teclado. Programación del controlador del teclado. Comandos dirigidos al procesador (8042).Comandos dirigidos al procesador (8042).
2525
Programación del teclado:Programación del teclado:
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
PU
NT
PU
NT
LEC
TLE
CT
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
PU
NT
PU
NT
ES
CR
ES
CR
40
:1A
40
:1A
40
:1C
40
:1C
40
:1E
40
:1E
BUFFERBUFFER
TECLADOTECLADO
40
:3D
40
:3D
32 bytes32 bytes
BIOS del teclado: Rutina de interrupciónBIOS del teclado: Rutina de interrupción
Teclas normalesTeclas normales• ASCIIASCII• Make codeMake code
Teclas compuestasTeclas compuestas • 00h00h• Special codeSpecial code
Teclas grises (MF-II)Teclas grises (MF-II)
y Alt-Gry Alt-Gr• E0hE0h• Make code/ Special codeMake code/ Special code
El controlador del teclado.El controlador del teclado.
2626
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
PU
NT
PU
NT
LEC
TLE
CT
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
PU
NT
PU
NT
ES
CR
ES
CR
40
:1A
40
:1A
40
:1C
40
:1C
40
:1E
40
:1E
P_LECT < P_ESCP_LECT < P_ESC
ESTADO NORMALESTADO NORMAL
P_LECT +1 = P_ESCP_LECT +1 = P_ESC
BUFFER LLENOBUFFER LLENO
P_LECT = P_ESCP_LECT = P_ESC
BUFFER VACIOBUFFER VACIOLIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
PU
NT
PU
NT
LEC
TLE
CT
PU
NT
PU
NT
ES
CR
ES
CR
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
LIB
RE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
PU
NT
PU
NT
LEC
TLE
CT
PU
NT
PU
NT
ES
CR
ES
CR
LIB
RE
LIB
RE
LIB
RE
LIB
RE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
AS
CII
AS
CII
MA
KE
MA
KE
40
:3D
40
:3D
32 bytes32 bytes
El controlador del teclado.El controlador del teclado.
Programación del teclado:Programación del teclado:
2727
Variables de la BIOS para gestión del Variables de la BIOS para gestión del teclado.teclado.
77 66 55 44 33 22 11 00
Modo inserción activoModo inserción activo
Bloq Mayús activoBloq Mayús activoBloq. Num. activoBloq. Num. activo
Bloq Despl. (Scroll) activoBloq Despl. (Scroll) activoTecal < Alt > pulsadaTecal < Alt > pulsadaTecla < Ctrl > pulsadaTecla < Ctrl > pulsadaTecla < Shift > derecha pulsadaTecla < Shift > derecha pulsadaTecla < Shift > izquierda pulsadaTecla < Shift > izquierda pulsada
Dirección = 40:17Dirección = 40:17
El controlador del teclado.El controlador del teclado.
2828
77 66 55 44 33 22 11 00
Tecla < Insert > pulsadaTecla < Insert > pulsada
Tecla < Bloq Mayús > pulsadaTecla < Bloq Mayús > pulsadaTecla < Bloq. Num. > pulsadaTecla < Bloq. Num. > pulsada
Tecla < Bloq Despl. (Scroll) > pulsadaTecla < Bloq Despl. (Scroll) > pulsadaModo pausa activoModo pausa activoTecla < SysReq > pulsadaTecla < SysReq > pulsadaTecla < ALT > izquierda pulsadaTecla < ALT > izquierda pulsadaTecla < Ctrl > izquierda pulsadaTecla < Ctrl > izquierda pulsada
Dirección = 40:18Dirección = 40:18
El controlador del teclado.El controlador del teclado.
Variables de la BIOS para gestión del Variables de la BIOS para gestión del teclado.teclado.
2929
Funciones del DOS para acceso al teclado (Int Funciones del DOS para acceso al teclado (Int 21h).21h).
FUNCION 01h:FUNCION 01h: Entrada de caracteres con eco Entrada de caracteres con eco
Esta función lee un carácter del buffer de teclado de la BIOS y Esta función lee un carácter del buffer de teclado de la BIOS y visualiza el carácter por medio del dispositivo de salida estándar. visualiza el carácter por medio del dispositivo de salida estándar.
Entrada:Entrada: AH = 01hAH = 01hSalida:Salida: AL = Código Ascii / 00h / Código de exploraciónAL = Código Ascii / 00h / Código de exploración
FUNCIÓN 06h:FUNCIÓN 06h: Entrada de caracteres desde el dispositivo de entrada Entrada de caracteres desde el dispositivo de entrada estándarestándar
Con esta función se pueden enviar un carácter a la salida estándar o Con esta función se pueden enviar un carácter a la salida estándar o recibir un carácter desde la entrada estándarrecibir un carácter desde la entrada estándar
Entrada:Entrada: AH = 06h AH = 06h DL = ffh Leer un carácter.DL = ffh Leer un carácter.00h – feh Enviar este caracter00h – feh Enviar este caracter
Salida: Durante la salida de caracteres no hay datos de salida.Salida: Durante la salida de caracteres no hay datos de salida. AL = Código asccii / 00h / Código de exploraciónAL = Código asccii / 00h / Código de exploración
Indicador de cero = 1 carácter leídoIndicador de cero = 1 carácter leído 0 carácter no disponible0 carácter no disponible
El controlador del teclado.El controlador del teclado.
3030
FUNCIÓN 07h:FUNCIÓN 07h: Entrada de caracteres directa, sin salida Entrada de caracteres directa, sin salida
Esta función intenta leer un carácter desde el buffer de teclado de la Esta función intenta leer un carácter desde el buffer de teclado de la BIOS y espera hasta que haya un carácter disponible. Una vez leído el BIOS y espera hasta que haya un carácter disponible. Una vez leído el código no es enviado a la salida estándar. código no es enviado a la salida estándar.
Entrada:Entrada: AH = 07hAH = 07hSalida:Salida: AL = Carácter leídoAL = Carácter leído
FUNCIÓN 08h:FUNCIÓN 08h: Entrada de caracteres con chequeo. No hay salida Entrada de caracteres con chequeo. No hay salida
Esta función es similar a la función 07h con una diferencia. El carácter Esta función es similar a la función 07h con una diferencia. El carácter es chequeado por el sistema operativo y si detecta un Control-C se es chequeado por el sistema operativo y si detecta un Control-C se llama a la interrupción 23h.llama a la interrupción 23h.
El controlador del teclado.El controlador del teclado.
Funciones del DOS para acceso al teclado Funciones del DOS para acceso al teclado (Int 21h).(Int 21h).
3131
Funciones de la BIOS para acceso al teclado Funciones de la BIOS para acceso al teclado (Int 13h).(Int 13h).
FUNCIÓN 4fh:FUNCIÓN 4fh: Acceso al teclado Acceso al teclado
Esta función es llamada por la rutina de servicio de la Esta función es llamada por la rutina de servicio de la interrupción 09h cada vez que se pulsa una tecla. Retorna el interrupción 09h cada vez que se pulsa una tecla. Retorna el código de exploración de la tecla pulsada en AL.código de exploración de la tecla pulsada en AL.
Entrada:Entrada: AHAH = 4fh= 4fhSalida:Salida: ALAL = código de exploración= código de exploraciónIndicador de acarreo = 0/1.Indicador de acarreo = 0/1.
FUNCIÓN 85h:FUNCIÓN 85h: Acceso al teclado Acceso al teclado
El manejador de la interrupción de teclado llama a esta El manejador de la interrupción de teclado llama a esta función al pulsar o liberar la combinación de teclas [Alt] + función al pulsar o liberar la combinación de teclas [Alt] + [SysReq] en un teclado MF-II..[SysReq] en un teclado MF-II..
Entrada:Entrada: AH = 85hAH = 85hAL = 00h si se ha pulsado [SysReq]AL = 00h si se ha pulsado [SysReq] = 01h si se ha liberado [SysReq]= 01h si se ha liberado [SysReq]
Salida : AH = 00h Indicador de acarreo = 0Salida : AH = 00h Indicador de acarreo = 0
El controlador del teclado.El controlador del teclado.
3232
FUNCIÓN 00h:FUNCIÓN 00h: Leer próximo carácter Leer próximo carácter
Esta función lee el carácter del buffer de teclado apuntado por el puntero de Esta función lee el carácter del buffer de teclado apuntado por el puntero de lectura y actualiza dicho puntero. Si el teclado esta vacío la función espera hasta lectura y actualiza dicho puntero. Si el teclado esta vacío la función espera hasta que se introduzca un nuevo carácterque se introduzca un nuevo carácter. .
Entrada:Entrada: AH = 00hAH = 00hSalida :Salida : AL = Código ASCII de la tecla/Cero(Si es un carácter AL = Código ASCII de la tecla/Cero(Si es un carácter especial)especial)
AH = Código de exploración de la teclaAH = Código de exploración de la tecla
FUNCIÓN 01h:FUNCIÓN 01h: ¿Hay caracteres en el buffer de teclado? ¿Hay caracteres en el buffer de teclado?
Esta función determina si hay algún carácter en el buffer de teclado. En caso Esta función determina si hay algún carácter en el buffer de teclado. En caso afirmativo entrega el carácter a la función invocadora, pero no actualiza el buffer afirmativo entrega el carácter a la función invocadora, pero no actualiza el buffer puntero de lectura,puntero de lectura, Entrada:Entrada: AHAH = 01h= 01hSalida :Salida : Indicador de cero = 0 : No hay caracteres en el buffer Indicador de cero = 0 : No hay caracteres en el buffer de tecladode teclado
Indicador de cero = 1 : Hay un carácter disponibleIndicador de cero = 1 : Hay un carácter disponible AL = Código ASCII / CeroAL = Código ASCII / Cero
AH = Código de exploración de la teclaAH = Código de exploración de la tecla
Funciones de la BIOS para acceso al Funciones de la BIOS para acceso al teclado teclado (Int 16h).(Int 16h).
El controlador del teclado.El controlador del teclado.
3333
FUNCIÓN 02h:FUNCIÓN 02h: Lee el primer byte de estado de las teclas de cambio del Lee el primer byte de estado de las teclas de cambio del tecladoteclado
Esta función accede a la posición 40:17 del área de datos de la Esta función accede a la posición 40:17 del área de datos de la BIOS, retornando el byte allí almacenado en el registro AL. La BIOS, retornando el byte allí almacenado en el registro AL. La estructura de dicho byte se muestra en la figura X.estructura de dicho byte se muestra en la figura X.
Entrada:Entrada: AH = 02hAH = 02hSalida :Salida : AL = Byte de estadoAL = Byte de estado
FUNCIÓN 03h:FUNCIÓN 03h: Ajustar el factor de repetición de las teclas Ajustar el factor de repetición de las teclas
Esta función modifica la frecuencia de repetición de las teclas, así Esta función modifica la frecuencia de repetición de las teclas, así como el tiempo que hay que tener pulsada la tecla para que como el tiempo que hay que tener pulsada la tecla para que comiencen las repeticiones, en teclados AT y MF-II. comiencen las repeticiones, en teclados AT y MF-II.
Entrada:Entrada: AH = 03hAH = 03hBH = Retardo hasta que ocurre la repeticiónBH = Retardo hasta que ocurre la repeticiónBL = Factor o frecuencia de repeticiónBL = Factor o frecuencia de repetición
Salida :Salida : No tiene No tiene
El controlador del teclado.El controlador del teclado.
Funciones de la BIOS para acceso al Funciones de la BIOS para acceso al teclado teclado (Int 16h).(Int 16h).
3434
FUNCIÓN 05h:FUNCIÓN 05h: Simula la pulsación de una tecla Simula la pulsación de una tecla
Esta función escribe un código ASCII y su correspondiente código de exploración Esta función escribe un código ASCII y su correspondiente código de exploración en el buffer de teclado. Actualiza el puntero de escrituraen el buffer de teclado. Actualiza el puntero de escritura..
Entrada:Entrada: AH = 05hAH = 05hCH = Código de exploración de la teclaCH = Código de exploración de la teclaCL = Código ASCII de la teclaCL = Código ASCII de la tecla
Salida :Salida : AL = 00h No hay errorAL = 00h No hay errorAL = 01h Buffer de teclado lleno, no se puede añadir AL = 01h Buffer de teclado lleno, no se puede añadir
el carácterel carácter
FUNCIÓN 10h:FUNCIÓN 10h: Lee un carácter del teclado extendido Lee un carácter del teclado extendido
Esta función lee un carácter desde el teclado extendido MF-II. La función es Esta función lee un carácter desde el teclado extendido MF-II. La función es similar a la 00h, pero soporta los nuevos códigos de las teclas de función [F11],similar a la 00h, pero soporta los nuevos códigos de las teclas de función [F11],[F12] y las nuevas teclas de cursor, cuyos códigos de exploración van precedidos [F12] y las nuevas teclas de cursor, cuyos códigos de exploración van precedidos del código e0h. del código e0h.
Entrada:Entrada: AH = 10hAH = 10hSalida :Salida : AH = Código de exploración de la teclaAH = Código de exploración de la tecla
AL = Código ASCII / 0 / e0hAL = Código ASCII / 0 / e0h
El controlador del teclado.El controlador del teclado.
Funciones de la BIOS para acceso al Funciones de la BIOS para acceso al teclado teclado (Int 16h).(Int 16h).
3535
FUNCIÓN 11h:FUNCIÓN 11h: Determina el estado del buffer de teclado en un teclado Determina el estado del buffer de teclado en un teclado MF-IIMF-II
Esta función es similar a la 01h, pero soporta los códigos del teclado Esta función es similar a la 01h, pero soporta los códigos del teclado ampliado. Cuando se el carácter corresponde a una de las teclas ampliado. Cuando se el carácter corresponde a una de las teclas ampliadas se retorna e0h para diferenciarlas del resto.ampliadas se retorna e0h para diferenciarlas del resto.
Entrada:Entrada: AHAH = 11h= 11hSalida :Salida : Indicador de cero = 0 : No hay caracteres en Indicador de cero = 0 : No hay caracteres en el buffer el buffer
Indicador de cero = 1 : Hay un carácter Indicador de cero = 1 : Hay un carácter disponibledisponible
AL = Código ASCII / Cero / e0hAL = Código ASCII / Cero / e0hAH = Código de exploración de la teclaAH = Código de exploración de la tecla
FUNCIÓN 12h:FUNCIÓN 12h: Lee los bytes de estado asociados a las teclas < SIFHT Lee los bytes de estado asociados a las teclas < SIFHT >>
Esta función accede las posiciones 40:17 y 40:18 para leer los dos bytes Esta función accede las posiciones 40:17 y 40:18 para leer los dos bytes de estado asociados a las teclas de cambio. Es similar a la función 02h, de estado asociados a las teclas de cambio. Es similar a la función 02h, pero esta permite leer también información relacionada con el teclado pero esta permite leer también información relacionada con el teclado ampliado.ampliado.
Entrada:Entrada: AH = 12hAH = 12hSalida :Salida : AH = Segundo byte de estado AH = Segundo byte de estado
AL = Primer byte de estado AL = Primer byte de estado El controlador del teclado.El controlador del teclado.
Funciones de la BIOS para acceso al Funciones de la BIOS para acceso al teclado teclado (Int 16h).(Int 16h).