C/Visual C - Escribir y leer sobre pto paralelo

 
Vista:

Escribir y leer sobre pto paralelo

Publicado por Andrey Armando (2 intervenciones) el 27/03/2003 17:21:58
Buenas.
Estoy necesitando de urgencia:

Un programa en C que LEA de un archivo un numero y lo escriba en el puerto paralelo y otro programa que lea como parametro de ejecución un numero y lo ESCRIBA en el puerto paralelo.

Otro programa que lea desde el puerto y escriba en un archivo el valor leido y otro que devuelva el numero a la salida estandar.

O si me indican donde puedo ubicarlos con seguridad...
GRACIAS MIL.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programas en C para leer y escribir en el puerto paralelo

Publicado por Alejandro (1153 intervenciones) el 13/05/2025 18:22:21
Aquí tienes ejemplos de programas en C que cumplen con tus requisitos para interactuar con el puerto paralelo. Ten en cuenta que el acceso al puerto paralelo puede requerir permisos especiales y que estos ejemplos están diseñados para sistemas operativos como Linux. Si estás utilizando Windows, el acceso al puerto paralelo se maneja de manera diferente.

1. Programa para leer un número de un archivo y escribirlo en el puerto paralelo



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/io.h>
 
#define PARALLEL_PORT 0x378 // Dirección del puerto paralelo
 
int main() {
    FILE *file;
    int number;
 
    // Abrir el archivo para leer el número
    file = fopen("input.txt", "r");
    if (file == NULL) {
        perror("Error al abrir el archivo");
        return 1;
    }
 
    fscanf(file, "%d", &number);
    fclose(file);
 
    // Habilitar acceso al puerto paralelo
    if (ioperm(PARALLEL_PORT, 3, 1)) {
        perror("Error al obtener permisos para el puerto paralelo");
        return 1;
    }
 
    // Escribir el número en el puerto paralelo
    outb(number, PARALLEL_PORT);
 
    // Deshabilitar acceso al puerto paralelo
    ioperm(PARALLEL_PORT, 3, 0);
 
    return 0;
}

2. Programa para leer un número como parámetro y escribirlo en el puerto paralelo



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/io.h>
 
#define PARALLEL_PORT 0x378 // Dirección del puerto paralelo
 
int main(int argc, char *argv[]) {
    if (argc != 2) {
        fprintf(stderr, "Uso: %s <numero>\n", argv[0]);
        return 1;
    }
 
    int number = atoi(argv[1]);
 
    // Habilitar acceso al puerto paralelo
    if (ioperm(PARALLEL_PORT, 3, 1)) {
        perror("Error al obtener permisos para el puerto paralelo");
        return 1;
    }
 
    // Escribir el número en el puerto paralelo
    outb(number, PARALLEL_PORT);
 
    // Deshabilitar acceso al puerto paralelo
    ioperm(PARALLEL_PORT, 3, 0);
 
    return 0;
}

3. Programa para leer desde el puerto paralelo y escribir en un archivo



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/io.h>
 
#define PARALLEL_PORT 0x378 // Dirección del puerto paralelo
 
int main() {
    FILE *file;
    unsigned char value;
 
    // Habilitar acceso al puerto paralelo
    if (ioperm(PARALLEL_PORT, 3, 1)) {
        perror("Error al obtener permisos para el puerto paralelo");
        return 1;
    }
 
    // Leer el valor del puerto paralelo
    value = inb(PARALLEL_PORT);
 
    // Abrir el archivo para escribir el valor
    file = fopen("output.txt", "w");
    if (file == NULL) {
        perror("Error al abrir el archivo");
        return 1;
    }
 
    fprintf(file, "%d\n", value);
    fclose(file);
 
    // Deshabilitar acceso al puerto paralelo
    ioperm(PARALLEL_PORT, 3, 0);
 
    return 0;
}

4. Programa para leer desde el puerto paralelo y devolver el número a la salida estándar



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/io.h>
 
#define PARALLEL_PORT 0x378 // Dirección del puerto paralelo
 
int main() {
    unsigned char value;
 
    // Habilitar acceso al puerto paralelo
    if (ioperm(PARALLEL_PORT, 3, 1)) {
        perror("Error al obtener permisos para el puerto paralelo");
        return 1;
    }
 
    // Leer el valor del puerto paralelo
    value = inb(PARALLEL_PORT);
 
    // Imprimir el valor en la salida estándar
    printf("Valor leído del puerto paralelo: %d\n", value);
 
    // Deshabilitar acceso al puerto paralelo
    ioperm(PARALLEL_PORT, 3, 0);
 
    return 0;
}

Consideraciones:



- Permisos: Asegúrate de ejecutar estos programas con los permisos necesarios para acceder al puerto paralelo. En sistemas Linux, puede que necesites ejecutar los programas como superusuario (usando `sudo`).
- Compilación: Puedes compilar estos programas usando `gcc`:
1
gcc -o read_write_parallel read_write_parallel.c -lpcap
- Dirección del puerto: La dirección del puerto paralelo puede variar según el hardware. Asegúrate de que `0x378` es la dirección correcta para tu sistema.

Conclusión:


Estos ejemplos te proporcionan una base para interactuar con el puerto paralelo en C. ¡Buena suerte, Andrey!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar