Logo Studenta

Ej1(a)_PuertoLeds

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

// Ejercicio nº1.a de puertos.
//Ingresar por teclado números del 0 al 7. 
//Según el número ingresado se debe encender dicho led mediante el puerto paralelo. 
//Finalizar al ingresar un número inválido. 
//a. Resolver utilizando la sentencia switch 
#include <stdio.h>
#include <stdlib.h>
#include "simledsWin.c"
#define puerto 0x378
int main()
{
	unsigned char num,led;
	
	ioperm(puerto,1,1);
	// Ingreso del número.
	printf("Ingrese un numero de 0 a 7 (otro para terminar): ");
	scanf("%d",&num);
	
	// Algoritmo.
	while(num>=0 && num<=7)
	{
		switch(num)
		{
			case 0: led=0x01;
					break;
			
			case 1: led=0x02;
					break;
					
			case 2: led=0x04;
					break;
					
			case 3: led=0x08;
					break;
					
			case 4: led=0x10;
					break;
					
			case 5: led=0x20;
					break;
					
			case 6: led=0x40;
					break;
					
			case 7: led=0x80;
		}
		
		// Se prende el led.
		outb(led,puerto);
		
		// Ingreso de otro número.
		printf("Ingrese un numero de 0 a 7 (otro para terminar): ");
		scanf("%d",&num);
	}
	
	ioperm(puerto,1,0);
	
	//Fin del programa.
	printf("\n\n\n\t\t FIN DEL PROGRAMA.\n\n");
	system("pause"); // Esto no va en Linux.
	return 0;
}

Continuar navegando