2022-Supercon6-Badge 用户手册
前言
此手册仅适用于 2022-Supercon6-Badge,其他设备请参考相应文档。
版权由原作者享有,本文档仅用于学习和交流。
按键代码
按键 | 功能 | 模式 | 备注 |
---|---|---|---|
On/Off | 开关设备 | 所有模式 | 关闭状态时,时钟信号停止,处理器处于睡眠模式,I/O 连接器输出处于高阻态。 |
ALT | 切换指示灯和按钮功能 | 所有模式 | 需要先按住 ALT,再按其他按钮以激活其替代功能。 |
MODE | 切换工作模式 | 所有模式 | 按钮顺序切换:DIR, SS, RUN, PGM |
CARRY | 切换进位标志 | DIR | 按钮按下时,进位标志翻转。 |
HISTORY | 进入单步模式历史记录子模式 | SS | 显示最后 127 个单步执行步骤的寄存器和逻辑状态。 |
FAST | 切换程序执行速度(正常/10 倍) | RUN | 仅当程序运行时才有效。 |
ADDR SET | 设置程序计数器 (PC) 寄存器 | PGM | 设置 PC 寄存器为当前指令地址。 |
ADDR | 增加或减少程序计数器 (PC) 寄存器 | PGM, SS | ADDR+ 增加 PC,ADDR- 减少 PC。 |
CLOCK | 切换时钟信号(正常/反相) | DIR | 按钮按下时,时钟信号翻转。 |
STEP | 执行单条指令 | SS | 执行当前指令并增加 PC。 |
RUN | 从程序存储器执行程序 | RUN | 从地址 000000000000 执行程序。 |
PAUSE | 暂停程序执行 | RUN | 指示灯闪烁表示暂停状态。 |
BREAK | 停止程序执行 | RUN, PAUSE | 清除所有寄存器和指针,并停止程序执行。 |
DEP+ | 将当前指令写入程序存储器 | PGM | 覆盖旧内容并增加 PC。 |
SAVE | 将程序存储器保存到外部设备 | DIR | 使用 UART 通信,数据格式为十六进制。 |
LOAD | 从外部设备加载程序 | DIR | 使用 UART 通信,数据格式与 SAVE 相同。 |
**+” | 将当前指令地址减一 | PGM, SS | 仅当 ALT 未按下时才有效。 |
**-“ | 将当前指令地址加一 | PGM, SS | 仅当 ALT 未按下时才有效。 |
**”—-“ | 将当前指令地址减四 | PGM, SS | 仅当 ALT 未按下时才有效。 |
**”++++“ | 将当前指令地址加四 | PGM, SS | 仅当 ALT 未按下时才有效。 |
指示灯、按钮和连接器
1. 状态寄存器 (1)
- V (溢出)
- Z (零)
- C (进位)
2. 标志逻辑 (2)
- 生成标志信号
3. 数据缓冲器/反相器 (3)
- 由进位逻辑控制,用于加法器/减法器
- 在减法时,用于数据反相
4. 操作数 (4)
- 表示为 ALU 单元的输入
5. 加法器/减法器 (5)
- 4 位全加器/减法器,ALU 单元的一部分
- 支持无符号和有符号 (二进制补码) 4 位数字的加法和减法
6. 逻辑单元 (6)
- 4 位 OR/AND/XOR 门,ALU 单元的一部分
- 执行逻辑指令
7. 进位输入逻辑 (7)
- 用于数据和进位反相 (减法时)
- 用于产生借位信号
8. 指令解码器输出 (8)
- 也用作交互式代码反汇编器
9. 操作数 X 解码器输出 (9)
- 也用作交互式代码反汇编器
10. 操作数 Y 解码器输出 (10)
- 也用作交互式代码反汇编器
11. SAO (“Shitty Add-On”) 连接器 (11)
- +3V、地、UART Rx/Tx 引脚
12. I/O 连接器 (12)
- 输入和输出端口,以及 PIC MCU 编程引脚
13. LED 矩阵 (13)
- 显示 2 页 (2×16 个半字节) 的数据存储器
14. 三位堆栈指针指示器 (14)
15. ALT 按钮 (15)
- 切换指示灯和按钮功能
16. 模式按钮 (16)
- 切换工作模式
17. 命令组按钮 (17)
- 模式特定功能
18. 程序存储器地址指针 (或程序计数器,PC) (18)
- 显示 12 位程序计数器当前状态
19. 指令操作码按钮和指示器 (19)
- 设置指令操作码,显示解码的二进制状态
20. 寄存器累加器符号表示和指示器 (20)
- 显示累加器寄存器内容
21. 页寄存器 (21)
- 确定 LED 矩阵显示哪个数据存储器页面
22. 主时钟信号反相器 (22)
- 用于主从触发器触发
23. 操作数 X 按钮和指示器或指令扩展 (23)
- 设置指令操作数 X 或扩展操作码
24. 操作数 Y 按钮和指示器 (24)
- 设置指令操作数 Y
25. 数据输入选择按钮和指示器 (25)
- 切换二进制和选择模式
开关按钮 (On-Off Button)
这是设备底部唯一可用的按钮。在任何模式下都可以使用开关按钮,包括在用户程序运行时进行切换。关闭状态下,时钟信号停止,系统处理器进入睡眠模式,I/O 连接器(12)上的所有输出都处于高阻抗状态。然而,所有输入上都有上拉电阻,所有输出上都有下拉电阻。唯一的例外是串行 Tx 输出,它没有下拉电阻,而是上拉电阻,因为 Tx 的默认电平为高电平。每个上拉和下拉电阻的电阻值为 22KΩ。
关闭设备不会影响处理器的寄存器、内存内容或程序状态,因此当设备再次打开时,它将继续执行之前的操作,仿佛没有被停止过。
ALT 按钮 (15)
这是唯一一个按下时不会立即执行命令的按钮,但它会修改其他按钮和某些指示灯的功能。应像计算机键盘上的 Alt 按钮一样使用,即应在按下需要修改功能的按钮之前按下此按钮。其他按钮的主要 Alt 功能打印在按钮栏下方,并取决于所选的模式。
以下是操作码、操作数 X 和操作数 Y 字段中按钮的功能,在不同模式下具有原始和修改后的功能:
KEY | MODE | Original | ALT pressed |
---|---|---|---|
OPCODE | DIR | Opcode | Dimmer |
OPERAND X | DIR | Operand X | Baud rate |
OPERAND Y | DIR | Operand Y | Flash Addr |
OPCODE | SS | Opcode | Sync |
OPERAND X | SS | Operand X | Clock |
OPERAND Y | SS | Operand Y | Page |
OPCODE | RUN | - | Sync |
OPERAND X | RUN | - | Clock |
OPERAND Y | RUN | - | Page |
OPCODE | PGM | Opcode | Sync |
OPERAND X | PGM | Operand X | Clock |
OPERAND Y | PGM | Operand Y | Page |
数据输入按钮和指示灯 (DATA IN Button and Indicators) (25)
数据输入方法选择按钮,用于在二进制和选择模式之间切换。数据输入按钮每次按下时都会在两种方法之间切换,当前方法显示在 BIN/SEL 指示灯上。
二进制方法 (Binary Method): 每个按钮都简单地切换 4 位选择寄存器中对应位的状态,显示在按钮上方的四个指示灯上(最高有效位标记为“8”,位于左侧)。同时,16 步指示条显示选择寄存器的解码二进制状态。
选择方法 (SELECT Method): 按钮“-”和“+”用于将 4 位选择寄存器的二进制状态减少或增加一。按钮“—-”和“++++”可用于将选择寄存器的状态减少或增加四个,以加快选择速度。
操作码按钮和指示灯 (OPCODE Buttons and Indicators) (19)
操作码 (Opcode) 是机器语言指令的一部分,指定要执行的操作。在这种情况下,操作码总是位于 12 位指令字的最高有效位 (bits 11-8 或 bits 11-4)。操作码按钮通常用于预设 12 位指令字的四个高位(最重要的位)。二进制形式的指令字可以在操作码字段的指示灯上读取。
在一些情况下,操作码字段中的位 (0000) 不再表示操作数,而是操作码字段的扩展。每次修改程序内存地址 (PC) 时,都会自动读取新指令的内容,并更新操作码、操作数 X 和操作数 Y 的指示灯。
指令集 (Instruction Set)
指令类型
- 4 位操作码 (8 位操作码的第一四位为 0000)
- 1 个或 2 个操作数 (一些特殊指令有 2 个 2 位操作数)
- 指令长度固定为 12 位
指令字段
- 指令操作码 (Opcode):位于指令的最高 4 位 (对于 8 位操作码位于最高 8 位)。
- 操作数 X (Operand X):位于指令的中间 4 位。
- 操作数 Y (Operand Y):位于指令的最低 4 位。
指令执行
- 指令执行时,程序计数器 (PC) 会自动增加 1,指向下一条指令。
- ALU 单元根据指令操作码和操作数执行操作。
- 结果存储到指定的寄存器或存储器中。
- 标志寄存器会根据操作结果设置相应的标志位。
指令编码示例
指令: 1001 0010 0111
指令类型: MOV
操作数 X: R2
操作数 Y: 7
指令执行示例
指令: ADD RX, RY
操作数 X: R5
操作数 Y: R9
结果: R5 = R5 + R9
指令类型
- 加法 (ADD)
- 加带进位 (ADC)
- 减法 (SUB)
- 带借位减法 (SBB)
- 或 (OR)
- 与 (AND)
- 异或 (XOR)
- 移位 (SHL, SHR, RLC, RRC)
- 比较 (CP)
- 数据传输 (MOV)
- 寄存器交换 (EXR)
- 跳转 (JR)
- 输入/输出 (IN, OUT)
- 子程序调用/返回 (JSR, RET)
- 特殊功能 (PCL, PCM, PCH)
指令集
- 指令集表格详细列出了所有指令,包括操作码、操作数、指令类型、受影响的标志位和示例。
错误处理
- 堆栈错误: 堆栈溢出和堆栈下溢会导致程序终止,堆栈指示器闪烁。
- 数据存储器组织: 数据存储器包含 256 个半字节,分为 16 个页面。
- 特殊功能寄存器 (SFR): 用于控制处理器伪硬件和执行特殊操作。
- 错误处理: 详细说明了如何处理各种错误情况。
详细的指令集描述请见2022-Supercon6-Badge Instruction Set。