
拟议中的设备在ATmega4809微控制器上模拟一个抽象的4位微控制器,其地址空间为256字节,可以用三个按钮和四个开关进行编程。
地址空间分为16页,每页16条指令。 指令长度为8位,其中最重要的四个是命令,最下面的四个是数据:

要进入编程模式,请按住按钮2,按一下复位按钮,然后释放它,然后再释放按钮;在编程模式下,按按钮2依次对RAM中的指令进行排序。 按钮1允许您在当前指令中更改命令和地址。 使用按钮2移至新地址时,将在ROM中输入前一个地址的指令。 键入程序后,您需要按复位按钮,然后从编程模式过渡到程序执行模式。
命令列表:
0x0-将常数值加载到doutB端口
0x1-在doutA端口中相同
0x2-暂停
0x3-相对无条件跳回
0x4-将常数值加载到变量A中
0x5-使用变量A的值加载内容
0x6-将某物的值加载到变量A中
0x7-使用变量A(和B)执行算术和逻辑运算
0x8-为绝对无条件跳转指令设置地址的高半字节
0x9-绝对无条件跳转到指定地址
0xA,0xB-就像for循环:每次执行命令时,如果变量C(或D)大于零,则绝对无条件地转移到给定地址,然后变量C(或D)的值减小
0xC-如果参数是逻辑单元,则跳过以下语句
0xD-在指定地址处调用该函数
0xE-从调用的函数返回
0xF-设置虚拟4位RAM的地址,可以使用指令0x6E读取并使用指令0x50写入此地址存储的值。
示例1-闪光器:
0 1f doutA 1 28 500 2 10 doutB 3 28 500 4 34 -4
示例2-二进制计数器:
0 5B DoutB = A 1 59 PWM1 = A 2 71 A++ 3 28 500 4 34 -4
示例3-可调速闪光器(带子例程):
: 0 10 DoutA = 0x0 1 d5 myWait 2 1f DoutA = 0xf 3 d5 myWait 4 34 -4 myWait: 5 64 A = Din 6 52 C = A 7 25 50 8 a7 for(C > 0; C--) jmp 7 9 e0
方案:



所有必需的重复文件(板,固件等)-参考原始文件。 功能紧密的德国
TPS模拟器为设计提供了灵感。