该工程案例是一个典型的数字系统应用案例,需要运用课程中学习到的逻辑门、编码器、显示译码器、数码管、比较器、计数器和单稳态触发器等知识与技术方法。这个案例涉及到了许多数字电路中重要的集成电路器件的应用,涵盖了数字电子技术的主要内容。所以,通过这个案例,可以将课程中学到的各种概念与技术应用于实际工程中,加深对数字系统设计及相关器件的理解与掌握。
实现功能
由键盘或按键输入每个瓶子将装入的药片数。当每个瓶子的药片正好装满时,以下两个事件同时发生:(1)停止药片装入;(2)已装瓶数+1
(1)通过键盘或按键设置每瓶将装入的药片数(1-9);
(2)1位数码管显示当前已装药瓶数(最大值为9);
(3)2位数码管显示当前已装的总药片数(最大值为81)。
提示:以下设计使用了Proteus 8,下面案例可供参考,模块设计解释不分先后
一、设计框图
二、设计过程
1.按键模块
键盘设置模块,实现由键盘输入每瓶允许装入药片的数量(1-9)。该模块由键盘输入电路、十进制到8421BCD的编码器组成。
如图 2-2,该模块由 1片 74147,4个与非门,8个10k电阻,8个拨动开关 组成。
其中将74147的8个输入端分别通过电阻连接电源及通过拨动开关连接地。这样,当开关打开时,输入为1,关闭时输入为0,就可以通过闭合开关来选择装瓶药片数。而输入端由于是反码输出,故要接入与非门来正常输出8421BCD码。
2.单瓶药片计数器和比较器
比较模块。药片检测传感器工作时,每装入1片药片即产生1个脉冲,单瓶药片计数器依据该脉冲信号对每瓶装入的当前药片数(B)进行计数。
如图 2-3,该部分由 1片 7485,1片 74160 和1个与非门 组成。
其中 7485 的输入端的1个4位二进制输入端口(A3 A2 A1 A1)数接按键模块的输出,另1个4位二进制数输入端口(B3 B2 B1 B1)接 74160 构成的单瓶药片计数器输出。该单瓶药片计数器采用异步清零法连接,时钟信1Hz(药片脉冲),清零信号由比较器的相等端输出来提供。当单瓶药片计数器输出小于装瓶药片数时,比较器输出0,经与非门变为1,正常计数;单瓶药片计数器输出与装瓶药片数相等时,比较器输出1,经与非门变为0,提供清零信号。计数器和比较器共同构成一个可预置的A(药片数)进制加法计数器。
3.移瓶模块
移瓶模块。可使用单稳态电路模拟药瓶的移动过程。单稳态电路暂稳态的持续时间就是移瓶的时间,在该段时间内,停止装入药片的工作。
如图 2-4,该部分由 555 定时器构成的单稳态电路和2个与非门 组成。
其中单稳态电路的输入由比较强的输出经与非门后提供,而输出经与非门与1Hz时钟信号(药片脉冲)连在一起作为单瓶药片计数器和总药片计数器的输入时钟信号。当单瓶药片装满时,由比较器输入的1信号经与非门得到的0信号提供单稳态电路的输入脉冲,使其输出1,经与非门后变为0将1Hz时钟信号(药片脉冲)封锁,从而起到延时的作用。延时时间:(这里时间设计较短,是为了方便仿真测试)。
4.药瓶计数器部分
将当前已装瓶数进行显示。由药瓶计数器、显示译码器和1位数码管组成。药瓶计数器以比较器输出信号作为计数脉冲,对当前已装药片瓶数进行计数。
如图 2-5,该部分由 1片 74160 和1个与非门构成的采用异步清零法的模为 9 的计数器,和由1片 4511 和1个共阴极8段数码管组成显示模块 组成(这里将数码管 dp 接地)。
其中计数器的清零信号除了使该计数器清零,还作为总药片量计数器的清零输入。当瓶数到达 9 时会自动清零,经移瓶延时后进入下一轮计数。
5.总药片量计数器部分
已装总药片数显示模块。由总药片计数器、显示译码器和2位数码管组成,总药片计数器构成一个2位十进制计数器,可将总药片数进行累加,可计数的最大值为99。
如图 2-6,该部分由 2片 74160 构成的采用异步清零法的计数器和2个显示模块 组成。
其中计数器的清零信号由药瓶计数器的清零信号提供,从而使其在药瓶数清零时跟着清零。
测试
当选择单瓶药片为2时,进行仿真测试,可以看到,每装2片药片瓶数加1,同时延迟1.1s 进行下一次装药片。当瓶数为8时,药片总数为16。在测试中,当瓶数到达9瓶,药丸总数到达18时,计数器会清零,经延时后进入下一装瓶过程。实际上,当选择不同的装瓶药片数时,药丸总数清零时总数会满足 9A(A 为单瓶药片数)的关系,即数码管所计最大药丸总数会随所选单瓶药片数而随之变化。