5控制转移指令实验
控制状态图或顺控图

亮
Ø按下停车按钮SB2后则立即停止运行
你现在浏览的是第六页,共60页
图5.2 运料小车的控制
你现在浏览的是第七页,共60页
运料小车控制状态转移图
你现在浏览的是第八页,共60页
图5.3 运料小车控制状态转移图
你现在浏览的是第九页,共60页
5.2 步进梯形图及步进指令 5.2.1 步进梯形图 Ø图5.4是将图5.3的状态转移图(SFC图)改画成步进梯
STL
步进指令
在顺控程序上面进行工序步进型控制的指令
RET
步进复位指令 表示状态流程的结束,返回主程序(母线)的指令
2. 指令功能及说明
(1)主控功能
ØSTL指令仅仅对状态器S有效 ØSTL指令将状态器S的触点与主母线相连并提供主控功能
Ø使用STL指令后,触点的右侧起点处要使用LD (LDI)指令 ,步进复位指令RET使LD点返回主母线
驱动该继电器,则禁止在所有状态之间转移。然而,即使 在禁止状态转移下,由于状态内的程序仍然动作,因此, 输出线圈等不会自动断开。
STL动作
任一状态接通时,M8046自动接通。用于避免与其他流程 同时启动或用作工序的动作标志。
STL监视有效
驱动该继电器,则编程功能可自动读出正在动作中的状态 并加以显示。详细事项请参考各外围设备的手册。
Ø步与步(状态与状态)之间用有向线段来连接,如果进行方向是 从上到下或从左到右,则线段上的箭头可以不画,状态转移图中, 会发生步的活动状态的进展,该进展按有向连续规定的线路进行, 这种进展是由转换条件的实现来完成的
《单片机应用系统设计》教学大纲及知识点

《单片机应用系统设计》课程教学大纲一、本课程的地位、作用和任务本课程是在学生学完电子技术类基础课程和微机应用类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术、计算机技术综合应用的综合性课程。
本课程的任务是使学生获得单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统各主要环节的设计、调试方法,并了解单片机在测量、控制等电子技术应用领域的应用。
初步具备应用单片机进行设备技术改造、产品开发的能力。
二、理论教学内容绪论单片机概述0.1 引言0.2 单片机的特点0.3 单片机的发展0.4 MCS-51单片机系列简介第一章MCS–51单片机的结构和原理1. 1 单片机的内部结构1. 2 MCS–51的外部引脚及功能1. 3 MCS–51的存储器配置1. 4 并行输入/输出接口电路1. 5 时钟电路与时序1. 6 MCS –51最小系统设计第二章MCS-51的指令系统2.1 MCS-51指令系统概述2.2 数据传送类指令2.3 算术运算类指令2.4逻辑运算及移位类指令2.5 控制转移类指令2.6 布尔变量操作类指令第三章汇编语言程序设计3.1 汇编语言源程序的格式3.2 伪指令3.3 汇编语言程序举例第四章MCS—51的中断与定时4.1 MCS—51单片机的中断系统4.2 MCS–51的定时/计数器第五章存储器扩展技术5.1 概述5.2 程序存储器的扩展5.3 数据存储器的扩展5.4 PROME2及其扩展第六章I/O扩展技术6.1 I/O接口概述6.2 MCS-51并行I/O口的直接使用6.3 简单I/O扩展6.4 8255并行I/O口6.5 8155简介第七章键盘/显示器扩展技术7.1 单片机应用系统中的人机通道7.2 键盘及其接口7. 3 显示器及接口7.4 专用的8279键盘/显示器接口第八章模拟量输入/输出通道8.1 模拟量输入通道8.2 模拟量输出通道第九章MCS-51的串行通信9.1 串行通信基础9.2 串行接口的构成与工作方式9.3 串行口的典型应用9.4 单片机的多机通信9.5 RS-232C串行总线第十章应用程序设计技术10.1 智能仪表的一般结构10.2 单片机应用系统设计举例第十一章高性能单片机PIC16F8XX介绍11.1 PIC16F87X的特点11.2 PIC16F87X的结构与配置11.3 PIC16F87X的功能部件11.4 PIC16F87X的应用举例三、实践教学的内容和要求实验一联机仿真操作练习实验目的:进一步掌握开发工具的应用实验内容:学习PC机与开发机联机仿真的操作方法实验二指令系统和编程练习实验目的:掌握8051单片机常用指令的使用和编程实验内容:用8051单片机的常见指令编写简单的多字节加减法程序。
计算机组成原理实验报告微程序控制器实验

实验三微程序控制器实验一. 实验目的与要求:实验目的:1.理解时序产生器的原理,了解时钟和时序信号的波形;2.掌握微程序控制器的功能,组成知识;3.掌握微指令格式和各字段功能;4.掌握微程序的编制,写入,观察微程序的运行,学习基本指令的执行流程。
实验要求:1.实验前,要求做好实验预习,并复习已经学过的控制信号的作用;2.按练习一要求完成测量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所用的脉冲Ф周期。
按练习二的要求输入微指令的二进制代码表,并单步运行五条机器指令。
二. 实验方案:按实验图在实验仪上接好线后,仔细检查无误后可接通电源。
1.练习一:用联机软件的逻辑示波器观测时序信号,测量Ф,TS1,TS2,TS3,TS4信号的方法如下:(1) TATE UNIT 中STOP开关置为“RUN”状态(向上拨),STEP开关置为“EXEC”状态(向上拨)。
(2) 将SWITCH UNIT 中右下角CLR开关置为“1”(向上拨)。
(3) 按动“START”按钮,即可产生连续脉冲。
(4)调试”菜单下的“显示逻辑示波器窗口,即可出现测量波形的画面。
(5)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的Ф插座,即可测出时钟Ф的波形。
(6)探头一端接实验仪左上角的CH2,另一端接STATE UNIT中的TS1插座,即可测出TS1的波形;(7)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS2插座,即可测出TS2的波形。
(8)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS3插座,即可测出TS3的波形。
(9)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS4插座,即可测出TS4的波形。
2.观察微程序控制器的工作原理:①关掉实验仪电源,拔掉前面测时序信号的接线;②编程写入E2PROM 2816A.将编程开关(MJ20)置为PROM(编程)状态;B.将实验板上STATE UNIT 中的STEP置为STEP状态,STOP置为RUN状态,SWITCH UNIT中CLR开关置为1状态;C.在右上角的SWITCH UNIT中UA5-UA0开关上置表3.2中某个要写的微地址;D.在MK24-MK1开关上置表3.2中要写的微地址后面的24位微代码,24位开关对应24位显示灯,开关置为1时灯亮,为0时灯灭;E.启动时序电路,即将微代码写入到E2PROM 2816的相应地址对应的单元中;F.重复C-E步骤,将表3.2的每一行写入E2PROM 2816。
单片机实验

实验一数据传送指令的使用及编程方法1.片内RAM的数据传送【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#40H R0MOV R1,#41H R1MOV A,R0 AMOV 30H,A 30HMOV 20H,30H 20HMOV A,#30H AMOV @R0,A 40HMOV A,30H AMOV R7, A R7MOV A,@R0 AMOV R7,A R7MOV DPTR,#0A702H DPTRMOV 30H,R7 30HMOV 20H,@R0 20HMOV 21H,#10H 21HMOV @R0,21H 10HMOV @R1,#01H 41HSJMP $END【实验要求】(1)理解源程序中每条数据传送指令的操作含义,将结果填入每个单元的相应“内容”中。
(2)单步运行源程序,逐条检查“内容”是否正确。
2.外部RAM的数据传送。
【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#1A33H DPTRMOV A,#80H AMOVX @DPTR,A 1A33HMOV A,#00H AMOV P2,#1AH P2MOV R0,#34H R0MOV R1,#35H R1MOVX @R0,A 1A34HMOVX A,@DPTR AMOVX @R1,A 1A35HMOVX A,@R0 AMOVX A,@R1 ASJMP $END【实验要求】(1)理解源程序指令含义,指出各存储单元的内容,写在右边的“内容”中。
(2)单步运行源程序,逐条验证分析结果。
3.片内特殊功能寄存器(SFR)的数据传送【实验程序】源程序ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设栈指针MOV R0,#30H ;#30H送R0(0区)MOV P1,#0EFH ;#EFH送P1口(直接地址为90H)MOV @R0,P1 ;将P1内容送R0所指单元MOV C,P1. 1 ;将P1口的D1位内容送CMOV P1. 7,C ;将CY的内容送P1. 7PUSH PSW ;保护0区寄存器MOV PSW,#08H ;选择1区寄存器MOV R0,#40H ;#40H送1区寄存器R0(08H)MOV @R0,P1 ;P1口内容送1区R0所指单元POP PSW ;恢复0区寄存器SJMP $END【实验要求】(1)理解源程序指令含义,并参照注释写出结果。
微机原理2007年-第三章-指令系统第五节控制转移

③ 段间直接转移 段间直接转移
指令中给出的16位的段和 位的偏移地址送到CS和IP。 指令中给出的16位的段和16位的偏移地址送到CS和IP。 位的段和16位的偏移地址送到
④ 段间间接转移 段间间接转移
MEM中给出的 位的段和 位的偏移地址送到CS和IP。 MEM中给出的16位的段和16位的偏移地址送到CS和IP。 中给出的16位的段和16位的偏移地址送到
6
例:代码段内有一条无条件转移指令
JMP SHORT NEXT 指令本身占有两个字节 操作码占一个字节; 位位移量占有一个字节 操作码占一个字节;8位位移量占有一个字节
内存
... 源程序 : 条件转移指令: 条件转移指令:JMP SHORT next qqq: ... ... next: MOV AL,03H
5
① 段内直接转移 转移的目标地址由指令直接给出。 段内转移,故转移后CS内容保持不变, 段内转移,故转移后CS内容保持不变,只改 变IP的值。 IP的值。
汇编语言中格式 JMP SHORT OPRD JMP NEAR PTR OPRD 位移量 转移范围 8位 -128~+127 128~ 16位 16位 -32768~+32767 32768~
13
JMP DWORD PTR [SI]的机器码 11111111 11101100 DS:[SI]
4000 DS +) 1212 SI 41212 41212 41213 41214 41215
00 10 00 4A
1000 4A00
IP CS
段间间接转移操作示意图
14
(2)条件转移指令 (2)条件转移指令 - JXX 条件转移指令可实现程序的条件分支。 条件转移指令根据标志位的状态来决定是 否进行分支转移。(判位转移) 格式: JXX label xx为条件名称缩写 ;xx为条件名称缩写 指令的转移范围为-128~+127字节。 指令的转移范围为-128~+127字节。
控制转移类指令ppt课件(全)

(4)CJNE @Ri,#data,rel 该指令功能:若(( Ri ))≥ data,(CY)=0; 若(( Ri ))<data ,CY=1; 若(( Ri ))≠ data,则PC←(PC)+rel,转移; 若(( Ri ))=data,则程序顺序执行.
例:如果(A) ≠ 00H,转移到CX1;如果(R1) ≠ 10H, 转移到CX2;如果(A) ≠(60H),转移到CX3。程序段 如下:
(2)指令长短不一样。LJMP是3字节指令;AJMP、 SJMP是2字节指令;JMP是1字节指令。
(3)指令机器码构成不同。AJMP、LJMP、JMP后跟 的是绝对地址,而SJMP后跟的是相对地址。
(4)地址特点不同。LJMP、AJMP、SJMP的转移目标 地址是固定的,程序执行过程中不变;JMP的转移目 标地址随程序的执行是动态变化的。
1. 长跳转指令 LJMP (3字节) LJMP addr16 ; PC addr16
•执行该指令时, 将目标语句的16位地址addr16装入 PC, 程序无条件转向指定的目标语句执行。 •由于长跳转指令提供的是16位地址,对应64KB的程 序存储器地址空间,所以可跳转到64KB程序存储器 地址空间的任何地方。 •实际应用中长跳转汇编指令写作“LJMP 目标语句 标号”的形式,如“LJMP LOOP”。
• 指令对A、DPTR和标志位均无影响。
注意:以上四条指令结果均不影响程序状态 字寄存器 PSW 。
5.LJMP、AJMP、SJMP、JMP四条无条件转移指令的 区别:
(1)转移范围不一样。LJMP、JMP转移范围是64KB; AJMP转移范围是与当前PC值同一个2KB区间;SJMP 转移范围是相对当前PC值的-128B~+127B范围内。
微机原理6_控制转移类指令

还可用SAR、ROR和RCR指令
;将AX的最低位D0移进CF
jnc even
;标志CF=0,即D0=0:AX内是偶数,程序转移
add ax,1
;标志CF=1,即D0=1:AX内的奇数,加1
even: shr ax,1
;AX←AX÷2
第2章:例题2.22解答3 用JNS指令实现
mov bx,ax
ror bx,1
done: ……
第2章:例2.24 偶校验
;对DL寄存器中8位数据进行偶校验 ;校验位存入CF标志
2:将最低位用移位指令移至进位标志,判断进位标志是0, AX就是偶数;否则,为奇数
3:将最低位用移位指令移至最高位(符号位),判断符号 标志是0,AX就是偶数;否则,为奇数
第2章:例题2.22解答1 用JZ指令实现
test ax,01h
;测试AX的最低位D0(不用AND指令,以免改变AX)
jz even
第2章:无条件转移指令JMP(jump)
JMP label
;段内转移、相对寻址
;IP←IP+位移量
演示
JMP r16/m16
;段内转移、间接寻址
;IP←r16/m16
演示 演示
JMP far ptr label ;段间转移、直接寻址
;IP←偏移地址,CS←段地址
演示
JMP far ptr mem ;段间转移,间接寻址
第2章:例题2.22
题目:将AX中存放的无符号数除以2,如果是奇 数则加1后除以2 问题:如何判断AX中的数据是奇数还是偶数? 解答:判断AX最低位是“0”(偶数),还是“1” (奇数)。可以用位操作类指令
1:用逻辑与指令将除最低位外的其他位变成0,保留最低位 不变。判断这个数据是0,AX就是偶数;否则,为奇数
PLC5章状态转移图及编程方法

(2) 台车后退碰到限位开关SQ2后,台车电机M停转,台车停 车,停5 s,第二次前进,碰到限位开关SQ3,再次后退。
(3) 当后退再次碰到限位开关SQ2时,台车停止(或者 继续下一个循环)。
5.1 状态转移图及状态功能
PLC程序设计步骤
• 根据可编程序控制器系统硬件结构和生产工艺要求,在软件规格说 明书的基础上,用相应的编程语言指令,编制实际应用程序并形成 程序说明书的过程就是程序设计。
• PLC程序设计一般分为以下几个步骤: • 程序设计前的准备工作。 • 程序框图设计。 • 程序测试。 • 编写程序说明书。
1.程序设计前的准备工作
• 在熟悉被控对象的同时,还要认真借鉴前人在程 序设计中的经验和教训,总结各种问题的解决方 法——哪些是成功的,哪些是失败的,为什么。 总之,在程序设计之前,掌握东西越多,对问题 思考得越深入,程序设计就会越得应手。
• 3)充分利用手头的硬件和软件工具例如, 硬件工具有:编程器、GPC(图形编程器)、 FIT(工厂智能终端);编程软件有:LSS、 SSS、CPT、CX—ProgTammer、西门子STEP7 如果是利用计算机编程,可以大大提高编 程的效率和质量。
(3) 只要在不相邻的步进段内,则可重复使用同一编号的 计时器。这样,在一般的步进控制中只需使用2~3个计时器 就够了,可以节省很多计时器。
(4) 状态也可以作为一般中间继电器使用,其功能与M一 样,但作一般中间继电器使用时就不能再提供STL触点了。
5.2 单流程状态转移图的编程
第三步:设计步进梯形图
状态的转移条件可以是单一的,也可以是多个元件的串、 并联组合,如图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5 控制转移指令实验
一、实验目的
·掌握无条件转移指令和条件转移指令的使用。
·掌握调用指令和返回指令的使用。
·掌握用Keil调试汇编源程序的方法。
·掌握用Proteus调试汇编源程序的方法。
二、实验预备知识
无条件转移指令是指当程序执行到该指令时,程序无条件转移到指令所提供的地址处执行。
有长转移指令( LJMP)、绝对转移指令(AJMP)和相对转移指令(SJMP)三种。
条件转移指令是指根据给出的条件进行判断,若条件满足,则程序转向由偏移量确定的目的地址处去执行;若条件不满足,程序将不会转移,而是按原顺序执行。
相对偏移量为一个带符号的8位数,偏移范围为-128~十127,共256个字节。
共有三种:
◇累加器A判零转移指令(JZ、JNZ)。
该指令对累加器A的内容为零和不为零进行检测并转移,不改变累加器A的内容,也不影响任何标志位。
◇减l非零转移指令又称循环转移指令( DJNZ)。
该指令是把源操作数减1,结果送回到源操作数中去;并判断结果是否为O,若不为O则转移到目标地址,继续执行循环程序;若为0则终止循环程序的执行。
◇比较转移指令(CJNE)。
该指令对指定的目的字节和源字节进行比较,若它们的值不相等,则转移。
把具有一定功能的公用程序段作为子程序,在主程序中采用调用指令( LCALL、 ACALL)调用子程序,子程序的最后一条指令为返回主程序指令(RET)。
长调用指令( LCALL)的执行过程是先将(PC)+3→PC,指向下一指令地址;再将把下一指令的16位地址(断点)压入堆栈,先压人PC0~7低位地址,后压入PC8~15高位地址,(SP)十2→SP;最后将指令中给出的16位目标地址addr16送入程序计数器PC。
从而使程序转向目标地址addr16去执行被调用的子程序。
子程序返回指令(RET)的作用是将栈顶的断点地址送PC,于是,子程序返回主程序继续执行。
三、实验内容
根据控制转移类指令的不同用途,分别编写二个小程序,以完成程序在不同条件下的转移、调用。
1.参考程序1——累加器A判零转移指令和无条件转移指令
(1)将立即数#01H传送至A中。
(2)判断A中的内容,若(A)=OOH,则顺序执行MOV A,#02H指令;若(A)≠ OOH,则转移执行DEC A指令;循环往复执行相关指令。
2.参考程序2——减1非零转移指令、调用指令和返回指令
(1)将片内RAM20H~22H单元全部送入立即数#11H。
(2)调用子程序将立即数#55H传送至片内RAM22H单元中。
(3)返回主程序将立即数#55H分别传送至片内RAM20H、21H单元中。
四、买验参考程序
参考程序l:累加器A判零转移指令和无条件转移指令
参考程序2:减1非零转移指令、调用指令和返回指令
五、实验步骤
1.用实验系统完成实验的步骤
(1)输入源程序。
按第1.2.2节单片机实验系统的使用方法进行操作。
(2)单步运行程序。
即每按一次单步运行键,只执行一条指令。
(3)每执行一条指令后,根据参考程序检查数据栏要求检查每条指令的执行结果,以加深对控制转移指令的理解。
2.用Keil软件完成实验的步骤
(1)建立工程文件,选择单片机。
工程文件名为“jump”,选择单片机型号为Atmel的89C51。
(2)建立源文件,加载源文件。
源文件名为“jump. ASM”。
(3)设置工程的配置参数。
“目标”标签页的晶振频率栏设为12MHz,“输出”标签页的生成HEX文件选择框选中。
(4)进行编译和连接。
(5)进入调试模式,打开存储器窗口。
存储器#1窗口显示以地址OOH开始的片内j
RAM各个存储单元。
(6)单步运行程序。
单击“调试”一“单步”或调试工具栏的单步按按钮,通过存储器窗口和工程窗口的寄存器标签页观察每条指令执行后数据处理的结果,以加深对控制转移指令的理解。
程序调试窗口如图2-6所示。
3.用Proteus软件完成实验的步骤
(1)新建设计文件、设置图纸尺寸、设置网格、保存设计文件。
文件名为“jump”。
(2)选取元器件。
从Proteus元器件库中选取元器件AT89C51(单片机)。
(3)放置元器件、编辑元器件、放置终端、连线。
按图2-8所示放置元器件并连线。
(4)添加源程序、编辑源程序、编译源程序。
源文件名为“jump. ASM”。
(5)加载目标代码文件。
“Clock Frequency”栏中的频率要设为12MHz。
(6)仿真。
单击仿真工具栏“单步运行”按钮》,进入单步运行状态。
分别打开工作寄存器窗口、特殊功能寄存器窗口、片内数据存储器窗口和源代码调试窗口。
单击源代码调试窗口“单步执行”按按钮一次,执行一条指令,通过各调试窗口观察每条指令执行后数据处理的结果,以加深对控制转移指令的理解。
程序调试窗口如图2-8所示。
六、实验分析
1.分析参考程序1中实现无限循环的原因。
2.分析两个参考程序中的累加器A判零转移指令和减1非零转移指令的偏移量的区别。
七、实验思考
1、若将参考程序1中的指令JNZ L2改为CJNE A,#OOH,L2,参考程序1的执行结果如何?
2、若将参考程序2中的指令LCALL L1改为ACCALL L1,该指令的机器码如何翻译?。