⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zxb.v

📁 步进电机的控制程序
💻 V
字号:
module second_pulse_latch(
						  Reset,
						  Clk_1Hz,
						  speed,
						  acceleration,
						  second_pulse_out, 
						  acele_decre
						  );
						
output [15:0] second_pulse_out;
input  Reset;
input  Clk_1Hz;
input  acele_decre;
input  [15:0] speed; //初速度
input  [15:0] acceleration;
       //最高位acceleration[16]用来表示加速度的正负,0为正,1为负

reg [15:0] second_pulse_out;

initial
begin
  second_pulse_out <= speed;
end

always @(posedge Clk_1Hz)
begin
  if(Reset == 1'b1)
    second_pulse_out <= 16'b0;
  else
  begin
    if(acele_decre == 1'b0)  //加速度为正
    begin
      if((second_pulse_out + acceleration[15:0]) < 16'b1111111111111111)
        //加速,且速度不超过65535
        second_pulse_out <= second_pulse_out + acceleration[15:0];
      else
        //速度超过65535,直接固定在65535
        second_pulse_out <= 16'b1111111111111111;
    end
      
    else if(acele_decre == 1'b1) //加速度为负
    begin
      if((second_pulse_out - acceleration[15:0]) > 16'b0)
        //减速,且速度不小于0
        second_pulse_out <= second_pulse_out - acceleration[15:0];
      else
        //减速,且速度小于0,直接固定在0,即停止
        second_pulse_out <= 16'b0;
    end 
  end
end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -