六数据的传送转换比较及运算指令编程
- 格式:doc
- 大小:111.00 KB
- 文档页数:5
单片机数据传送指令c语言单片机是一种集成电路,也称为微控制器。
它内部集成了处理器、存储器和各种外围设备接口,并且可以通过程序来控制其工作。
在单片机编程过程中,数据传送指令是常用的指令之一。
数据传送指令用于在单片机中传输数据,可以实现寄存器之间的数据传递、数据移动和数据保存等功能。
下面我将详细介绍单片机数据传送指令的使用方法。
首先,我们需要了解数据传送指令的基本格式。
数据传送指令通常以下面的形式出现:MOV destination, source。
其中,destination表示目标操作数,source表示源操作数。
要执行一条数据传送指令,首先需要确定传输数据的源和目标,然后根据具体需求选择合适的寻址方式来指定源和目标的地址。
下面我将介绍几种常用的寻址方式。
第一种寻址方式是立即寻址(Immediate Addressing)。
在立即寻址中,source指定了一个立即数,表示需要传送的数据。
立即数是在指令中给出的常数值,可以直接传送到目标寄存器或内存地址中。
例如,MOV A, #15表示将立即数15传送到A寄存器中。
第二种寻址方式是直接寻址(Direct Addressing)。
直接寻址中,source 指定了一个源寄存器或内存地址,将该寄存器或内存地址中的内容传送到目标寄存器或内存地址中。
例如,MOV A, B表示将B寄存器中的内容传送到A寄存器中。
第三种寻址方式是寄存器间接寻址(Register Indirect Addressing)。
在寄存器间接寻址中,source指定了一个寄存器的地址,将该寄存器中的内容传送到目标寄存器或内存地址中。
例如,MOVX @DPTR, A表示将A 寄存器中的内容传送到DPTR寄存器指向的内存地址中。
第四种寻址方式是间接偏移寻址(Indirect Offset Addressing)。
在间接偏移寻址中,source指定了一个源寄存器和一个偏移量,将源寄存器地址加上偏移量得到的地址中的内容传送到目标寄存器或内存地址中。
fx3s编程手册应用指令一、前言本手册旨在帮助用户理解和应用FX3S系列PLC编程中提供的各种应用指令。
FX3S是三菱电机的一款高性能PLC,广泛应用于工业控制领域。
本手册将详细介绍各种应用指令的功能、使用方法以及在编程中的实际应用。
二、指令分类FX3S编程指令主要分为以下几类:数据处理指令、控制指令、数学运算指令、输入输出指令、通信指令等。
掌握各类指令的使用方法和注意事项,将有助于用户在编程中更好地运用这些指令。
三、数据处理指令1. 数据传送指令:用于将数据在PLC内部及与外部设备之间进行传送。
如XMT和RCV指令。
2. 转换指令:包括数值到字符、数值到二进制、BCD到二进制等转换。
3. 算术运算指令:包括加、减、乘、除等运算指令。
4. 比较指令:用于比较数值大小,得到结果为逻辑假(0)或逻辑真(1)。
四、控制指令控制指令主要用于控制程序的流程,如条件判断、循环、跳转等。
常用的控制指令有条件跳转、循环、子程序调用等。
五、数学运算指令数学运算指令包括加减乘除等基本运算,以及三角函数、开方等高级运算。
这些指令在数学计算和控制算法中有着广泛的应用。
六、输入输出指令输入输出指令用于PLC与外部设备的通信,如传感器、执行器等。
常用的输入输出指令有模拟量输入输出、数字量输入输出等。
七、通信指令通信指令用于PLC与其他设备或系统进行通信。
FX3S系列PLC支持多种通信协议,如RS-232C、RS-485、MODBUS等。
常用的通信指令有数据传输指令(RS)、串行通信指令(SCL)等。
八、应用示例通过实际应用示例,用户可以更好地理解和掌握各种应用指令的使用方法和效果。
例如,使用数据处理指令实现数据的传送和转换,使用控制指令实现循环和条件判断,使用数学运算指令进行复杂的数学计算等。
九、注意事项在使用FX3S编程手册应用指令时,需要注意以下几点:1. 了解每种指令的适用场合和使用范围;2. 注意指令的参数设置和数据类型;3. 遵循安全规范,避免因错误使用指令导致系统故障或损坏;4. 不断学习和积累经验,根据实际需求选择合适的指令进行编程。
内容目录计算机寄存器分类简介计算机寄存器常用指令一、常用指令二、算术运算指令三、逻辑运算指令四、串指令五、程序跳转指令------------------------------------------计算机寄存器分类简介:32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。
对低16位数据的存取,不会影响高16位的数据。
这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。
.4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。
程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。
寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。
可用于乘、除、输入/输出等操作,使用频率很高;寄存器EBX称为基地址寄存器(Base Register)。
它可作为存储器指针来使用;寄存器ECX称为计数寄存器(Count Register)。
在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;寄存器EDX称为数据寄存器(Data Register)。
在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。
以下是三菱plc常用的指令,还有不懂的可以问我一程序流程控制指令—FNC00~0900 CJ 条件转移01 CALL 子程序调用02 SRET 子程序返回03 IRET 中断返回04 EI 开中断05 DI 关中断06 FEND 主程序结束07 WDT 监控定时器刷新08 FOR 循环开始09 NEXT 循环结束二传送、比较指令—FNC10~19 BIN----二进制 BCD----十进制 10 CMP 比较11 ZCP 区间比较12 MOV 传送13 SMOV BCD码移位传送14 CML 取反传送15 BMOV 数据块传送(n点→n点)16 FMOV 多点传送(1点→n点)17 XCH 数据交换,(D0)←→(D2)18 BCD BCD变换,BIN→BCD19 BIN BIN变换,BCD→BIN三算术、逻辑运算指令—FNC20~29 BIN----二进制 BCD----十进制 20 ADD BIN 加法21 SUB BIN减法22 MUL BIN乘法23 DIV BIN除法24 INC BIN加一25 DEC BIN减一26 WAND 字与27 WOR 字或28 WXOR 字异或29 NEG 求BIN补码四循环、移位指令—FNC30~3930 ROR 循环右移31 ROL 循环左移32 RCR 带进位循环右移33 RCL 带进位循环左移 34 SFTR 位右移35 SFTL 位左移36 WSFR 字右移37 WSFL 字左移38 SFWR FIFO写入39 SFRD FIFO读出五数据处理指令—FNC40~4940 ZRST 区间复位41 DECO 解码42 ENCO 编码43 SUM 求置ON位总数 44 BON ON位判别45 MEAN 求平均值46 ANS 信号报警器标志置位 47 ANR 信号报警器标志复位 48 SQR BIN平方根49 FLT BIN整数→BIN浮点数六高速处理指令—FNC50~5950 REF 输入输出刷新51 REFF 输入滤波时间常数调整 52 MTR 矩阵输入53 HSCS 高速记数器比较置位 54 HSCR 高速记数器比较复位 55 HSZ 高速记数器区间比较 56 SPD 速度检测 57 PLSY 脉冲输出58 PWM 脉冲宽度调制59 PLSR 带加减速功能的脉冲输出七方便指令—FNC60~6960 IST 状态初始化61 SER 数据搜索62 ABSD 绝对值凸轮顺控 63 INCD 增量凸轮顺控 64 TTMR 示教定时器65 STMR 专用定时器—可定义 66 ALT 交替输出67 RAMP 斜坡输出68 ROTC 旋转工作台控制 69 SORT 数据排序八外部I/O设备指令—FNC70~7970 TKY 10键输入71 HKY 16键输入72 DSW 拨码开关输入 73 SEGD 七段译码74 SEGL 带锁存的七段码显示 75 ARWS 方向开关76 ASC ASCII码转换 77 PR 打印输出78 FROM 读特殊功能模块 79 TO 写特殊功能模块九外围设备指令—FNC80~8980 RS RS-232C串行通讯 81 PRUN 并行运行82 ASCI 十六进制→ASCII 83 HEX ASCII→十六进制 84 CCD 校验码85 VRRD 电位器读入86 VRSC 电位器设定88 PID PID控制十 F2外部模块指令—FNC90~9990 MNET F-16N, Mini网91 ANRD F2-6A, 模拟量输入 92 ANW* *2-6*, 模拟量输出 93 RMST F2-32RM, 启动RM 94 RMWR F2-32RM, 写RM 95 RMRD F2-32RM, 读RM 96 RMMN F2-32RM, 监控RM 97 BLK F2-30GM, 指定块 98 MCDE F2-30GM, 机器码十一浮点数运算指令—FNC110~132110 ECMP BIN浮点数比较111 EZCP BIN浮点数区间比较118 EBCD BIN浮点数→BCD浮点数 119 EBIN BCD浮点数→BIN浮点数 120 EADD BIN浮点数加法 121 ESUB BIN浮点数减法 122 EMUL BIN浮点数乘法123 EDIV BIN浮点数除法127 ESQR BIN浮点数开方129 INT BIN浮点数→BIN整数130 SIN BIN浮点数正弦函数(SIN) 131 COS BIN浮点数余弦函数(COS) 132 TAN BIN浮点数正切函数(TAN)十二交换指令—FNC147147 SWAP 高低字节交换十三定位指令—FNC155~159155 ABS 读当前绝对值位置156 ZRN 返回原点157 PLSY 变速脉冲输出158 DRVI 增量式单速位置控制 159 DRVA 绝对式单速位置控制十四时钟运算指令—FNC160~169160 TCMP 时钟数据比较161 TZCP 时钟数据区间比较162 TADD 时钟数据加法163 TSUB 时钟数据减法166 TRD 时钟数据读出167 TWR 时钟数据写入169 HOUR 小时定时器十五变换指令—FNC170~177170 GRY 二进制数→格雷码171 GBIN 格雷码→二进制数176 RD3A 读FXon-3A模拟量模块 177 WR3A 写FXon-3A模拟量模块十六触点比较指令—FNC224~246224 LD= (S1)=(S2)时运算开始之触点接通 225 LD> (S1)>(S2)时运算开始之触点接通 226 LD< (S1)<(S2)时运算开始之触点接通228 LD<> (S1)≠(S2)时运算开始之触点接通229 LD≤ (S1)≤(S2)时运算开始之触点接通230 LD≥ (S1)≥(S2)时运算开始之触点接通232 AND= (S1)=(S2)时串联触点接通 233 AND> (S1)>(S2)时串联触点接通 234 AND< (S1)<(S2)时串联触点接通236 AND<> (S1)≠(S2)时串联触点接通237 AND≤ (S1)≤(S2)时串联触点接通 238 AND≥ (S1)≥(S2)时串联触点接通240 OR= (S1)=(S2)时并联触点接通 241 OR> (S1)>(S2)时并联触点接通 242 OR< (S1)<(S2)时并联触点接通244 OR<> (S1)≠(S2)时并联触点接通245 OR≤ (S1)≤(S2)时并联触点接通246 OR≥提问人的追问(S1)≥(S2)时并联触点接通 2011-04-13 14:16楼主三菱PLC 编程手册目录第一章 FX1N PLC编程简介1.1 FX1N PLC 简介 (1)1.1.1 FX1N PLC 的提出 (1)1.1.2 FX1N PLC 的特点 (1)1.1.3 FX1N PLC 产品举例 (1)1.1.4 关于本手册 (1)1.2 编程简介 (1)1.2.1 指令集简介 (2)1.2.2 资源集简介 (7)1.2.3 编程及应用简介 (9)第二章基本逻辑指令说明及应用2.1 基本逻辑指令一览表 (10)2.1 [LD],[LDI],[LDP],[LDF],[OUT]指令 (10)2.2.1 指令解说 (10)2.2.2 编程示例 (10)2.3[AND],[ANI],[ANDP],[NDF]指令 (11)2.3.1 指令解说 (11)2.3.2 编程示例 (12)2.4 [OR],[ORI],[ORP],[ORF]指令 (13)2.4.1 指令解说 (13)2.4.2 编程示例 (13)2.5 [ANB],[ORB]指令 (14)2.5.1 指令解说 (14)2.5.2 编程示例 (14)2.6 [INV]指令 (15)2.6.1 指令解说 (15)2.6.2 编程示例 (15)2.7 [PLS],[PLF]指令 (16)2.7.1 指令解说 (16)2.7.2 编程示例 (17)2.8 [SET],[RST]指令 (17)2.8.1 指令解说 (17)2.8.2 编程示例 (18)2.9 [NOP],[END]指令 (18)2.9.1 指令解说 (18)2.9.2 编程示例 (18)2.10 [MPS],[MRD],[MPP] 指令 (18)2.10.1 指令解说 (18)2.10.2 编程示例 (19)2.11[MC],[MCR]指令 (21)2.11.1指令解说 (21)2.11.2 编程示例 (21)第三章步进顺控指令说明及应用3.1步进顺控指令说明 (22)3.1.1 指令解 (22)3.1.2 编程示例 (25)3.2 步进顺控指令应用 (25)3.2.1 单一流程示例 (25)3.2.2 选择性分支与汇合示例 (26)3.2.3 并行分支与汇合示例 (27)3.2.4 循环和跳转示例 (29)第四章功能指令说明及应用4.1 功能指令一览表 (31)4.2 程序流程 (33)4.2.1 条件跳转[CJ] (33)4.2.2 子程序调用[CALL] (35)4.2.3 子程序返回[SRET] (35)4.2.4 主程序结束[FEND] (36)4.2.5 循环范围开始[FOR] (37)4.2.6 循环范围结束「NEXT] (37)4.3 传送与比较 (38)4.3.1 比较指令[CMP] (39)4.3.2 区域比较[ZCP] (40)4.3.3 传送指令[MOV] (41)4.3.4 反向传送[CML] (43)4.3.5 BCD 转换[BCD] (44)4.3.6 BIN 转换[BIN] (45)4.4 四则逻辑运算 (46)4.4.1 BIN 加法运算[ADD] (46)4.4.2 BIN 减法运算[SUB] (47)4.4.3 BIN 乘法运算[MUL] (48)4.4.4 BIN 除法运算[DIV] (49)4.4.5 BIN 1 [INC]................................... .. (50)4.4.6 BIN 减1 [DEC] (50)4.4.7 逻辑与[WAND] (51)4.4.8 逻辑或[WOR] (51)4.4.9 逻辑异或[WXOR] (52)4.4.10 求补[NEG] (53)4.4.11 BIN 开方运算[SQR] (53)4.5 循环与移位 (54)4.5.1 循环右移[ROR] (54)4.5.2 循环左移[ROL] (55)4.5.3带进位循环右移[RCR] .............................................. (56)4.5.4 带进位循环左移[RCL] (58)4.6 浮点数运算 (59)4.6.1 二进制浮点数比较「DECMP] (59)4.6.2二进制浮点数区域比较[DEZCP] (60)4.6.3 二进制浮点数转十进制浮点数[DEBCD] (61)4.6.3 十进制浮点数转二进制浮点数[DEBIN] (62)4.6.5 二进制浮点数加法[DEADD] (62)4.6.6 二进制浮点数减法[DESUB] (63)4.6.7 二进制浮点数乘法「DEMUL] (64)4.6.8 二进制浮点数除法「DEDIV] (65)4.6.9 二进制浮点数开方「DESQR] (66)4.6.10 二进制浮点数转BIN 整数变换「INT] (67)4.6.11 BIN 整数转二进制浮点数「FLT] (68)4.7 触点比较指令 (69)]..............................................69 4.7.1 接点比较指令「LD※].............................................70 4.7.2 接点比较指令「AND※]...............................................72 4.7.3接点比较指令「OR※4.8 功能指令的基本规则 (73)4.8.1 .功能指令的表示与执行形式................................ . (73)4.8.2 功能指令内的数值处理 (75)4.8.3 利用变址寄存器的操作数修改 (77)第五章资源说明及应用5.1 变址寄存器V 、Z 说明及应用 (80)5.1.1 变址寄存器V 、Z 说明 (80)5.1.2 变址寄存器在梯形图中的应用 (80)5.1.3 使用变址功能的注意事项 (81)5.2 输入输出继电器X 、Y 说明及应用 (82)5.2.1 输入输出继电器X 、Y 说明 (82)5.2.2输入输出继电器应用 (83)5.3 辅助中间继电器M 说明及应用 (85)5.3.1 辅助中间继电器M 说明 (85)5.3.2 辅助中间继电器M 应用 (85)5.4 状杰继申器S 说明及应用 (87)5.4.1 状态继电器S 说明 (87)5.4.2 状态继电器S 应用 (88)5.5 定时器T 说明及应用 (88)5.5.1 定时器T 说明 (88)5.5.2 定时器T 应用 (90)5.6计数器C 说明及应用 (92)5.6.1 16 bit 计数器C 说明 (92)5.6.2 32 bit 计数器C 说明 (93)5.6.3 16 bit 计数器C 应用 (95)5.6.4 32 bit 计数器应用 (96)5.7数据寄存器D 说明及应用 (97)5.7.1 数据寄存器D 说明 (97)5.7.2 数据寄存器D 应用 (99)5.8程序位置指针P 说明及应用 (100)5.8.1 程序位置指针P 说明 (100)5.8.2 程序位置指针P 应用 (100)5.9常数标记K 、H 详细说明 (102)5.9.1 常数标记K (102)5.9.2 常数标记H (103)5.10 特殊软元件说明 (103)第六章 PID指令说明及应用6.1 PID 运算 (104)6.1.1 (104)6.1.2 应用示例 (110)第一章FX1N PLC 编程简介1.1 FX1N PLC 简介1.1.1 FX1N PLC 的提出基于以下观点,提出FX1N PLC 的概念:①、软件和硬件独立设计。
实验六数据的传送、转换、比较及运算指令编程实
验
一、实验目的
1、掌握数据的传送、转换、比较及运算指令的使用方法。
2、学会数据的传送、转换、比较及运算指令在编程中的应用。
二、实验设备
电脑一台,实验箱一台,AB接口的USB连线一条,电源线两条。
三、实验步骤
1、把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,即向下,再用AB 接口的USB连线把PLC与电脑连接起来,然后给PLC上电。
2、启动CP—X软件,新建工程,进入CP—X软件编程环境。
3、根据实验内容在CP—X软件编程环境里进行编程,然后进行相关的操作。
4、程序运行调试并修改。
5、保存好的文件,做好各项记录。
6、把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,切断实验箱的电
源,盖好实验箱的盖子。
7、写实验报告。
四、实验内容
1、可调多谐振荡器控制程序
(1)控制要求:
多谐振荡器输出的脉冲宽度及点空比可以调整。
(2)参考梯形图程序(图6-1)
(3)程序分析:
①画出0.00、0.01、T0、T1、100.00的时序图(图6-2)
②当0.00为“on”、0.01为“off”时,数据传送指令MOV分别把立即数10传送给D0、D1,则T0、T1的设定值均为10,100.00输出的脉冲宽度为1秒,点空比为1:1;当0.00为“off”、0.01为“on”时,数据传送指令MOV分别把立即数20和40传送给D0、D1,则T0、T1的设定值分别为20和40,100.00输出的脉冲宽度为4秒,点空比为2:1。
(3)把图6-1梯形图程序中的“MOV”指令改为“@MOV”,然后再观察它们的运行情况,并与图6-1梯形图程序进行比较,看是否相同,说明原因。
程序中的“MOV”能否用“MOVB”或“MOVD”替代,如果可以,请在程序中修改,如果不行,说明原因。
图6-1 可调多谐振荡器控制梯形图
100.00
0.00
0.01
T0
T1
图6-2 时序图
2、BCD 、CMP 及数据运算指令的验证
运行图6-3梯形图程序,认真观察,回答下面几个问题:
(1)说说“BCD ”指令在程序中的作用,能不能把该指令省去?
(2)程序中两个“MOV”指令,它们传送的立即数是否相同?计时器T0、T1的设置值是否相同?
(3)程序中的“CMP”指令起着什么作用?说说为什么D0会小于D2。
(4)程序中“+B”、“-B”和“*”三个运算指令能否用指令“+”、“-”和“*B”替换?
(a)
(b)
图6-3 验证BCD 、CMP 及数据运算指令的梯形图
3、三个正整数相加减控制程序
(1)控制要求:
三个正整数D0、D1、D2,如果D0>=D1,则D3=D0-D1,否则D3=D0+D1;如果D3>=D2,则D4=D3-D2,否则D4=D3+D2。
(2)编写PLC 梯形图程序。
4、智能选斗控制程序
(1)控制要求:
如图6-4所示,环形的工作台有导轨、动力系统,可供斗车行驶,工作台上有8个工作位,每个工作位均有个限位开关和一个呼叫斗车的按钮。
当某个工作位呼叫斗车时,系统能自动地选择最短的路程把斗车送到呼叫的工作位;当有工作位呼叫斗车后,其它的工作位就不能呼叫斗车了,要等到斗车到达呼叫的工作位10秒后才能呼叫。
(2)列出I/O 分配表。
(3)画出PLC的外部接线图。
(4)编写PLC梯形图程序。
图6-4
五、实验报告
本次实验报告的内容主要是:
1、实验目的。
2、实验设备。
4、实验具体步骤。
5、实验程序上机验证:写出运行后得到的结果,并分析与预习中的结果是否相同。
6、心得体会:本次实验中遇到的问题、解决方法及收获。