一、引言
在现代电子系统中,程序设计和计算机应用日益普及。
在众多控制系统中,三菱PLC作为一种广泛应用于工业自动化领域的控制器,其功能强大、操作灵活的特点深受工程师们的喜爱。
其中,三菱循环变址程序及循环移位指令是实现数据处理和算法优化的重要手段。
本文将全面解析三菱循环变址程序及循环移位指令的实现逻辑,帮助读者深入理解其工作原理。
二、三菱PLC简介
三菱PLC是一种可编程控制器,采用高度集成的微处理器技术,可实现逻辑控制、数据处理、通信等功能。
由于其易于学习和掌握的特点,三菱PLC广泛应用于各种工业控制领域。
三菱PLC编程语言包括梯形图、指令表等,其中循环变址程序和循环移位指令是编程中常用的功能。
三、三菱循环变址程序概述
循环变址程序是三菱PLC中实现循环操作的一种重要手段。
在循环操作中,程序通过改变地址指针的值来实现数据的循环处理。
通过循环变址程序,可以实现对一组数据的反复处理,从而提高程序的执行效率。
循环变址程序一般由计数器、比较指令、地址指针等构成。
在循环过程中,计数器对地址指针进行累加或递减操作,当地址指针达到预设值时,比较指令触发条件成立,循环结束。
四、三菱循环移位指令解析
三菱PLC中的循环移位指令是实现数据移位操作的重要功能之一。
循环移位指令可以将数据位进行左移或右移操作,同时保持数据的完整性。
在执行循环移位操作时,数据的最高位和最低位会进行互换或保持不变,从而实现数据的循环移动。
三菱PLC中的循环移位指令包括以下几种:
1. 左移指令:将数据位向左移动指定的位数,右侧空出的位填充为初始值(通常为0)。左侧移出的位填充为最高位的值,实现数据的循环移位。
2. 右移指令:将数据位向右移动指定的位数,左侧空出的位填充为初始值。右侧移出的位填充为最低位的值,同样实现数据的循环移位。
3. 双向移位指令:根据指定的条件进行左移或右移操作,实现数据的双向循环移位。这种指令可以根据实际需求进行灵活配置,提高程序的适应性。
五、三菱循环变址程序与循环移位指令的应用实例
以三菱PLC中的数据处理为例,假设需要对一组数据进行排序处理。
通过循环变址程序,可以实现对数据的逐次比较和交换操作。
在数据交换过程中,可以使用循环移位指令实现数据位的移动。
例如,当需要将数组中的元素向右移动时,可以使用右移指令将数据位进行移动,同时利用循环变址程序控制移动的次数和位置。
通过这种方式,可以实现数据的快速排序和处理。
六、结论
本文全面解析了三菱循环变址程序及循环移位指令的实现逻辑。
通过深入了解三菱PLC的工作原理和编程特点,可以更好地应用循环变址程序和循环移位指令实现数据处理和算法优化。
在实际应用中,根据具体需求和场景选择合适的指令和功能,可以提高程序的执行效率和性能。
希望本文能对读者理解三菱循环变址程序及循环移位指令有所帮助。
9十98十789?
等于896.
运算器:arithmetic unit,计算机中执行各种算术和逻辑运算操作的部件。 运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。
数据
运算器的处理对象是数据,所以数据长度和计算机数据表示方法,对运算器的性能影响极大。 70年代微处理器常以1个、4个、8个、16个二进制位作为处理数据的基本单位。 大多数通用计算机则以16、32、64位作为运算器处理数据的长度。 能对一个数据
运算器
的所有位同时进行处理的运算器称为并行运算器。 如果一次只处理一位,则称为串行运算器。 有的运算器一次可处理几位 (通常为6或8位),一个完整的数据分成若干段进行计算,称为串/并行运算器。 运算器往往只处理一种长度的数据。 有的也能处理几种不同长度的数据,如半字长运算、双倍字长运算、四倍字长运算等。 有的数据长度可以在运算过程中指定,称为变字长运算。
按照数据的不同表示方法,可以有二进制运算器、十进制运算器、十六进制运算器、定点整数运算器、定点小数运算器、浮点数运算器等。 按照数据的性质,有地址运算器和字符运算器等。
它的主要功能是进行算术运算和逻辑运算
运算器操作
运算器能执行多少种操作和操作速度,标志着运算器能力的强弱,甚至标志着计算机本身的能力。 运算器最基本的操作是加法。 一个数与零相加,等于简单地传送这个数。 将一个数的代码求补,与另一个数相加,相当于从后一个数中减去前一个数。 将两个数相减可以比较它们的大小。
左右移位是运算器的基本操作。在有符号的数中,符号不动而只移数
运算器
据位,称为算术移位。 若数据连同符号的所有位一齐移动,称为逻辑移位。 若将数据的最高位与最低位链接进行逻辑移位,称为循环移位。
运算器的逻辑操作可将两个数据按位进行与、或、异或,以及将一个数据的各位求非。 有的运算器还能进行二值代码的16种逻辑操作。
乘、除法操作较为复杂。 很多计算机的运算器能直接完成这些操作。 乘法操作是以加法操作为基础的,由乘数的一位或几位译码控制逐次产生部分积,部分积相加得乘积。 除法则又常以乘法为基础,即选定若干因子乘以除数,使它近似为1,这些因子乘被除数则得商。 没有执行乘法、除法硬件的计算机可用程序实现乘、除,但速度慢得多。 有的运算器还能执行在一批数中寻求最大数,对一批数据连续执行同一种操作,求平方根等复杂操作。
运算器运算方法
实现运算器的操作,特别是四则运算,必须选择合理的运算方法。 它直接影响运算器的性能,也关系到运算器的结构和成本。 另外,在进行数值计算时,结果的有效数位可能较长,必须截取一定的有效数位,由此而产生最低有效数位的舍入问题。 选用的舍入规则也影响到计算结果的精确度。 在选择计算机的数的表示方式时,应当全面考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数):决定表示方式,可能遇到的数值范围:确定存储、处理能力。 数值精确度:处理能力相关;数据存储和处理所需要的硬件代价:造价高低。
两种常用格式:定点格式:定点格式容许的数值范围有限,但要求的处理硬
运算器
件比较简单;浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。
1、定点数表示法:定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯小数。
2、浮点数表示法:由于所需表示的数值取值范围相差十分悬殊,给存储和计算带来诸多不便,因此出现了浮点运算法。
浮点表示法,即小数点的位置是浮动的。 其思想来源于科学计数法。 IEEE754的浮点数(比较特殊)浮点数的规格化:主要解决同一浮点数表示形式的不唯一性问题。 规定 ,否则尾数要进行左移或右移。
机器零的概念:尾数为0或是阶码值小于所能表示的最小数。
3、十进制数串的表示方法:由于人们对十进制比较熟悉,因此在计算机中要增加对十进制运算的支持。 两种方式:将十进制数变为二进制数运算,输出时再由二进制变为十进制。 直接的十进制运算。 直接运算的表示方法:字符串形式:用于非数值计算领域、压缩的十进制数串:分为定长和不定长两种。 需要相应的十进制运算器和指令支持。
4、自定义数据表示:标志符数据表示、描述符数据表示。 区别:标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放;描述符表示中,先访问描述符,后访问数据,至少增加一次访存;描述符是程序的一部分,而不是数据的一部分。 原码:比较自然的表示法,最高位表示符号,0为正,1为负。 优点:简单易懂。 缺点:加减法运算复杂。 补码:加减法运算方便,减法可以转换为加法。 定点小数的补码。 定点整数的补码,反码:为计算补码方便而引入。 由反码求补码:符号位置1,各位取反,末位加1。 移码:用于阶码的表示,两个移码容易比较大小,便于对阶。
ASCII码 输入码:用于汉字输入;汉字的存储;字模码:用于汉字的显示。 余数处理的两种方法:恢复余数法:运算步骤不确定,控制复杂,不适合计算机运算。 加减交替法:不恢复余数,运算步骤确定,适合计算机操作。 逻辑数概念:不带符号的二进制数。 四种逻辑运算:逻辑非、逻辑加、逻辑乘、逻辑异。 多功能算术/逻辑运算单元(ALU) 并行进位,行波进位加/减法器存在
运算器
的两个问题:运算时间长,行波进位加/减法器只能完成加法和减法,而不能完成逻辑操作,控制端M用来控制作算术运算还是逻辑运算,两种运算的区别在于是否对进位进行处理。 M=0时,对进位无影响,为算术运算;M=1时,进位被封锁,为逻辑运算。 正逻辑中,“1”用高电平表示,“0”用低电平表示,而负逻辑刚好相反。 逻辑与负逻辑的关系为,正逻辑的“与”到负逻辑中变为“或”,即+·互换。
内部总线,总线分类:内部总线、外部总线(系统总线)、通信总线。 总线又可分为单向总线和双向总线。 带锁存器的总线可实现总线的复用。 运算器包括ALU、阵列乘除器件、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。 运算器的设计,主要是围绕着ALU和寄存器同数据总线之间如何传送操作数和运算结果而进行的。 运算器的三种结构形式:单总线结构的运算器:这种结构的主要缺点是操作进度较慢,但控制电路比较简单。 双总线结构的运算器。 三总线结构的运算器:三总线结构的运算器的特点是操作时间快。
运算器结构
运算器包括寄存器、执行部件和控制电路3个部分。在典型的运算器中有3个寄存器:接收并保存一个操作数的接收寄存器;保存另一个操作数和运算结果的累加寄存器;在
运算器
进行乘、除运算时保存乘数或商数的乘商寄存器。 执行部件包括一个加法器和各种类型的输入输出门电路。 控制电路按照一定的时间顺序发出不同的控制信号,使数据经过相应的门电路进入寄存器或加法器,完成规定的操作。 为了减少对存储器的访问,很多计算机的运算器设有较多的寄存器,存放中间计算结果,以便在后面的运算中直接用作操作数。 为了提高运算速度,某些大型计算机有多个运算器。 它们可以是不同类型的运算器,如定点加法器、浮点加法器、乘法器等,也可以是相同类型的运算器。 运算器的组成决定于整机的设计思想和设计要求,采用不同的运算方法将导致不同的运算器组成。 但由于运算器的基本功能是一样的,其算法也大致相同,因而不同机器的运算器是大同小异的。 运算器主要由算术逻辑部件、通用寄存器组和状态寄存器组成。 1、算术逻辑部件ALU。 ALU 主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。 算术运算主要包括定点加、减、乘和除运算。 逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。 移位操作主要完成逻辑左移和右移、算术左移和右移及其他一些移位操作。 某些机器中,ALU 还要完成数值比较、变更数值符号、计算操作数在存储器中的地址等。 可见,ALU 是一种功能较强的组合逻辑电路,有时被称为多功能发生器,它是运算器组成中的核心部件。 ALU 能处理的数据位数(即字长)与机器有关。 如 Z80单板机中,ALU 是 8 位;IBM PC/XT和 AT 机中,ALU 为 16 位;386 和 486微机中,ALU 是 32 位。 ALU 有两个数据输入端和一个数据输出端,输入输出的数据宽度(即位数)与 ALU 处理的数据宽度相同。
2、通用寄存器组设计的机器的运算器都有一组通用寄存器。 它主要用来保存参加运算的操作数和运算的结果。 早期的机器只设计一个寄存器,用来存放操作数、操作结果和执行移位操作
运算器
,由于可用于存放重复累加的数据,所以常称为累加器。 通用寄存器均可以作为累加器使用。 通用寄存器的数据存取速度是非常快的,一般是十几个毫微秒(μs)。 如果 ALU 的两个操作数都来自寄存器,则可以极大地提高运算速度。 通用寄存器同时可以兼作专用寄存器,包括用于计算操作数的地址(用来提供操作数的形式地址,据此形成有效地址再去访问主存单元)。 例如,可作为变址寄存器、程序计数器(PC)、堆栈指示器(SP)等。 必须注意的是,不同的机器对这组寄存器使用的情况和设置的个数是不相同的。
3、状态寄存器状态寄存器用来记录算术、逻辑运算或测试操作的结果状态。 程序设计中,这些状态通常用作条件转移指令的判断条件,所以又称为条件码寄存器。 一般均设置如下几种状态位:
1)零标志位(Z):当运算结果为 0 时,Z 位置“1”;非 0 时,置“0”;
2)负标志位(N):当运算结果为负时,N 位置“1”;为正时,置“0”;
3)溢出标志位(V):当运算结果发生溢出时,V 位置“1”;无溢出时,置“0”;
4)进位或借位标志(C):在做加法时,如果运算结果最高有效位(对于有符号数来说,即符号位;对无符号数来说,即数值最高位)向前产生进位时,C 位置“1”;无进位时,置“0”。 在做减法时,如果不够减,最高有效位向前有借位(这时向前无进位产生)时,C 位置“1”;无借位(即有进位产生)时,C 位置“0”。 除上述状态外,状态寄存器还常设有保存有关中断和机器工作状态(用户态或核心态)等信息的一些标志位(应当说明,不同的机器规定的内容和标志符号不完全相同),以便及时反映机器运行程序的工作状态,所以有的机器称它为“程序状态字”或“处理机状态字”(Processor Status Word,PSW )。
希望我能帮助你解疑释惑。
HC08传送类指令操作对CCR的影响如何?
可以说没什么影响`M68HC08指令系统计算机的指令系统是一套控制计算机操作的编码,称之为机器语言。 计算机只能识别和执行机器语言的指令,机器语言指令是随计算机系统的不同而不同的。 为了容易为人们所理解,便于记忆和使用,通常用符号指令(即汇编指令)来表示计算机的指令。 这一章我们以M68HC08的汇编指令来分析M68HC08的指令系统功能和使用方法。 1 指令格式1.1 汇编指令格式M68HC08汇编指令由操作码助记符字段和操作数字段所组成,指令的格式如下:操作码[操作数1],[操作数2],[操作数3]第一部分“操作码”助记符,由2-5个英文字母组成,例如LD、MOV、DBNXZ、BRSET等。 第二部分为“操作数”字段,根据指令功能的不同,操作数可以有一个、二个、三个或者没有(例如空操作指令NOP)。 操作码与操作数之间以空格分隔,操作数和操作数之间用“,”号分开。 指令前可以加标号,标号代表这条指令的起始存储地址,指令后可以加注释,注释以“;”号开始,一行指令以回车符结束。 例如:STRT:MOV#FF,DORA;PTA编程为输出口中1.2 常用伪指令一、定位伪指令格式:ORG地址“地址”可以十六进数(以$开头)或十进制表示,该伪指令给出以下的程序或数据的起始存储地址。 例如:ORG $C000则该伪指令下面的程序或常数存放在$C000开始的存储器中。 二、定义字节常数伪指令格式:FCB X1、X2、X3,…Xn定义程序区中的字节常数,Xi是单字节常数也可以是用单引号括起来的字符串(这时定义ASCII码),每个字节为一个字符。 例如:ORG $8000FCB $3F, $61则在Flash的$8000、$8001两个单元定义了两个常数$3F、$61。 利用字节定义伪指令可以在程序存储器中定义常数表,如显示器的字形数据表等。 三、定义字常数伪指令格式:FDB Y1、Y2、…Ym定义程序区中字(双字节)常数,高位字节在前,低位字节在后,Yi用十六进制或十进制数表示。 例如:ORG $FFFEFDB $8000则在$FFFE、$FFFF定义了一个字常数,$80存储在$DDDW单元,而$FFFF单元存储$0。 利用FDB指令可以定义复位和中断向量。 1.3 符号说明M68HC08汇编程序允许使用标准的M68HC08汇编指令和多种伪指令(详见§7.1M68HC08汇编使用方法)。 为了以下说明和分析指令的方便,我们对常用的符号作简单说明。 一、功能性符号·( )寄存器或存储单元的内容;·←数据传送的方向;·↑表示退栈;·↓表示进栈;·&表示逻辑或;·○+表示逻辑异或;·×乘;·÷除;·+加;·-减;·:表示连成双字节;·《表示扩展为有符号的16位数。 二、寄存器或存储单元符号·A累加器;·CCR条件码寄存器;·H变址寄存器高8位;·X变址寄存器低8位;·PC程序计数器;·PCH程序计数器的高8位;·PCL程序计数器的低8位;·SP堆栈指针;·M存储器地址或数据(视寻址方式而定)·rel相对偏移量(表示有符号的8位二进制数)。 三、位标识符号·V溢出标志位;·H半进位;·I中断屏蔽位;·N负标志位;·Z零标志位;·C进位/借位。 四、对条件码寄存器影响:·-无影响;·0:清“零”;·:根据结果置“1”或清“零”。 五、机器码标志·dd:$00XX的低8位地址;·ee:16位偏移量地址;·ff:16位偏移量低8位或8位偏移量;·ii:单字节立即数;·ll:16位扩展寻址低8位;·rr:相对偏移量。 六、源操作数标志·OPR:操作数,一个或两个字节,由操作方式确定;·rel:相对偏移量。 七、寻址方式·INH:隐含寻址;·IMM:8位立即数寻址;·DIR:8位直接地址寻址;·EXT:16位扩展寻址;·IX:16位变址无偏移量;·IX1:16位变址8位偏移量;·IX2:16位变址,16位偏移量;·IX+:16位变址,无偏移量,变址寄存器加1;·IX1+:16位变址,8位偏移量,变址寄存器加1;·rel:8位相对寻址;·DD:直接寻址;·IMD:立即寻址,直接寻址;·IX+D:16位变址,直接寻址,变址寄存器加1;·DIX+:直接寻址,16位变址,变址寄存器加1;·SP1:堆栈指针寻址,8位偏移量;·SP2:堆栈指针寻址,16位偏移量。 2 寻址方式指令给出操作数或产生操作数有效地址(EA)的方式称为寻址方式。 根据寻址方式,CPU就可以取得操作数。 M68HC08比M68HC05增加了8种寻址方式,使程序员能选择最合适的寻址方式来优化程序,达到缩短程序长度、提高运行速度的目的。 下面分别介绍M68HC08指令系统的寻址方式。 一、隐含寻址无操作数或操作数隐含在操作码字节中。 例如:NOP ;无操作数CLRA ;清零累加器一般只能访问CPU寄存器。 二、立即数寻址操作数包含在指令操作码后面的一个或两个字节中。 例如:LDA # $10 ;80H—ALDHX# $8100;81H—H,0—XM68HC08指令系统中,数字前加$表示十六进制数,加%表示二进制数,无前缀表示十进制数,指令的数据前加#表示立即数。 三、直接寻址操作数的有效地址EA包含在指令操作码后续字节中。 直接寻址的有效地址在指令的地址段中只指出低8位的值,高8位固定为零,即EA=$00XX。 这种寻址方式只能访问零页的I/O寄存器或RAM。 例如:INC $50 ;(50H)+1→50H单元四、扩展寻址扩展寻址方式中,操作数的16位有效地址EA在指令操作码的后面两个字节中。 实际上也是一种直接寻址方式。 因为有效地址为16位,可以访问64K字节存储空间的任意单元。 例如:JMP $C100 ;$C100→PC,CPU转至$C100执行程序LDA $8120;(8120H) →A在使用M68HC08汇编时,用户不必考虑指令是用直接寻址还是扩展寻址。 汇编程序自动根据指令中有将地址值取直接寻址或扩展寻址方式。 五、变址寻址无偏移量这是一种间接寻址方式,操作数的有效地址EA的高8位在H寄存器中,低8位在X寄存器中。 这种寻址方式可以访问64K字节存储空间的任意单元。 例如:DEC,X;(HX)—1→(HX)单元六、变址8位移量操作数的有效地址为(H:X)加上无符号的8位偏移量。 这种寻址方式可用于查表,从n个元素的表中选择第k个元素,k在变址寄存器中,表格的首地址为8位偏移量。 例如:LDA $50,X;(HX)+$50) →A七、变址16位偏移量操作数的有效地址为(H:X)加上无符号的16位偏移量,类似于变址8位偏移量,可用于查表和程序散转。 例如:FMP KTAB,XKTAB JMP PGM0JMP PGM1根据(HX)的不同转移到不同的地方。 八、堆栈指针8位偏移量操作数的有效地址是(SP)加上无符号的8位偏移量。 这种变址8位移量寻址方式相似。 这种寻址方式主要方便对堆栈的操作。 若系统中不用中断,SP可以作为第二变址寄存器。 例如:LDA $10,SP ;(SP)+$100) →A九、操作数有效地址为(SP)加上16位无符号的偏移量,类似于变址16位偏移量的寻址方式。 LDA $100,SP ;((SP)+$100)→A十、相对寻址相对寻址只用于转移指令和子程序调用指令,转移的有效地址为当前PC值加上8位带符号的偏移量,偏移量位于操作码后面的字节中。 在使用M68HC08汇编时程序员不必计算偏移量值,只要用标号表示转移的目标地址,汇编程序自动计算偏移量,偏移量为-128~+127,超出这个范围,汇编会报错。 例如:BCC MLP1 ;C=0转MLP1,相对寻址INC A ;(A)+1→ABRA MLP2 ;转MLP2,相对寻址MLP1: CLRAMLP2: STA ,X存储器单元和存储器单元之间的数据传送指令,由源操作数和目的操作数不同寻址方式组合得到以下四种寻址方式。 寻址方式源操作数目的操作数例子功能十一、IMD立即数寻址直接寻址MOV # $80,$40S80→$40单元十二、DD直接寻址直接寻址MOV $80,$40($80)→$40单元十三、IX+D变址,(HX)+1直接寻址MOVX+,$40((HX))→$40单元,(HX)+1十四、DIX+直接寻址变址(HX)+1MOV $40,X+($40)→(HX),(HX)+1十五、变址无偏移量,变址寄存器加1操作数的有效地址为变址寄存器内容。 这是一种间接寻址方式,指令执行后变址寄存器内容加1。 例如:CBEQ X+,rel ;((HX))=(A)转移,(HX)+1→HX十六、变址8位偏移量,变址寄存器加1操作数有效地址为变址寄存器内容加上8位无符号偏移量,指令执行后变址寄存器内容加1。 例如:FNNZ $80,X+rel ;($80+(HX)-1不等于0转移;且(HX)+1→HX3 M68HC08指令系统3.1指令类型一、根据指令周期分类指令周期反映了指令运行的速度。 M68HC08指令周期是以内部总线时钟周期为单位的。 指令周期占内部总线时钟周期数按指不同有1,2,3,4,5,6,7,9等几种。 若内部总线时钟频率为8MHz,最短的指令周期为125ns,最长的指令周期为1125ns。 二、根据指令字节长度分类指令字节长度反映了指令的存储效率。 M68HC08有单字节指令、双字节指令和3字节指令。 三、根据指令功能分类根据指令的功能,HC08指令系统可分为以下几类:①数据传送指令;②算术运算指令;③逻辑运算指令;④位操作指令;⑤移位指令;⑥程序转移和控制指令。 3.2数据传送指令数据传送指令实现CPU寄存器、I/O寄存器、RAM和ROM(或Flash)之间的数据传送,一般情况下指令执行结果只影响CCR的“N”和“Z”标志位。 若所传送的数据为零,置“1”Z,否则清零Z;数据最高位为1置“1”N,否则清零N。 一、CPU寄存器取数指令1.所寻址的单元内容送累加器ACCR指令操作VHINZC寻址方式总线周期LDA # oprLDA oprLDA oprLDA opr, XLDA opr,XLDA,XLDA opr, SPA←(M)0———IMMDIREXTIX2IX1IXSPLDA opr, SPSP25例如:LDA # $80 ;$80→ALDA PORTA ;并行口中A输入信息读到A(先用EQU指令定义PORTA)2.所寻址的单元内容送16位变址寄存器的低8位X,而高8位H的内容保持不变CCR指令操作VHINZC寻址方式总线周期LDA # oprLDA oprLDA oprLDA opr, XLDA opr,XLDA,XLDA opr, SPLDA opr, SPA←(M)0———IMMDIREXTIX2IX1IXSP1SP.所寻址的两个单元的16位数据送变址寄存器HXCCR指令操作VHINZC寻址方式总线周期LDA # oprLDA oprH:X←(M:M+1)0———IMMDIR23这是两条16位数据传送指令,主要用于对变址寄存器HX赋值。 例如:LDHX # $80 ;0→H,$80→XLDHX $8212 ;($8212) →H,($8213) →X二、CPU寄存器存储命令1.累加器A的内容存储到所寻址的单元例如:STA PORTA ;(A)输出到并行口不PORTASTA $80,X ;(A)存储到地址为(HX)+$80的单元2.变址寄存器低8位X的内容存储到所寻址的单元3.16位变址寄存器的内容存储到所寻址的两个单元例如:STHX $80;(H)→$80单元(X)→$81单元三、堆栈操作指令1.进栈指令M68HC08的进栈操作是数据先进栈,然后栈指针减1,因此SP指向下一次进栈的地址单元。 不影响标志位。 2.退栈指令HC08的退栈操作是栈指针SP先加1,然后取(SP)指出栈单元内容。 不影响标志位。 四、CPU寄存器之间的的数据传送指令由上面所列指令及其功能可以看出除TAP指令外,这类指令不影响标志位。 五、存储器单元之间的数据传送指令这类指令在编程时应注意格式:MOV源操作数,目的操作数。 例如:MOV $50, $60 ;($50)→$60单元MOV # $80,$60;立即数$80→$60单元3.3 算术运算指令一、加法指令1.不带进位加法指令ADD累加器A和所寻址的单元内容相加,运算结果送累加器A。 影响标志位OV、H、N、Z、C,运算结果满足下列条件时置“1”相应的标志位,否则清零。 OV:(A).7,(M).7=1,而结果最高位(RESOLT7,以R7表示)为0,负数相加溢出;或(A).7=0(M).7=0而结果最高位R7为1,正数相加溢出;H:相加结果低3位向高4位进位时置“1”;N:相加结果R7为1时置“1”;Z:相加结果为零时置“1”;C:相加时最高产生位进位时置“1”。 2.带进位加法ADC累加器A、进位标志C、和所寻址的单元内容相加,结果送累加器A。 对标志位的影响和ADD指令相同,ADC指令用于实现多字节加法。 3.十进制调整指令这条指令对累加器中由上一条加法指令(加数和被加数均为压缩BCD码)所得的8位结果(在A)进行十进制调整,使A的内容为BCD码。 调整规则如下:a. (A).3~(A).0大于9或H=1则(A)+$06→A,否则(A).3~(A).0不变;b. (A).7~(A).4大于9或C=1则(A)+$60→,否则(A).7~(A).4不变;c. 结束。 例如:(A)=$56 ($50)=$67执行指令:ADD $50 ;(A)=$BD,(C)=0(A).7~(A).4>9,(A).3~(A).0>9DAA ;经调整之后(A)=23,(C)14.16位变址寄存器加上8位带符号立即数指令这条指令将补码表示的8位立即数扩展为16位带符号数并和(HX)相加,运算结果送HX,不影响标志位。 5.16位堆栈指针加上8位带符号立即数指令这条批令将补码表示的8位立即数扩展为16位有符号数并和(SP)相加,结果送SP,不影响标志。 6.加1指令加1指令不影响标志位C和H,例如:(A)=$FF。 ADD # $1 ;结果(A)=0,(C)=1,(H)=1INCA ;结果(A)=0,(C)和(H)不变二、减法指令1.不带借位减法指令A的内容减去所寻址单元内容,结果送累加器A,影响V、N、Z、C标志位。 满足下列条件置“1”,否则清零。 V:(A).7=1(M).7=0而结果R7=0,为负数减正数溢出;或者(A).7=0(M).7=1而结果R7=1,为正数减负数溢出。 这时1→V。 N:相减结果R7=1时,1→NZ:相减结果为零时,1→Z;C:相减时最高位产生借位时,1→C。 2.带借位减法指令A的内容减去C和所寻址单元的内容结果送A,对标志位的影响和SUB指令产生的影响相同。 3.减1指令对所寻址单元的内容减去1。 减1指令不影响标志位H和C。 4.累加器A的比较指令CMPA和所寻址的单元内容相比较,实际上是A减去所寻址单元内容,只影响标志位,而不传送减法的结果,即不影响A和寻址单元的内容,对标志位影响和关法指令产生的影响相同。 5.X的比较指令CPXX和所寻址的单元内容的相比较,只影响标志位,不影响X和所寻址单元内容,对标志位影响和减法指令产生的影响相同。 6.HX的比较指令CPHX16位变址寄存器HX内容和可寻址的两个单元内容相比较,只影响标志位,不影响HX和可寻址单元内容,对标志位影响和减法指令产生的影响相同。 7.取补指令0减去所寻址的单元,即所寻址单元的各位取反,然后加1。 对V、N、Z、C标志位影响和减法指令产生的影响相同。 8.测试指令测试所寻址单元的内容是否为零或负数。 执行所寻址单元内容减去0的操作,并影响V、N、Z标志位,不影响原来单元内容。 三、乘法指令X和A中两个无符号数相乘,积的高8位送X,低8位送A。 清零H和C标志,不影响其他标志位。 四、除法指令(H):(A)中无符号16位数除以(X)中8位无符号数,商→A,余数送H。 若商大于$FF或除数为零,置1进位标志C,否则清零标志C。 3.4逻辑运算指令一、单操作数简单逻辑指令1.清零指令清“0”所寻址的单元,0→V、N、1→Z不影响其他标志位。 2.取反指令对的寻址单元的内容按位取反。 二、双操数逻辑运算指令1.“逻辑与”指令累加器A和所寻址的单元内容按位做逻辑与运算,结果选A。 结果最高位R7=1置“1“N,否则清零N,结果为零,1→Z,否则0→Z。 按位“逻辑与“操作在两个操作数对应位都为1时,结果对应位才为1,否则对应结果位为0。 例如:(A)=$F0则执行指令AND# $0F后(A)=0。 2.“逻辑或”指令累加器A和所寻址单元内容按位进行逻辑或运算结果送A。 按位逻辑或操作,只有当两个操作数对应位都为零时,结果的对应位才为零,否则为1。 例如:(A)=$F0,执行ORA# $0F后则(A)=$FF。 3.“逻辑异或”指令累加器A和所寻址单元内容按位进行逻辑异或运算,结果送A。 按位逻辑异或就是按位半加。 当两个操作数对应位不同时结果对应为1,相同时为0。 例如:(A)=$F0,若执行指令EOR# $A0,则(A)=$50。 4.位测试指令A和所寻址的单元内容逻辑与。 但结果不传送,只影响标志位V、N、Z,不影响A和所寻址单元内容。 这些指令用于测试所寻址单元的指定位为零还是1。 例如:(A0=$01,执行指令BIT$50后,若Z=0则($50).0=03.5位操作指令一、标志位操作指令1.对CCR寄存器的I、C置“1“指令2.对CCR寄存器的I、C清零指令对标志位I的置“1“和清零就是控制CPU的关中和开中。 二、对零页RAM/IO寄存器的位操作指令对于零页的RAM单元或IO寄存器,CPU执行位置1和清零指令一样地快速方便。 3.6移位指令一、逻辑左移指令所寻址的单元内容左移一位,低位移入0,高位移到C。 二、逻辑右移指令所寻址的单元内容右移一位,高位移入0,低低移出至C。 三、带进位循环左移指令所寻址单元的内容带进位循环右移一位,C移入最高位,最低位移出至C。 五、算术左移指令算术左移指令功能和逻辑左移指令操作相同六、算术右移指令将所寻址的单元内有符号的8位数右移一位,符号位保持不变,相当于除2操作。 七、累加器A半字节交换指令累加器A的高4位和低4位相互交换,不影响标志位。 3.7 程序转移和控制类指令一、无条件转移指令1.相对转移指令2.绝对转移令绝对转移指令,将所寻址的两个单元内容作为地址送PC,使CPU转到该地址开始执行程序,不影响标志位。 二、条件转移指令1.测试状态标志条件转移指令这类指令,根据上一条指令执行结果,测试CCR的标志位状态,若条件满足,执行相对转移指令,若条件不满足,则顺序执行下一条指令,不影响标志位。 若执行有符号减法或比较批令后,CCR相关位与实际两操作数间的关系为:如果CPU内部A或X的内容大于等于所寻址单元内容,则N○+V=0;如果A或X内容大于所寻址单元内容,Z1(N○+V)=0;A或X小于所寻址的单元内则N○+V=1。 执行无符号减法或比较指令后,CCR相关位与实际两操作数间的关系为:如果CPU内部A或X的大于等于所寻址单元内容则C=0;A或X大于所寻址单元内容C=0,Z=0;A或X内容小于所寻址单元内容C=1。 BLT、BGE、BLE、BGT指令一般直接跟在有符号数减法或比较指令之后。 2.测试IRQ条件转移指令这两条指令也不影响标志位。 测试所寻址单元相应位状态,若满足条件则发生转移,否则顺序执行下一条指令。 只能对零页的RAM或I/O寄存器的位测试转移。 不影响标志位。 4.减1不为零转移这是兼有减1指令和不等于零转移指令功能的条件转移指令,不影响标志位。 5.比较相等转移指令累加器A或X和所寻址单元内容相比较,若相等,则执行一相对转移指令;若不相等,顺序执行下一条指令。 不影响标志位。 三、调用子程序指令1.相对调用指令该调用子程序指令功能和相对转移指令类似,只是增加PC进栈操作也不影响标志位。 2.绝对调用子程序指令这些指令功能和绝对转移指令功能相似,只是附加了PC值进栈操作。 不影响标志位。 四、返回指令1.从子程序返回指令RTS这条指令的功能是PC退栈返回主程序。 一般子程序必须以RIS结束。 2.从中断返回指令RTI这条的功能和RTS相似,只是多了CPU寄存器CCR、A、X的退栈操作,使CPU从原来被中断地方继续执行程序。 中断服务程序必须以RTI指令结束。 五、控制指令1.软件中断指令SWICPU执行SWI指令,产生不可屏蔽的软件中断,主要用于设计开发工具的监控程序。 五、控制指令1.软件中断指令SWICPU执行SWI指令,产生不可屏蔽的软件中断,主要用于设计开发工具的监控程序。 2.堆栈指针复位指令RSPRSP指令使SPL值为$FF,而SPH值保持不变。 不影响标志。 注:为保证栈指针能正确初始化,最好使用LDHX和TXS指令,例对于把SP初始化为$00FF,可使用:LDHX# $100和TXS这两条指令。 3.节电方式指令4.空操作指令空操作指令,指令本身不执行任何操作。 用在延时等程序中,以调节程序执行的时间。 上面我们简要地分析了M68HC08的指令系统。 对汇编语言程序设计有一定基础的读者,就可以用M68HC08提供的指令,设计出各种应用程序。
三菱PLC应用100例的图书目录
第1章 可编程控制器(PLC)概述 11.1 可编程控制器的产生与发展 11.1.1 PLC的产生及定义 11.1.2 PLC的发展 21.2 PLC的特点与功能 41.2.1 PLC的特点 41.2.2 PLC的功能 61.3 PLC的结构与分类 71.3.1 PLC的结构 71.3.2 PLC的分类 111.4 PLC的编程语言 111.4.1 梯形图 121.4.2 语句表 141.4.3 顺序功能图 151.4.4 功能块图 151.4.5 结构文本 16思考题 16第2章 认识三菱PLC 172.1 认识三菱PLC的硬件 17实例1:单输入/单输出控制 172.1.1 三菱PLC的基本结构 172.1.2 三菱FX系列PLC的主机模块 202.1.3 三菱PLC的I/O接线 232.2 理解三菱PLC的工作原理 24实例2:加电输出禁止程序 242.2.1 PLC的工作原理 252.2.2 用户程序循环扫描执行 292.3 三菱PLC的程序开发过程 30实例3:电动机的启/停控制 302.3.1 PLC的程序开发环境 302.3.2 电动机启/停控制程序的开发过程 34思考题 46第3章 三菱FX2N的指令系统 473.1 FX2N的软元件 473.1.1 输入继电器 473.1.2 输出继电器 483.1.3 辅助继电器 483.1.4 状态继电器 493.1.5 定时器 493.1.6 计数器 503.1.7 数据寄存器 513.1.8 变址寄存器 513.1.9 指针 513.1.10 常数 523.2 FX2N的基本逻辑指令 523.2.1 逻辑取及线圈驱动指令 52实例4:逻辑取及线圈驱动指令的应用 533.2.2 触点串联指令 543.2.3 触点并联指令 54实例5:触点串联指令和触点并联指令的应用 553.2.4 串联电路块并联指令 563.2.5 并联电路块串联指令 57实例6:串联电路块并联指令和并联电路块串联指令的应用 573.2.6 边沿检测脉冲指令 58实例7:边沿检测脉冲指令的应用 593.2.7 置位与复位指令 60实例8:置位与复位指令的应用 613.2.8 脉冲输出指令 62实例9:脉冲输出指令的应用 623.2.9 取反指令 633.2.10 栈操作指令 64实例10:栈操作指令的应用 653.2.11 主控触点指令 66实例11:主控触点指令的应用 673.2.12 空操作指令 683.2.13 程序结束指令 683.3 FX2N的功能指令 693.3.1 功能指令的基本规则 693.3.2 程序流程指令 72实例12:条件跳转指令的应用 73实例13:子程序调用和返回指令的应用 74实例14:中断指令的应用 75实例15:主程序结束指令的应用 76实例16:警戒时钟指令的应用 78实例17:循环指令的应用 793.3.3 数据传送和比较指令 80实例18:比较指令和区间比较指令的应用 81实例19:各种传送指令的应用 84实例20:数据交换和数据变换指令的应用 863.3.4 算术和逻辑运算指令 87实例21:加法、减法、乘法和除法指令的应用 89实例22:加1和减1指令的应用 90实例23:逻辑与、或和异或指令的应用 913.3.5 循环与移位指令 92实例24:循环移位指令的应用 93实例25:位右移和位左移指令的应用 95实例26:移位写入和移位读出指令的应用 973.3.6 数据处理指令 98实例27:区间复位指令的应用 98实例28:译码和编码指令的应用 100实例29:置1位数总和和置1位判断指令的应用 101实例30:信号报警器置位和信号报警器复位指令的应用 102实例31:平均值和平方根指令的应用 104实例32:浮点数转换指令的应用 1043.3.7 高速处理指令 105实例33:输入/输出刷新指令的应用 105实例34:刷新和调整滤波时间常数调整指令的应用 106实例35:高速计数器置位、复位和区间比较指令的应用 107实例36:速度检测指令的应用 109实例37:脉宽调制指令和可调速脉冲输出指令的应用 1103.3.8 方便指令 111实例38:初始化状态指令与数据搜索指令的应用 111实例39:绝对值式凸轮顺控指令的应用 112实例40:增量式凸轮控制指令的应用 114实例41:示教定时器指令的应用 114实例42:特殊定时器指令的应用 115实例43:交替输出指令的应用 116实例44:旋转台控制指令的应用 1163.3.9 外围设备I/O指令 117实例45:数据输入指令的应用 117实例46:数字译码指令的应用 120实例47:打印输出指令的应用 122实例48:读、写特殊功能模块指令的应用 1233.3.10 外围设备(SER)指令 124实例49:串行通信指令的应用 125实例50:模拟量输入指令的应用 1263.3.11 触点比较指令 126实例51:触点比较指令(OR=)的应用 128思考题 128第4章 PLC系统的基本控制编程 1304.1 编程规则与技巧 1304.1.1 继电器线路可使用、梯形图不能(不宜)使用的情况 1304.1.2 梯形图能使用、继电器线路不能实现的情况 1314.1.3 梯形图程序的优化 1324.2 基本控制程序 1354.2.1 自锁、互锁控制 135实例52:自锁、互锁与连锁控制 1354.2.2 时间控制 138实例53:瞬时接通/延时断开控制 138实例54:延时接通/延时断开控制 139实例55:长延时控制 140实例56:点动计时控制 141实例57:时钟控制 1424.2.3 脉冲触发控制 143实例58:用定时器实现周期脉冲触发控制 143实例59:用定时器实现脉宽可控的脉冲触发控制 1444.2.4 分频控制 145实例60:二分频控制 1454.2.5 报警控制 146实例61:故障报警控制 1464.2.6 计数控制 148实例62:扫描计数控制 148实例63:6位数计数控制 1494.2.7 顺序控制 150实例64:用定时器实现顺序控制 150实例65:用计数器实现顺序控制 151实例66:用移位指令实现顺序控制 1524.2.8 循环控制 154实例67:彩灯闪亮循环控制 1544.3 常用电动机控制 1564.3.1 三相异步电动机 156实例68:电动机双重锁正反转控制 156实例69:电动机 -△减压启动控制 158实例70:电动机串电阻启动控制 160实例71:电动机单、双向反接制动控制 1624.3.2 直流电动机控制 166实例72:串、并励直流电动机正、反转控制 1674.3.3 同步电动机控制 170实例73:同步电动机启动控制 1704.3.4 步进电动机控制 172实例74:步进电动机正反转控制 1734.4 简易梯形图程序设计 176实例75:车间排风系统状态监控 176实例76:物流检测控制 179思考题 181第5章 顺序功能图及步进梯形图 1825.1 基本概念 1825.1.1 顺序功能图的基本要素 1835.1.2 顺序功能图的结构形式 1865.2 顺序功能图设计方法 1885.2.1 使用启-保-停电路的设计方法 1885.2.2 使用置位/复位的设计方法 1905.2.3 使用STL/RET的设计方法 192实例77:运料车装卸料控制 195实例78:大、小球分类选择控制 200实例79:双面钻孔机床运动控制 2085.3 各种顺序控制方法比较 213思考题 213第6章 PLC的功能模块 2156.1 功能模块概述 2156.1.1 特殊功能模块的类型及用途 2156.1.2 特殊功能模块的安装及应用 2176.2 模拟量输入模块 218实例80:FX2N-4AD模拟量输入模块应用 221实例81:FX2N-4AD模拟量输入模块的调整应用 2226.3 模拟量输出模块 223实例82:FX2N-2DA模拟量输入模块的应用 2256.4 高速计数模块 226实例83:高速计数器模块FX2N-1HC的应用 2306.5 定位控制模块和脉冲输出模块 232实例84:凸轮控制器FX2N-1RM-SET的应用 235思考题 237第7章 PLC系统通信 2387.1 PLC通信的基本知识 2387.1.1 数据通信系统构成 2387.1.2 数据通信方式及传输速率 2387.1.3 串行通信接口标准 2417.1.4 开放式系统互连参考模型(OSI/RM) 2427.2 PLC与PLC之间的通信 2437.2.1 N∶N连接通信 243实例85:3台 FX2N PLC通过 N∶N通信网络配置及通信程序 2457.2.2 双机并行连接通信 247实例86:2台 FX2N PLC通过 1∶1 并行连接通信 2487.3 计算机连接与无协议数据传输 2497.3.1 串行通信协议的格式 2497.3.2 计算机连接通信协议 251实例87:编程口操作命令类型与通信端口初始化 2537.3.3 无协议数据传输 258实例88:PLC 与三菱公司的变频器的无协议通信应用 260思考题 262第8章 PLC与人机界面 2638.1 三菱人机界面概述 2638.1.1 触摸屏的工作原理及特点 2638.1.2 触摸屏的分类 2648.1.3 触摸屏发展趋势 2678.1.4 三菱触摸屏 2688.2 人机界面(HMI)的设计 2718.2.1 人机界面设计的过程和步骤 2718.2.2 人机界面的几种设计技术 2728.2.3 人机界面设计的原则 2738.3 组态软件使用 2748.3.1 组态软件简介 2748.3.2 GT-Designer2 Version2组态软件的使用 276实例89:GT Designer2组态项目的创建 279实例90:电动机交替控制组态 2818.3.3 组态王软件的使用 285实例91:利用组态王进行通风系统运行状态监控的组态 288思考题 294第9章 三菱PLC的安装接线与维修 2959.1 安装接线 2959.1.1 PLC的安装要求 2959.1.2 PLC模块安装布置与布线 2969.1.3 输入端子接线 299实例92:PLC输入端子接线 3019.1.4 输出端子接线 303实例93:PLC输出端子接线 3049.1.5 电源安装、与干扰接地接线 3079.1.6 系统试运行 3119.2 日常维护与故障诊断处理 3129.2.1 日常维护 3129.2.2 系统故障诊断与故障处理 314思考题 319第10章 PLC应用系统控制设计 .1 PLC控制系统设计的基本原则与步骤 .1.1 设计的基本原则 .1.2 设计的步骤与内容 .2 PLC控制系统的硬件设计 .2.1 I/O端子数的简化 .2.2 主回路与控制回路设计 .3 PLC系统控制程序设计方法 .3.1 经验设计法 336实例94:PLC控制送料小车的经验设计 .3.2 逻辑设计法 339实例95:通风系统运行状态监控 341实例96:电动机交替运行控制 .3.3 移植设计法 347实例97:某卧式镗床继电器控制系统移植设计为PLC控制系统 .3.4 顺序功能图设计法 .4 PLC控制系统应用设计 354实例98:交通灯控制 354实例99:机械手的PLC控制 358实例100:某直升机起落架撑杆作动筒检测系统控制 365思考题 372附录A 三菱FX系列PLC基本指令 373附录B 三菱FX系列PLC功能指令 374参考文献 379
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论