内部寄存器
本文档描述了系统中所有特殊功能寄存器的地址、名称和具体用途。
零、比较寄存器 (0x00)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x00 | SYS_REG_COMPARE | 比较功能专用寄存器 | 用于条件比较指令的操作数 |
说明
- 寄存器
R00(地址 0x00)专门用于比较功能 - 与比较转移指令(如
XYZ、DYZ、SDZ、XDZ、BDZ)配合使用 - 比较指令使用
R00作为主要比较操作数 - 比较结果决定程序是否跳转
一、系统状态寄存器 (0x23-0x27)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x23 | SYS_REG_TIMER_TIME_OUT | 定时器超时状态 | 非阻塞定时器状态标志 |
| 0x24 | SYS_REG_ADS1115_CHANNELS | ADS1115通道配置 | 配置需要读取的ADC通道 |
| 0x25 | SYS_REG_D_IO_STATE | 数字I/O状态 | 当前数字输入输出端口状态 |
| 0x26 | SYS_REG_D_OUT | 数字输出端口 | 设置数字输出引脚电平 |
| 0x27 | SYS_REG_D_IN | 数字输入端口 | 读取数字输入引脚电平 |
二、显示/绘图寄存器 (0x28-0x29)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x28 | SYS_REG_DRAWING_COLOR | 绘图前景色 | 画线、画矩形等绘图操作的颜色 |
| 0x29 | SYS_REG_BACKGROUND_COLOR | 绘图背景色 | 填充操作的背景颜色 |
三、PWM控制寄存器 (0x2A-0x2D)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x2A | SYS_REG_PWM_DC_CH0 | 内置PWM通道0占空比 | MCU内部PWM输出,0-100% |
| 0x2B | SYS_REG_PWM_DC_CH1 | 内置PWM通道1占空比 | MCU内部PWM输出,0-100% |
| 0x2C | SYS_REG_PWM_DC_CH2 | 内置PWM通道2占空比 | MCU内部PWM输出,0-100% |
| 0x2D | SYS_REG_PWM_DC_CH3 | 内置PWM通道3占空比 | MCU内部PWM输出,0-100% |
四、环境传感器寄存器 (0x2E-0x30) — BME280
| 地址 | 寄存器名 | 用途说明 | 数据格式 |
|---|---|---|---|
| 0x2E | SYS_REG_TEMPUERATURE | 温度值(BME280) | 温度×100,例:25.36℃ → 2536 |
| 0x2F | SYS_REG_HUMIDITY | 湿度值(BME280) | 湿度×100,例:65.50% → 6550 |
| 0x30 | SYS_REG_ALTITUDE | 海拔高度(BME280) | 单位:米 |
五、颜色传感器寄存器 (0x31-0x33) — TCS3472
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x31 | SYS_REG_COLOR_R | 颜色传感器红色分量 | TCS3472识别的R值 (0-65535) |
| 0x32 | SYS_REG_COLOR_G | 颜色传感器绿色分量 | TCS3472识别的G值 (0-65535) |
| 0x33 | SYS_REG_COLOR_B | 颜色传感器蓝色分量 | TCS3472识别的B值 (0-65535) |
六、外设开关寄存器 (0x34)
| 地址 | 寄存器名 | 用途说明 | 位定义 |
|---|---|---|---|
| 0x34 | SYS_REG_SWITCH | 外设使能开关 | 见下方开关位定义表 |
外设开关位定义
| 位 | 常量名 | 值 | 对应外设 |
|---|---|---|---|
| bit0 | SYS_PER_SWITCH_ADS1115 | 0x001 | ADS1115 ADC |
| bit1 | SYS_PER_SWITCH_BME280 | 0x002 | BME280 温湿度 |
| bit2 | SYS_PER_SWITCH_DS1307 | 0x004 | DS1307 RTC时钟 |
| bit3 | SYS_PER_SWITCH_TCS3472 | 0x008 | TCS3472 颜色传感器 |
| bit4 | SYS_PER_SWITCH_PCA9685 | 0x010 | PCA9685 PWM驱动 |
| bit6 | SYS_PER_SWITCH_WS2812B | 0x040 | WS2812B LED |
| bit7 | SYS_PER_SWITCH_LCD1602 | 0x080 | LCD1602 液晶屏 |
| bit8 | SYS_PER_SWITCH_SSD1306 | 0x100 | SSD1306 OLED |
| bit9 | SYS_PER_SWITCH_HUSKY_LENS | 0x200 | HuskyLens AI视觉 |
| bit11 | SYS_PER_SWITCH_MELODY | 0x800 | 蜂鸣器旋律 |
七、超声波传感器寄存器 (0x35-0x37)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x35 | SYS_REG_ULTRASONIC0 | 超声波传感器0距离 | 单位:毫米 |
| 0x36 | SYS_REG_ULTRASONIC1 | 超声波传感器1距离 | 单位:毫米 |
| 0x37 | SYS_REG_ULTRASONIC2 | 超声波传感器2距离 | 单位:毫米 |
八、RTC时钟寄存器 (0x38-0x3E) — DS1307
| 地址 | 寄存器名 | 用途说明 | 数据范围 |
|---|---|---|---|
| 0x38 | SYS_REG_YEAR | RTC年份 | 例:26 表示2026年 |
| 0x39 | SYS_REG_MONTH | RTC月份 | 1-12 |
| 0x3A | SYS_REG_DATE | RTC日期 | 1-31 |
| 0x3B | SYS_REG_DAY | RTC星期 | 1-7 |
| 0x3C | SYS_REG_HOUR | RTC小时 | 0-23 |
| 0x3D | SYS_REG_MINUTE | RTC分钟 | 0-59 |
| 0x3E | SYS_REG_SECOND | RTC秒 | 0-59 |
九、按钮状态寄存器 (0x3F)
| 地址 | 寄存器名 | 用途说明 | 位定义 |
|---|---|---|---|
| 0x3F | SYS_REG_BUTTON_STATE | 板载按钮状态 | 见下方按钮位定义表 |
按钮位定义
| 位 | 常量名 | 值 | 对应按钮 |
|---|---|---|---|
| bit0 | BUTTON_BIT_UP | 0x01 | 上键 |
| bit1 | BUTTON_BIT_BACK | 0x02 | 后退键 |
| bit2 | BUTTON_BIT_LEFT | 0x04 | 左键 |
| bit3 | BUTTON_BIT_RIGHT | 0x08 | 右键 |
| bit4 | BUTTON_BIT_DOWN | 0x10 | 下键 |
| bit5 | BUTTON_BIT_ENTER | 0x20 | 确认键 |
| bit6 | BUTTON_BIT_FUNC | 0x40 | 功能键 |
| bit7 | BUTTON_USE_IN_PROGRAM | 0x80 | 程序中使用按钮标志 |
| bit8-11 | _key_back_burst | - | 后退键突发状态 |
| bit12 | flag_combo_keys | - | 组合键标志 |
十、ADS1115 ADC数据寄存器 (0x40-0x4F)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x40 | SYS_REG_ADS1115_0 | ADS1115通道0原始值 | 16位ADC值 (0-65535) |
| 0x41 | SYS_REG_ADS1115_1 | ADS1115通道1原始值 | 16位ADC值 |
| 0x42 | SYS_REG_ADS1115_2 | ADS1115通道2原始值 | 16位ADC值 |
| 0x43 | SYS_REG_ADS1115_3 | ADS1115通道3原始值 | 16位ADC值 |
| 0x44 | SYS_REG_ADS1115_4 | ADS1115通道4原始值 | 16位ADC值 |
| 0x45 | SYS_REG_ADS1115_5 | ADS1115通道5原始值 | 16位ADC值 |
| 0x46 | SYS_REG_ADS1115_6 | ADS1115通道6原始值 | 16位ADC值 |
| 0x47 | SYS_REG_ADS1115_7 | ADS1115通道7原始值 | 16位ADC值 |
| 0x48 | SYS_REG_ADS1115_8 | ADS1115通道8原始值 | 16位ADC值 |
| 0x49 | SYS_REG_ADS1115_9 | ADS1115通道9原始值 | 16位ADC值 |
| 0x4A | SYS_REG_ADS1115_10 | ADS1115通道10原始值 | 16位ADC值 |
| 0x4B | SYS_REG_ADS1115_11 | ADS1115通道11原始值 | 16位ADC值 |
| 0x4C | SYS_REG_ADS1115_12 | ADS1115通道12原始值 | 16位ADC值 |
| 0x4D | SYS_REG_ADS1115_13 | ADS1115通道13原始值 | 16位ADC值 |
| 0x4E | SYS_REG_ADS1115_14 | ADS1115通道14原始值 | 16位ADC值 |
| 0x4F | SYS_REG_ADS1115_15 | ADS1115通道15原始值 | 16位ADC值 |
十一、PCA9685 PWM寄存器 (0x50-0x7F)
PCA9685 设备0 (I2C地址 0x40) — 0x50-0x5F
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x50 | SYS_REG_PCA9685_DEV0_CH0 | 设备0通道0 PWM值 | 0-4095 |
| 0x51 | SYS_REG_PCA9685_DEV0_CH1 | 设备0通道1 PWM值 | 0-4095 |
| ... | ... | ... | ... |
| 0x5F | SYS_REG_PCA9685_DEV0_CH15 | 设备0通道15 PWM值 | 0-4095 |
PCA9685 设备1 (I2C地址 0x41) — 0x60-0x6F
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x60 | SYS_REG_PCA9685_DEV1_CH0 | 设备1通道0 PWM值 | 0-4095 |
| ... | ... | ... | ... |
| 0x6F | SYS_REG_PCA9685_DEV1_CH15 | 设备1通道15 PWM值 | 0-4095 |
PCA9685 设备2 (I2C地址 0x42) — 0x70-0x7F
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x70 | SYS_REG_PCA9685_DEV2_CH0 | 设备2通道0 PWM值 | 0-4095 |
| ... | ... | ... | ... |
| 0x7F | SYS_REG_PCA9685_DEV2_CH15 | 设备2通道15 PWM值 | 0-4095 |
十二、HuskyLens AI视觉寄存器 (0xCC-0xEC)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0xCC | SYS_REG_HUSKY_LENS_BASE+0 | 目标0类型 | 0=人脸, 2=物体追踪, 4=颜色 |
| 0xCD | SYS_REG_HUSKY_LENS_BASE+1 | 目标0 X坐标 | 0-320 |
| 0xCE | SYS_REG_HUSKY_LENS_BASE+2 | 目标0 Y坐标 | 0-240 |
| 0xCF | SYS_REG_HUSKY_LENS_BASE+3 | 目标1类型 | 同上 |
| 0xD0 | SYS_REG_HUSKY_LENS_BASE+4 | 目标1 X坐标 | 同上 |
| 0xD1 | SYS_REG_HUSKY_LENS_BASE+5 | 目标1 Y坐标 | 同上 |
| ... | ... | ... | 每个目标占用3个寄存器 |
| 0xEC | SYS_REG_HUSKY_LENS_BLOCK_CNT | 识别到的目标总数 | 0-16 |
每个目标占用3个寄存器:
base + i*3→ 目标类型base + i*3 + 1→ X坐标base + i*3 + 2→ Y坐标
十三、系统控制寄存器 (0x80-0xC7)
| 地址 | 寄存器名 | 用途说明 | 备注 |
|---|---|---|---|
| 0x80 | SYS_REG_SAVE_LOAD_FLAG | 程序保存/加载控制 | 见下方标志位定义 |
| 0x81 | SYS_REG_DISP_MODE | 显示模式 | 控制OLED显示内容切换 |
| 0x82 | SYS_REG_CURRENT_PC | 当前程序计数器 | 当前执行到的程序行号 |
| 0x83 | SYS_REG_RUN_STATUS | 运行状态 | 系统当前运行状态码 |
| 0x84-0x8B | SYS_REG_FILENAME_CURRENT | 当前程序文件名 | 16字节ASCII字符串 |
| 0x8C-0x93 | SYS_REG_FILENAME_0 | 程序槽0文件名 | 16字节ASCII字符串 |
| 0x94-0x9B | SYS_REG_FILENAME_1 | 程序槽1文件名 | 16字节ASCII字符串 |
| 0x9C-0xA3 | SYS_REG_FILENAME_2 | 程序槽2文件名 | 16字节ASCII字符串 |
| 0xA4-0xAB | SYS_REG_FILENAME_3 | 程序槽3文件名 | 16字节ASCII字符串 |
| 0xAC-0xB3 | SYS_REG_FILENAME_4 | 程序槽4文件名 | 16字节ASCII字符串 |
| 0xB4-0xBB | SYS_REG_FILENAME_5 | 程序槽5文件名 | 16字节ASCII字符串 |
| 0xBC-0xC3 | SYS_REG_FILENAME_6 | 程序槽6文件名 | 16字节ASCII字符串 |
| 0xC4-0xCB | SYS_REG_FILENAME_7 | 程序槽7文件名 | 16字节ASCII字符串 |
SYS_REG_SAVE_LOAD_FLAG 标志位定义
| 位 | 掩码 | 用途 |
|---|---|---|
| bit0-7 | FILE_SECTOR_ID_MASK (0xFF) | 扇区ID |
| bit8-9 | FILE_SAVE_MASK (0x300) | 保存标志 (右移8位读取) |
| bit9-10 | FILE_LOAD_MASK (0x600) | 加载标志 (右移9位读取) |
| bit10-11 | FILE_NAME_LIST_MASK (0xC00) | 文件名列表标志 (右移10位读取) |
寄存器地址速查表
| 地址范围 | 功能分类 | 说明 |
|---|---|---|
| 0x00 | 比较寄存器 | 条件比较专用 |
| 0x01-0x22 | 用户通用寄存器 | 程序可自由使用 |
| 0x23-0x27 | 系统状态 | 定时器、I/O |
| 0x28-0x29 | 显示控制 | 绘图颜色 |
| 0x2A-0x2D | PWM控制 | 内置PWM占空比 |
| 0x2E-0x30 | 环境传感器 | 温度/湿度/海拔 |
| 0x31-0x33 | 颜色传感器 | RGB值 |
| 0x34 | 外设开关 | 使能/禁用外设 |
| 0x35-0x37 | 超声波 | 距离测量 |
| 0x38-0x3E | RTC时钟 | 日期时间 |
| 0x3F | 按钮状态 | 板载按键 |
| 0x40-0x4F | ADC数据 | ADS1115 16通道 |
| 0x50-0x7F | PWM输出 | PCA9685 三设备 |
| 0x80-0xC7 | 系统控制 | 保存/加载/显示 |
| 0xCC-0xEC | AI视觉 | HuskyLens识别结果 |