Puertos seriales
En lenguaje ensamblador, se puede acudir a la interrupción 14H de la ROM-BIOS para configurar, leer, escribir o simplemente para conocer el estado delpuerto; cada una de estas cuatro opciones es un servicio de la interrupción, y se seleccionan a través del registro AH. La figura 1 muestra los valores que debe contener el registro AH para invocarcada uno de los servicios. En todos los casos, el registro DX debe contener el número del puerto serie; el primero de ellos, COM1 se especifica como 00h.
Servicio | Descripción |
00 |Inicializar puerto serie |
01 | Enviar un dato |
02 | Recibir un dato |
03 | Obtener el estado del puerto |
figura 1.Servicios para el puerto serial disponibles a través de la interrupción 14H
Para configurar o inicializar el puerto serie, bastará con utilizar el servicio 00 de la interrupción, colocando en el registro AL los valores equivalentes a los parámetros, como se puede observar enla figura 2. Con éste método es posible obtener frecuencias de transmisión que van desde los 110 hasta los 9600 baudios.
figura 2
Para enviar un dato por el puerto serial, bastará con colocar enel registro AH el valor 01 correspondiente a este servicio y en el registro AL el dato a ser enviado, invocando de nuevo la interrupción 14H. La lectura de un dato que ha llegado al puerto se logracon el servicio 02, el cual devuelve en el registro AL el dato. La lectura del estado del puerto se consigue a través del servicio 03 de esta misma interrupción, y retorna en el registro AX el estadodel puerto, el cual contendrá los bits que se muestran en la figura 3.
figura 3
Por ejemplo, podemos utilizar el lenguaje ensamblador para configurar el puerto serial para 1200 baudios, sinbit de paridad, sin bit de parada y 8 bits, realizando el siguiente programa:
mov ah,0 ;servicio 00 de INT 14h: inicializar puerto
mov a1,83 ;configuración: 1200 baudios, no paridad, ...
Regístrate para leer el documento completo.