打开网易新闻 查看更多图片

笔者的目光被一款奇怪的井字棋吸引了。井字棋并不复杂,甚至还有些简陋。对于学习编程的人来说,井字棋已经成为了入门级的游戏项目,而对于电子爱好者来说……

打开网易新闻 查看更多图片

当然,如果你是使用单片机或是其他的控制器来实现的话,那么井字棋也没有什么难的。而今天笔者想要介绍的却是一款“没有用到CPU的井字棋”。它不使用控制器,而是使用分立的触发器记录输入状态,并使用ROM来记录走棋规则。没有单片机,ROM是怎么记录并判断走棋规则的呢?

打开网易新闻 查看更多图片

ROM(Read Only Memory)是一种能够永久性地存储一些信息的器件,老式的器件在生产时确定内容,一经确定后便不能改写。而后期产生了可以由用户自行写入内容的PROM(可编程只读存储器)、EPROM(可擦除可编程只读存储器)和EEPROM(电可擦除可编程只读存储器)。

最简单的并行ROM对外引脚由地址线、控制线和输出线组成,在这样的ROM拥有一个有趣的特点,即其输出端可被视为由输入端状态所组成的逻辑函数,比如下面这个例子:

如果我们想实现下面的两个函数表达式的话

F0=A, F1=A'B'+AB

我们就可以预先在ROM中存入下列的数据,注意左侧的为地址线,而右侧的为输出端,也就是说,相当于是在左侧的地址存入右侧的数据:

打开网易新闻 查看更多图片

然后,我们需要简单的整理我们所需的表达式,将所需的表达式换成由每一项输出项所表示的内容:

F0=AB+AB', F1=A'B'+AB

打开网易新闻 查看更多图片

在这之后,我们就可以将存有对应数据的输出端使用与门连接在一起,形成输出函数了。这就是使用ROM形成逻辑关系的最简单例子了。

打开网易新闻 查看更多图片

在Warren Toomey制作的ROM井字棋中,由于井字棋的走法,或者说局面是有限种的,因此将任意一种局面都储存在ROM中是可能的。这个设计也基于此理论,将所有的局面以逻辑关系式的形式储存在ROM中,输入端是当前的棋局,而输出端则是下一步的走法,于是你只需要走出一步,下一步局面则由ROM输出。(当然,在胜利、失败或是平局的时候,控制这个状态的LED也由ROM输出)。在GitHub中可以找到这个设计的全部内容,供你参考。:

https://github.com/DoctorWkt/TTL_TicTacToe

使用ROM来产生逻辑是一种非常有趣的技巧,这也是代替复杂的分立逻辑电路的第一步,还记得我们的继电器逻辑电路吗?

本文为 无线电杂志 微信公众平台文章。详细内容及高清大图请查阅《无线电》杂志。版权所有,欢迎个人转发至朋友圈。公众号、报刊等转载请联系授权。

…………………………………………………