posicoes do byte1110121315Byte lido em binario:01111110Byte lido em Decimal:126 CIRCUITO-4 Com o circuito-4 conectado a Porta Paralela voce podera enviar sinais para dentro de seu computador atraves das entradas E1 a E 5. Para enviar um bit atraves da entrada E1, ligue-a direto ao negativo da fonte de alimentacao (0v), ou instale um interruptor para ficar mais pratico. Como o circuito abaixo utiliza um Circuito Integrado buffer, que tem o poder de amplificar o sinal recebido, voce podera estender os cabos conectados as entradas (E1 a E5) a mais ou menos 20m de distancia. Faca testes.Circuito-4Atencao! Para enviar dados para dentro de seu computador atraves do circuito acima, use as entradas E1 a E5, com tensao eletrica negativa (0V) da fonte de alimentacao em uso. Para enviar um bit com valor (1), ligue a respectiva entrada ao negativo. Para enviar um bit com valor (0), desligue a respectiva entrada do negativo. Lista de componentes: 1 (um) Cabo Paralelo - o mesmo utilizado pela impressora; 5 (cinco) Capacitores ceramicos de (C1 a C5) todos de 100nF; 1 (um) Circuito Integrado 74LS541 (buffer); 1 (uma) fonte de alimentacao estabilizada de 5 volts; Geral: fios, fero de soldar, solda etc. Codigo fonte em C/C++. O programa abaixo, le a Porta Paralela LPT1 ininterruptamente enquanto nenhuma tecla seja pressionada, e exibe na tela do computador, o valor recebido em decimal.//www.rogercom.com//rogercom@rogercom.com //------------------------------------------------------------------------------------------------------------- #include #include #include int main(void){ unsigned char RetByte; //Para armazenar o valor recebido da Porta Paralela. while( ! kbhit( ) ) //Faz enquanto nenhuma tecla for pressionada. { RetByte = inportb(0x379); //Ler um byte da Porta Paralela (0x379)LPT1. printf("%u\n",RetByte); }} Codigo fonte em C/C++. O programa abaixo, foi escrito para o Sistema Operacional MS-DOS, mas pode ser adaptado para outros sistemas. Ele le a Porta Paralela LPT1 ininterruptamente enquanto nenhuma tecla for pressionada, e exibe na tela do computador o estado de cada bit do byte recebido a cada ciclo do laco while().//www.rogercom.com//rogercom@rogercom.com //------------------------------------------------------------------------------------------------------------- #include #include #include #define BIT0 0x01 // Nao usado#define BIT1 0x02 // Nao usado#define BIT2 0x04 // Nao usado#define BIT3 0x08 // Error#define BIT4 0x10 // Slct out #define BIT5 0x20 // Paper End#define BIT6 0x40 // Ack #define BIT7 0x80 // Busy int main(void){ int x=10, y=5; //Coluna e Linha do video unsigned char Byte; //Para armazenar o byte recebido da Porta Paralela clrscr(); gotoxy(30,1); printf("RECEBENDO SINAIS..."); gotoxy(30,20); printf("Pressione uma tecla para sair..."); gotoxy(x, y); printf("Bit 3 - Error....:"); gotoxy(x,y+1); printf("Bit 4 - Slct out.:"); gotoxy(x,y+2); printf("Bit 5 - Paper End:"); gotoxy(x,y+3); printf("Bit 6 - Ack:.....:"); gotoxy(x,y+4); printf("Bit 7 - Busy.....:"); while( ! kbhit() ) //Executa enquanto nenhuma tecla for pressionada. { Byte = inportb(0x379); //Ler um byte da Porta Paralela if((Byte & BIT3) == 0){ // Error: 0000-1000 gotoxy(x+20,y); printf("INATIVO"); }else{ gotoxy(x+20,y); printf("ATIVO "); } if((Byte & BIT4) == 0){ // Slct out: 0001-0000 gotoxy(x+20,y+1); printf("INATIVO"); }else{ gotoxy(x+20,y+1); printf("ATIVO "); } if((Byte & BIT5) == 0){ // Paper end: 0010-0000 gotoxy(x+20,y+2); printf("INATIVO"); }else{ gotoxy(x+20,y+2); printf("ATIVO "); } if((Byte & BIT6) == 0){ // Ack: 0100-0000 gotoxy(x+20,y+3); printf("INATIVO"); }else{ gotoxy(x+20,y+3); printf("ATIVO "); } if((Byte & BIT7) == 0){ // Busy: