DWIN_OS指令的理解与应用(上)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<MOD>,<NUM>
MOD:传送方向 MOD=0 字库数据读到 DGUS 变量。 MOD=1 DGUS 变量数据写到字库。 MOD=2 用户数据库数据读到 DGUS 变量。 MOD=3 DGUS 变量数据写到用户数据库。
NUM :待读或写的数据 字 长度 NUM=0 时 长度由 R9:R10 定义。 本指令执行时 DGUS 变量地址由 R0:R1 指定。 MOD=0~1 时 字库号由 R4 指定(范围:32~127)。 字库首地址由 R5:R6:R7 指定 MOD=2~3 时 用户数据库首地址由 R4:R5:R6:R7 指 定
MOVDR
DGUS 寄存器 或 DGUS 寄存 器组的数据传 送 到 OS 寄 存 器 或 OS 寄 存 器组
D# ,R# ,<NUM>
Байду номын сангаас
MOV
OS 寄 存 器 或 OS 寄 存 器 组 之间数据传送
R# S, R#T, <NUM>
MOVXX
DGUS 变量间 <NUM> 数据传送
MOVA
OS 寄 存 器 变
执行后
页面跳转到第一页。
页面号由字(双字节)表示。
D# : DGUS 寄存器或 DGUS 寄存器组的首地址
DGUS 寄存器具体定义见寄存器一览表。
R# : OS 寄存器或 OS 寄存器组的首地址
NUM:待传送的数据 字节 长度。
例: MOVDR 3, R10,2
执行后
R10:R11 中是当前页面号。
若当前页面是第 2 页,
则 R10=0x00
R11=0x02
R#S : OS 寄存器或 OS 寄存器组数据源。
R#T : 待传入数据的 OS 寄存器或 OS 寄存器组。
<NUM>: 待传送的数据 字节 长度。
例:
LDBR MOV 执行后 LDWR MOV 执行后
R10,10,1 R10,R20,1 R20=10 R10,0XAABB R10,R20,2 R20=0xAA R21=0xBB
; 立即数地址 10
LDBR R3,20,1 ; R3 装入了指向 R20 的
; 立即数地址 20
LDBR R10,0xAA, 1
MOVA
; 执行后 R20=0xAA
INC R3, 0, 1
MOVA
;执行后 R21=0xAA
用于不定长数据处理时方便,如查表改变设定值。
MOVXL
DGUS 变 量 与字库,用户 数据库之间 数据传送。
TAB2: DW 0xFFFF,0xFFFE,0xFFFD,0xFFFC,0xFFFB
MOVC
查表指令 装入程序行中 定义的数据常 数 一般和加载地 址配合使用
R# ,<NUM>
R# :
OS 寄存器或 OS 寄存器组的首地址
<NUM> : 待装载到 OS 寄存器的 字节 数。
例:
LDADR TAB1 ;把地址装载到 R5:R6:R7 MOVC R10,2 执行后 R10=0xFF R11=0xFE
LDWR R10, 0xAAFF
执行后
R10=0xAA
R11=0xFF
NOP: 不执行任何操作,只占用程序行。
LDADR
加载地址
<ADDress>
一般和查表指
ADDress:把地址 ADDress 装载到 R5:R6:R7
免费服务热线:400 018 9008
-5-
迪文科技
3, 把十六进制数 AAH 装入 R30 LDBR R30,AAH,1 执行后 R30=AAH
4, 把十进制数 10 装入 R40 和 R41 LDBR R40,10,2 执行后 R40=10 R41=10
5, 把 R0 到 R255 清零 LDBR R0,0,0 执行后 R0=0 。。。 R255=0
R2 : 数据源地址对应的立即数。 R3 : 目的地址对应的立即数。
-8-
迪文科技
寻址(由地址 对应的立即数 寻址寄存器)
DWIN_OS 指令的理解与应用(上) R9 : 待传送的数据 字 长度
OS 寄存器 R0--R255 对应的立即数地址分别为 0-255
例:
LDBR R2,10,1 ; R2 装入了指向 R10 的
如: ONE EQU 1
TWO EQU 2
MOVDR ONE, R10, TWO 与 MOVDR 1,R10,2 等效。
伪汇编指令只能在伪汇编指令框中编辑,如图。
免费服务热线:400 018 9008
-2-
迪文科技
DWIN_OS 指令的理解与应用(上)
伪汇编编辑框在靠边位置时不能剪切,复制,粘贴,只能录入。要剪切,复制,粘贴, 请先双击图示位置,把编辑框激活。
DGUS 寄存器: 0x00-0xFF(由 0x80/0x81 访问),256 个。
DGUS 变量:
0x0000-0x6FFF(由 0x82/0x83 访问)。
字库空间:
32-127 号(0x20-ox7F)汉字库,24MB。
用户数据库空间: 参考开发文档。
伪汇编指令(或宏指令)
EQU 替换,编译时直接替换
<NUM>: 待写入的 OS 寄存器个数。 NUM=0,表示写入 256 个 OS 寄存器,由于 OS 只有 256 个寄存器,NUM=0 时,R#必须为 R0。
例: 1, 把十进制数 10 装入 R10 LDBR R10,10,1 执行后 R10=10
2, 把十六进制数 0xFF 装入 R20 LDBR R20,0xFF,1 执行后 R20=0xFF
迪文科技
OS 寄 存 器 之 间数据传送
DWIN_OS 指令的理解与应用(上)
<MOD>: 传送模式 传送模式=0 OS 寄存器-->DGUS 变量 传送模式=1 DGUS 变量-->OS 寄存器
<NUM>: 待传送的数据长度,以字(双字节)计。 NUM 最大 128 (0x80 ,256 字节) NUM=0 时,由 R9 中的数据决定传送的长度 使用本指令时 DGUS 变量地址由 R0:R1 指定。
DW 在 ROM 中定义连续字的数据 TAB2:
DW 0x0001, 0x0002,0x0003,0x0004 注释用标示为 ; R#为 DWIN OS 的 256 个寄存器中的任意一个或连续的一组。 < > 表示立即数,100,0x64,64H,064H 都是表示 10 进制的 100
免费服务热线:400 018 9008
LDADR INC MOVC 执行后
TAB2 R7,0,2 R10,1
;加入偏移量
R10=0xFD
TAB1: DB 0xFF,0xFE
TAB2: DW 0xFFFE,0xFDFC
MOVXR
DGUS 变 量 R#,<MOD>,<NUM> 和
免费服务热线:400 018 9008
R# :
-6-
OS 寄存器或 OS 寄存器组的首地址
例: LDWR R10,0xAABB ;待写入字库的数据
LDWR R0,0x0010 ; DGUS 变量缓存区地址
MOVXR R10,0,1
;R10:R11 的数据装入
DGUS 变量缓存区
LDBR R4,40,1
;R4 待写入数据的字库号。
LDBR R5,0, 1
LDWR R6,0x0020 ;R5:R6:R7 字库首地址
图1
激活编辑框 下面如图所示时,能剪切,复制,粘贴
图2
免费服务热线:400 018 9008
-3-
迪文科技 DB 在 ROM 中定义连续字节的数据 TAB1: (标号)
DB 1 ,2 ,3 , 4 DB 0x00,0x01,0x02 DB “北京迪文”
DWIN_OS 指令的理解与应用(上)
无
址
免费服务热线:400 018 9008
DWIN_OS 指令的理解与应用(上)
DGUS 寄存器具体定义见寄存器一览表。
NUM:待传送的数据 字节 长度。
例: LDBR
R10,10,1
MOVRD R10,2, 1
执行后
蜂鸣器鸣叫。
LDWR
R10,0x0001 ;0X0001 待跳转页面号
MOVRD R10,3,2
MOVRD
OS 寄 存 器 或 R#, D# ,<NUM> OS 寄 存 器 组
免费服务热线:400 018 9008
R# : OS 寄存器或 OS 寄存器组的首地址 D# : DGUS 寄存器或 DGUS 寄存器组的首地址
-7-
迪文科技
的数据传送到 DGUS 寄存器 或 DGUSS 寄 存器组
例: 1,
LDWR R0,0x0001 ; R0:R1 指定 DGUS ; 变量地址 0X0001
MOVXR R10 ,1, 1 ;把 DGUS 变量地址 ;0X0001 中的数据读 ;到 R10:R11
2, LDWR R0,0x0001 ; R0:R1 指定 DGUS ; 变量地址 0X0001
MOVXR R10 ,1, 2 ;把 DGUS 变量地址 ;从 0X0001 起的数据读 ;到 R10:R11:R12:R13
NUM : 待传送的数据 字 长度。若 NUM=0,长度由 R8:R9 指定。R0:R1 指定数据源地址 R2:R3 指定目标 地址。
例:
LDWR R0,0x0005 ;R0R1 指定数据源地址 LDWR R2,0x0010 ;R2R3 指定目标地址。 MOVXX 1
执行后 DGUS 变量 0x0005 中的数据传送到 DGUS 变量 0x0010 中。
-4-
迪文科技
DWIN_OS 指令的理解与应用(上)
指令集
指令 LDBR
指令作用 装载一个单字 节立即数到 OS 寄 存 器 或 OS 寄存器组, 用于赋值。
指令操作数格式 R#,<DATA>,<NUM>
指令说明与使用
R#:
OS 寄存器或 OS 寄存器组的首地址。
<DATA>: 待写入 OS 寄存器的数据。
LDWR
装载一个双字 节(一个字)立 即 数 到 OS 寄 存器, 用于赋值。
R#,<DATA>
NOP
空操作指令
NOP
R#:
OS 寄存器。
<DATA>: 待写入 OS 寄存器的数据。
例: 1,把十进制数 10 装入 R10
LDWR R10,10
执行后 R10=0x00
R11=0x0A
2,把十六进制数 0xAAFF 装入 R10
3, LDWR R0,0x0010 ;指定 DGUS 变量地址 LDWR R10,0x0001 MOVXR R10, 0, 1 ;把 R10:R11 数据传 送到地址为 0X0010 的 DGUS 变量中。
4, LDWR R0,0x0010 LDWR R10,0x0001 LDWR R12,0x0002 MOVXR R10, 0, 2 ;把 R10:R11:R12:R13 中 的数据传送到地址为 0x0010,0x0011 的 DGUS 变量中。
令配合使用
例:
DWIN_OS 指令的理解与应用(上)
1: LDADR TAB1 执行后 R5:R6:R7 装入 TAB1 定义的 字节 常数起始地址。
2: LDADR TAB2 执行后 R5:R6:R7 装入 TAB2 定义的 字 常数起始地址。
TAB1: DB 0xFF,0xFE,0xFD,0xFC,0xFB,0xFA,0xF0
DWIN OS 的常见应用是解析用户的数据协议,数据处理,能代替工控机或 HMI,不仅 降低成本,同时极大地提升了可靠性。
免费服务热线:400 018 9008
-1-
迪文科技
DWIN_OS 指令的理解与应用(上)
编写 OS 时的基本约定
OS 变量寄存器: R0—R255(只能 OS 访问),共 256 个。
迪文科技
DWIN_OS 指令的理解与应用(上)
DWIN_OS 指令的理解与应用(上)
DWIN_OS 平台采用类似汇编程序的编写规范,在 DGU 稳定的 GUI 平台下,方便用户针 对自己的特殊需求快速,可靠地进行二次开发。
DWIN OS 的 PC 软件编译界面如下图所示:
基于 DGUS 的 DWIN OS 平台,用户最大代码空间是 256KB(32764 行)。DWIN OS 程 序在每个运行周期(80/120/160/200ms)都运行一次,DGUS+OS 的运行时间构成整个 运行周期,要求 OS 程序中不能出现长的延时循环等待或死循环。
MOVXL 1,1
;数据写入字库。
免费服务热线:400 018 9008
执行后 R10:R11 的数据写入到 40.HZK 字库的 0x000020(R5R6R7)地址内。
例: LDWR R0, 0x0010
-9-
; DGUS 变量缓存区地址