|
|
发表于 2024-5-8 16:31:48
|
显示全部楼层
您好,以下注释来源于AI【chatPDF】
; DWIN OS
LDWR R0, 0x0010 ; 将R0:R1 指定 DGUS变量地址 0X0010
MOVXR R190, 1, 1 ; 将DGUS变量地址0x0010中的数据传送到寄存器R190:R191中
IJNE R190, 0, MMM ; 如果R190不等于0,则跳转到MMM
IJNE R191, 0, MMM ; 如果R191不等于0,则跳转到MMM
GOTO GOEND ; 无条件跳转到GOEND
MMM:
LDWR R0, 0x5010 ; 将R0:R1 指定 DGUS变量地址 0X5010
MOVXR R210, 1, 1 ; 将DGUS变量地址0x5010中的数据传送到寄存器R210:R211中
IJNE R210, 0, cmp2 ; 如果R210不等于0,则跳转到cmp2
IJNE R211, 0, cmp2 ; 如果R211不等于0,则跳转到cmp2
GOTO GOEND ; 无条件跳转到GOEND
cmp2:
INC R200, 1, 1 ; R200加1
IJNE R200, 01H, GOEND ; 如果R200不等于01H,则跳转到GOEND
IJNE R201, 2DH, GOEND ; 如果R201不等于2DH,则跳转到GOEND
LDWR R200, 0 ; 将R200的值加载到寄存器R0中
DEC R210, 1, 1 ; R210减1
LDWR R0, 0x5010 ; 将R0:R1 指定 DGUS变量地址 0X5010
MOVXR R210, 0, 1 ; 将寄存器R0中的数据传送到DGUS变量地址0x5010中
LDADR SEND_DAT2 ; 将SEND_DAT2的地址加载到寄存器R0中
MOVC R12, 7 ; 将7传送到寄存器R12中
MOV R0, R16, 2 ; 将寄存器R0中的数据传送到寄存器R16中
MOV R210, R19, 2 ; 将寄存器R210中的数据传送到寄存器R19中
COMTXI 0, R12, 9 ; 通过串口发送数据
GOEND:
;CALL Lamp_control ; 调用Lamp_control子程序
END ; 程序结束
Lamp_control:
LDWR R0, 0x0010 ; 将R0:R1 指定 DGUS变量地址 0X0010
MOVXR R10, 1, 1 ; 将DGUS变量地址0x0010中的数据传送到寄存器R10:R11中
IJNE R11, 0, Contronl1 ; 如果R11不等于0,则跳转到Contronl1
LDBR R20, 0, 10 ; 将立即数10加载到寄存器R20中
LDWR R0, 0x1000 ; 将R0:R1 指定 DGUS变量地址 0X1000
MOVXR R20, 0, 5 ; 将寄存器R20中的数据传送到DGUS变量地址0x1000中
RET ; 返回
Contronl1:
IJNE R11, 1, Contronl2 ; 如果R11不等于1,则跳转到Contronl2
LDBR R20, 0, 10 ; 将立即数10加载到寄存器R20中
LDBR R21, 1, 1 ; 将立即数1加载到寄存器R21中
LDWR R0, 0x0100 ; 将R0:R1 指定 DGUS变量地址 0X0100
MOVXR R20, 0, 5 ; 将寄存器R20中的数据传送到DGUS变量地址0x0100中
RET ; 返回
Contronl2:
RET ; 返回
SEND_DAT:
DB 5AH, A5H, 06H, 83H, 50H, 05H, 01H ; 数据
SEND_DAT2:
DB 5AH, A5H, 06H, 83H, 50H, 00H, 01H ; 数据
|
|