FPGA实验报告
实验名称: 步进电机
姓 名:
班 级:
学 号:
指导教师:汉翻英
完成时间:
指导教师: [解武]
FPGA实验三 英语短文翻译步进电机
一、实验目的
1. 了解、熟悉和掌握FPGA开发软件Quartus II 的使用方法
2.学习Verilog HDL 和VHDL的编程方法
3.学习数码管与步进电机的设计、原理、功能
4.掌握使用多种方法分配管脚
二、实验内容
要实现的功能为:正常状态下,步进电机以速度一转动 按Speed键,步进电机以速度二转动,按Dir键,步进电机转动方向变换,按StepEnable键,步进电机停止转动.
johnson s
三、实验原理
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“北京冬奥会女性参赛比例历届最高步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
四、实验步骤
1.新建工程,取名为gaoyang。
2.新建 VHDL设计文件,选择“File|New ” ,在New 对话框中选择Device Design Files下的Verilog File,单击OK,完成新建设计文件。
4.保存文件,进行管脚分配
5.对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6. 将编译好的程序下载到实验箱中。
7.下载完成后,观察实验结果。
五、实验程序
module gaoyang (StepDrive, clk, Dir, StepEnable, rst,l,man,bell);
input clk;
input Dir;
input StepEnable;
input rst;
input man;
wire man;
output[2:0] l;
output[3:0] StepDrive;
output bell;
reg bell;
reg[3:0] StepDrive;
reg[2:0] state;
reg[31:0] StepCounter = 32'b0;
reg[31:0] StepLockOut;
parameter[31:0] StepLockOut1= 32'd48750;
trackman parameter[31:0] StepLockOut2= 32'd32750;
reg InternalStepEnable;
always @(podge clk or negedge rst)
begin
if ( !rst)
begin
StepDrive <= 4'b0;
state <= 3'b0;
StepCounter <= 32'b0;
end
el
begin
if(man==1'b0)
begin
StepLockOut=StepLockOut1;
bell=1;
end
pure
el
begin
StepLockOut=StepLockOut2;
bell=0;
end
英语单词顺口溜
if ((clk == 1'b1))
begin
StepCounter <= StepCounter + 31'b1 ;
if (StepEnable == 1'b1)
begin
InternalStepEnable <= 1'b1 ;
end
if (StepCounter >= StepLockOut)
begintame
StepCounter <= 32'b00000000000000000000000000000000 ;
if (InternalStepEnable == 1'b1)
begin
InternalStepEnable <= StepEnable ;
if (Dir == 1'b1)
begin
state <= state + 3'b001 ;
end
if (Dir == 1'b0)
begin
上海绘画培训 state <= state - 3'b001 ;
end
ca (state)
3'b000 :
begin
StepDrive <= 4'b0001 ;
end
3'b001 :
begin
StepDrive <= 4'b0011 ;
end
3'b010 :
begin
StepDrive <= 4'b0010 ;
end
3'b011 :
begin
StepDrive <= 4'b0110 ;
end
3'b100 :
施瓦兹 begin
StepDrive <= 4'b0100 ;
end
3'b101 :
begin
StepDrive <= 4'b1100 ;
end
3'b110 :