quarta-feira, 8 de setembro de 2010

Botões multiplex com o pic


// ****************************************************************************************************************************************************
// botões multiplex
//
// Data: 22/04/2008
// Autor: Aguivone
// Descrição: Botões multiplex
//****************************************************************************************************************************************************
#include <16F877A.h>
#fuses NOWDT,XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4M)
void main(void)
{
disable_interrupts(GLOBAL);
for(;;)
{
output_low(PIN_B0);//linha A
output_high(PIN_B1);//linha b
output_high(PIN_B2);//linha c
output_high(PIN_B3);//linha d
if (!input(pin_b4)) //se coluna 1 em nivel baixo numero7
{
output_high(PIN_D0);//Coluna 1
}
else
{
output_low(PIN_D0);//Coluna 1
}
if (!input(pin_b5)) //se coluna 1 em nivel baixo numero8
{
output_high(PIN_D1);//Coluna 1
}
else
{
output_low(PIN_D1);//Coluna 1
}
if (!input(pin_b6)) //se coluna 1 em nivel baixo numero9
{
output_high(PIN_D2);//Coluna 1
}
else
{
output_low(PIN_D2);//Coluna 1
}


output_high(PIN_B0);//linha A
output_low(PIN_B1);//linha b
output_high(PIN_B2);//linha c
output_high(PIN_B3);//linha d
if (!input(pin_b4)) //se coluna 1 em nivel baixo numero4
{
output_high(PIN_D3);//Coluna 1
}
else
{
output_low(PIN_D3);//Coluna 1
}
if (!input(pin_b5)) //se coluna 1 em nivel baixo numero5
{
output_high(PIN_D4);//Coluna 1
}
else
{
output_low(PIN_D4);//Coluna 1
}
if (!input(pin_b6)) //se coluna 1 em nivel baixo numero6
{
output_high(PIN_D5);//Coluna 1
}
else
{
output_low(PIN_D5);//Coluna 1
}


output_high(PIN_B0);//linha A
output_high(PIN_B1);//linha b
output_low(PIN_B2);//linha c
output_high(PIN_B3);//linha d
if (!input(pin_b4)) //se coluna 1 em nivel baixo numero1
{
output_high(PIN_D6);//Coluna 1
}
else
{
output_low(PIN_D6);//Coluna 1
}
if (!input(pin_b5)) //se coluna 1 em nivel baixo numero2
{
output_high(PIN_D7);//Coluna 1
}
else
{
output_low(PIN_D7);//Coluna 1
}
if (!input(pin_b6)) //se coluna 1 em nivel baixo numero3
{
output_high(PIN_E0);//Coluna 1
}
else
{
output_low(PIN_E0);//Coluna 1
}

output_high(PIN_B0);//linha A
output_high(PIN_B1);//linha b
output_high(PIN_B2);//linha c
output_low(PIN_B3);//linha d
if (!input(pin_b5)) //se coluna 1 em nivel baixo numero0
{
output_high(PIN_E1);//Coluna 1
}
else
{
output_low(PIN_E1);//Coluna 1
}

}
}

Um comentário :

  1. Boa noite, estava procurando assuntos relacionados a multiplexação e encontrei seu projeto.. muito bom a dinâmica dele, está de parabéns. Obrigado pela postagem.

    ResponderExcluir

olá,digite aqui seu comentário!