tcpipchip escreveu:Libera o fonte

TCPIPCHIP
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Definição de Entradas *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#define rc5 porta.RA0
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Definição de Saídas *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#define led1 porta.ra1
#define led2 porte.re2
#define led3 portc.rc0
char last_rx;
char comando,sistema;
char dado[5];
void decodifica_bit(void)
{
last_rx=0;
if (rc5) last_rx=1;
delay_us(890);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Bloco Principal de Programa *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void main()
{
char dado[10];
TRISA=0b00000001;
TRISB=0b111111; //Configura a direção do PORTB
TRISC=0b00000000; //Configura a direção do PORTA
TRISD=0b00000000;
TRISE=0b000;
porta=0;
portb=0;
portc=0;
portd=0;
porte=0;
intcon2.intedg0=1;
dado[0]=0;
dado[1]=0;
dado[2]=0;
dado[3]=0;
dado[4]=0;
ADCON1=15; //Deixa os pinos da forma digital
delay_ms(2000); //Tempo de start-up do display
Lcd_Config(&PORTD,0,1,1,7,6,5,4);
//Configura pinos do LCD
Lcd_Init(&PORTD);
lcd_out(1,1,"Paulo Roquetti"); //Mostra mensagem no display
do
{
if (!rc5) { //Botão está pressionado?
delay_us(445);
comando=0;
sistema=0;
delay_us(890);
decodifica_bit(); //Bit F
//Descartado neste exemplo
delay_us(890);
decodifica_bit(); //Bit C
//Descartado neste exemplo
delay_us(890);
decodifica_bit();
if (last_rx) sistema|=16; //Bit 4 de sistema
delay_us(890);
decodifica_bit();
if (last_rx) sistema|=8; //Bit 3 de sistema
delay_us(890);
decodifica_bit();
if (last_rx) sistema|=4; //Bit 2 de sistema
delay_us(890);
decodifica_bit();
if (last_rx) sistema|=2; //Bit 1 de sistema
delay_us(890);
decodifica_bit();
if (last_rx) sistema|=1; //Bit 0 de sistema
delay_us(890);
decodifica_bit();
if (last_rx) comando|=32; //Bit 5 de comando
delay_us(890);
decodifica_bit();
if (last_rx) comando|=16; //Bit 4 de comando
delay_us(890);
decodifica_bit();
if (last_rx) comando|=8; //Bit 3 de comando
delay_us(890);
decodifica_bit();
if (last_rx) comando|=4; //Bit 2 de comando
delay_us(890);
decodifica_bit();
if (last_rx) comando|=2; //Bit 1 de comando
delay_us(890);
decodifica_bit();
if (last_rx) comando|=1; //Bit 0 de comando
bytetostr(comando,dado);
lcd_out(2,1,"Cmd: ");
lcd_out(2,5,dado);
bytetostr(sistema,dado);
lcd_out(2,9,"Sis: ");
lcd_out(2,14,dado);
switch (comando)
{
case 62:
led1=1;
break;
case 61:
led1=0;
break;
case 59:
led2=1;
break;
case 58:
led2=0;
break;
case 56:
led3=1;
break;
case 55:
led3=0;
break;
}
}
}while(1);
}