十进制计数器程序(十进制计数器功能表)
今天给各位分享十进制计数器程序的知识,其中也会对十进制计数器功能表进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
用同步置数法和异步清零法设计一个十进制计数器
LS161的11脚(Q3)和13脚(Q1)接到LS20的其中一个与非门的两个输入端,LS20是双4输入与非门,也就是一个与非门有四个输入端,所以另外两个输入端应该接高电平,把这个与非门的输出端接到LS161的CR非端(1脚)。输出就是一个十进制计数器了,计到10会自动清零。
74LS161:异步二进制计数器在做加法计数时是以从低位到高位逐位进位的方式T作的。因此,其中的各个触发器不是同步翻转的。按照二进制加法计数规则,第i位如果为1,则再加上1时应变为0,同时向高位发出进位信号,使高位翻转。
扩展资料:
异步二进制计数器在做加法计数时是以从低位到高位逐位进位的方式T作的。因此,其中的各个触发器不是同步翻转的。按照二进制加法计数规则,第i位如果为1,则再加上1时应变为0,同时向高位发出进位信号,使高位翻转。
若使用T'触发器构成计数器电路,则只需将低位触发器的Q(或Q)端接至高位触发器的时钟输入端即可实现进位。当低位由1变为0时,Q端的下降沿正好可以作为高位的时钟信号(若采用下降沿触发的T'触发器),或者Q端的上升沿作为高位的时钟信号(若采用上升沿触发的T'触发器)。
参考资料来源:百度百科-异步计数器
Verilog HDL程序:实现2位十进制计数器,从0计数到99?
module CNT10 (CLK, RST, EN, CQ, COUT);
input CLK,RST,EN;
output[3:0] CQ;
output COUT;
reg[3:0] CQ,CQI;
reg COUT;
always @(posedge CLK)//检测时钟上升沿
begin : u1
if (RST == 1'b1)//计数器复位
begin
CQI={4{1'b0}};
end
begin
if(EN==1'b1)//检测是否允许计数
begin
if (CQI9)
begin
CQI=CQI+1; //允许计数
end
else
begin
CQI={4{1'b0}}; //大于9,计数值清零
end
end
end
if (CQI==9)
begin
COUT=1'b1 ; //计数大于9,输出进位信号
end
else
begin
COUT=1'b0 ;
end
CQ=CQI ; //将计数值向端口输出
end
endmodule
十进制计数器 vhdl
LIBRARY
IEEE;TY
CNT10
IS
n
USE
IEEE.STD_LOGIC_1164.ALL;
USE
IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY
CNT10
ISEE.STD_LOGIC_1164.AL
PORT
(CLK,RST,EN
:
IN
STD_LOGIC;
CQ
:
OUT
STD_LOGIC_VECTOR(3
DOWNTO
0);
COUT
:
OUT
STD_LOGIC
);
L;
USE
IEEE.STD_LOGI
END
CNT10;
ARCHITECTURE
behav
OF
CNT10
IS
BEGINC_UNSIGNED.ALL;
ENTI
PROCESS(CLK,
RST,
EN)
VARIABLE
CQI
:
STD_LOGIC_VECTOR(3
DOWNTO
0);
BEGINLIBRARY
IEEE;
USE
IE
IF
RST
=
'1'
THEN
CQI
:=
(OTHERS
='0')
;
--计数
ELSIF
CLK'EVENT
AND
CLK='1'
THEN
L;
USE
IEEE.STD_LOGI
IF
EN
=
'1'
THEN
IF
CQI
9
THEN
CQI
:=
CQI
+
1;
--允许计数,
TY
CNT10
IS
n
ELSE
CQI
:=
(OTHERS
='0');
--大于9,
END
IF;C_UNSIGNED.ALL;
ENTI
END
IF;
END
IF;
IF
CQI
=
9
THEN
COUT
=
'1';
--计数大于9,输出进位信号LIBRARY
IEEE;
USE
IE
ELSE
COUT
=
'0';
END
IF;
CQ
=
CQI;
--将计数值向端口输出L;
USE
IEEE.STD_LOGI
END
PROCESS;
END
behav;
一位十进制加法计数器的怎么用VHDL语言实现
十进制加法器的VHDL程序及注释如下:
// 包含所需的库
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
// 定义所需的输入输出端口和寄存器
ENTITY BCD_counter IS
PORT(clr,clk: IN std_logic;
BCD_q:OUT std_logic_vector(3 DOWNTO 0));
END BCD_counter;
ARCHITECTURE behavioral OF BCD_counter IS
SIGNAL counter:std_logic_vector(3 DOWNTO 0);
BEGIN
process(CLR,CLK)
begin
IF clr='0' then // 清零标志有效,则计数器清零
counter = (OTHERS = '0');
ELSIF rising_edge(clk) THEN
IF counter "1001" THEN // 计数器数值小于10,计数器加1
counter = counter +'1';
ELSE counter = (OTHERS = '0'); // 计数器数值大于等于10,计数器清零
END IF;
END IF;
end process;
BCD_q = counter;
END behavioral;
关于十进制计数器程序和十进制计数器功能表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。