APP下载

可预置数的1位随机数产生电路的设计与仿真

2012-08-06赖康荣

电脑与电信 2012年6期
关键词:数码管译码计数器

杨 奇 赖康荣 王 超

(昌吉学院物理系,新疆 昌吉 831100)

1.引言

生活中常常会遇到需要产生多个不重复随机数的问题,如随机抽奖、摇号等从多个整数中随机产生一个数。解决此问题的方法有多种如:软件编程、硬件电路实现或仿真。我们可以利用《数字电子技术》知识通过仿真软件进行仿真设计。Multisim是美国国家仪器公司 (NI)下属的Electronics Workbench Group发布的交互式SPICE仿真和电路分析软件,它是一款优秀的电子电路辅助分析与设计软件,其优点很多,利用该软件对电子电路进行仿真设计,不消耗实际的元器件,电路修改调试方便,提高了电子电路设计的效率,缩短了产品开发的周期,是目前大学课程中常用的电子设计应用软件。下面让我们一起来了解如何用Multisim来实现一定功能的电路并仿真。

2.设计要求与分析

2.1 设计要求

设计一个在0到9这十个数内可预置数的1位随机数产生电路,即可以根据要求在0到9范围内任意设定一定范围内产生随机数,如0到4,5到9等,要求:通过一个按键开关随机抽取预先设定数范围内中的一个数字,经译码后用数码管直观地显示该随机数。

2.2 分析

根据设计要求,数字至多在0到9可由十进制计数器状态输出获取。由于计数器状态输出是周期性变化的,因此数字所设定的随机数应均等地出现。为了保证随机数均等地出现,其频率可设定为10kHz。在确定初态的情况下,按键频率要达到10kHz才能预知下一状态。操作人员是远远达不到如此高的按键频率,这样就保证了随机数出现的公正性。电路还需2个开关(用变量J1和J2表示)分别控制电路的工作状态(计数和送数到译码显示管)。根据上述任务分析确定设计方案。整个电路由开关控制等6个模块组成。如图1所示。

3.电路设计与仿真

3.1 计数器与寄存器设计

由于设计要求中:数字至多在0到9可由十进制计数器状态输出获取。因此选用具有十进制加法计数功能的器件即可。本设计选用集成1进制同步加法计数器741S160。为了保证随机数应均等地出现,其频率可设定为10kHz。寄存器选用的是由4D边沿触发器构成的74Ls175。由于数字0也是摇号备选号码,则计数器74Lsl60及寄存器74Lsl75皆不能作清零操作,避免数字O出现次数过多,影响随机数产生的均等性。因此,计数器74LSl60和寄存器74LSl75的清零控制端无效,即CLR=1。若要在0到9范围内任意设定一定范围内产生随机数,可以运用清零法,只需再加与非门或非门以及多路选择开关与74Lsl60的清零端相连即可。

图1 可预置1位随机数产生电路原理图

3.2 振荡电路设计

振荡电路用于产生计数器所需的时钟脉冲信号。用于产生时钟脉冲信号的电路有很多种,常用的有:由CMOS门电路构成多谢振荡器、石英晶体振荡器等。由于该电路设计精度要求不高,由LM555定时器构成的多谢振荡器具有结构简单、功能齐全、操作灵活、使用方便等优点,因此时钟脉冲由555定时器与RC组成的多谐振荡器产生,如图2所示,其振荡频率约10KHZ。

图2 时钟脉冲发生器

3.3 译码显示电路设计

为直观地观察摇号结果,采用共阳极七段数码管作为显示器。译码电路采用74LS47,其输入端A—D接寄存器74LSl75的输出端1Q-4Q。电路如图3所示。

图3 译码显示电路

3.4 开关控制电路设计

开关控制电路是整个电路的重要部分,需要两个开关分别控制计数开始和产生随机数,其功能为由表1所示电路功能。开关J1用于控制十进制计数器置数和计数,当J1与74LS160的置数控制端LOAD相连时,计数器的置数控制端LOAD=0,使得计数器处于置数状态;当J1闭合时,计数器的置数控制端LOAD=1,使得计数器工作于计数状态。其输出循环产生0~9。J2用于产生随机号操作,可与寄存器时钟控制端CLK相连。没按下J2键寄存器时钟控制端CLK处就产生一个上升沿脉冲。

表1 电路功能

整体电路如图4所示,根据表1功能分析如下:

(1)灭灯 开关J1断开使74Ls160置数端有效,QAQBQCQD输出 1111,送入 74LS175的输入端,即1D2D3D4D为1111。按下开关J2,74LSl75的时钟控制端CLK产生一个上升沿脉冲,其输出1Q2Q3Q4Q也为1111。使74LS47的七路输出全为0,则此时七段数码管显示为灭灯状态。

(2)保持 开关J1闭合,74LS160工作于计数状态。J2断开,74LSl75的时钟控制端CLK=0输出保持,则此时七段数码管显示状态也保持。

(3)产生随机数 开关Jl闭合,74LS160工作于计数状态。按下开关J2,74LSl75的时钟控制端CLK产生一个上升沿脉冲,其输出lQ-4Q为该时刻计数器的输出QA~QD,通过74LS47译码后七段数码管显示出相应的随机数。

根据如图4所示的整体电路,为了更好地显示整体电路,由555定时器与RC组成的多谐振荡器产生的时钟脉冲信号用Multisim软件中的时钟信号源来代替。图4电路通过J1使74LS160处于计数状态,通过多路选择开关在0到9范围内任意设定一定范围内产生随机数,当开关J3打到5V时产生0-9范围内的随机数,将J3打到另一边,然后通过多路选择开关S1选择不同范围内的随机数,从左到右顺时针依次是0-1、0-2、……0-8范围内的随机数,最后通过按下开关J2产生设定范围内的随机数。如图当J1闭合,J3选择其它范围内的随机数,S1选择开关打到0-6范围内,此时按下J2停止后在译码显示器显示随机数是4。在规定的0-6范围内,该电路满足设计要求。

图4 仿真电路

4.结束语

通过应用所学《数字电子技术》知识设计并仿真了可预置数的1位随机数产生电路,让我们不仅了解数字电路应用的广泛性,而且了解Multisiml0软件具有直观的图形界面、庞大的元器件库、丰富的测试仪器、完备的分析工具、强大的仿真能力等特点,可广泛应用于电子电路的教学、设计和科研中。

[1]王冠华.Multisiml0电路设计及应用[M].北京:国防工业出版社,2008.

[2]聂典,丁伟.Multisiml0计算机仿真在电子电路设计中的应用[M].北京:电子工业出版社,2009.

[3]王全字,董昱.EDA技术创设电子技术课堂教学实验环境的研究[J].仪器仪表用户,2010,12(6):104-105.

[4]黄培根.Multisim9虚拟仿真和业余制版实用技术[M].北京:电子工业出版社,2008.

[5]刘贵栋,王淑娟.应用Mulitsim的“电子技术基础”研究性教学实践[J].电气电子教学学报,2010,32(5):60-61.

猜你喜欢

数码管译码计数器
采用虚拟计数器的电子式膜式燃气表
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
从霍尔的编码译码理论看弹幕的译码
计数器竞争冒险及其处理的仿真分析
LDPC 码改进高速译码算法