?? 步進電機.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 + -