西门子自带标准库FC93(七段解码块SEG),FC93功能将指定源数据字(IN)中的四个十六进制数字的每个都转换为四个等价的7段显示代码。但是在平时工程很少用到16进制,
因此特地想写一个FC93(七段数码显示块SEG)。经过仿真测OK!
本程序的思想将一个字节取其高四位和底四位然后编码OK。本程序只写2位数译码(个位和十位),3、4位译码程序可以自己分析来写,大同小异。闲话少说介绍程序。
接口部分:
IN:数据类型WORD
OUT 1:数据类型WORD //个位译码值
OUT10 数据类型WORD //十位译码值
TEMP 1 数据类型WORD //中间变量
TEMP 2 数据类型WORD //中间变量
TEMP 3 数据类型WORD //中间变量
网络1:个位译码值
L #in1
ITB
T #temp1
L #temp1
L 2#1111 //取低四位
AW
T #temp2
L #temp2 //转换为10
L 0
==I //取10位
JCN M006 //取个位
L 2#111111
T #out1
M006: NOP 0
L #temp2 //0的编码
L 1 //赋给个位
==I
JCN M001
L 2#110
T #out1
M001: NOP 0
L #temp2
L 2
==I
JCN M002
L 2#1011011
T #out1
M002: NOP 0
L #temp2
L 3
==I
JCN M003
L 2#1001111
T #out1
M003: NOP 0
L #temp2
L 4
==I
JCN M004
L 2#1100110
T #out1
M004: NOP 0
L #temp2
L 5
==I
JCN M005
L 2#1101101
T #out1
M005: NOP 0
L #temp2
L 6
==I
JCN M007
L 2#1111101
T #out1
M007: NOP 0
L #temp2
L 7
==I
JCN M008
L 2#111
T #out1
M008: NOP 0
L #temp2
L 8
==I
JCN M009
L 2#1111111
T #out1
M009: NOP 0
L #temp2
L 9
==I
JCN M00a
L 2#1100111
T #out1
M00a: NOP 0
网络2 十位译码值。
L #temp1
L 2#11110000 //取高四位
AW
T #TEMP0
BTI
T #temp3 //取出十位
L #temp3 //数字0的编码
L 10 //赋给个位
==I
JCN M011
L 2#110
T #out10
M011: NOP 0
L #temp3
L 20
==I
JCN M012
L 2#1011011
T #out10
M012: NOP 0
L #temp3
L 30
==I
JCN M013
L 2#1001111
T #out10
M013: NOP 0
L #temp3
L 40
==I
JCN M014
L 2#1100110
T #out10
M014: NOP 0
L #temp3
L 50
==I
JCN M015
L 2#1101101
T #out10
M015: NOP 0
L #temp3
L 60
==I
JCN M017
L 2#1111101
T #out1
M017: NOP 0
L 70
L #temp3
==I
JCN M018
L 2#111
T #out10
M018: NOP 0
L #temp2
L 80
==I
JCN M019
L 2#1111111
T #out10
M019: NOP 0
L #temp3
L 90
==I
JCN M01a
L 2#1100111
T #out10
M01a: NOP 0
SET
SAVE
CLR
具体编码关系参看下图:

WICC使用效果如图: