当前位置:文档之家› 29.逻辑运算指令应用

29.逻辑运算指令应用

29.逻辑运算指令应用

29.逻辑运算指令应用 / 主程序 (OB1)

块:主程序作者:

创建时间:2013.07.20 15:04:04 修改时间:2013.07.24 11:24:17

符号变量类型数据类型注释

TEMP

TEMP

TEMP TEMP

29.逻辑运算指令应用:有6个按钮(I0.0---I0.5)点动控制6个输出点(Q0.0---Q0.5),还有一起 保停控制,启动按钮I0.6,停止按钮I0.7,输出Q0.6;

网络标题

网络 1I0.4---I0.7为常闭型按钮

WXOR_B ENO

EN OUT IN1IN2WAND_B

ENO

EN OUT IN1IN2SM0.0

IB0

16#F0AC0

AC0

16#3F QB0

网络 2

/

I0.6

I0.7M0.0M0.0

Q0.6 1 / 1

逻辑运算类指令

逻辑运算类指令 1.对累加器A的逻辑操作: CLR A ;将A中的值清0,单周期单字节指令,与MOV A,#00H效果 相同。 CPL A ;将A中的值按位取反 RL A ;将A中的值逻辑左移 RLC A ;将A中的值加上进位位进行逻辑左移 RR A ;将A中的值进行逻辑右移 RRC A ;将A中的值加上进位位进行逻辑右移 SWAP A ;将A中的值高、低4位交换。 例:(A)=73H,则执行CPL A,这样进行: 73H化为二进制为01110011, 逐位取反即为10001100,也就是8CH。 RL A是将(A)中的值的第7位送到第0位,第0位送1位,依次类推。 例:A中的值为68H,执行RL A。68H化为二进制为01101000,按上图 进行移动。01101000化为11010000,即D0H。 RLC A,是将(A)中的值带上进位位(C)进行移位。

例:A中的值为68H,C中的值为1,则执行RLC A 1 01101000后,结果是0 11010001,也就是C进位位的值变成了0,而(A) 则变成了D1H。 RR A和RRC A就不多谈了,请大家参考上面两个例子自行练习吧。 SWAP A,是将A中的值的高、低4位进行交换。 例:(A)=39H,则执行SWAP A之后,A中的值就是93H。怎么正好 是这么前后交换呢?因为这是一个16进制数,每1个16进位数字代表4 个二进位。注意,如果是这样的:(A)=39,后面没H,执行SWAP A 之后,可不是(A)=93。要将它化成二进制再算:39化为二进制是10111,也就是0001,0111高4位是0001,低4位是0111,交换后是01110001,也 就是71H,即113。 练习,已知(A)=39H,执行下列指令后写出每步的结果 CPL A RL A CLR C RRC A SETB C

S7-1200 PLC的逻辑运算指令详解!

S7-1200 PLC的逻辑运算指令详解! 在S7-1200 PLC中的逻辑运算指令包括了逻辑与运算、逻辑或运算、逻辑异或运算、逻辑取反运算、编码与译码指令、选择指令、多路复用与多路分用指令。 下面我们分别对这些指令进行解释说明。 1、逻辑运算指令 逻辑与运算、逻辑或运算、逻辑异或运算、逻辑取反运算都是我们常见的逻辑运算指令,如果又用过S7-200/200 SMART PLC的同学会有了解,对于逻辑运算指令,其实基本PLC都是支持的,功能是也是一样的。 逻辑运算指令支持的数据类型是BYTE/WORD/DWORD这三种,这几个指令使用的还是比较多的,大家还是需要掌握一下。 逻辑与指令AND:当参与运算的所有数中对应的位是1时,那么结果就为1。逻辑或指令OR:当参与运算的所有数中对应的位有1时,那么结果为1。 逻辑异或指令XOR:当参与运算的所有数中对应的位相同时,那么结果为0;不同时则为1。 逻辑取反指令INV:对输入的数按二进制位进行取反,也就是0变成1,1变成0。

换成二进制去看。 2、编码指令ENCO和译码指令DECO 编码指令选择输入的最低有效位,并将该位号写入到输出中去。 (注意:输入变量的数据类型为字符串,输出变量的数据类型是INT类型。)

译码指令首先读取输入的值,并将输出值中的位号与读取值对应的那个位置,输出值的其它位以零进行填充 (注意:输入变量的数据类型是UINT,输出变量的数据类型可以是 BYTE/WORD/DWORD的数据类型。) 可能以这样的文字描述比较难理解,看一下下面的程序及对应的解释你就清楚了。 上图的程序中ENCO的输入 16#0B70,二进制数是 0000_1011_0111_0000,最低有效位也就是为1的最低位是bit4位,所以输出MW14存储的就是4。DECO的输入是6,就将输出的bit6位设置为1,其他位设置为0,所以输出MW18的二进制数是0000_0000_0100_0000。 3、选择SEL、多路复用MUX、和多路分用DEMUX

实验一传送类和逻辑运算类指令练习

实验一 3.1 传送类和逻辑运算类指令练习 系别专业:电子系12级电信2班学号:3121003210 姓名:李书杰指导老师:刘志群老师 3.1.1 实验要求 1、参照第1章的介绍,观察TD-NMC+实验平台中各模块的位置及相应引脚的引出线。 2、复习传送类、逻辑类指令及程序的相关知识。 3、实验之前,请详细阅读第1、2章的内容,知道使用软件实验的步骤。 3.1.2 实验设备 PC 机一台,TD-NMC+教学实验系统 3.1.3 实验目的 1、了解TD-NMC+实验平台上各主要元器件及其插座的安装分布。 2、熟悉单片机仿真实验软件Keil C51的使用。 3、体会8051单片机传送和逻辑运算类指令的功能,掌握汇编语言设计和调试方法 3.1.4 实验内容 实验1程序: (1)实验前请分析程序,计算下表各寄存器和存储单元的理论值并填入下表的 (2)编辑、编译、运行调试该程序,通过数据窗口和寄存器窗口查看各寄存器和存储单元的值并填入下表的第二空栏处,比较实验值和理论值是否相同。 实验1表

(3)软件调试程序时尽量采用单步执行或断点执行的方法,能跟踪程序的执行,还比较容易发现程序的错误。 实验2 编写一个程序,把片外RAM 7000H、7001H的低位相拼后送入7002H单元。其实验参考流程图如图3.1.1所示。 观察窗口,若(7000H)=03H,(7001H)=04H,那么(7002H)=34H。 3.1.5 思考题 1.上机实验后,你认为使用Keil软件应注意什么问题? 解:在使用Keil时应将文件保存以.ASM的格式。 2.MOVX、ANL、ORL和XCHD的功能? 解: MOVX外部寻址指令。ANL将两个指令相加。ORL两个 指令的或运算。XCHD将两个指令互换。 3.若把片外RAM7000H的高位、7001H的低位相拼后送入 7002H单元,程序该如何编写? 解:MOV DPTR, #7000H MOVX A, @DPTR INC DPTR MOV B, A MOVX A, @DPTR INC DPTR

逻辑运算指令--习题

逻辑运算指令--习题 课堂练习题目: 18.现有程序段如下: LEA SI,BUF1 LEA DI,BUF2 MOV CX,100 L:MOV AL,[SI+100] MOV [DI],AL INC DI L 4 MOV 10 4 ( 容相加,结果存入CX寄存器中. (4)清除AX寄存器地内容,同时清除CF标志位 (5)将字单元NUM与0B6H进行比较 5.按下列各小题地要求使用相应地几条指令完成其操作. (1)将偏移量为200H地存储单元中地数与300H相加,结果存入AX寄存器中 (2)比较AX寄存器中与BX寄存器中地16位有符号数,当AX中地内容不等于BX中地内容时转移到L. (3)将BUF1和BUF2中地16位数据交换

(4)测试BUF字缓冲区中第15位,如果为1则转移到P

答案===================================== 课堂练习题目: 18.现有程序段如下: LEA SI,BUF1 LEA DI,BUF2 MOV CX,100 L:MOV AL,[SI+100] MOV [DI],AL INC DI DEC SI L 4 MOV 10 MOV LEA BX, A L:INC WORD PTR [BX] ADD BX, 2 LOOP L 4.按下列各小题地要求写出相应地一条汇编语言指令. (1)把BX寄存器和DX寄存器地内容相加,结果存入DX寄存器中 (2)以BX和SI寄存器作基址变址寻址方式,把该单元中地一个字传送到AX. (3)以SI和位移量20H作寄存器相对寻址,将该单元中地内容与CX寄存器中地内容相加,结果存入CX寄存器中.

逻辑运算指令

逻辑运算指令 1.ANL类指令(6条) ANL类是逻辑与指令,其功能是将源操作数作数内容和目的操作数内容按位相“与”,结果存入目的操作数指定单元中,源操作数不变。 ANL A, Rn ;A∩Rn→A ANL A, direct ;A∩(direct) →A ANL A, @Ri ;A∩(Ri) →A ANL A, #data ;A∩data→A ANL direct, A ;(direct)∩A→(direct) ANL direct, #data ;(direct)∩data→(direct) 例设A=F6H,(30H)=0FH 执行 ANL A, 30H ;A∩ (30H) →A 操作如下: 11110110 (F6H) ∩ 00001111 (0FH)注意:按位相“与” 00000110 (06H) 结果:A=06H, 30H地址内容不变,即(30H)=0FH 若执行ANL 30H, A ;(30H)∩ A→(30H) 操作同上,结果放在30H地址中,A中内容不变,即(30H)=06H, A=F6H。 2.ORL类指令(6条) ORL类指令是逻辑或指令,其功能是将源操作数作数内容和目的操作数内容按位逻辑“或”,结果存入目的操作数指定单元中,源操作数不变。 ORL A, Rn ;A∪Rn→A ORL A,direct ;A∪(direct) →A ORL A, @Ri ;A∪(Ri) →A ORL A, #data ;A∪data→A ORL direct, A ;(direct)∪A→(direct) ORL direct, #data ;(direct)∪data→(direct) “或”运算和“与”运算过程类似,这里不再举例。 3.XRL类指令(6条) XRL类是异或指令,其功能是将两个操作数指定内容按位“异或”,结果存于目的操作数指定单元中。“异或”原则是相同为“0”,相异为“1”。 XRL A, Rn ;A⊕Rn→A XRL A, direct ;A⊕(direct) →A XRL A, @Ri ;A⊕(Ri) →A

西门子S7-300系列PLC的逻辑运算指令

ANDB IN1,OUT 将字节IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN1和IN2还可以是常数 ORB IN1,OUT 将字节IN1和OUT按位作逻辑或运算,OUT输出结果 XORB IN1,OUT 将字节IN1和OUT按位作逻辑异或运算,OUT输出结果 INVB OUT 将字节OUT按位取反,OUT输出结果 字逻辑运算指令 ANDW IN1,OUT 将字IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN1和IN2还可以是AIW和常数 ORW IN1,OUT 将字IN1和OUT按位作逻辑或运算,OUT输出结果 XORW IN1,OUT 将字IN1和OUT按位作逻辑异或运算,OUT输出结果 INVW OUT 将字OUT按位取反,OUT输出结果

ANDD IN1,OUT 将双字IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN1和IN2还可以是HC和常数 ORD IN1,OUT 将双字IN1和OUT按位作逻辑或运算,OUT输出结果 XORD IN1,OUT 将双字IN1和OUT按位作逻辑异或运算,OUT输出结果 INVD OUT 将双字OUT按位取反,OUT输出结果 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城。https://www.doczj.com/doc/984303520.html,/

相关主题
文本预览
相关文档 最新文档