Advertisement
LincolnArantes

porta paralela em c

Feb 26th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.52 KB | None | 0 0
  1. /// talvez rode no DEV c
  2.  
  3.  
  4. #include <iostream.h> //Para disponibilizar a função cout do C++.
  5.  
  6. #include <stdio.h> //Para disponibilizar a função printf() do C.
  7.  
  8. #include <conio.h> //Para disponibilizar a função getch() do C;
  9.  
  10. #define ENDBASE 0x378 //LPT1
  11.  
  12. #define ENDDADOS ENDBASE + 0 //0x378
  13.  
  14. #define ENDSTATUS ENDBASE + 1 //0x379
  15.  
  16. #define ENDCONTROLE ENDBASE + 2 //0x37A
  17.  
  18. #define LIGA_TODOS_LEDS_CONTROLE 4 //00000100
  19.  
  20. #define DESLIGA_TODOS_LEDS_CONTROLE 11 //00001011
  21.  
  22. main( ) //Função principal da linguagem C que chama todas as outras.
  23.  
  24. { //Início do programa
  25.  
  26. //Cria um protótipo de strutura.
  27.  
  28. struct PortaParalela
  29.  
  30. {
  31.  
  32. unsigned char Dados; //Declaração das variáveis membros.
  33.  
  34. unsigned char Status;
  35.  
  36. unsigned char Controle;
  37.  
  38. };
  39.  
  40. struct PortaParalela LPT; //Define a variável LPT como do tipo struct PortaParalela.
  41.  
  42. printf( "Pressione uma tecla para ler o status da Porta Paralela..." );
  43.  
  44.  
  45.  
  46. getch( ); //Aguarda o pressionamento de uma tecla.
  47.  
  48. LPT.Status = inportb( ENDSTATUS ); //Lê a Porta Paralela.------------------>para aqui --------------
  49.  
  50. printf( "\nO status atual da Porta Paralela é: %d\n\n", LPT.Status );
  51.  
  52. printf( "\nPressione uma tecla para acender todos os LEDs da Porta de DADOS..." );
  53.  
  54. getch( ); //Aguarda o pressionamento de uma tecla.
  55.  
  56. LPT.Dados = 255; //Liga todos os bits (11111111).
  57.  
  58. outportb( ENDDADOS, LPT.Dados ); //Envia para a Porta e Liga todos os LEDs-----------------------> e aqui tambem......-------------
  59.  
  60. printf( "\nPressione uma tecla para apagar todos os LEDs da Porta de DADOS..." );
  61.  
  62.  
  63.  
  64. getch( ); //Aguarda o pressionamento de uma tecla.
  65.  
  66. LPT.Dados = 0; //Desliga todos os bits (00000000).
  67.  
  68. outportb( ENDDADOS, LPT.Dados ); //Envia para a Porta e desliga todos os LEDs
  69.  
  70. printf( "\nPressione uma tecla para acender todos os LEDs da Porta de CONTROLE..." );
  71.  
  72. getch( ); //Aguarda o pressionamento de uma tecla.
  73.  
  74. LPT.Controle = LIGA_TODOS_LEDS_CONTROLE; //Liga todos os bits (00000100).
  75.  
  76. outportb( ENDCONTROLE, LPT.Controle ); //Envia para a Porta e desliga todos os LEDs.
  77.  
  78. printf( "\nPressione uma tecla para apagar todos os LEDs da Porta de CONTROLE..." );
  79.  
  80.  
  81.  
  82. getch( ); //Aguarda o pressionamento de uma tecla.
  83.  
  84. LPT.Controle = DESLIGA_TODOS_LEDS_CONTROLE; //Desliga todos os bits (00001011).
  85.  
  86. outportb( ENDCONTROLE, LPT.Controle ); //Envia para a Porta e desliga todos os LEDs
  87.  
  88. printf("\n\nPressione uma tecla para finalizar...");
  89.  
  90. getch( ); //Aguarda o pressionamento de uma tecla para finalizar o programa.
  91.  
  92. } //FIM do programa.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement