1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3....

35
1 Teclados. Teclados. Teclados. Teclados. Fundamentos físicos. Fundamentos físicos. Estructura y funcionamiento del teclad Estructura y funcionamiento del teclad Controlador de teclado. Controlador de teclado. Ejemplo de aplicación. Ejemplo de aplicación.

Transcript of 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3....

Page 1: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 2: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. 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

Page 3: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 4: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 5: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 6: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 7: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 8: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 9: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 10: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 11: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 12: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 13: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 14: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 15: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 16: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 17: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 18: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 19: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 20: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 21: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 22: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 23: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 24: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 25: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 26: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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:

Page 27: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 28: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 29: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 30: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 31: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 32: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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.

Page 33: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 34: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).

Page 35: 1 Teclados. Teclados. 1. Fundamentos físicos. 2. Estructura y funcionamiento del teclado. 3. Controlador de teclado. 4. Ejemplo de aplicación.

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).