1. 输入十六进制数
2. 拆分十六进制数
3. 将每个拆分出来的十六进制数转换为对应的十进制数
4. 将每个十进制数转换为对应的ASCII字符
5. 将转换后的ASCII字符序列输出
以下是具体流程图的细节:
开始 ->输入十六进制数 ->拆分十六进制数 ->转换为十进制数 ->转换为ASCII字符 ->输出ASCII字符序列并结束。
拆分十六进制数:
将输入的十六进制数每两个一组进行拆分,并存储到一个数组或者列表中。
转换为十进制数:
根据十六进制的计数规则,将每个两位的十六进制数转换为对应的十进制数。
转换为ASCII字符:
根据ASCII表,将每个十进制数转换为对应的ASCII字符。
输出ASCII字符序列并结束:
将所有转换后的ASCII字符按照拼接成一个字符串或字节序列,然后输出到屏幕或存储到文件中。
CODES SEGMENTASSUME CS:CODES
START:
PUSH CS
POP DS
此处输入代码段代码
MOV BX, 8421H 给定一个4位的16进制数
MOV AH, 2 向标准输出设备输出一个字符
MOV CX, 16 循环16次
AGAIN:
MOV DL, '0' 假定当前bx的最高位为0
ADD BX, BX bx=bx*2 也就是左移1位
JNC DISP 进位标志不置位时(即bx的最高位为0时)转disp
INC DL 进位标志置位时(即bx的最高位为1时)加1
也就是变为 '1'
DISP:
INT 21H
LOOP AGAIN
MOV AH, 4CH 程序结束
INT 21H
CODES ENDS
END START
西门子S7-200PLC早已经停产了,代替他的是Smart,当然S7-1200在一些场合上也是会用于代替200的产品,但是以往的产品还是有很多场合在使用,而且市场上有很多类似的高仿制品在使用着,并且,很多指令方面的应用,也是大同小异,多了解些内容,也有助于后面自己对不同PLC的学习。今天这里分享的指令是16进制码和ASCII码之间的转换,16进制转换为ASCII码,VB103中如果是FF ,VB2=3 那么从VB130开始的3个字节的ASCII码值为F F 0 ,如果VB2=4 ,那么VB103的开始4个字节的ASCII就是F F 0 0,如下图:
第二个分享的是BCD码与整数之间的转换,以16进制的格式进行写入,比如VW0赋值为256,对应的16进制位16#0100,这时候输出VW4=100,VW8里面的值是多少,VW20里面的值就是多少,但是输出格式是16进制。当然,如果将一个两位数用数码管显示出来,就必须先将转换成BCD码,然后再用段码指令进行输出。
以上的主要还是对指令的熟悉,如果手边有PLC的话,是可以在线监控,这样就更好的理解了,也希望大家有好的学习方法与我进行交流,谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)