DIY编程器网

标题: 步进电机定位控制系统VHDL程序与仿真 [打印本页]

作者: liyf    时间: 2011-4-26 09:40
标题: 步进电机定位控制系统VHDL程序与仿真
步进电机定位控制系统VHDL程序与仿真
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity step_motor is
port (reset:in STD_LOGIC; --系统复位信号
dir: in STD_LOGIC; --方向控制信号
clk: in STD_LOGIC; --系统时钟信号
ini: in STD_LOGIC; --初始化使能信号
manner: in STD_LOGIC_VECTOR (1 downto 0); --激磁方式的选择开关
angle: in INTEGER range 255 downto 0; --步进角的倍数设定输入
baBA: out STD_LOGIC_VECTOR (3 downto 0)); --步进电机状态输出
end step_motor;
architecture stepmotor_arch of step_motor is
signal count: INTEGER range 0 to 7; --计数器
signal cntInc: INTEGER range -2 to 2; --设定累加器所需的累(加/减)计数值
signal cc : integer range 0 to 3;
signal cntIni: INTEGER range -1 to 0; --设定累加器所需的计数初值
signal angleDnCount: INTEGER range 255 downto 0; --计算已经转过的步进角
signal angleDnCntDec: INTEGER range 2 downto 1;
begin
process(dir, manner, angle)--, ini)
begin
--if ini='1' then
cc -- 1-?相激励
--count -- 2-?相激励
--count -- 1-2?相激励
--count --manner="00" autodetect
if (angle rem 2) =1 then -- 2-?相激励
--count -- 1-?相激励
--count -- 2-?相激励
--count -- 1-2?相激励
--count --manner="00" autodetect
if (angle rem 2) = 1 then -- 2-?相激励
cntIni angleDnCntDec then
angleDnCount =7;
end stepmotor_arch;




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2