如何使用没有 RAM 的微控制器?

How to use a microcontroller that has no RAM?

有些微控制器 (such as the ATtiny12) 根本没有 SRAM。怎么可能让他们做任何有用的事情呢?为什么有人会制造如此有限的设备?

我能想到的对没有 RAM 的芯片进行编程的唯一方法是使用某种原始状态机,其中程序计数器的当前值基本上定义了状态。例如:

Do
  Wait for button press
  Illuminate the LED
  Wait for button release
  Extinguish the LED
Loop

我不是要解决特定问题,我只是好奇。没有记忆还能实现更复杂的事情吗?我试过谷歌搜索,没有有用的结果。

我是不是遗漏了什么?

您可能没有 SRAM,但它确实有寄存器——而且数量相当多。如果小心使用,您可以像使用变量一样使用它们,并使用 EEPROM 来保存一些数据。总之,你可以做很多事情。