Advertisement
Guest User

Untitled

a guest
Dec 15th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Portao ( E4, E3, E2, E1, E0, LedAbrindo, LedFechando, DSPLY, Clock );
  2.     input E4, E3, E2, E1, E0, Clock;
  3.     //E4 = Controle; E3 = Motor do portão; E2 = Sentido do movimento do portão;
  4.     //E1 = Sensor de Fechado; E0 = Sensor de Aberto;
  5.    
  6.     output LedAbrindo, LedFechando;//sensores de estados (led verde e led vermelho)
  7.     output [6:0] DSPLY; //Configuração do display: A (estado totalmente aberto) ou F (estado totalmente fechado)
  8.    
  9.     integer Ligado, Desligado;
  10.     initial
  11.         begin
  12.             Ligado = 1;
  13.             Desligado = 0;
  14.         end
  15.  
  16.     //Configuração dos componentes da placa:
  17.     reg [1:0] Situacao;
  18.     reg [4:0] Switch;
  19.     reg [6:0] LetraDisplay;
  20.     reg EstadoLedAbrindo, EstadoLedFechando;
  21.  
  22.     //Estados da máquina de estado:
  23.     parameter Fechado = 2'b00, Abrindo = 2'b01, Aberto = 2'b10, Fechando = 2'b11;
  24.  
  25.     //O portao inicia totalmente fechado
  26.     initial Situacao = Fechado;
  27.    
  28.     always @ (posedge Clock)   
  29.     begin
  30.         //Relacionando as entradas aos respectivos switches
  31.         Switch[4] = E4;
  32.         Switch[3] = E3;
  33.         Switch[2] = E2;
  34.         Switch[1] = E1;
  35.         Switch[0] = E0;
  36.        
  37.         //Mudança de estados conforme a máquina construída:
  38.         if(Situacao == Fechado)
  39.             begin
  40.                 LetraDisplay = 7'b0001110; //Letra F
  41.  
  42.                 if( Switch == 5'b11010 )
  43.                     Situacao = Abrindo;
  44.                
  45.                 //Ambos os leds apagados
  46.                 EstadoLedAbrindo = Desligado;
  47.                 EstadoLedFechando = Desligado;
  48.             end
  49.        
  50.         if(Situacao == Fechando)
  51.             begin
  52.               LetraDisplay = 7'b1000000; //Numero zero
  53.  
  54.                 if( Switch == 5'b11100 )
  55.                     Situacao = Abrindo;
  56.                 else if( Switch == 5'b01100 )
  57.                     Situacao = Fechado;
  58.                    
  59.                 //Apenas led vermelho aceso
  60.               EstadoLedAbrindo = Desligado;
  61.               EstadoLedFechando = Ligado;
  62.              end
  63.        
  64.         if(Situacao == Aberto)
  65.             begin
  66.               LetraDisplay = 7'b0001000; //Letra A
  67.  
  68.               if( Switch == 5'b01101 )
  69.                  Situacao = Fechando;
  70.                  
  71.                 //Ambos os leds apagados
  72.               EstadoLedAbrindo = Desligado;
  73.               EstadoLedFechando = Desligado;
  74.           end
  75.          
  76.         if(Situacao == Abrindo)
  77.             begin
  78.               LetraDisplay = 7'b1000000; //Numero zero
  79.  
  80.                 if( Switch == 5'b11000 )
  81.                     Situacao = Aberto;
  82.                 else if( Switch == 5'b01000 )
  83.                     Situacao = Fechando;
  84.                    
  85.                 //Apenas led verde aceso
  86.               EstadoLedAbrindo = Ligado;
  87.               EstadoLedFechando = Desligado;
  88.             end
  89. end
  90.  
  91.     //Definindo saídas do estado
  92.     assign DSPLY = LetraDisplay;
  93.     assign LedAbrindo = EstadoLedAbrindo;
  94.     assign LedFechando = EstadoLedFechando;
  95.  
  96. endmodule
  97.  
  98. //Relação dos componentes com o código
  99. module Relat5( SW, LEDG, LEDR, HEX0, CLK );
  100.     input [4:0] SW;
  101.     input CLK;
  102.  
  103.     output [0:0] LEDG, LEDR;
  104.     output [6:0] HEX0;
  105.  
  106.     Portao ab( SW[4], SW[3], SW[2], SW[1], SW[0], LEDG[0], LEDR[0], HEX0, CLK);
  107.  
  108. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement