数电实验 时序逻辑电路2(扭环计数器与同步加计数器)

碎碎念:做事要有取舍哦,什么重要什么先做,最开始的状态肯定是最好的。

注意:分频器clk分配AF14引脚,下载完后要拨码,数码管才会开始走。

波形仿真时,ctrl+左键选择多个项然后右键分组分为一组。

如果计数不动,检查左边74160的ent,enp,或者可能处于游离态要等一会。

参考书上p202 74194,p206奇数偶数分频电路,p218 74160, p230

目录

实验目的

电路设计

后记

附录

 知识回顾

环形与扭环形计数器

加计数器与减计数器

清零端和置数端的同步和异步

反馈清零法与反馈置数法

时钟信号同步与异步


实验目的

  1. 熟悉数码管的显示原理以及数码管译码器7447芯片的使用。
  2. 用双向移位寄存器74194和门电路设计一个右移模6的扭环计数器,使用LED灯显示输出结果。
  3. 熟悉同步十进制加计数器74160的应用与设计。使用两片74160和门电路设计一个显示27-35的加计数器。

电路设计

对于7447译码器:

简介: 7447是一种BCD-7段数码管译码器,它的主要功能是将BCD码转换成7段LED数码管的信号。该器件由7个输出引脚和4个输入引脚组成,输出低电平驱动的显示码,以推动共阳极7段LED数码管显示相应的数字。

对于74160计数器:

简介: 74160是十进制加法计数器,采用8421BCD码,能实现异步清零和同步置数。正常计数时,74160的进位输出CO=Q3nQ0nf4cf591763d845c8acbfe2b67f569553.png。该器件有低电平有效且在上升沿触发的置数控制端LDN,低电平有效的异步清零端CRN,并行数码输入端D0-D3,计数器状态输出端Q0-Q3,进位信号输出端CO,计数控制端CTT和CTP,输入计数脉冲CP。

对于74194双向移位寄存器:

简介:74194是4位双向移位寄存器,CRN是清零端,M0,M1是工作状态控制端,DSR,DSL分别是右移和左移串行数码输入端,D0-D3是并行数码输入端,Q0-Q3是并行数码输出端,CP是移位时钟脉冲。

右移模6的扭环计数器原理分析: 右移模六,所以74194输出端从左往右数第3位(QC或称Q2)接非门,再接SRS(DSR),S0,CLRN接1,S1接0,CLK给CP输入。

27-35的同步加计数器原理分析: 初态27,末态35,有初态得用反馈置数法。右侧74160表示十位数,左侧74160表示个位数, D’C’B’A’DCBA=0010 0111表示初态,QD’QC’QB’QA’QDQCQBQA=0011 0101表示末态,末态为1的输出接到与非门,再返回给两个74160的LDN端。左侧低位的ENT(CTT),ENP(CTP)接1,右侧的ENT,ENP接左侧的RCC(CO进位),两者的CLRN接1,CLK接同一个CP输入。

在本次实验中,选择74194和74160完成电路设计并生成自定义器件,如下图。

1f0fe03768ea47ed92f2bc971bdb584e.png

my74194

f1a2b077ef04468cb0d6fe181ffbf170.png

my74160

07158d039b8a42a5b4f2b1d42384675f.png

波形仿真用原理图

c35a5bb5f881484d9a662132c8439212.png

波形仿真

新建vhdl文件,输入以下分频器代码,保存为LowFreqClk,编译后生成器件LowFreqClk。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LowFreqClk IS
PORT(rst_n  : IN STD_LOGIC;
	Clk_50M  : IN STD_LOGIC;
	clk_1Hz  : buffer STD_LOGIC;
	clk_2Hz  : buffer STD_LOGIC;
	clk_4Hz  : buffer STD_LOGIC;
	clk_8Hz  : buffer STD_LOGIC);
END LowFreqClk;
 
ARCHITECTURE Behv OF LowFreqClk IS
BEGIN
PROCESS(Clk_50M,rst_n)
VARIABLE Count:INTEGER ;
BEGIN
  IF rst_n = '0' then 
    Count := 0 ;
	 clk_8Hz <= '0';
  ELSIF Clk_50M'EVENT AND Clk_50M='1' THEN
    IF Count >= 3124999 THEN
	   clk_8Hz <=not clk_8Hz;
		Count := 0 ;
	  ELSE
		Count := Count + 1;
	  END IF;
  END IF;
END PROCESS ;
PROCESS(clk_8Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_4Hz <= '0';
  ELSIF Clk_8Hz'EVENT AND Clk_8Hz='1' THEN
	 clk_4Hz <=not clk_4Hz;
  END IF;
END PROCESS ;
PROCESS(clk_4Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_2Hz <= '0';
  ELSIF Clk_4Hz'EVENT AND Clk_4Hz='1' THEN
	 clk_2Hz <=not clk_2Hz;
  END IF;
END PROCESS ;
PROCESS(clk_2Hz,rst_n)
BEGIN
  IF rst_n = '0' then 
	 clk_1Hz <= '0';
  ELSIF Clk_2Hz'EVENT AND Clk_2Hz='1' THEN
	 clk_1Hz <=not clk_1Hz;
  END IF;
END PROCESS ;
END Behv;	

最终原理图如下,用led灯和7段数码管显示结果。(注意低位Q0,高位Q20开始,你的图可能跟我不一样,引脚别接反了)

99dbf22389dc4227900837e9f65e9fb4.png

        七段数码管从游离态0开始计数到初态27进入主循环,到末态35时返回初态27,然后循环继续。下面LED灯一共6个状态(1000,1100,1110,0111,0011,0001)成功实现右移模六。

后记

可以给my74160加上reset输入实现手动置数,但是要注意,要有时钟信号同步置数reset才有效。

18e2072bb65a4da0b6fb47497d725fbb.png


附录

拨码开关等见第一篇。

304ada4154a74df2b84ced19beb4af1a.jpeg

a232483ced2441e6a0a74c72ac125bb7.jpeg

 知识回顾

环形与扭环形计数器

环形计数器:电路需设置初态,D0-D3必须有标志位,即一位与其他三位状态不同。Q0-Q3作为电路输出不需要附加译码器即可作为控制信号。

n位环形计数器模值为n。

扭环形计数器:电路可以没初态,电路输出需要接非门或与非门作为控制信号。

1个n位的移位寄存器最多构成2n进制的扭环计数器,有2^n-2n个状态没被利用。

利用移位寄存器构成扭环形计数器的规律(右移从左往右数,左移相反,下面以右移为例):
奇数分频电路:将移位寄存器的输出端,从左往右数(即从Q00端开始数) ,第n位和第n-1位通过与非门加到DSR端,则构成了2n-1 进制扭环形计数器。

右移模9

11000,11100,11110,11111,01111,00111,00011,00010,10001,回到11000。画状态转换图易知Q0状态由之前的Q03决定,故Q03接到右侧DSR。


偶数分频电路:将移位寄存器的第n位输出通过非门加到DSR端,则构成了2n进制扭环形计数器。

bac0ce718e2e456e8732262558a659ff.png

左移模10扭环计数器

如上图,Q03Q0Q1Q2Q3状态一共十个:

00000,00001,00011,00111,01111,11111,11110,11100,11000,10000。

加计数器与减计数器

加法计数器:取反馈状态所对应的二进制代码中状态为1的各个触发器Q端的与非表达式。

减法计数器:0有效,接或门。(如果异步末态下一位是1111 1111,则全部接与非门)

74191实现初态24,末态10的减计数器。

末态下一位0000 1001,把其中为0的输出接或门。

清零端和置数端的同步和异步

837d98767c1444538da871be2091ccd4.jpeg

同步:当CP触发沿到来的时候才能完成清零或置数任务。

异步:通过异步清零输入端或置数输入端来完成清零或置数操作,而与CP信号无关。

比如:24进制加计数,若初态0,同步末态为23,异步末态为24。

反馈清零法与反馈置数法

反馈清零法:在需要构成的M进制计数器中,初态必须为0。

反馈置数法:在需要构成的M进制计数器中,使用的集成计数器为N进制,初态可以为S0~SN-1中的任意状态。

M进制加计数器,使用反馈置数法实现时,同步则末态等于初态加M-1(即使用有效循环状态中的最后一个状态译码产生的反馈信号进行置数)。

M进制加计数器,使用反馈置数法实现时,异步则末态等于初态加M(即使用有效循环状态中的最后一个状态的下一个状态译码产生的反馈信号进行置数)。

时钟信号同步与异步

时钟信号同步还是异步要根据器件来确定。

例如使用反馈清零法实现133进制计数器。

对于74161来说它是16进制计数器,采用异步清零,故CP接法采用异步接法。

末态1000 0100,异步输出要接末态的下一位1000 0101。

而使用74163时,因为它是16进制计数器,采用同步清零,故CP采用同步接法。

末态1000 0100,同步则输出与末态相同。(旧版书上这题有问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cllsse

富✌您吉祥

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值