




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据传送和数据比较指令有两个以上操作数要注意这些指令的操作数的含义及其范围这些指令多数都有微分和非微分两种形式要注意指令微分和非微分形式时用法的区别数据传送指令数据比较指令 一、 数据传送指令单字传送指令MOV数字传送指令MOVD位传送指令MOVB块设置指令BSET块传送指令XFER单字分配指令DIST数据交换指令XCHG数据调用指令COLLS:源数据(通道或十六进制数 ) D:目的通道号功能MOV (21) S DMOV(21) S DMOV(21) S D MOV (21) S D非微分:在执行条件为ON时,将S传送到D中 (每个扫描周期都执行)。 微 分:在执行条件OFFON时,将S传送
2、到D中 (只在条件满足时刻执行一次)。 1. 单字传送指令MOV(21)/ MOV (21)LD 25315MOV (21) #0198 HR00在PLC上电的第一个扫描周期,把0198传送到HR00中25315MOV(21) # 0198 HR00分析程序的功能,并写出语句表. 使用MOV指令举例(1)在此后的各扫描周期,不再执行MOV指令。使用DIFU指令有何作用?只要0000 OFFON,就执行一次MOV 指令。2000000000DIFU(13) 20000MOV(21) LR00 HR00 分析程序的功能: 使用MOV指令举例(2)把LR00中的内容传送到HR00中。LR00中的内容
3、在变化,必要时将其传送到HR00中。00000MOV(21) LR00 HR00分析程序的功能使用MOV指令举例(3)只要00000 OFFON,就执行一次MOV 指令。把LR00中的内容传送到HR00中。与举例(2 )功能相同。2000000000DIFU(13) 20000MOV(21) LR00 HR00 指令MOV几种使用方法的区别(a)与(c)相同,指令MOV都只在00000 OFFON时执行一次。(b ) 指令MOV只在PLC上电后的第一个扫描周期执行一次。25315MOV(21) LR00 HR0000000MOV(21) LR00 HR00(a)(b)(c)2000000000
4、DIFU(13) 20000MOV(21) LR00 HR0025313MOV(21) HR00 LR00从PLC上电开始,每个扫描周期里,都将HR00中的内容传送到LR00中。 与上述几种MOV指令使用方法的区别是:本程序中,每个扫描周期指令MOV都执行! 请注意MOV指令各种用法的区别分析程序的功能使用MOV指令举例(4)PLC上电时,将0100传送到200通道中,作为CNT000的设定值 改变计数器设定值的操作:使00001OFFON,将0200 传送到200通道中;自00000 ON开始, CNT000按设定值100开始计数(或定时)。此后计数器按设定值200计数断开00000,闭合一
5、次触点 00002, 使CNT000复位;00001MOV(21) #0100 20025315255020000100000CNT000 2000000225315MOV(21) #0200 200分析程序的功能使用MOV指令举例(5) 2. 块传送指令XFER (70 )/ XFER(70 ) N :通道数(BCD数 )功能在执行条件为ON时,将几个连续通道中的数据传送到另外几个连续通道中。 S :源数据块首通道 D:目的通道首通道 XFER(70 ) N S D XFER(70 ) N S D XFER(70) N S D XFER(70) N S D 执行块传送指令时数据传送如下所示:
6、 S 1 2 3 4S+1 8 2 A CS+2 9 0 B 6S+N-1 0 D F E D 1 2 3 4D+1 8 2 A CD+2 9 0 B 6D+N-1 0 D F E 3. 块设置指令BEST(71)/ BEST(71) S :源数据(通道或十六进制数 )功能在执行条件为ON时,将S传送到从St到E的各通道中。 St :开始通道 E:结束通道号BEST(71 ) S St E BEST(71) S St E BSET(71) S St E BSET(71) S St ELD 00000 MOV(21) #0100 HR00 TIM 000 HR00 AND TIM000 OUT
7、01000LD 00001BSET(71) #0050 TIM 000 TIM 00000001 BSET(71)# 0050 TIM000 TIM000TIM00001000 MOV(21) # 0100 HR0000000 TIM000 HR00分析程序的功能,写语句表使用BEST指令举例00001 BSET(71)# 0050 TIM000 TIM000TIM00001000 MOV(21) # 0100 HR0000000 TIM000 HR00 BSET指令的第二、第三操作数都是TIM000,即执行BSET指令,只把数据传送到TIM000中。 功能在00001OFF、00000 OF
8、FON 时,执行一次MOV指令,将 #0100传送到通道HR00中。自此TIM 000以设定值10秒定时。 经过10秒,定时器TIM000 ON, 线圈01000 ON 。00001 BSET(71)# 0050 TIM000 TIM000TIM00001000 MOV(21) # 0100 HR0000000 TIM000 HR00当需要改变定时器TIM000的当前值时,可通过执行BSET指令来实现。 执行BSET指令将0050传送到TIM000中,TIM000的当前值立即变为0050。例如,在TIM000的当前值为0089时,令00001 ON一次:自此,TIM000的当前值从0050开始
9、,每隔0.1秒减1,一直减到为0000为止。00001 BSET(71) # 0050 TIM000 TIM000TIM00001000 MOV(21) # 0100 HR0000000 TIM000 HR00由于HR00中的数据没有改变,在下一次定时器TIM000工作时,其定时值仍然是0100。 以上是用BSET指令改变定时器的当前值。 用BSET指令也可以改变定时器的设定值。方法为:本例中,令BSET指令的第2、3操作数为HR00,执行BSET指令后,TIM000的设定值就为0050了。 MOV与BSET指令的异同 执行一次MOV指令,只能向一个通道传送一个字;而执行一次BSET指令,可以
10、向多个通道传送同一个字。 TIM / CNT的操作数是通道时,用MOV 和BSET指令都可以改变TIM / CNT的设定值。 用BSET指令既可改变TIM/CNT的设定值、也可以改变TIM/CNT的当前值 。 因为MOV指令不能向TC区传送数据, 所以不能用MOV指令改变 TIM/CNT的当前值 ! 4. 位传送指令MOVB (82)/ MOVB (82)bit00bit07指定S中的位号bit08bit15指定D中的位号MOVB (82) S C D MOVB (82) S C DMOVB (82) S C D MOVB(82) S C DS:源数据 D:目的通道 C (BCD) :控制数据
11、在执行条件为ON时,根据C的内容,将S传送到D中。 C内容的含义 指令的功能分析程序的功能,写语句表使用MOVB指令举例 MOVB (82) # 0050 HR00 20025315LD 00005 MOV B (82) HR00 #1500 200 程序功能 C的含义例:设 HR00 的内容为 1000 1000 1000 0101执行指令之后20015为ON( 1 )bit00bit07:S中的位bit08bit15:D中的位在PLC上电之初,将HR0000的内容传送到 20015中 。 5. 数字传送指令MOVD (83)/ MOVD (83)MOVD (83) S C D MOVD (
12、83) S C DMOVD (83) S C D MOVD(83) S C D在执行条件为ON时,根据C的内容,将S中指定的数字传送到D中指定的数字位中。 指令的功能S:源数据 D:目的通道 C:控制数据 C (BCD数)的含义 指令各操作数的含义MOVD (83) S C DS中第一个要传送的数字位位号不用C数字3数字2数字1数字0 S中要传送的数字位数0 1位 12位 2 3位 34位指定D中接收第一个数字的位号C=#0030使用MOVD指令举例(1)根据C、确定指令执行结果S中第0位数字开始传送 传 送 4 位 数 字D中从第0位开始接收第一个数字MOVD (83) S#0030 D 0
13、 1 2 3D 0 1 2 3S 被传送的数字位要连续例如:1 2 3 0例如:3 0 1 2例如:2 3 0 1等C=#0023使用MOVD指令举例(2)根据C、确定指令执行结果S中第3位数字开始传送 传 送 3 位 数 字D中从第0位开始接收第一个数字MOVD (83) S#0023 D 0 1 2 3D 0 1 2 3S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位C=#0123使用MOVD指令举例(3)根据C、确定指令执行结果S中第3位数字开始传送 传 送 3 位 数 字D中从第1位开始接收第一个数字MOVD (83) S#0123 D 0 1 2 3D 0
14、1 2 3S第一个被传送的数字第二个被传送的数字第三个被传送的数字第一个接收数字的位 6. 单字分配指令DIST(80)/ DIST (80)S:源数据 DBS:目标基准通道 C:控制数据(BCD) DIST(80) S DBS C COLL (81) S DBS C DIST(80) S DBS C DIST(80) S DBS C在执行条件为ON时,根据C的内容,进行单字数据分配或堆栈的进栈操作(栈区由C的低3位确定)。 指令的功能 1. C的bit12 bit15的内容8时,执行单字数据 分配 操作。 控制数据C (BCD) 的含义 指令功能当执行条件为ON时,将S的内容传送到(DBS
15、+ C )中,如下图。 DIST(80) S DBS C S 9 0 B 6 DBS+C 9 0 B 6 2. C的bit12 bit15的内容= 9时,执行指令生成一个堆栈,执行进栈操作。指令功能:进栈方法:每执行一次指令,将S的内容复制到(DBS + 堆栈指针+1 )的栈区通道中,然后指针加1。当执行条件为ON时,执行指令生成一个堆栈(以C的低3位确定栈区通道数),以DBS为堆栈指针进行进栈操作。 进栈过程举例。 DIST(80) 200DM0000 21600000200:FFFF216:9005 0 0 0 0DM0000DM0001DM0002DM0003DM0004DM0005 0
16、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1DM0000DM0001DM0002DM0003DM0004DM0005 F F F F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0源数据控制数据堆栈指针第一次执行! 0 0 0 2DM0000DM0001DM0002DM0003DM0004DM0005 F F F F F F F F 0 0 0 0 0 0 0 0 0 0 0 0第二次执行!栈区SBs是基准通道 D是目的通道 C是控制数据(BCD) 7. 数据调用指令COLL (81)/ COLL (81)COLL (81) SB
17、S C D COLL (81) SBS C DCOLL (81) SBS C D COLL(81) SBS C D在执行条件为ON时,根据C的内容,进行调用数据或堆栈的出栈操作(栈区由C的低3位确定)。 指令的功能1. C=00006655 数据调用 控制数据C (BCD) 的含义 COLL(81) SBS C D 指令功能当执行条件为ON时,将(SBS + C ) 传送到D中。2. 出栈操作 (包括两种情况) C=90009999 先入先出的出栈操作以SBS为堆栈指针,按先入先出的原则,将堆栈中的数据传送到D中,堆栈指针减1。 C=80008999 后入先出的出栈操作以SBS为堆栈指针,按后
18、入先出的原则,将堆栈中的数据复制到D中(堆栈中的内容不变),堆栈指针减1。 COLL(81) SBS C D先入先出的出栈过程 COOL(81)DM0000 #9007 200分析:当SBs=DM0000、 C=#9007 、D=200时,指令COLL执行的结果。执行一次执行前0156000711010001EEEE568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007568C000601561101EEEE0000EEEE9D6FDM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007I
19、R2000001C=#9007栈区 DM0001DM0007先入先出堆栈指针指针减1栈区执行二次IR2001101后入先出的出栈过程 COOL(81)DM0000 #9007 200分析:当SBs=DM0000、 C=#8007 、D=200时,指令COLL执行的结果。执行一次执行前01560007110100011234568C9D6F0000DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007IR2001234C=#8007栈区为 DM0001DM0007后入先出堆栈指针指针减1栈区01560006110100011234568C9D6F0000
20、DM0000DM0001DM0002DM0003DM0004DM0005DM0006DM0007执行二次9D6F不变单字比较指令CMP表比较指令TCMP双字比较指令CMPL块比较指令BCMP 二、 数据比较指令1. 单字比较指令CMPCMP(20) C1 C2CMP(20) C1 C2 C1 :比较数1 C2 : 比较数2在执行条件为ON时,将C1 和C2进行比较。 当 C1 C2时,标志位25505 ON 当 C1 = C2时,标志位25506 ON 当 C1 C2时,标志位25507 ON功能使用CMP指令举例(1)写语句表、分析程序功能LD 00000TIM 000 #0030CMP(2
21、0) TIM000 #0200AND 25505OUT 20000AND 25506OUT 20001AND 25507OUT 20002LD TIM000OUT 200032550620001TIM000255072000320002CMP(20) TIM 000 # 0200TIM000 #0030000002550520000 分析程序功能执行指令CMP时,将TIM000的当前值与 #0200进行比较。2550620001TIM000 255072000320002CMP(20) TIM 000 # 0200TIM000 #0300000002550520000当00000为ON时,TI
22、M000开始定时、且开始执行CMP指令。TIM000的当前值由0300每隔0.1秒减1。可见:配合指令CMP,用一个定时器可以控制 多个输出位。 若TIM000当前值大于#0200时,25505 ON 20000 ON。若TIM000的当前值等于# 0200时,25506 ON 20001 ON。若TIM000的当前值小于# 0200时,25507 ON 20002 ON。2550620001TIM000 255072000320002CMP(20) TIM 000 # 0020TIM000 #0030000002550520000当TIM000 定时到 时,20002和 20003 ON。
23、续 使用CMP指令举例 (2)分析本例使用微分指令的原因由于CMP指令没有微分形式若欲使指令CMP只在00000 OFFON时执行一次则必须使用指令DIFU(13)CMP(20) TIM 000 # 0020000002550501000DIFU(13) 20000 2. 块比较指令BCMPBCMP (68) CD CB R BM P(68) CD CB RBCMP (68) CD CB R BCMP(68) CD CB RCD:比较数据 CB:数据块的起始通道 R:存结果通道功能当执行条件为ON时,将CD与每个数据区域比较。当CD处于某个区域时,与该区域对应的R的位ON。使用块比较指令BCM
24、P举例MOV(21) # 1450 200 BCMP 200 DM0000 HR 0500000 下限 上限DM 0000 0000 DM 0001 0100 HR 0500DM 0002 0101 DM 0003 0200 HR 0501DM 0004 0201 DM 0005 0300 HR 0502DM 0006 0301 DM 0007 0400 HR 0503DM 0008 0401 DM 0009 0500 HR 0504DM 0010 0501 DM 0011 0600 HR 0505DM 0012 0601 DM 0013 0700 HR 0506DM 0014 0701 DM
25、 0015 0800 HR 0507DM 0016 0801 DM 0017 0900 HR 0508DM 0018 0901 DM 0019 1000 HR 0509DM 0020 1001 DM 0021 1100 HR 0510DM 0022 1101 DM 0023 1200 HR 0510DM 0024 1201 DM 0025 1300 HR 0512DM 0026 1301 DM 0027 1400 HR 0513DM 0028 1401 DM 0029 1500 HR 0514DM 0030 1501 DM 0031 1600 HR 0515 HR 05比较指令执行结果:HR
26、0514为 ON数据块内容可预先写入数据块存结果比较数据块首通道结果通道 3. 表比较指令TCMPTCMP (85) CD TB R TCMP(68) CD TB RTCMP (85) CD TB R TCMP(85) CD TB RCD:比较数据 TB:数据表的起始通道 R: 结果通道功能当执行条件为ON时,将CD与数据表中的数据比较。当CD与表中某个通道的数据相同时,与该通道对应的R的位为ON。 使用表比较指令TCMP举例MOV(21) # 0005 200 TCMP 200 HR00 HR1900000数据表内容可预先写入存结果比较数据 数据表 结果通道 对应位状态 HR00 0101
27、HR1900 0 HR01 0151 HR1901 0 HR02 0005 HR1902 1 HR15 0605 HR1915 0表首通道结果通道该程序执行结果:HR 1902为 ON。 数据传送和数据比较指令小结 1. 数据传送指令 (2) 注意块传送和块设置指令功能的区别。 (3)注意单字分配、数据调用和数据交换指令的区别。区别位传送和数字传送指令目的通道内容存放的方法 (1) 注意各种传送指令的区别。单字传送MOV是常用的指令,要牢记其使用方法。块设置指令BSET可以向TC区传送数据,用该指令可以改变定时器的当前值。 2. 数据比较指令 (1) 单字/双字比较指令是常用的指令,要牢记其格
28、式、梯形图、操作数范围和使用方法。使用单字/双字比较指令要影响标志位2550525507: 在需要保存标志位状态时,要编写相应程序。注意触点2550525507的使用方法。 (2) 注意块比较和表比较指令执行结果的表示方法。数据移位和数据转换指令数 据 运 算 指 令子程序控制 指 令高速计数器控制 指 令数据移位和数据转换指令 数据移位与数据转换指令指令数据移位指令数据转换指令 数据移位指令移位寄存器指令可逆移位寄存器指令数字左、右移指令 算术左、右移指令循环左、右移指令 字 移 位 指 令异步移位寄存器指令 1. 移位寄存器指令SFT (10)功能 当复位端R为OFF时, 在SP端移位脉冲
29、的作用下,IN端的数据被移入移位寄存器。 St :移位开始通道 E:移位结束通道SFT(10) St E SFT(10) St EINSPRIN:数据输入端R:复位端SP:移位脉冲输入端 在移位脉冲的作用下,移位寄存器中的数据以位为单位依次向左移一位。 移位寄存器指令SFT 的用法SFT(10) St EINSPR在移位脉冲作用下,St到E中的数据左移过程。复位端R为ON时,St到E所有通道均复位为零,且移位指令不执行。 没有移位脉冲时不执行移位。 移位寄存器具有保持功能。 IN端 数据丢失StE 移位寄存器指令SFT 的语句表 LD 00000 LD 25502 LD 00001 OR 25
30、315 SFT(10) 200 200 LD 20003 OUT 01000INSPR 00000 25502 20003 00001SFT(10)20020001000 25315 图示梯形图的语句表如下 SFT 的两个操作数都是200,表示只由200通道组成移位寄存器。2550200000000012000420003200002000120002INSPR 00000 25502 20003 00001SFT(10)2002000100025315 移位接触器 的工作时序 20000的ON状态,在200通道内依次向左移动。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
31、0200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0200 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0200 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0200 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0200 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0200 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0200 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0200
32、 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0200 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0200 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0200 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0200 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0200 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0200 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0200 0 0
33、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02001 2 3 4 5 6 7 分析程序的功能 25315使移位寄存器上电复位 00000 的状态作为输入数据25502的秒脉冲作为移位脉冲第一个移位脉冲输入后,00000的ON状态移入20000。00001 ON 可使寄存器200复位经过4个移位脉冲20003 ON,于是01000 ON。移位过程中,只要00001为ON,移位寄存器即复位。第五个移位脉冲时20003 OFF,于是01000 也OFF。INSPR 00000 25502 20003 00001SFT(10)2002000100025315 2. 可逆移位寄存器指令S
34、FTR(84)SFTR (84) C St E SFTR (84) C St E SFTR (84) C St E SFTR(84) C St E C:控制通道 St :移位开始通道 E :结束通道功能当执行条件为ON时, 根据控制通道C的内容,在St E通道内,执行左移或右移位操作。 可逆移位寄存器的用法 SFTR (84) C St E 控制通道C的含义不使用15141312移位方向 1:左移(低高) 0:右移(高低)数据输入移位脉冲输入复位1: StE及CY清零0:根据C的状态移位 左、右移位的控制在执行条件为OFF时停止工作。此时若C之bit15为1,St到E及CY仍保持原状态不变。通
35、道C之bit 15为0时,在移位脉冲的作用下,根据C之bit 12的状态进行左移或右移。 C之bit 12为1 左移:每个扫描周期,从St到E按位依次左移一位,C之bit13的数据移入St之bit 0中,E之bit15的数据 移入CY中。 C之bit 12为0右移:每个扫描周期,从E到St按位依次右移一位,C之bit13的数据移入E之bit15中,St之bit0的数据移入CY中。 SFTR (84) C St ESt 开始通道E 结束通道LD 00000OUT 20012LD 00001OUT 20013LD 00002DIFU (13) 20100LD 20100OUT 20014LD 00
36、003OUT 20015LD 00004SFTR (84) 200 LR10 LR11 使用可逆移位寄存器举例 DIFU(13) 20100移位方向数据输入移位脉冲200132001220100000020000100000 SFTR(84) 200 LR10 LR11复位0000400003 2001520014 程序功能分析执行条件控制通道开始通道结束通道当00004为ON时,开始执行移位操作。200的bit12bit15的状态是由0000000003控制的。若00001ON,则20013为1,即输入数据为1;若00001OFF,则20013为0,即输入数据为0。每当00002 OFFON
37、时,20014都会ON一个扫描周期,形成移位脉冲。 DIFU(13) 20100移位方向数据输入移位脉冲200132001220100000020000100000 SFTR(84) 200 LR10 LR11复位0000400003 2001520014若直接以00002作为移位脉冲。因为当00002为ON时,每个扫描周期都要执行一次移位,这将造成移位失控。若00003ON,则20015ON,LR10LR11及CY位清0若00003OFF 20015 OFF,此时根据20012的状态执行移位操作。(续) DIFU(13) 20100移位方向数据输入移位脉冲200132001220100000
38、020000100000 SFTR(84) 200 LR10 LR11复位0000400003 2001520014若20012 ON执行左移位:每当00002OFFON时, LR10LR11中的数据按位依次左移一位。20013的状态进入LR1000, LR1115的数据进入CY。(续) HR1115HR1100 HR1015HR1000 CY20013 DIFU(13) 20100移位方向数据输入移位脉冲200132001220100000020000100000 SFTR(84) 200 LR10 LR11复位0000400003 2001520014若20012 OFF执行右移位:每当0
39、0002OFF ON时,LR10LR11中的数据按位依次右移一位。20013的状态进入LR1115, LR1000的数据进入CY。(续) HR1115HR1100 HR1015HR1000 CY20013 DIFU(13) 20100移位方向数据输入移位脉冲200132001220100000020000100000 SFTR(84) 200 LR10 LR11复位0000400003 2001520014 3. 数字左/右移指令SLD (25)/ ASR(26) 算术左/右移位指令的功能和使用方法相似 以算术左移指令为例,介绍它们的功能和使用方法 St:移位首通道 E:移位结束通道功能:当执
40、行条件为ON时,执行指令将StE中的数据以数字为单位依次左移位1位。如下图: SLD(74) St E SLD(74) St E St 0溢出 E 4. 算术左/右移位指令ASL (25)/ ASR(26) 算术左/右移位指令的功能和使用方法相似 ASL(25) Ch以算术左移指令为例,介绍它们的功能和使用方法ASL(25) Ch Ch是移位通道号功能当执行条件为ON时,执行指令将Ch中的数据以位为单依次左移1位。最高位移入CY。如下图: CYCh 5. 循环左/右移位指令ROL(27)/ROR(28) 循环左/右移位指令的功能和使用方法相似 ROL(27) Ch以循环左移指令为例,介绍它们的
41、功能和使用方法ROL(27) ChCh是移位通道号功能当执行条件为ON时,将Ch及CY中的数据以位为单依次循环左移位1位。如下图: CYCh 00000ROL(27) HR00MOV(21) HR00 010END(01)使用指令ROL举例写语句表、分析程序功能当00000 OFFON时 执行一次指令ROL使HR00循环左移一次 执行一次指令MOV将HR00的数据传送到010通道中去。LD 00000ROL(27) HR00MOV(21) HR00 010END(01) (续)设HR00中的数据如下(设CY= 0 )执行一次指令ROL后,CY和HR00中的数据如下: 00000ROL(27)
42、HR00MOV(21) HR00 010END(01) 010通道中的数据为: 1010 1010 1010 1010 1101 0101 0101 0101 CY 1010 1010 1010 1010 1 执行ROL/ROR指令时应注意的问题由于程序扫描到END时,CY等标志位将被清零。 在下个扫描周期执行ROL时,仍需要 CY位参与移位或运算,这时会出现错误。为了解决该问题,需设置保存 CY状态的程序 00000ROL(27) HR00HR0100STC(40) 25504 HR 0100END(01) 00000ROL(27) HR00MOV(21) HR00 010END(01) 保
43、存 CY状态的程序 原程序 修改后的程序 (续)具有保存 CY状态的程序的分析 00000ROL(27) HR00HR0100STC(40) 25504 HR 0100END(01)若某扫描周期使CY=1,则25504 ONHR0100 ON下个扫描周期执行程序时,由于HR0100 ON ,则执行指令STC CY位置1。这样,在本扫描周期执行ROL指令时,CY的状态就是正确的了。类似这样的问题,编程时务必引起注意。 6. 字移位指令WSFT(16)/ WSFT(16) St:移位开始通道号 E:结束通道功能:当执行条件为ON时,将StE中的内容以字为单位依次左移1位。如下图:WSFT(16)
44、St EWSFT(16) St E WSFT(16) St E WSFT(16) St E St丢失 E0000St+1 7. 异步移位寄存器指令ASFT /ASFTASFT (17) C St E ASFT (17) C St E ASFT (17) C St E ASFT(17) C St EC:控制数据 St :移位开始通道 E :结果通道C的含义移位方向:0上移 1下移是否允许移位:0 不允许 1允许C15 14 13 12为 0是否复位:0 正常操作 1复位当执行条件为ON时,将数据为0000的通道与相邻通道进行数据交换。指令功能 执行指令ASFT时数据交换的规则 相邻两通道数据都为
45、0000,不交换。执行指令ASFT,可以把数据为0000的通道集中到数据区的上半部分或下半部分。上移:数据为0000的通道与相邻高地址通道交换。下移:数据为0000的通道与相邻低地址通道交换。6 0 1 1 0第一次移位执行前2B680000507A00000000000051470234DM0000DM0007DM0001DM0002DM0003DM0004DM0005DM0006 执行后2B6800000000507A0000023451470000 使用指令ASFT举例控制字 C=#6000允许移 ASFT(71) #6000 DM0000 DM0007 00000下移 正常工作 数据移
46、位指令小结 1. 要根据需要,选择合适的数据移位指令。 是需要建立移位寄存器、还是要按位移位、按数字移位或按字移位。 是需要作单向移位、循环移位、还是异步移位。 是需要作左移位还是右移位。 2. 当需要标志位CY参与移位时,有时需要编程保存CY的状态。 3. 注意执行各种指令后对标志位的影响。 数据转换指令 BCD二进制转换二进制 BCD转换416 译码指令164编码指令 七段译码指令ASCII码转换指令BCD /BCD与 BIN/BIN指令类似,下面以BIN/BIN为例说明其使用方法。BIN(23) S RBIN(23) S RS: 源通道R: 结果通道功能:当执行条件为ON时,将S中的BC
47、D码转换成二进制数,并将结果存入R中。 1. BCD码二进制数转换指令BIN/BIN4321转换为二进制数是 0100000011100001LD 00000 MOV (21) # 4321 200 BIN (23) 200 DM000000000BINDM0000200 # 4321 MOV 200 第3位 第2位 第1位 第0位 0 0 1 1 0 1 0 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 0 0 1 00 0 0 1 IR200 源通道DM0000结果通道 第3位 第2位 第1位 第0位 0 0 0 0 0 1 0
48、 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 1 1 1 00 0 0 1源通道IR200中为BCD数4321。转换后结果通道内容 写出图示语程序的句表、并分析功能。 本例只在00000 OFFON时转换一次。 2. 416 译码指令MLPX/ MLPX S:源首通道 C:控制数据 R :结果首通道C的含义S中第一个要译码的数字位位号固定为0C数字3数字2数字1数字0 S中要译码的数字位数0 1位 12位 2 3位 34位MLPX (76) S C R MLPX(76) S C R MLPX (76) S R MLPX(76) S
49、 C RC当执行条件为ON时,根据C的内容对S进行译码,并将结果存放中R中。指令功能译码方法 由C确定被译码的起始数字位及译码的位数; 将该位数字(十六进制)转换为015的十进制数; 再将结果通道中与该十进制数对应的位置为ON,其余位为OFF。被译码的数字位不能大于4。 R R+1 R+2 R+3R 0 1 2 3S第1个第2个第3个C= # 0030第4个第1个 R R+1 R+2 R+3R 0 1 2 3SC= # 0023 结果通道的存放顺序被译码的数字位要连续如:1 2 3 0 3 0 1 2 2 3 0 1 等从0位开始译码对4位数字译码从3位开始译码对3位数字译码使用译码指令MLP
50、X举例MOV # 78F5 20000000MLPX 200 # 0013 HR00LD 00000 MOV (21) # 78F5 200 MLPX (76) 200 # 0013 HR 00写语句表、分析程序功能源 通 道 IR200控制字C=#0013结果首通道HR00C=#0013从第三位数字开始译码对2个数字译码HR00和HR01(第3位第0位)译2个数字,存放结果需要2个通道 IR200:78F5 (续)译码的原理源通道(78F5)第3位数字是0111十进制数7则以7为位号,将结果首通道HR00中的bit07置为1源通道第0位数字是0101十进制数5则以5为位号,将结果末通道HR0
51、1的bit 05置为1 第3位 第2位 第1位 第0位 1 0 0 00 1 1 1215 214 213 212 211 210 29 2823 22 21 2027 26 25 24 1 1 1 10 1 0 1 IR200 源通道 HR00结果通道 0 0 0 0 0 0 0 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 1 0 0 00 0 0 0 HR01结果通道 0 0 0 0 0 0 0 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 0 0 1 00 0 0
52、 0对本例,如果C=#0023,即对3个数字译码,第3个被译码的是源通道的第1位数字。第3个译码结果存放在结果通道HR02中。 HR02结果通道 0 0 0 01 0 0 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 0 0 1 00 0 0 0 第3位 第2位 第1位 第0位 1 0 0 1 0 1 1 1215 214 213 212 211 210 29 2823 22 21 2027 26 25 24 1 1 1 10 1 0 1 IR200 源通道 HR00结果通道 0 0 0 0 0 0 0 0215 214 213 2
53、12 211 210 29 2823 22 21 20 27 26 25 24 1 0 0 00 0 0 0 HR01结果通道 0 0 0 0 0 0 0 0215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 0 0 1 00 0 0 0 执行一次指令,最多只能对4个数字译码。例如设C=#0023时,结果首通道设为HR18; 设C=#0042 等,都是错误的。 使用译码指令MLPX 时需注意 结果通道不能超过其所在区域。 3. 16 4 编码指令DMPX/ DMPXDMPX (77) S R C DMPX(77) S R C DMPX (7
54、7) S R C DMPX(77) S R C S:源首通道 C:控制数据 R :结果通道C的含义R中接收编码的第一个数字位固定为0C数字3数字2数字1数字0 被编码的源通道数0 1个 12个2 3个 34个当执行条件为ON时,根据C的内容,对以S为首通道的几个通道进行编码,并将结果存放在R中。指令功能编码方法 由C确定被编码的通道数; 将被编码通道中为ON的最高位的位号编为一个十六进制数; 将该十六进制数送到R指定(由C指定)的数字位。使用编码指令DMPX举例MOV # 0013 22000000DMPX HR00 DM0000 220LD 00000 MOV (21) # 0013 220
55、 DMPX (77) HR 00 DM0000 220写语句表、分析程序功能源首通道 IR00控制字 C=#0013结果通道DM0000C=#0013从R的数字位3 开始存放结果对2个通道进行编码HR00和HR01对两个通道编码,源通道 应为设源通道HR00中内容为A8E7(1010 1000 1110 0111)HR00中为1的最高位的位号是15十六进制编码F将编码F放在结果通道DM0000的第3位数字位上。设源通道HR01中内容为01BF(0000 0001 1011 1111)HR01中为1的最高位的位号是8十六进制编码8将编码8 放在结果通道DM0000的第0 位数字位上。 (续)编码
56、的原理源首通道 IR00控制字 C=#0013结果通道DM0000第1个第2个第3个C= # 0030第4个第1个 0 1 2 3R S S+1 S+2 S+3SC= # 0031 结果的存放顺序存放编码结果的位号要连续如:1 2 3 0 3 0 1 2 2 3 0 1 等第4个 0 1 2 3R S S+1 S+2 S+3S 第3位 第2位 第1位 第0位 1 0 0 0 1 0 1 0215 214 213 212 211 210 29 2823 22 21 2027 26 25 24 1 1 1 00 1 1 1 HR00 源通道 HR01 源通道 0 0 0 1 0 0 0 0215
57、214 213 212 211 210 29 2823 22 21 20 27 26 25 24 1 0 1 11 1 1 1DM0000结果通道 1 1 1 1215 214 213 212 211 210 29 2823 22 21 20 27 26 25 24 1 0 0 0 原通道与编码结果的对应关系若C=#0023(对3个源通道编码),第3个被编码的源通道应是HR02,第3个编码结果应放在DM0000的数字位1上。 源通道不能超过其所在区域。例如设C=#0023时,源首通道设为HR18; 设C=#0042 等,都是错误的。 使用编码指令DMPX时需注意 源通道不能超过4个。 4. 七
58、段译码指令SDEC/ SDECSDEC (78) S C R SDEC(78) S C R SDEC (78) S C R SDEC(78) S C R S:源通道(BCD) C:控制数据 R :结果首通道C的含义S中第一个要译码的数字位固定为0C数字3数字2数字1数字0 被译码的数字位的位数0 1位 12位2 3位 34位从R的高8位还是低8位开始存放第一个结果 0:低8位 1;高8位R 低8位 高8位 0 1 2 3S 转换后结果存放顺序R+1 低8位 高8位C= # 0 0 3 0从数字位0开始译码译码4位数字从R低8位开始存放固定为0R 低8位 高8位 0 1 2 3SR+1 低8位
59、高8位C= # 0 1 3 3从数字位3开始译码译码4位数字从R高8位开始存放固定为0R+2 低8位 高8位注意: 对4个数字译码占用了三个通道!当执行条件为ON时,根据C的内容,对S进行译码,并将结果存放中R中。 指令SDEC的功能 译 码 方 法译码结果存放在以R为首的几个连续通道中(由C确定是从R的低8位还是高8位开始存放)。 R中的bit0006及bit0814分别对应数码管的a、b、c、d、e、f、g段。 bit07和bit15不用。 bit0006及bit0814若为1,对应数码管的段发光。 根据被译码数字位的数值,确定 bit0006及bit0814哪个位为1。使用译码指令SDE
60、C举例MOV # 1673 HR0000000SDEC HR00 #0013 HR01LD 00000 MOV (21) # 1673 HR00 SDEC(78) HR00 # 0013 HR01写语句表、分析程序功能源 通 道 IR00控制字 C=#0013结果首通道 HR01C=#0013R中第一个要译码的数字位对2个数字位进行译码从R的低8位开始存放结果译码数字位30需占用一个结果通道 HR00:1673设源通道HR00中内容为1673(BCD)源通道中第3位数字是1对应 b、c 段应该是1; (续)译码的原理第一个译码结果要存放在结果通道的低8位,所以HR01的低8位是0000 011
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 与同学们谈地理教学设计 -2024-2025学年地理人教版七年级上册
- 《第7课 开关量的生成》教学设计教学反思-2023-2024学年小学信息技术浙教版23六年级下册
- ERCP病人的护理课件
- 2024-2025学年人教版初中美术九年级下册教案
- 2024年高中物理 第二章 第3节 匀变速直线运动的位移与时间的关系教学设计 新人教版必修1
- 2024年五年级数学上册 五 分数的意义第5课时 分数与除法(2)配套教学设计 北师大版
- 2024-2025学年高中历史 第五单元 经济全球化的趋势 第26课 经济全球化的趋势教学教学设计 岳麓版必修2
- 2024秋八年级英语上册 Unit 2 How often do you exercise Section B(1a-2e)教学设计 (新版)人教新目标版
- 药品验收养护操作规程
- 2024-2025学年高中物理 第九章 固体、液体和物态变化 4 物态变化中的能量交换教学设计1 新人教版选修3-3
- DL-T-5161.8-2018电气装置安装工程质量检验及评定规程盘、柜、及二次回路接线施工质量检验
- JT-T-1238-2019半柔性混合料用水泥基灌浆材料
- 桥梁设计手册箱梁
- 2024-2030年中国中低温耦合剂行业现状规模与发展趋势预测报告
- 三年级数学乘法除法竖式计算题100道
- 环境管理台账记录制度
- 农产品质量安全与溯源技术-第1篇
- SYT 7628-2021 油气田及管道工程计算机控制系统设计规范-PDF解密
- 《旅游规划与开发》复习备考试题库(含答案)
- 桥式起重机定期检查记录表
- 在线网课知慧《贵州省情(贵州理工学院)》单元测试考核答案
评论
0/150
提交评论