2022-Supercon6-Badge User Manual

 

2022-Supercon6-Badge 用户手册

前言

此手册仅适用于 2022-Supercon6-Badge,其他设备请参考相应文档。

版权由原作者享有,本文档仅用于学习和交流。

源文档1.User_Manual_v4.pdf

按键代码

Image

按键 功能 模式 备注
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 未按下时才有效。

指示灯、按钮和连接器

Image

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