指令范例库
来自指令分册的 40 个完整范例程序。每个范例可直接复制 whole 程序文本,或一键送入代码分析器逐行解读。灰色 00 为未使用的占位符字节。
空操作指令SKIP / 0x00
空操作:什么都不做,顺序执行下一行指令。
000 00 0000 0000 001 00 0000 0000 002 00 0000 0000 003 0F 0000 0000
Set Digital Output / 0x01
000 01 0000 0001 001 00 0000 0000 002 01 0000 0000 003 00 0000 0000 004 01 0000 0009 005 0F 0000 0000
延时指令YS / 0x02
等待指定时间,在这个时间内单片机停止一切工作,时间到再执行下一行指令。
000 01 0000 0001 001 02 03E8 0000 002 01 0000 0000 003 02 03E8 0000 004 0F 0000 0000
定时指令DS / 0x03
启动定时器后程序继续执行;定时到期时硬件将超时标志寄存器R23置位(R23需程序自行清0),程序可查询R23判断时间到。
000 03 1388 0000 001 03 0000 0000 002 0F 0000 0000
大于转指令DYZ / 0x04
将两个寄存器R0与R1中的值进行比较,当R0>R1时跳转到H指定的目标行继续执行,否则顺序执行。
000 10 0000 0000 001 02 0001 0001 002 12 0000 0001 003 04 0008 0010 004 05 0008 0020 005 06 0008 0030 006 02 03E8 0000 007 0E 0000 0001 010 01 00FF 000C 011 0E 0000 0001 020 01 00FF 0003 021 0E 0000 0001 030 01 00FF 0006 031 0E 0000 0001
大于等于转指令DDZ / 0x07
当R0≥R1时跳转到H,否则顺序执行。
000 10 0000 0000 001 10 0005 0008 002 12 0000 0001 003 07 0005 0010 004 08 0005 0020 005 09 0005 0030 006 02 03E8 0000 007 0E 0000 0002 010 01 00FF 0008 011 0E 0000 0001 020 01 00FF 0004 021 0E 0000 0001 030 01 00FF 0002 031 0E 0000 0001
条件转指令TJZ / 0x0A
将专用比较寄存器R0与寄存器Rn按条件码M比较,条件成立跳转到H,否则顺序执行。条件码7/8(为0/非0)只判断Rn本身。
000 10 0000 0064 001 10 0000 0050 002 0A 0003 0005 003 01 0000 0001 004 0F 0000 0000
端口跳转指令TZ / 0x0B
检测端口/引脚电平,读到1则跳转到H,否则顺序执行。
000 25 0000 000F 001 0B FF0D 0010 002 0E 0000 0000 003 00 0000 0000 010 01 00FF 00F0 011 0F 0000 0000
调子程序指令DY / 0x0C
跳转到子程序首行执行,遇到FH(0x0D)返回到DY的下一行。子程序可嵌套调用,最多16层。
000 00 0000 0000 001 0C 0010 0000 002 0F 0000 0000 003 00 0000 0000 004 00 0000 0000 010 01 00FF 00FF 011 0C 0020 0000 012 0D 0000 0000 020 02 0001 0001 021 01 00FF 0000 022 0D 0000 0000
转移指令ZY / 0x0E
无条件跳转到指定的目标行继续执行。
000 25 0000 000F 001 0B FF0D 0010 002 0E 0000 0001 003 00 0000 0000 010 01 00FF 00F0 011 0F 0000 0000
赋值指令FZ / 0x10
向指定寄存器写入数值。运行结果可以在寄存器信息页面实时查看。
000 10 001C 03E8 001 00 0000 0000 002 13 001C 0000 003 0F 0000 0000
寄存器赋值指令RFZ / 0x11
将源寄存器R1中的值复制到目标寄存器R0中。
000 10 001C 03E8 001 11 001D 001C 002 13 001D 0000 003 0F 0000 0000
增减寄存器指令ZJ / 0x12
将指定寄存器的值增加或减少N。禁止溢出时:加法上限0xFFFF、减法下限0。
000 10 001C FF00 001 12 001C 03E8 002 13 001C 0000 003 02 0005 0001 004 12 011C 03E8 005 13 001C 0000 006 0F 0000 0000
送数指令SS / 0x13
将寄存器的值送到指定端口。
000 10 001C 03E8 001 11 001D 001C 002 13 001D 0000 003 0F 0000 0000
取数指令QS / 0x14
读取整个端口的状态存入指定寄存器。读1号口时自动转为输入方向(上拉),供外部器件驱动。
000 10 0025 00FF 001 14 001C 0000 002 00 0000 0000 003 0E 0000 0001
循环移位指令XHYW / 0x15
将指定寄存器存储值向左或向右移位指定位数。
000 10 0001 0001 001 13 0001 0000 002 02 0001 0001 003 15 1101 0001 004 0E 0000 0001
位异或指令WYH / 0x19
将目标寄存器与源寄存器按位异或,结果存回目标寄存器(R0 ^= R1)。
000 10 0025 000F 001 10 0007 8009 002 10 0009 FF00 003 0B FF0E 0010 004 0B FF0D 0020 005 0B FF0B 0030 006 0B FF07 0040 007 0E 0000 0000 010 16 0007 0000 011 0E 0000 0000 020 17 0007 0009 021 0E 0000 0000 030 18 0007 0009 031 0E 0000 0000 040 19 0007 0009 041 0E 0000 0000
寄存器除指令RCHU / 0x1D
将目标寄存器的值除以源寄存器的值,商存回目标寄存器(R0 /= R1)。
000 10 0025 000F 001 10 0006 0020 002 10 0008 1234 003 0B FF0E 0010 004 0B FF0D 0020 005 0B FF0B 0030 006 0B FF07 0040 007 0E 0000 0000 010 1A 0008 0006 011 0E 0000 0000 020 1B 0008 0006 021 0E 0000 0000 030 1C 0008 0006 031 0E 0000 0000 040 1D 0008 0006 041 0E 0000 0000
寄存器取余指令RQY / 0x1E
将目标寄存器的值除以源寄存器的值,余数存回目标寄存器(R0 %= R1)。
000 10 0006 0020 001 10 0008 1234 002 02 0001 0001 003 1E 0008 0006 004 0F 0000 0000
随机数指令SJS / 0x1F
生成一个随机数(低16位)写入指定寄存器。
000 1F 0005 0000 001 02 0001 0001 002 0E 0000 0000
高低交换指令GDJH / 0x21
将寄存器的高8位与低8位字节交换。
000 10 0025 000F 001 10 0005 2450 002 10 0006 FF00 003 0B FF0E 0010 004 0B FF0D 0020 005 0E 0000 0000 010 20 0005 0006 011 02 0001 0001 012 0E 0000 0000 020 21 0005 0000 021 02 0001 0001 022 0E 0000 0000
除指令CHU / 0x2D
将指定寄存器中的值除以立即数,商存回该寄存器。
000 10 0025 000F 001 10 0008 1234 002 0B FF0E 0010 003 0B FF0D 0020 004 0B FF0B 0030 005 0B FF07 0040 006 0E 0000 0000 010 2A 0008 0020 011 0E 0000 0000 020 2B 0008 0020 021 0E 0000 0000 030 2C 0008 0020 031 0E 0000 0000 040 2D 0008 0020 041 0E 0000 0000
取余指令QY / 0x2E
将指定寄存器中的值除以立即数,余数存回该寄存器。
000 00 0000 0000 001 10 0008 1234 002 02 0001 0001 003 2E 0008 0020 004 0F 0000 0000
编码七段指令BMQD / 0x30
将源寄存器中的数值拆成十位和个位(或十六进制高/低半字节),分别查七段字形码表:高8位=十位段码、低8位=个位段码,写入目标寄存器(bit7=a…bit0=dp)。
000 C5 0001 0000 001 C6 0001 0000 002 30 3E00 0000 003 EA 0000 0190 004 16 0000 0000 005 EA 0000 00C8 006 0E 0000 0002
三寄存器运算指令TJYS / 0x32
三寄存器运算:R0 = R1(运算码Y)R2,如Y=3时R0=R1+R2。
000 10 0001 73E8 001 10 0002 1024 002 10 0003 0000 003 32 0300 0102 004 32 0301 0102 005 32 0302 0102 006 32 0303 0102 007 32 0304 0102 008 32 0305 0102 009 32 0306 0102 00A 32 0307 0102 00B 32 0008 0102 00C 32 030B 0102 00D 32 000C 0100 00E 32 030D 0102 00F 0F 0000 0000
显示数字指令SC / 0x55
在屏幕指定位置显示寄存器数值,支持小数格式化显示。
000 C3 0001 0000 001 11 0001 002E 002 10 0028 FFFF 003 55 0000 0122 004 02 03E8 0000 005 10 0028 0210 006 5A 0000 FFFF 007 0E 0000 0000
显示文字指令WZ / 0x56
在屏幕指定位置显示寄存器内存中的ASCII文字。
000 C3 0001 0000 001 10 0004 5465 002 10 0005 6D70 003 10 0006 6572 004 10 0007 6174 005 10 0008 7572 006 10 0009 653A 007 10 0028 FFFF 008 56 2020 040C 009 02 03E8 0000 00A 10 0028 0210 00B 5A 0000 FFFF 00C 0E 0000 0000
线段指令HX / 0x5B
以画笔色画一条线段。
000 10 0028 001F 001 57 2020 2000 002 10 0028 07E0 003 58 7070 1000 004 10 0028 F100 005 59 3030 5580 006 10 0028 07FF 007 5A 1010 2020 008 10 0028 FFFF 009 5B 6060 2020 00A 0E 0000 0000
读AD通道指令AD / 0xAD
将ADS1115指定通道的采样值读入指定寄存器。采样由系统周期自动刷新,本指令读取缓存值而非即时转换。
000 10 0028 001F 001 57 2020 2000 002 10 0028 07E0 003 58 7070 1000 004 10 0028 F100 005 59 3030 5580 006 10 0028 07FF 007 5A 1010 2020 008 10 0028 FFFF 009 5B 6060 2020 00A 0E 0000 0000
模块配置指令MKPZ / 0xC0
一次性配置多个模块的开关状态:位图某位为1开启对应模块,为0关闭对应模块。
000 C0 0000 085F 001 0F 0000 0000
Activation Switch: ADC Module / 0xC1
000 C1 0001 0000 001 AD 0001 0005 002 01 00FF 0000 003 02 0005 FF00 004 01 00FF 0000 005 02 0005 FF00 006 0E 0000 0001
Activation Switch: Temperature and Humidity Sensor / 0xC3
000 C3 0001 0000 001 11 0001 002E 002 10 0028 FFFF 003 55 0000 0122 004 10 0028 0210 005 5A 0000 FFFF 006 0E 0000 0000
Activation Switch: Colour Sensor / 0xC4
000 C4 0001 0000 001 E5 3101 0001 002 0E 0000 0001
Activation Switch: External PWM Generator / 0xC5
000 C5 0001 0000 001 C1 0001 0000 002 10 0000 0003 003 10 0001 0019 004 AD 0000 0002 005 1D 0002 0001 006 12 0002 00C8 007 00 0000 0000 008 EA 0000 0002 009 0E 0000 0002
Activation Switch: RTC Clock Module / 0xC6
000 C6 0001 0000 001 13 003E 0000 002 0E 0000 0001
Set Onboard PWM Channel Duty Cycle / 0xC8
000 C0 0000 0000 001 C8 0001 03E8 002 0E 0000 0001
彩灯颜色指令CD / 0xE4
设置指定WS2812B彩灯的颜色。彩灯处于熄灭态时自动转为点亮。
000 E4 00FF 8000 001 02 0001 0001 002 E4 00FF 0000 003 02 0001 0001 004 E4 0000 FF00 005 02 0001 0001 006 E4 0000 00FF 007 0F 0000 0000
寄存器组彩灯指令RCD / 0xE5
用寄存器组中的颜色批量设置连续多颗彩灯的颜色。熄灭态自动转点亮。
000 C4 0001 0000 001 E5 3101 0001 002 0E 0000 0001
发音指令FY / 0xE8
板载蜂鸣器发出一个指定音高、指定时值的音。播放期间临时占用PA1蜂鸣器,播完自动归还PB3 PWM。
000 C0 0000 0800 001 E8 000F 0001 002 E8 0000 0001 003 E8 000F 0001 004 E8 0011 0001 005 E8 0013 0001 006 0F 0000 0000
PCA9685 Register Channel and Value / 0xEA
000 C5 0001 0000 001 C1 0001 0000 002 10 0000 0003 003 10 0001 0019 004 AD 0000 0002 005 1D 0002 0001 006 12 0002 00C8 007 00 0000 0000 008 EA 0000 0002 009 0E 0000 0002