一、设计内容及参考步骤

4个能随机点亮的 LED 指示灯,每次只有一盏灯点亮。为每盏灯设计一个对应的按钮输入。对按钮输入是否正确进行判断。设计错误情况下出错次数的累加电路以及相应的显示电路设计正确情况下,从灯亮到输入所经时间的计时电路及相应的显示电路。设计对计时时间累加及相应的显示电路。实现灯亮 10 次停止的功能。    设计完整电路

二、 任务关键

设计一个四随机数生成器,4输出,随时间随机一个为高电平,随机数生成有很多思路,但都是伪随机的,比如用两个不同频率的较长的序列信号发生电路输出相“与”“或”等不同运算来产生信号。多次计数累加,每一次按下按钮后刷新,同时按下按钮后送给累加器clk一个脉冲让他把10次加起来停止功能,做到当错3次或者累计灯亮10次测试停止。思路是做一个存储器,只要有一个高电平输入就恒定输出高电平。

三、原理图

1.框架流程图

2.电路原理图

 

四、模块原理介绍:

1)随机信号产生模块

设计思路:由于不可能在电路中实现真随机,于是考虑用M序列发生器作为随机信号产生电路。M序列发生器可由移位寄存器和异或门反馈实现。考虑到电路复杂性和实际需求,8位M序列发生器就可以满足要求。查资料可知,8位M序列的本原多项式是: F(x) = x^8 + x^4 + x^3 + x^2 + 1,即2,3,4,8级反馈经过异或运算后返回第一级,由此每次产生8位的随机数。由于实际电路中只需要4个灯随即亮起,因此只需取其中2位输出送入译码器译码即可,译码的输出控制点亮哪个灯。

8位M序列发生器原理图[1]:

Multisim仿真电路图:

取Q4和Q7作为2位随机数输出送译码器。由于当初始状态为全0时移位寄存器会输出全0序列,为避免这种情况需加入置数端,由开关S3控制移位寄存器S1的高低电平,S3闭合时,S1为高电平,执行置数功能,将00000001序列置入移位寄存器,再打开后移位寄存器执行移位功能产生随机序列。为避免随机序列产生过快导致灯的亮起时间过短,将时钟调整到20Hz来保证灯亮灭交替的时间适宜。

2)判断正误模块

设计思路:判断逻辑为:当按键按下时,若按键和对应的灯均输出高电平则正确,否则为错误。该模块可以由逻辑门实现,逻辑表达式为:Y=K1L1+K2L2+K3L3+K4L4,Y=1时表示正确,Y=0时表示错误。

具体实现方案:Multisim仿真电路图:

其中,与门U14A两输入分别接的是S1和X1(第一个LED灯),表示S1控制灯1,以此类推。由于74LS系列没有4输入与门,因此采用了或非门+与非门代替,其输出结果不变,实现判断正误的功能。

3)错误计数模块

设计思路:每错误一次,判断模块就会输出一次低电平,经过非门后就会变成高电平,将该电平送入计数器的CLK端,就会使每次错误时计数器+1,从而达到记错误次数的效果,再送到数码管上显示。将计数器的Q1Q0进行与非运算后与电源端再进行一次与运算,因此当计数器达到3时,Q1=1,Q0=1,使他们与非运算结果为0,与电源进行与运算后结果也是0,停止供电,从而达到错误3次停止游戏的功能。

具体实现方案:Multisim仿真电路图:

与非门U6A输出的结果即为判断正误结果,将它与四个开关的或非运算再进行或非运算,使错误时输出高电平到CLK上,计数器计数。Q0Q1进行与运算后送进锁存器,当计数器为3时保持这种状态。

运行10次停止原理同理

4) 重新开始游戏功能

存储器clr清零,通过双刀开关,接地时清零,此开关是清除计数器的

5)记时功能

(节省硬件资源,10进制累加非常麻烦占用资源严重,所以计数选取16进制,这样显示不用转换并且16进制的累加电路比十进制累加简洁很多),10hz的clk给十六进制低位计数器,所以其计数速度是1s10次,计数满16次RCO给上位计数器使能一下,上位计数器的计数速度是1.6s一次。

6) 时间累加器模块:

该部分电路的设计思路是依据时间累加公式:ttotal=t1+t2+t3+…,利用循环的思想,使用寄存器和加法器,将相邻两次反应时间相加,并将结果存储在寄存器中,再将前两个时间加和的结果与下一反应时间相加,循环上述操作直到10次测试结束,求得总反应时间

具体实现方案:寄存器选用两片4位带移位的寄存器74LS194芯片(主要使用其4个D触发器存储数据的功能),加法器选用两个4位加法器74LS283芯片,将两个寄存器和加法器按照低位和高位分别级联,组成可以处理8位二进制数据的寄存器和加法器。加法器A端口的8个输入引脚与单次反应时间计数器74LS161芯片的8个输出引脚按照位权高低依次相连,B端口的8个输入引脚与寄存器74LS194芯片的8个输出引脚相连,SUM端口的8个输出引脚与寄存器的8个输入引脚相连,构成了时间循环加法器(时间累加器)。寄存器的CLK端口与按键相连,通过按键的开闭来控制寄存器置入加法器计算的结果,当按键闭合时,计数器记录的单次反应时间会传输至加法器,经过加法器运算后输出至SUM端口等待置入寄存器,当按键复位后,CLK端由低电平转为高电平(上升沿),将SUM端口的数据置入并传输至加法器的B端口,完成一次时间的累加。此处我们考虑了芯片传输延迟时间tpd远小于人手动控制按键由闭合到复位的时间,因此将按键闭合和复位产生的电平变化作为两次边沿信号分别传输至加法器和寄存器,避免了由传输延迟时间带来的不利影响。

7)平均时间计算器模块:

该部分电路的设计思路是依据每相邻两个时间求平均公式:,利用循环的思想,使用移位寄存器和加法器,将相邻两次反应时间相加,并将结果存储在寄存器中,寄存器通过右移一位的方式完成求平均功能,再将前两个的平均时间与下一反应时间相加再求平均,循环上述操作直到10次测试结束,求得平均反应时间

具体实现方案:电路主体部分与时间累加器模块相同,不过此处寄存器的S0端和CLK端将由一段波形固定的信号来控制,而下方由单稳态555定时器、计数器和译码器构成的电路作用就是产生这样一段波形固定的信号。使用时将555定时器的TRI端接在按键总信号上,当按键被按下,产生一个脉冲时,555定时器能够将短时间脉冲转换为能够持续固定时间高电平的一段高电平信号,产生的高电平驱动计数器和译码器工作,分别产生“1100”和“1010”的两个波形送给移位寄存器的S0和CLK端完成置数和移位(求平均)的功能。当移位寄存器S0端为高电平1且CLK为下降沿触发,移位寄存器将加法器74LS283的计算结果置入到寄存器内,当移位寄存器S0端为低电平0且CLK为下降沿触发,移位寄存器将完成一次右移操作,在数值上的体现就是求平均,并将平均结果传回给加法器等待下一次运算,如此循环完成总平均反应时间的计算。

五、参考文献或资料

[1]黄霞;张冰洋.M序列信号发生器的设计与实验[J].中国现代教育装备,2021,(23):35-37.

[2]  阎石. 数字电子技术基础[M]. 高等教育出版社

 

 

好文推荐

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。