
3个回答
展开全部
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY subcnt60 IS
PORT(clk,reset: IN STD_LOGIC;
co: OUT STD_LOGIC;
qh,ql: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
END subcnt60;
ARCHITECTURE behave OF subcnt60 IS
BEGIN
PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk='1' )THEN
IF reset='1' THEN
qh<="0000"; ql<="0000";
ELSIF qh="0000" and ql="0000" then
qh<="0101";ql<="1001";co<=’1’;
ELSIF(ql="0000")THEN
ql<="1001";qh<=qh-1;
ELSE ql<=ql-1; co<=’0’;
END IF;
END IF;
END PROCESS;
END behave;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY subcnt60 IS
PORT(clk,reset: IN STD_LOGIC;
co: OUT STD_LOGIC;
qh,ql: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
END subcnt60;
ARCHITECTURE behave OF subcnt60 IS
BEGIN
PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk='1' )THEN
IF reset='1' THEN
qh<="0000"; ql<="0000";
ELSIF qh="0000" and ql="0000" then
qh<="0101";ql<="1001";co<=’1’;
ELSIF(ql="0000")THEN
ql<="1001";qh<=qh-1;
ELSE ql<=ql-1; co<=’0’;
END IF;
END IF;
END PROCESS;
END behave;

2022-05-15 广告
增量编码器一般输出信号是两路正交脉冲信号和一路参考信号,之所以叫增量是因为它的位置信号是通过对脉冲计数累加得到,依靠计数设备的内部记忆来记住位置,并且同每圈输出的参考信号来清除累计误差. 缺点就是断电后,需要重新寻找初始位置. 例如打印机扫...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
展开全部
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count_60 is
port(clk,reset:in std_logic;
load:in std_logic;
current_value:in std_logic_vector(5 downto 0);
output:out std_logic_vector(5 downto 0));
end entity;
architecture art of count_60 is
begin
process(clk,reset,load,current_Value)
variable cnt:std_logic_vector(5 downto 0);
begin
if reset='1' then
cnt:="111100";
elsif clk'event and clk='1' then
if load='1' then
cnt:=current_value;
else cnt:=cnt-1;
end if;
end if;
output<=cnt;
end process;
end art;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count_60 is
port(clk,reset:in std_logic;
load:in std_logic;
current_value:in std_logic_vector(5 downto 0);
output:out std_logic_vector(5 downto 0));
end entity;
architecture art of count_60 is
begin
process(clk,reset,load,current_Value)
variable cnt:std_logic_vector(5 downto 0);
begin
if reset='1' then
cnt:="111100";
elsif clk'event and clk='1' then
if load='1' then
cnt:=current_value;
else cnt:=cnt-1;
end if;
end if;
output<=cnt;
end process;
end art;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这还要急、。。。。
百度一下,多的很哦
百度一下,多的很哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询