Acendedor de leds pela porta paralela
Publicado por Angelito Monteiro Goulart (última atualização em 11/03/2010)
[ Hits: 18.327 ]
Homepage: http://angelitomg.com
Download 1267842472.led.c (versão 2)
Programa com um simples menu onde o usuário pode escolher entre acender ou apagar os leds conectados à porta paralela. Nos comentários do programa segue a dica de como montar o circuito.
Versão 2 - Enviado por Marcelo Paiva em 05/03/2010
Changelog: Segue pequena alteração para carregar numero decimal e acender leds, vai pedir numero em decimal, apos segue sequencia do programa original com menus 1,2, e 3, se digitar 5 vai acender metade dos leds 15 é igual a 0F em hexa e é igual a 00001111 em binario acendendo leds conforme sequencia binaria, vou tentar mandar fotos, tenho pouco tempo e não sei usar ainda ferramentas do site, enfim o mais importante é que a base do programa é 10 e funciona, consegui sucesso no Mandriva 2009 com Gnome e pacotes essential, agora as fotos que vou tentar mandar são no ubuntu9.10 com buid-essential.
/*
* Acendedor de leds pela porta paralela
* Angelito M. Goulart
* Setembro/2009
*
* Esquema Eletrico
*
* Pino2 -> 470R -> LED1
* Pino3 -> 470R -> LED2
*
* Pode-se usar do pino 2 ate o pino 9 para ligar os LEDs
* GND -> Do pino 18 ao pino 25
*
*/
#include
#include
int main(void)
{
int opcao;
int altdec; //variavel adicionada para armazenar numero decimal a ser enviado para porta
ioperm(0x378,3,1); //inicializa a porta paralela
outb(0x00, 0x378);
do
{
printf ("\n=====Entre número em decimal=====\n");
scanf ("%d", &altdec); //carrega decimal
printf ("\n=====Acendedor de Leds=====\n");
printf (" 1.Acender Leds\n");
printf (" 2.Apagar Leds\n");
printf (" 3.Sair\n\n");
printf (" Selecione uma opcao: ");
scanf ("%d", &opcao);
if (opcao == 1)
{
//seta porta com decimal carregado em altdec
outb(altdec, 0x378); //caso a opcao seja 1, acende todos os leds,alterado para altdec
}
if (opcao == 2)
{
outb(0x00, 0x378); //caso a opcao seja 2, apaga todos os leds
}
}while (opcao != 3);
outb(0x00, 0x378);
return (0);
}
Marcelo Paiva
/* * Acendedor de leds pela porta paralela * Angelito M. Goulart * Setembro/2009 * * Esquema Eletrico * * Pino2 -> 470R -> LED1 * Pino3 -> 470R -> LED2 * * Pode-se usar do pino 2 ate o pino 9 para ligar os LEDs * GND -> Do pino 18 ao pino 25 * */ #include <stdio.h> #include <sys/io.h> int main(void) { int opcao; ioperm(0x378,3,1); //inicializa a porta paralela outb(0x00, 0x378); do { printf ("\n=====Acendedor de Leds=====\n"); printf (" 1.Acender Leds\n"); printf (" 2.Apagar Leds\n"); printf (" 3.Sair\n\n"); printf (" Selecione uma opcao: "); scanf ("%d", &opcao); if (opcao == 1) { outb(0xFF, 0x378); //caso a opcao seja 1, acende todos os leds } if (opcao == 2) { outb(0x00, 0x378); //caso a opcao seja 2, apaga todos os leds } }while (opcao != 3); outb(0x00, 0x378); return (0); }
Algoritmo em C - Ordenação por Inserção
ponteirostrab.c - Trabalhando com ponteiros
Calcula diferença entre o maior e menos número digitado
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Como ativo meu controle de xbox no mupen64? (3)
Como configuro meu controle de xbox no mupen64? (1)
Reset do linux sem perder dual boot (2)