Sunteți pe pagina 1din 3

Control de los Puertos en Lenguaje C

http://hgr.tripod.com/puertos_c.html

Comunicaciones seriales en Lenguaje C.


En lenguaje C, existe una instruccin especial para manejar las
comunicaciones seriales. Esta instruccin posee la siguiente sintaxis:
int bioscom (int cmd, char abyte, int port);
En realidad, esta instruccin acude a la interrupcin 14H para permitir la
comunicacin serial sobre un puerto. Para este caso, cada uno de los
parmetros tiene el siguiente significado:
cmd

Especifica la operacin a realizar

abyte

es un caracter que se enviar por


el puerto serial

port

es la identificacin del puerto


serial (desde 0 para COM1 hasta
3 para COM4)

El parmetro cmd puede tener los siguientes valores y significados:


0 Inicializa el puerto port con los valores dados por abyte
1 Enva el caracter abyte por el puerto port
2 Lee el caracter recibido por el puerto port
3 Retorna el estado del puerto port
Para la inicializacin del puerto, el caracter abyte tiene las
interpretaciones que se muestran en la siguiente Tabla.
0x02
0x03

7 bits de datos
8 bits de datos

0x00
0x04

1 bits de parada
2 bits de parada

0x00
0x08
0x18

Sin paridad
Paridad impar
Paridad par

0x00
0x20
0x40
0x60
0x80
0xA0
0xC0
0xE0

110 baudios
150 baudios
300 baudios
600 baudios
1200 baudios
2400 baudios
4800 baudios
9600 baudios

Para configurar el puerto con algunos parmetros, bastar con realizar

una operacin OR con los deseados, por ejemplo, para 1200 baudios, sin
bit de paridad, sin bit de parada y 8 bits, bastar con selecconar la
palabra dada por:
abyte = 0x80 | 0x00 | 0x00 | 0x03
o lo que es equivalente,
abyte = 0x83
Para la lectura de un caracter que se haya recibido o del estado del
puerto, se deben utilizar variables en las cuales se almacenarn los
valores de retorno; en ambos caso se obtienen valores de 16 bits. Para la
lectura de un dato recibido, los 8 bits menos significativos corresponden
al dato y los 8 ms significativos al estado del puerto; si alguno de estos
ltimos est en "1 ", un error ocurri; si todos estn en "0", el dato fue
recibido sin error.
Cuando el comando es 2 3 (leer el caracter o el estado del puerto), el
argumento abyte no se tiene en cuenta. Para configurar el puerto COM1
con los parmetros del ejemplo dado anteriormente, bastar con la
instruccin:
bioscom (0,0x83,0); /*(inicializar, parmetros, COM1)*/
La utilizacin de los comandos y las instrucciones para la configuracin
de los puertos aqu expuestos slo tendrn sentido en la medida en que
utilicemos el puerto serial para establecer una comunicacin bien con
otros computadores o bien con dispositivos electrnicos como
microcontroladores.

Comunicacin con el puerto paralelo en Lenguaje C.


El lenguaje C permite tanto la lectura como la escritura de los puertos
paralelo. Para leer el puerto existen las instrucciones inport e inportb,
mientras que para escribir estn las instrucciones outport y outportb. La
sintaxis de estas instrucciones es la siguiente:
unsigned inport (unsigned portid);
unsigned char inportb (unsigned portid);
void outport (unsigned portid, unsigned value);
void outportb (unsigned portid, unsigned char value);
Ejemplo:
Palabra = inport(puerto);
outport (puerto,Palabra);
Byte = inportb (puerto);
outportb (puerto,Byte);
Las instrucciones que terminan en b ese refieren a la lectura o escritura
de un byte, mientras que las que no terminan en esta letra se refieren a
una palabra(dos byte). La variable puerto debe contener la direccin de
memoria del puerto paralelo, este valor puede ser 378h, 3BCh 278h.

Por ultimo no hay que olvidar colocar la siguiente directiva del


preprocesador que le indica al C que se usarn las funciones inport,
outport, inportb u outportb, declaradas en el archivo dos.h.
#include <dos.h>
El siguiente programa consulta la direccin del primer puerto paralelo
disponible:
#include <conio.h>
#include <dos.h>
void main(void)
{
int puerto;
clrscr();
puerto=peekb(0x40,0x8);
printf("Direccin: %Xh",puerto);
getch();
}
Como vern la utilizacin del puerto paralelo es mucho ms sencillo que
la serial.
Referencias utilizadas:
1.- Naranjo C. , Jhon Jairo. Electronica & Computadores."Interface serial RS-232".
Ao I N10. Pag. 71-76
2.- Naranjo C. , Jhon Jairo. Electronica & Computadores."Kinder de programacin en
C". Ao I N9. Pag. 71-76

Otros Articulos

Control del puerto paralelo y serial en Lenguaje C.

Control del puerto paralelo y serial en Lenguaje Ensamblador.

Tarjeta de adquisicion de datos de bajo costo.

S-ar putea să vă placă și