你有没有想过,一首1993年的游戏音乐,可以不用电脑、不用声卡,甚至不用现成的音频芯片,只靠一堆最基础的电子元件就响起来?听起来像不可能,但有人真的做到了。
这次的主角不是软件,也不是游戏引擎,而是555定时器——一种在电子爱好者工具箱里躺了几十年的基础芯片。它便宜、简单、随处可见,通常用来做闪烁灯或者简单振荡器。可就是这些不起眼的小东西,被拼成了一台能播放《DOOM》开场曲的硬件音乐盒。
一个时钟,十五个位置,六种音高
整个电路的核心,是一个充当系统时钟的555定时器,频率只有7赫兹多一点。这个慢悠悠的节奏,推动着一个二进制计数器,再经过译码器,把时间切成15个位置。
每个位置后面,连着一组二极管矩阵。二极管在这里不是用来发光,而是用来“记住”当前时刻该发哪个音。整首曲子只需要六个音高,所以这些二极管的作用,就是把每一个时间点连接到六个音符中的某一个。
再往后,信号进入一组开关,切换不同的电阻网络。这些电阻网络会改变另一个555定时器的时间参数,从而产生不同的音高。换句话说,同一个芯片,靠不同电阻“调音”,一段段把旋律拼出来。
明明单片机就能干的事,为什么要这么折腾
说实话,今天随便一块几块钱的单片机,写几行代码就能播放这首芯片音乐,而且音质更好、体积更小、调试也更省事。用555定时器来做这件事,从实用角度看几乎没有任何优势。
但这件事的意义,本来就不在“实用”。它更像一次回到数字逻辑底层的练习:不依赖现成音频模块,不调用库函数,而是亲手去搭时钟、计数器、译码器、二极管矩阵,看看一段旋律到底是怎么被“硬编码”进电路里的。
这种折腾,反而让人更清楚那些被封装好的芯片内部,究竟在发生什么。就像你天天用手机拍照,但偶尔自己冲一卷胶卷,才会重新理解光、快门和感光之间的关系。
从软件到硬件,边界其实没那么远
从理论上说,任何软件都可以用硬件复现,只是现代软件的规模和复杂度让这件事几乎不可能。但回到足够早的年代,老软件反而越来越适合用硬件实现。
1993年的《DOOM》原作,也许有一天真的能被完整地用硬件重建出来。不过那一天还没到。眼下能听到的,是它的开场音乐,在一堆555定时器的驱动下,一个音一个音地响起来。
这大概就是极客式的浪漫:明明有更简单的路,却偏要绕到最底层,只为确认一件事——我理解它,而不只是使用它。
热门跟贴