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

📄 步进电机.txt

📁 这是汇编语言
💻 TXT
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity stepmotor is
 port(clk: in std_logic;  
      key1_8,key5_4,key9:in std_logic;
      key18:in std_logic; 
      keyorder: in std_logic;  
      astep,bstep: out std_logic;
      cstep,dstep: out std_logic);
 end stepmotor;

    architecture behave of stepmotor is
  signal dcount : std_logic_vector(4 downto 0); 

  signal degreecount:std_logic_vector(7 downto 0);
 signal degree : std_logic_vector(7 downto 0);
                          
signal abcd : std_logic_vector(1 downto 0);
signal clk_temp:std_logic;
begin
    process(clk)
     begin
      if(clk 'event and clk='1')then
         dcount<=dcount+1;
      end if;
   end process;
process(clk)
      begin
      if(clk'event and clk='1')then
       if(dcount="11111")then
        clk_temp<=not clk_temp;
       end if;
      end if;
    end process;
process(clk)
  begin
   if(clk'event and clk='1')then
     if(key1_8='0')then
        degree<="00010100";
     elsif(key5_4='0')then
        degree<="00110010";
     elsif(key9='0')then
        degree<="01100100";
     elsif(key18='0')then
        degree<="11001000";
     elsif(degreecount>0)then
        degree<="00000000";
   end if;
   end if;
end process;
process(clk_temp)
begin
if(clk_temp'event and clk_temp='1')then
   if(degree>0)then
      degreecount<=degree; 
   elsif(degreecount>0)then 
      degreecount<=degreecount-1;
      abcd<=abcd+1;
   else
      degreecount<= "00000000";
   end if;
end if;
end process;
process(clk_temp)
  begin
    if(clk_temp'event and clk_temp='1')then
     if(keyorder='1')then
       if(abcd=0)then
          astep<='1';
          bstep<='0';
          cstep<='0';
          dstep<='0';
        elsif(abcd=1)then
          astep<='0';
          bstep<='1';
          cstep<='0';
          dstep<='0';
       elsif (abcd=2)then
          astep<='0';
          bstep<='0';
          cstep<='1';
          dstep<='0';
       elsif(abcd=3)then
          astep<='0';
          bstep<='0';
          cstep<='0';
          dstep<='1';
  
       end if;
else
       if(abcd=0)then
          astep<='1';
          bstep<='0';
          cstep<='0';
          dstep<='0';
       elsif(abcd=1)then
          astep<='0';
          bstep<='0';
          cstep<='0';
          dstep<='1';
      elsif(abcd=2)then
          astep<='0';
          bstep<='0';
          cstep<='1';
          dstep<='0';
     elsif(abcd=3)then
          astep<='0';
          bstep<='1';
          cstep<='0';
          dstep<='0';
  end if;
  end if;
  end if;
end process;
end behave;

⌨️ 快捷键说明

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