上一章我们使用各种逻辑门完成了一个4位二进制数的全加器,这一章我们将了解到CPU中另一个重要的概念:脉冲信号
这一章用到的硬件材料:面包板-1块、蓝色LED-2颗、黄色LED-1颗、74LS02芯片-1块、触点按钮-2颗、1kΩ电阻-4颗、220Ω电阻-1颗、1μF电容-1颗、NE555芯片-1块、导线若干
了解过CPU的一定都听说过CPU的一个名词:主频。实际上,主频指的就是CPU的时钟工作频率,时钟工作频率越高,也就是主频越高。在其他条件不变的情况下,理论上来说,主频越高,其CPU的运算速度就越高。但实际上主频与运算速度的关系不是简单的线性关系,影响CPU速度的因素可能有很多。
这一章,我们就将实现一个CPU的脉冲信号发生器。
SR触发器
在着手制作脉冲信号发生器之前,我们需要先了解一下SR触发器。
SR触发器(也叫SR锁存器)中的S表示Set,R表示Reset。通过上图可以看到,该电路有两个输入引脚和两个输出引脚。SR触发器可以存储一位二进制信息。其中SD引脚为高电平、RD引脚为低电平时,Q输出低电平,Q'输出高电平,在设置后断开SD后,输出状态保存,直到RD输入高电平,此时Q输出高电平,Q'输出低电平。入过SD和RD同时输入高电平,电路无效,Q和Q'皆为低电平。在正常情况下Q与Q'状态始终相反。
其实现电路如下:
通过原理图可以看到,SR触发器的两个输入输出完全对称,所以实际上在通电时,Q和Q'其中一个,且是随机一个输出高电平。
SR触发器的性质对我们后续开发内存和寄存器有较大的帮助,将其使用元件搭建出来如下:
搭建SR触发器所使用到的NOR门芯片为74LS02,其文档可以本文最下方找到。
555定时器
555定时器又叫NE555芯片。
其芯片手册可以在这里找到:
NE555 Datasheet, PDF - Alldatasheet
在这里,也简单介绍一下各引脚的功能:
- GND:接地。
- TRIGGER:触发引脚,通过连接到控制电压以触发计时器。
- OUTPUT:输出信号。
- RESET:复位引脚,该引脚处于低电平状态时,芯片不工作。
- CONTROL VOLTAGE:控制电压引脚,可以用于调整计时器的输出频率。
- THRESHOLD:阈值引脚,用于比较控制电压和一个内部参考电压,当控制电压大于阈值时,触发引脚会产生触发信号。
- DISCHARGE:放电引脚,连接到电路的一个电容,在计时器计时期间用于放电电容,以保持电路的稳定。
- VCC:供电引脚,工作电压为4.5-16V。
我们可以使用NE555来制作一个脉冲发生器:
NE555的内部结构大概是下面这个样子:
这个原理图不一定准确,只是大概了解一下内部工作原理,具体原理图和内部结构图可以在datasheet中找到。
在上图中,每个蓝色圆圈都代表一个引脚,从最左边的三个引脚开发,从上到下分别是7号引脚DISCHARGE、6号引脚THRESHOLD、2号引脚TRIGGER,最顶上的引脚是8号VCC,提供直流电源,与VCC相连的,经过三个电阻到最底部的接地为1号引脚GND,最左边连接LED的是3号引脚OUTPUT。
我们直接看NE555的使用原理图:
先说一下这个原理图,这个原理图的555时钟的引脚位置与实际芯片有一些不同,我们可以参考芯片引脚名称来判断。
首先是RES和VCC,分别对应芯片的4号和8号引脚,这两个引脚皆通5V高电平,VCC就不多说了,RESET引脚在上面的NE555内部原理图中没有画出来,实际上该引脚通过一个非门(NOT)连接到SR触发器的Set引脚(SD),结合上一节介绍的SR触发器,我们可以直到,在4号引脚经过低电平时,NOT门输出高电平,此时RS触发器的SET引脚永远至于高电平,反Q永远输出低电平。所以我们给到RESET引脚一个高电平,使得NOT门置于低电平,从而激活NE555芯片。
DIS对应芯片的7号引脚,该引脚经过一个1kΩ的电阻连接到+5V,并且经过一个100kΩ的电阻连接到6号(THR)和2号(TRIG)引脚,最后接入一个1μF的电容,并接地。另外一边3号引脚OUT连接到一个LED,并经过100Ω的限流电阻后接地。
该电路使用元件搭建出来就是上面动图的效果,LED会处于每秒大概3.8次左右闪动的状态,这个频率跟100kΩ的电阻大小,以及电容大小有关,具体可以根据NE555的文档来详细计算,文档中各环境下芯片状态,以及芯片原理都比较齐全,这里就不多介绍了。
也正是因为这个原因,我们可以把100k欧姆的芯片换成一个电位器加一个1kΩ电阻,以此达到调节输出频率的目的。
总结及参考资料
这一章我们了解了可以用来存储数据(也可以用来做其他很多事情)的SR触发器,并且以SR触发器为重要构成的NE555时钟芯片,并且基于时钟芯片构造了一个CPU连续脉冲,在后续CPU运行中,这个脉冲电路能够起到极为重要的作用。
但是实际上,为了方便我们对电路和程序进行调试,很多时候我们需要暂停运行或单步运行,这个时候我们就需要用到单步脉冲了,这个电路我们会在下一章介绍到。








