步进电机控制-VHDL程序与仿真.doc

步进电机控制-VHDL程序与仿真.doc

ID:52763627

大小:22.00 KB

页数:3页

时间:2020-03-30

步进电机控制-VHDL程序与仿真.doc_第1页
步进电机控制-VHDL程序与仿真.doc_第2页
步进电机控制-VHDL程序与仿真.doc_第3页
资源描述:

《步进电机控制-VHDL程序与仿真.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、步进电机控制系统VHDL语言程序-----仿真libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entitystep_motorisport(reset:inSTD_LOGIC;--系统复位信号dir:inSTD_LOGIC;--方向控制信号clk:inSTD_LOGIC;--系统时钟信号ini:inSTD_LOGIC;--初始化使能信号manner:inSTD_LOGIC_VECTOR(1dow

2、nto0);--激磁方式的选择开关angle:inINTEGERrange255downto0;--步进角的倍数设定输入baBA:outSTD_LOGIC_VECTOR(3downto0));--步进电机状态输出endstep_motor;architecturestepmotor_archofstep_motorissignalcount:INTEGERrange0to7;--计数器signalcntInc:INTEGERrange-2to2;--设定累加器所需的累(加/减)计数值signalcc:integerrange0to3;sig

3、nalcntIni:INTEGERrange-1to0;--设定累加器所需的计数初值signalangleDnCount:INTEGERrange255downto0;--计算已经转过的步进角signalangleDnCntDec:INTEGERrange2downto1;beginprocess(dir,manner,angle)--,ini)begin--ifini='1'thencc<=conv_integer(manner);ifdir='0'thencasecciswhen1=>--1-相激励--count<=0;cntIni<

4、=0;cntInc<=2;angleDnCntDec<=2;--"10";when2=>--2-相激励--count<=7;cntIni<=-1;cntInc<=2;angleDnCntDec<=2;--"10";when3=>--1-2相激励--count<=0;cntIni<=0;cntInc<=1;angleDnCntDec<=1;--"01";when0=>--manner="00"autodetectif(anglerem2)=1then--2-相激励--count<=7;cntIni<=-1;cntInc<=2;angle

5、DnCntDec<=2;--"10";else--1-相激励--count<=0;cntIni<=0;cntInc<=2;angleDnCntDec<=2;--"10";endif;--angleendcase;--mannerelse--ifdir='1'casecciswhen1=>--1-相激励--count<=0;cntIni<=0;cntInc<=-2;angleDnCntDec<=2;--"10";when2=>--2-相激励--count<=7;cntIni<=-1;cntInc<=-2;angleDnCntDec<=2

6、;--"10";when3=>--1-2相激励--count<=0;cntIni<=0;cntInc<=-1;angleDnCntDec<=1;--"01";when0=>--manner="00"autodetectif(anglerem2)=1then--2-相激励cntIni<=-1;cntInc<=-2;angleDnCntDec<=2;--"10";else--1-相激励cntIni<=0;cntInc<=-2;angleDnCntDec<=2;--"10";endif;--angleendcase;--mannerendi

7、f;--elsedir=0--endif;--iniendprocess;counting_reset:process(reset,ini,angle,clk)beginifreset='1'thencount<=0;angleDnCount<=0;elsifclk'eventandclk='1'thenifini='0'thencount<=0+cntIni;angleDnCount<=angle;elsecount<=count+cntInc;ifangleDnCount>angleDnCntDecthenangleDnCount<=a

8、ngleDnCount-angleDnCntDec;elseangleDnCount<=0;endif;endif;endif;endprocess;baBA<="0000"wh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。