目录
零、前言
一、电路总体原理图
1.1所用仿真平台及电子元件
1.2整体原理图
二、主要元件及其工作原理介绍
2.1 555定时器
2.2 4017逻辑单元
三、现象展示
四、尾声
零、前言
自从研究生开学以来就一直在学各种算法,从来没有碰硬件的东西,今天写完了要做的作业,感觉比较闲了,就突然想用仿真软件设计一个电子骰子。骰子(tóu zi),又称色子(shǎi zi),是中国传统民间娱乐用来投掷的博具,早在战国时期就有,通常作为桌上游戏的小道具,最常见的骰子是六面骰,它是一颗正立方体,上面分别有一到六个孔(或数字),其相对两面之数字和必为七。中国的骰子习惯在一点和四点漆上红色。骰子是容易制作和取得的乱数产生器。电子骰子就是用6个LED代表骰子的6个面,用芯片来让代表六个面的LED随机亮灭,最后那个LED亮就代表要到了那个面,这属于一个很简单的数字逻辑电路设计,其本质就是一个流水灯,对这个设计感兴趣的就继续看吧,有任何问题欢迎私信。
一、电路总体原理图
1.1所用仿真平台及电子元件
各个元件的值都是由公式或者物理参数限制确定的,具体见第第二章主要元件工作原理部分。仿真平台:NI Multisim是很常用的模拟电路仿真软件,不知道的我怀疑你是假的通信汪。
仿真平台 | NI Multisim14.0 |
电源 | 5V直流电源 |
电阻 | 2.2k一个、100k两个 |
电容 | 1nf一个、0.1uf一个 |
定时器 | NE 555 |
逻辑单元 | 4017 |
LED | 6个 |
按钮 | 一个 |
1.2整体原理图
把元器件找到后拖到绘制原理图窗口,按如下方式进行连接,进行仿真就行了。
1.3电路工作流程
通过设置电容及电阻值的大小,让555定时器芯片的输出端口产生特定的PWM脉冲,再把特定的PWM脉冲作为逻辑单元4017的触发信号,4017就是一个10进制计数器。当我们按下按钮时电路开始工作,产生的PWM脉冲会让4017的输出空依次输出高电平以点亮LED。6个LED分别代表骰子的1到6,6个面,当按起按钮时,4017暂停工作,不在进行脉冲的计数,LED停止变换,此时亮着的LED就代表此次摇骰子的结果。以上就是电路的工作流程。你可以通过减小PWM脉冲的周期来提高这个电子骰子的随机性。
二、主要元件及其工作原理介绍
2.1 555定时器
555,全称“通用单双极型定时器”(General-purpose Single Bipolar Timer),意思是555的一个芯片中包含一个(单)用三极管做成的(双极型)定时器。它在外接一个电阻和一个电容后,能够精确地实现延时功能。3脚的输出会自动在高低之间变换,而不会稳定地停留在高或低上。这就形成了一个振荡器。这个特性可以用来制作LED的闪烁效果、电子琴等,也可以用于PWM技术控制电动机的转速等。
各个引脚的功能见下表:
引脚 | 功能 |
1、GND | 接地。 |
2、Trigger | 输入端Trigger,该脚会判断其电压是否小于1/3 Vcc。 |
3、Output | 输出端Output。 |
4、Reset | 清零端Reset。正常工作时应接高电平。 |
5 、Cotrol voltage | 控制电压端。一般不使用,应通过一只0.01μF(103)瓷片电容接地,以防引入高频干扰。 |
6、Threshold | 输入端Threshold,该脚会判断其电压是否大于2/3 Vcc。 |
7、Discharge | 放电端Discharge。 |
8、Vcc | 外接电源Vcc,范围为4.5V~16V,一般用5V。 |
充电时间:T1=0.693(R1+R2)*C
放电时间:T2=0.693*R2*C1
周期:T=T1+T2,f=1/(T1+T2)=1.443/(R1+R2)*C1
占空比:T1/T=(R1+R2)/(R1+2*R2)
改变R1、R2的值就改变了筛子的随机性。以上就是555的工作原理
2.2 4017逻辑单元
4017芯片是十进制计数器/分频器(带十进制输出),它有十个译码输出的5段约翰逊计数器。它是用高速CMOS技术制造,每个译码器输出通常处于低电平,且在时钟脉冲由低到高的转换过程中依次进入高电平。每个输出在高电平维持10个时钟周期中的1个时钟周期。输出10进入低电平后进位输出由低转换到高。
CD4017有3个输(MR、CP0和~CP1),MR为清零端,当在MR端上加高电平或正脉冲时其输出O0为高电平,其余输出端(O1~O9)均为低电平。CP0和~CPl是2个时钟输入端,若要用上升沿来计数,则信号由CP0端输入;若要用下降沿来计数,则信号由~CPl端输入。设置2个时钟输入端,级联时比较方便,可驱动更多二极管发光。
由此可见,当CD4017有连续脉冲输入时,其对应的输出端依次变为高电平状态,故可直接用作顺序脉冲发生器。刚好可以用来点亮LED。
三、现象展示
具体现象看下面视频,想提高随机性,让LED变化更快一点,改变电阻值就行了,自己可以尝试更改一下:
电子骰子
四、尾声
学了这么长时间的算法,突然感觉算法和硬件电路设计有异曲同工之妙。都是在设计一个又一个小的模块,每一个小的模块都设计好了连接起来就是一个特别优秀的系统。特别是创意也是很重要的,这个设计本质上就是一个流水灯,但是你能把流水灯和骰子想到一起吗?这就是我们要培养的跳跃性思维。