Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. 2. 3. 4. Fundamentos fsicos. Estructura y funcionamiento del teclado. Controlador de teclado. Ejemplo de aplicacin.
3. Teclados.
Circuito de Control
Decod. Filas
Tecla
Tipos de pulsadores.
Pulsador Contactos Pulsador Rel Reed
N S
Imn
Mecnico
De laminas(reed)
Pulsador
Pulsador
Bobedilla
3.1. Fundamentos fsicos.
Capacitivo
Perifricos e Interfaces , 3 ITIS
3
Tipos de pulsadores.
Pulsador
Entrada
Salida
De efecto Hall
Inclinado
D
Horizontal
Curvado
3 5
Pin 1 2 3 4 5 6
Teclado XT
Pulsacin tecla Generacin cdigo Make Liberacin tecla Generacin cdigo Break
Teclas normales
Teclas grises (MF-II) E0h y Alt-Gr Make/Break/ Special code Tecla PAUSE E1h
Perifricos e Interfaces , 3 ITIS
10
(60h - 64h)
Buffer de teclado
BIOS (Int 16h) DOS (Int 21h)
CPU
Aplicacin
11
Teclado
CLOCK DATA
Idle Idle START
PC
STOP
12
PC
CLOCK DATA
Idle
Teclado
Idle START
STOP
ACK
PC
13
60h
8042/8742
Buffer Salida
60h
Puerto Salida
Registro Control
64h
Teclado
Puerto Entrada
Registro Estado
64h IRQ1
Ratn PS/2
14
Registro de Estado
OUTB: Estado del buffer de salida INPB: Estado del buffer de entrada SYSF: Indicador del sistema C/D: Comando o dato KEYL: Estado del teclado
AUXB: Datos de teclado o disp. auxiliar TIMOUT: Error de timeout PARE: Error de paridad
15
Puerto de Entrada
KBDI: Entrada de datos desde el teclado AUXD : Entrada de datos desde disp. aux. Reservado C/B: Monitor color/Monocromo KBLK: Bloqueo del teclado
7 6 5 4 3 2 1 0
Puerto de Salida
SYSR: Reset del procesador GA20 : Habilitar/deshabilitar A20 AXDO: Datos de salida del disp. aux. ACLK: Reloj del disp. auxiliar OUTB: Buffer de salida lleno AUXB: Buffer de salida del disp. aux. lleno KCLK: Reloj del teclado KBDO: Datos de salida para el teclado
16
SI Bit 0 = 1
Bit 1 = 1
NO Bit 1 = 0
SI Bit 1 =1
NO
Bit 0 = 1
18
aah
Auto-Test
abh
Comprobar interfaz de teclado Comprueba el interfaz hacia el teclado devolviendo su estado en el buffer de salida. (00h= no error, 01= linea del reloj baja, 02= linea de reloj alta, 03h= linea de datos alta, 04h= linea de datos baja, ffh= error general) Deshabilitar teclado Habilitar teclado Deshabilita el teclado. Habilita el teclado
adh aeh
19
d3h
d4h e0h
Leer y comprobar el puerto Lee el test del puerto de entrada y escribe t0 de entrada en el bit 0 y t1 en el bit 1 del buffer de salida
20
21
DEL 1
DEL 0
RAT 4
RAT 3
RAT 2
RAT 1
RAT 0
11 = 1000 ms
22
Byte Indicador
7 6 5 4 3 2 1 0
CPLS
NUM L
SCRL
CPLS = Led para el bloqueo de mayusculas. NUML = Led para el bloqueo numrico. SCRL = Led para el bloqueo de desplazamiento.
Identificar el teclado(Cdigo f2h): Este comando identifica el tipo de teclado 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 cdigo ACK y un teclado MF-II retorna ACK seguido de dos bytes con valores abh, 41h.
23
Cdigo 00h ffh 41abh aah eeh fah fch feh 1h-58h
Significado Error de desbordamiento Error de tecla Identificador del teclado MFII BAT completado Eco tras comando de eco ACK Reconocimiento Error en el BAT Peticin de reenvio Cdigos make-break de las teclas
24
32 bytes
LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE MAKE MAKE MAKE ASCII LIBRE LIBRE ASCII ASCII LIBRE
BUFFER TECLADO
PUNT
LIBRE
LIBRE
PUNT
ESCR
LECT
25
PUNT PUNT LECT PUNT ESCR LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE ASCII MAKE ASCII MAKE ASCII MAKE ASCII MAKE ASCII LIBRE LIBRE LIBRE LIBRE LIBRE MAKE ASCII MAKE ASCII MAKE MAKE ASCII MAKE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE
PUNT
LECT PUNT ESCR LIBRE ASCII MAKE ASCII MAKE ASCII MAKE LIBRE LIBRE ASCII MAKE ASCII LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE LIBRE ESCR PUNT
32 bytes
40:3D
Direccin = 40:17
Tecla < Shift > izquierda pulsada Tecla < Shift > derecha pulsada Tecla < Ctrl > pulsada Tecal < Alt > pulsada Bloq Despl. (Scroll) activo
Bloq. Num. activo Bloq Mays activo Modo insercin activo
27
Direccin = 40:18
Tecla < Ctrl > izquierda pulsada Tecla < ALT > izquierda pulsada Tecla < SysReq > pulsada Modo pausa activo Tecla < Bloq Despl. (Scroll) > pulsada
Tecla < Bloq. Num. > pulsada Tecla < Bloq Mays > pulsada Tecla < Insert > pulsada
28
Esta funcin lee un carcter del buffer de teclado de la BIOS y visualiza el carcter por medio del dispositivo de salida estndar.
Entrada: Salida: AH = 01h AL = Cdigo Ascii / 00h / Cdigo de exploracin
FUNCIN 06h: Entrada de caracteres desde el dispositivo de entrada estndar Con esta funcin se pueden enviar un carcter a la salida estndar o recibir un carcter desde la entrada estndar
Entrada:
AH = 06h DL = ffh Leer un carcter. 00h feh Enviar este caracter Salida: Durante la salida de caracteres no hay datos de salida. AL = Cdigo asccii / 00h / Cdigo de exploracin Indicador de cero = 1 carcter ledo 0 carcter no disponible
3.3. El controlador del teclado. Perifricos e Interfaces , 3 ITIS
29
FUNCIN 08h: Entrada de caracteres con chequeo. No hay salida Esta funcin es similar a la funcin 07h con una diferencia. El carcter es chequeado por el sistema operativo y si detecta un Control-C se llama a la interrupcin 23h.
30
Entrada: AH = 00h Salida : AL = Cdigo ASCII de la tecla/Cero(Si es un carcter especial) AH = Cdigo de exploracin de la tecla FUNCIN 01h: Hay caracteres en el buffer de teclado?
Esta funcin determina si hay algn carcter en el buffer de teclado. En caso afirmativo entrega el carcter a la funcin invocadora, pero no actualiza el buffer puntero de lectura,
Entrada: AH = 01h Salida : Indicador de cero = 0 : No hay caracteres en el buffer de teclado Indicador de cero = 1 : Hay un carcter disponible AL = Cdigo ASCII / Cero AH = Cdigo de exploracin de la tecla 3.3. El controlador del teclado. Perifricos e Interfaces , 3 ITIS
32
33
Entrada: AH = 05h CH = Cdigo de exploracin de la tecla CL = Cdigo ASCII de la tecla Salida : AL = 00h No hay error AL = 01h Buffer de teclado lleno, no se puede aadir el carcter
FUNCIN 10h: Lee un carcter del teclado extendido
Esta funcin lee un carcter desde el teclado extendido MF-II. La funcin es similar a la 00h, pero soporta los nuevos cdigos de las teclas de funcin [F11],[F12] y las nuevas teclas de cursor, cuyos cdigos de exploracin van precedidos del cdigo e0h.
Entrada: AH = 10h Salida : AH = Cdigo de exploracin de la tecla AL = Cdigo ASCII / 0 / e0h 3.3. El controlador del teclado. Perifricos e Interfaces , 3 ITIS
34
Entrada: AH = 11h Salida : Indicador de cero = 0 : No hay caracteres en el buffer Indicador de cero = 1 : Hay un carcter disponible AL = Cdigo ASCII / Cero / e0h AH = Cdigo de exploracin de la tecla
FUNCIN 12h: Lee los bytes de estado asociados a las teclas < SIFHT >
Esta funcin 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 funcin 02h, pero esta permite leer tambin informacin relacionada con el teclado ampliado.
Entrada: AH = 12h Salida : AH = Segundo byte de estado AL = Primer byte de estado 3.3. El controlador del teclado. Perifricos e Interfaces , 3 ITIS
35