数电实习报告三相步进电机控制器设计Word格式.docx

上传人:b****3 文档编号:17869467 上传时间:2022-12-11 格式:DOCX 页数:14 大小:352.18KB
下载 相关 举报
数电实习报告三相步进电机控制器设计Word格式.docx_第1页
第1页 / 共14页
数电实习报告三相步进电机控制器设计Word格式.docx_第2页
第2页 / 共14页
数电实习报告三相步进电机控制器设计Word格式.docx_第3页
第3页 / 共14页
数电实习报告三相步进电机控制器设计Word格式.docx_第4页
第4页 / 共14页
数电实习报告三相步进电机控制器设计Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数电实习报告三相步进电机控制器设计Word格式.docx

《数电实习报告三相步进电机控制器设计Word格式.docx》由会员分享,可在线阅读,更多相关《数电实习报告三相步进电机控制器设计Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

数电实习报告三相步进电机控制器设计Word格式.docx

该控制器共含有四大部分:

主控制器、步数计数器、译码扫描显示电路、分频器。

分频器由时钟源输入50MHz的脉冲,经过分频器可分频为5Hz和400Hz频率的脉冲,输入给下一级电路。

主控制器部分根据外部输入的控制按键控制电机的转动方向,根据输入的脉冲控制电机的转动频率,并显示相序的变化。

同时向步数计数器输出控制数值,以使步数计数器和主控器同步。

另外在主控制器中还应有一个控制端来接收计数器的反馈,使电机在转动360度后能够停止转动。

计数器部分根据分频器输入的脉冲数进行计数,并由主控制器的输出来控制其是否计数以及清零、暂停等功能。

同时当记数到360步后反馈给主控制器一个控制值使其控制电机停止转动。

将计数的数值输出给译码扫描电器。

译码扫描电路中由分频器的400Hz脉冲控制数码管的扫描频率。

根据计数器的数值通过4-7译码器显示到数码上。

(二)、控制器设计方案:

设计思路:

控制器共有五个输入端口,分别为Clk、s1、s2、s3、k。

Clk为脉冲输入端口。

Clk为输入脉冲,为5Hz,由分频器输入。

k为计数器的返回值,在步数达到360时,该值有效,电机停转。

s1、s2、s3为三个控制键的输入在不同的情况下执行不同的动作,如下:

(1)、系统上电后,若S1=1,S2=1时,电机停止转动,步数清零;

控制器共有四个输出端口,分别为xiang、key1、key2、key3。

key1、key2、key3控制计数器和电机同步计数和清零。

xiang为三个相位的输出。

主控器程序如下:

modulekongzhiqi(clk,s1,s2,s3,k,xiang,key1,key2,key3);

inputclk,s1,s2,s3,k;

output[2:

0]xiang;

outputkey1,key2,key3;

regkey1,key2;

reg[2:

0]state;

reg[1:

0]i=2'

d0;

always@(posedgeclk)

beginif(s1==1&

&

s2==1)

beginkey1<

=1'

b0;

key2<

end

elseif(s1==1&

s2==0)

b1;

elseif(s1==0&

s2==1)begin

if(k==1)

xiang=xiang;

end

elsebegin

i=(i==2'

d3)?

0:

(i+2'

d1);

case(i)

2'

d0:

xiang=3'

b110;

d1:

xiang=(s3==1'

d0)?

3'

b011:

3'

b101;

d2:

b101:

b011;

endcase

assignkey3=s3;

endmodule

分频器程序如下:

modulefenpin(Clk,pin5,pin400

);

inputClk;

outputpin5;

outputpin400;

reg[31:

0]Cout1;

0]Cout2;

regClk_En1;

regClk_En2;

always@(posedgeClk)

begin

Cout1<

=(Cout1==32'

d10000_000)?

32'

d0:

(Cout1+32'

Clk_En1<

1'

d1:

end

Cout2<

=(Cout2==32'

d125_000)?

(Cout2+32'

Clk_En2<

assignpin400=Clk_En2;

assignpin5=Clk_En1;

(三)、受控器设计方案:

受控器有步数计数器和译码扫描器两个。

(1)、步数计数器由主控器控制,有四个输入端,分别为Clk、key1、key2、key3。

Clk为输入脉冲,为5Hz,由分频器输入,和主控器同频。

key1、key2、key3为三个控制键的输入在不同的情况下执行不同的动作,如下:

、key1=0,key2=0或key2=1时,步数为零;

、key1=1,key2=1时,步数在脉冲上升沿时加一;

、key1=1,key2=0时,步数保持上一次的数值;

在程序中,添加变量w1、w2,判断key3的值是否和上次的不同,不同则说明电机转向改变,执行步数清零,重新计数。

输出变量k,当计数达到360步时,添加if语句使k值会由原来的0变为1,计数停止,并且根据k值为1使计数在此后都不计数。

步数计数器有四个输出端,分别为bushu1、bushu2、bushu3,k。

bushu1、bushu2、bushu3为步数的8421BCD码,每一个数都是一个4位的二进制数,输出给译码扫描器。

k就是反馈到主控器中的变量。

(2)、译码扫描器由步数计数器控制,有四个输入端,分别为Clk,bushu1、bushu2、bushu3。

bushu1、bushu2、bushu3由步数计数器输入,经过4-7译码器后将译码后的7位二进制数赋值给7位的数码管。

Clk由分频器产生,经过再分频后,对应输出端的del,对8个数码管进行扫描,使每个管显示不同数值。

译码扫描器有两个输入端shumaguan,del。

shumaguan为7位数值对应电路板上的数码管的7段显示。

del端对应电路板上的3-8译码器的3个输入端,对数码管扫描。

步数计数器程序如下:

modulejishu(Clk,key1,key2,key3,bushu1,bushu2,bushu3,k

);

inputClk,key1,key2,key3;

outputk;

output[3:

0]bushu1;

0]bushu2;

0]bushu3;

regw1,w2,k;

reg[3:

always@(posedgeClk)

begin

w2=key3;

if(w2!

=w1)

beginbushu1=4'

b0000;

bushu2=4'

bushu3=4'

beginif(bushu1!

=4'

b0||bushu2!

d6||bushu3!

d3)

if(k==0)

begink=0;

case(key1)

1'

b0:

begincase(key2)

beginbushu1=4'

b1:

endcase

end

1'

begin

if(key2==1'

b1)

beginbushu1=(bushu1==4'

b1001)?

4'

(bushu1+4'

b1);

if(bushu1==4'

b0)

bushu2=(bushu2==4'

(bushu2+4'

if(bushu2==4'

b0&

bushu1==4'

bushu3=bushu3+4'

w1=key3;

elsebeginbushu1=bushu1;

bushu2=bushu2;

bushu3=bushu3;

endcase

bushu2==4'

d6&

bushu3==4'

beginbushu1=4'

b0110;

b0011;

k<

end

译码扫描器程序如下:

moduleyima(Clk,shumaguan,bushu1,bushu2,bushu3,del);

input[3:

0]del;

output[6:

0]shumaguan;

reg[6:

0]shuzhi;

0]i;

i<

=(i==3'

b010)?

b0:

(i+3'

b001);

always@(i)

b000:

case(bushu1)

b0000:

shuzhi<

=7'

b0111_111;

4'

b0001:

b0000_110;

b0010:

b1011_011;

b0011:

b1001_111;

b0100:

b1100_110;

b0101:

b1101_101;

b0110:

b1111_101;

b0111:

b0000_111;

b1000:

b1111_111;

b1001:

b1101_111;

endcase

3'

b001:

case(bushu2)

4'

b010:

case(bushu3)

default:

b0000_000;

default:

=7'

b0111111;

assignshumaguan=shuzhi;

assigndel=i;

三、电路设计、仿真和实现:

(一)、顶层设计实现:

顶层电路图如下:

图1.1顶层电路图

总程序的RTL视图:

图1.2顶层电路RTL视图

总程序的technology视图:

图1.3顶层电路technology视图

总程序仿真波形如下:

图2.1总程序仿真波形1

该波形为s1为0,s2为1,s3为0时产生的,相序显示为正转,数码管计数并且到360后停止计数保持。

(二)、控制器设计实现:

分频器的RTL视图

图1.4分频器的RTL视图

主控制器的RTL视图

图1.5主控制器的RTL视图

主控器的technology视图

图1.6主控器的technology视图

主控制器的仿真波形

图2.2主控制器的仿真波形1

该波形为s1为0,s2为1,s3为0时的主控制器波形,相序显示为正转,当k变为1是相序保持。

(三)、受控器设计实现:

步数计数器的RTL视图

图1.7步数计数器的RTL视图

步数计数器的仿真波形:

图2.3步数计数器的仿真波形

该波形为key1为1,key2为1时,步数计数,当key3变为1时,步数清零重新计步。

译码扫描器的RTL视图

图1.8译码扫描器的RTL视图

(四)、FitDesign结果;

实际DownLoad及测试结果。

程序下载到电路板上,结果符合要求。

当对按键无操作时,数码管显示0,相序灯前两个亮。

当按下s1时,数码管从0开始计数,相序按反向顺序闪亮。

此时按下s2计数保持,相序保持。

当数码管计到360时,计数停止,相序停止。

当按下s1和s3时,数码管同上,相序顺序按正向闪亮,

当按下s1后一段时间,再按s3时,计数器会清零重新计数。

表示转向发生变化。

四、分析和讨论:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1