假设通过 232C 接口与仪表通讯,得到的数值存放在 D0~D3 中,其对应 ASC 码分别为 31,32,2E,35。现在需要将其转换为对应的十进制数值 12.5。
转换步骤
- 将每个 ASC 码字符转换为对应的整数:31 → 1, 32 → 2, 2E → ., 35 → 5
- 将转换后的整数连接起来得到字符串:"12.5"
- 将字符串转换为浮点数:12.5
指令示例
以下是一些可能使用的指令:MOV &H31, D0 MOV &H32, D1 MOV &H2E, D2 MOV &H35, D3 MOV D0, R0 ; 将 D0 中的 1 加载到 R0 MOV D1, R1 ; 将 D1 中的 2 加载到 R1 MOV D2, R2 ; 将 D2 中的 . 加载到 R2 MOV D3, R3 ; 将 D3 中的 5 加载到 R3 STR "1", R0, R1, R2, R3 ; 将字符串 "12.5" 存储到寄存器组 R0-R3 LD R0, D0 ; 将 D0 中的 1 加载到 R0 LD R1, D1 ; 将 D1 中的 2 加载到 R1 LD R2, D2 ; 将 D2 中的 . 加载到 R2 LD R3, D3 ;R1 ; 将 R1 添加到 R3,得到小数点后面的第二个数字的索引 MOVB R3, 1 ; 将 R3 中的数字移动一位,得到小数点后面的第二个数字 ADD R2, R3 ; 将 R2 和 R3 添加起来,得到小数点后面的数字的总和 FSTRF &H8000, R0, R1, R2, R3 ; 将浮点数 12.5 存储在地址 &H8000通过使用这些指令,可以准确地将通过 232C 接口与仪表通讯得到的 ASC 码数值转换为十进制,即使寄存器的值会变换并且小数点会移动。
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论