概述
今天要记录的问题是,有关于在用计数器计数时,低位向高位的进位信号该怎么“产生”;因为意识到这个问题是因为在做转速传感器测量的实验,里面用到的计数器是74LS161,所以就以74LS161为例子。
首先是一位显示的16进制计数器:
- XFG1的频率被四分频之后的结果即是转速(测量结果)
然后是一个简单的两位显示的16进制计数器:
- 这里选择将低位的进位信号作为高位的计数脉冲信号,乍一做好像没有什么问题,但是,这个测量是存在误差的,也就是说数码管的显示存在波动,所以最后结果的显示体现的误差会非常明显,或者说,这样的设计是不合理的。
20211212
可以发现在实验过程中,数码管的显示在63(或127等其他数字)时总是有较大误差,或者说显示错误,后来经过多次尝试,发现是进位信号这里出现了问题。
于是做出了如下修改:将低位输出的四位的与非结果作为进位信号。
- 可以发现,这样就可以“正确地波动了”。
74ls161计数器+多位数码管显示
那么这到底是什么原因呢?
因为很久没有接触过数电知识(其实上学期刚学完,但是我的的记性实在不好),所以在想原因的时候还走了不少弯路。
开始觉得高位计数器不能从0变到1,后来发现修改之后的不也不能变······,这个理由属实是扯淡了,可能是脑子还晕着没有睡醒,因为计数器的计数模式本来就是递增的,怎么可能还变小呢;后来注意到74ls161计数器有一个特点是“同步置数,异步清零”,但貌似和这个错误不太搭边。于是重翻了一遍数电书,原来是触发方式的问题!
这里的74ls161的触发方式是上升沿触发,前者失败的原因在于低位由1110变为1111之后产生进位信号,RO=1,之后再来一个计数脉冲,RO=0,那么对于高位计数器来说,它的计数脉冲就来自于低位计数器的RO,在它变为上升沿的时候触发有效,高位计数器+1,故而明明显示结果应该是0F,却变成了1F。
晚上写的过程中,我又想到修改方案其实不用这么复杂,进位信号依然可以用上,只要使用它的非门输出即可了。等以后有时间想起来了再实验吧。
最后附上实验电路。
(https://download.csdn.net/download/qq_47890410/61845793)
https://download.csdn.net/download/qq_47890410/61844534
最后
以上就是大力猎豹为你收集整理的74LS161计数器(多位数码管显示)的全部内容,希望文章能够帮你解决74LS161计数器(多位数码管显示)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复