ImageVerifierCode 换一换
格式:PPT , 页数:72 ,大小:215.28KB ,
文档编号:4235257      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4235257.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第a10章-51单片机实现顺序控制课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第a10章-51单片机实现顺序控制课件.ppt

1、单片机技术基础教程与实践第第10章章 51单片机实现顺序控制单片机实现顺序控制按照规定的顺序依次完成各种操作的控制系统称为顺序控制。顺序控制采用按时间顺序或逻辑顺序进行控制的开环控制方式。能轮流显示不同颜色和不同图案的广告霓虹灯是顺序控制系统的一个简单例子。顺序控制器一般用于生产过程的开关量控制、动力设备的起动和停止、加热或冷冻设备的接通和断开、信号灯的亮与灭等都是开关量信号。生产线、自动机床和各种设备都有许多开关量信号需要顺序控制。因此,顺序控制器广泛应用于机械、冶金、电力、石油、化工、煤炭、建材、纺织、轻工和国防等部门。现在实现顺序控制主要是采用可编程控制器(英文缩写PC)利用它可以方便地

2、编制程序,使工业设备实现顺序控制。美国在1969年研制成世界上第一台可编程序控制器。此后可编程序控制器的发展经历了三个阶段:采用固定(硬)布线方式,以代替电磁继电器盘;以逻辑控制为主,采用不固定(软)布线方式,在此之前这类控制器又称可编程逻辑控制器;采用内部装有程序的存储器,程序变动十分容易的单片机实现。1985年生产的可编程序控制器已普遍采用单片机技术,它除了存储容量小、输入输出通道以开关量为主和编程语言不同外,与一般单片机系统十分相似。可编程控制器采用梯形图、语句表设计顺序控制程序。单片机技术基础教程与实践10.1 梯形图梯形图 10.1.1 梯形图简介梯形图简介一个梯形图由左边一条垂直向

3、下的线及若干条与之相交并向右延伸的分支线组成。下图表示的是一个梯形图。左边的线称为母线,相当于电气控制线路中的电源线。分支线称为回路,在回路上有常开或常闭触点的串联或并联。如果触点ON(闭合),从母线来的“能流”就可以通过该触点;若触点OFF(断开),则“能流”不能通过。若“能流”通过一系列串或并的触点到达了继电器线圈(指令),则其被通电,否则,线圈不能通电。习惯上线圈被通电也称为线圈得电,线圈不能通电也称为失电。从计算机程序设计的角度,分支线回路也称为指令行,常开、常闭触点可认为是沿指令行设置的条件,这些条件的逻辑组合(“与”对应触点串联,“或”对应触点的并联),可以决定右边指令的执行结果(

4、如线圈通电(得电)或断电(失电)。n0n1n3n3step1step2step2step3step1step3step1step2.单片机技术基础教程与实践指令行上垂直的一对线称为条件(即触点),无斜线穿过的条件称为常开条件(NO,常开触点),有斜线穿过的条件称为常闭条件(NC,常闭触点),每个条件上或下标注的数字或符号表示指令的操作数位(继电器触点、输入信号等)。梯形图右侧是指令(继电器线圈),该指令的状态(得电、失电、执行或不执行)由左侧的条件来决定。常开触点闭合,则该触点为1;常开触点断开,则该触点为0。常闭触点闭合,则该触点为0;常闭触点断开,则该触点为1。例如,前图中线圈step1得

5、电的条件是n0=1、n3=0、step2=0、step3=0。单片机技术基础教程与实践10.1.2 基本术语基本术语(1)常开/常闭条件梯形图中每个条件是否为ON或OFF,取决于分配给它的操作数位的状态。如果操作数位是“1”,则常开条件是闭合(ON),常闭条件是断开(OFF);如果操作数位是“0”,则常开条件是断开(OFF),常闭条件是闭合(ON)。若把操作数位理解为软继电器(不是实际的继电器,是一个可以保存继电器状态的存储单元),则有如下结论:若操作数位是“1”,则继电器线圈通电,继电器的常开触点闭合(ON),常闭触点断开(OFF)。若操作数位是“0”,则继电器线圈断电,继电器的常开触点断开

6、(OFF),常闭触点闭合(ON)。例如图10-2中,n0=1,则step1的线圈得电,使step=1;而n0=0,则step1的线圈失电,使step1=0。n1=0,则step2的线圈得电,使step2=1;而n1=1,则step2的线圈失电,使step2=0;单片机技术基础教程与实践(2)执行条件在梯形图中,一条指令前面的常开、常闭等条件的逻辑组合产生了执行条件,对于继电器线圈类的指令,执行条件为ON(执行条件具备),对应线圈得电;而执行条件为OFF(执行条件不具备),对应线圈失电。对于功能性指令,执行条件为ON(执行条件具备),则对应功能指令的执行;而执行条件为OFF(执行条件不具备),对

7、应功能指令不执行(3)操作数位输入或输出信号(I/O位)、指令(继电器)状态、定时器/计数器等都可以是梯形图中的条件。(4)梯级各种常开、常闭条件的一个逻辑组合又称为一个梯级。单片机技术基础教程与实践10.1.3 常用梯形图程序常用梯形图程序梯形图程序可以用C语言描述,下面介绍常用梯形图程序以及他们的C语言描述。在C语言描述中,变量n0、n1等是按钮,而step0、step1等是继电器。1.单继电器线圈控制程序“失电优先”和“得电优先”电路如图所示,其中a是失电优先电路,图b是得电优先电路。图中n0是起动按钮、n1是停止按钮。若是两个按钮同时按下,若是step1=1则为得电优先,若是step1

8、=0,则为失电优先。常开按钮是正逻辑,有效(动作)状态是1,若用n0表示常开按钮,则用原变量n0表示;表示没有动作时n0=0。常闭按钮是负逻辑,有效(动作)状态是0,若用n1表示常闭按钮,则应该用反变量!n1表示,表示没有动作时!n1=1。采用C语言描述:失电优先:if(n0|step1)&!n1)step1=1elsestep1=0;得电优先:if(n0|(step1&!n1))step1=1elsestep1=0;单片机技术基础教程与实践2.多继电器线圈控制程序多继电器线圈控制有多种方法,右图是可以同时控制4个继电器线圈的电路图,其中n0是起动按钮,n1是停止按钮。采用C语言描述:if(n

9、0|step1)&!n1)step1=1;step5=1;step9=1;step13=1;elsestep1=0;step5=0;step9=0;step13=0;图10-4多继电器线圈控制单片机技术基础教程与实践3.多地控制程序下图是两个地方控制一个继电器线圈的程序。其中n0和n1是一地的起动与停止按钮,n2和n3是另外一地的起动与停止按钮。采用C语言描述:if(n0|n2|step1)&!n1&!n3)step1=1;elsestep1=0;单片机技术基础教程与实践4.互锁控制程序下图是三个梯级互锁的电路。其中n0、n1和n2是起动按钮,n3是停止按钮。采用C语言描述:if(n0|ste

10、p1)&!n3&!step2&step3)step1=1;elsestep1=0;if(n1|step2)&!n3&!step1&step3)step2=1;elsestep2=0;if(n1|step3)&!n3&!step1&step2)step3=1;elsestep3=0;n0n1n2n3n3n3step1step2step3step1step2step3step1step2step3step1step2step3.单片机技术基础教程与实践5.互控程序下图所示的互控电路中,n0、n1和n2中任意一个闭合,就可以起动step1、step2和step3中对应的一个,同时关闭其它两个。若n0

11、、n1和n2同时按下时,可以同时使step1、step2和step3得电。采用C语言描述:if(n0|(step1&!step3&!step2)&!n3)step1=1;elsestep1=0;if(n1|(step2&!step1&!step3)&!n3)step2=1;elsestep2=0;if(n2|(step3&!step1&!step2)&!n3)step3=1;elsestep3=0;ste p 1ste p 2ste p 3ste p 1ste p 2ste p 3ste p 1ste p 1ste p 3ste p 2ste p 2ste p 3n 0n 1n 2n 3n 3

12、n 3.单片机技术基础教程与实践6.顺序起动程序顺序控制电路如图所示,该梯形图中,只有step1运行了,step2才能运行,只有step1和step2运行了step3才能运行,图中n0是step1的起动按钮,n1是step2的起动按钮,,n3是step3的起动按钮,n4是总停止按钮。采用C语言描述:图10-9周期脉冲电路if(n0|(step1&!step3&!step2)&!n3)step1=1;elsestep1=0;if(n1|(step2&!step1&!step3)&!n3)step2=1;elsestep2=0;单片机技术基础教程与实践7.脉冲电路(1)周期脉冲电路下图所示的就是周

13、期脉冲电路,就是用时钟控制位输出时钟脉冲的程序,时钟控制位就是每隔0.1s、0.2s和1s闭合常开触点的控制位。,其中t01、t02、t1是时间控制的常开触点。用C语言实现脉冲周期电路:(a)用定时器产生50ms的中断,(用12MHz的时钟,定时器0计数50000次,则产生50ms的中断),定时器0初始化语句如下:单片机技术基础教程与实践TMOD=0 x01;/定时器0,M1,M0=01(模式1),gate=0(外中断不起作用),C/T=0TH0=0 x3c;/设置TH初值0 x3cb0=65536-50000=15536,50ms中断一次,每秒20次中断TL0=0 xb0;/TL初值TR0=

14、1;/启动定时器0ET0=1;/设置中断使能寄存器,允许定时器0中断EA=1;/允许所有中断(b)在中断服务程序中,用全局变量(时钟控制位)产生需要时间间隔的循环。voidtimer0()interrupt1/定时器中断服务程序TH0=0 x3c;/重置定时器0初值TL0=0 xb0;/重置定时器0初值t01+;if(t011)t01=0;/时钟控制位t01,0-1-0-1定时间隔为0.1st02+;if(t023)t02=0;/时钟控制位t02,0-1-2-3-0-1-2-3-0定时间隔为0.2st03+;if(t0319)t03=0;/时钟控制位t1。0-1-2-3-18-19-0定时间隔

15、为1s单片机技术基础教程与实践(c)写C语言实现的梯形图程序如下是主程序中的时钟控制位控制语句,语句中使被控继电器的得电与失电时间各占1/2。while(1)if(t01)step1=1;elsestep1=0;/时钟控制位t01控制step1的得电与失电if(t021)step2=1;elsestep2=0;/时钟控制位t02控制step2的得电与失电if(t0310)step3=1;elsestep3=0;/时钟控制位t03控制step3的得电与失电(2)1分钟脉冲在中断程序中,使定时器产生50ms为周期的中断,则每中断20次,使变量tmin加1,则中断1800次,则产生每分钟为周期的脉冲

16、。主程序中,若是需要得电30分钟,则C语言程序如下:nn+;/每次中断,变量nn加1if(nn=20)/如果中断20次,定时为1秒nn=0;tsec+;/每秒钟,变量tsec加1if(tsec59)/如果中断1200次,则产生1分钟定时信号tsec=0;tmin=1elsetmin=0;主程序中,若是需要step7每分钟得电一次,则C语言程序如下:if(tmin30)step7=1;elsestep7=0;图10-101分钟脉冲程序单片机技术基础教程与实践(3)上升沿微分上升沿微分程序利用微分功能,对工作位n0的上升沿(断开变为接通)进行微分,在上升沿出现瞬间,工作位n0=1,使step1得电

17、,然后等待t0增加,定时器0每中断一次,t0增加1,当t0大于3时,step1失电,所以step1得电时间内为1,step1为1的时间就是微分时间。定时器0中断服务程序中:t0+;/每次中断t0加1if(t04)t0=4;/若是t0大于4,保持t0为4主程序中:if(n0=0)t0=0;/按钮断开时,t0变量保持为0。if(n0=1|step1)&!time0)/若是n0=1同时time0=0时,step1得电step1=1;elsestep1=0;/若是time0=1时,step1失电if(t03)time0=1;elsetime0=0;/若是t03,time0为1,使step1失电单片机技

18、术基础教程与实践(4)极窄脉冲可以利用程序顺序执行的特点产生极窄脉冲,极短脉冲的C程序如下:if(n0=0)step2=0;/输入信号n0=0,使step2=0,为产生窄脉冲做准备if(n0|step1)&!step2)/如果输入信号n0=1,同时step2为0时,则step1为1step1=1;elsestep1=0;/如果输入信号为0,则step1为0if(step1|step2)/如果step1为1则step2为1,step2=1;elsestep2=0;/否则step2为0由于step2为1,所以当程序再次循环执行时,step1的得电条件不成立,所以step1为0,这样在一个while

19、(1)循环中,step1=1。图(a)显示的是C语言描述的梯形图,单片机技术基础教程与实践8.定时计数程序(1)单按钮起停程序单按钮起停程序下图,该电路中使n0接点接通一次,使step3得电并自锁,再使n0接点接通一次,可以使step3失电。程序中使用了微分功能,就是对n0的上升沿进行微分,使step1短时间得电输出微分脉冲,计数器对step1得电次数进行计数,计第一个数时使step3得电自锁,再计一个数时使step3失电。C程序如下:if(n0=0)step2=0;/微分程序开始if(n0=1|step1)&!step2)step1=1;elsestep1=0;if(step1|step2)

20、step2=1;elsestep2=0;/step1是微分输出信号if(step1)count+;if(count=2)/计数程序开始,对step1的得电次数计数cnt=1;count=0;/cnt是计数器计数到信号elsecnt=0;if(step1|step3)&!cnt)step3=1;elsestep3=0;/计数控制使step3失电的程序if(step3)P2_0=0;elseP2_0=1;/用P2_0引脚相连的发光二极管显示step3的状态单片机技术基础教程与实践(2)可以改变脉冲宽度的单脉冲程序可以改变脉冲宽度的梯形图程序如图所示。该程序中接点n0接通时,step1和step2得

21、电,其中step1自锁,定时器time0开始定时,当定时时间到,step1和step2失电。step1和step2得电时间(单脉冲宽度),由定时器定时时间t0确定。源程序如下:if(n0=1|step1)&!time0)/如果n0=1,同时time0=0,则step1=1,定时器启动step1=1;elsestep1=0;t0=0;/否则step=0,t0=0if(t08)time0=1;elsetime0=0;/如果定时器计数t08,则time0=1if(step1&!time0)step2=1;elsestep2=0;/如果step1=1,同时time0=0,则step2=1if(step

22、1)P2_1=0;elseP2_1=1;/如果step1=1,则P2_1连接的发光二极管亮if(step2)P2_3=0;elseP2_3=1;/如果step2=1,则P2_3连接的发光二极管亮单片机技术基础教程与实践(3)瞬时得电和延时失电程序瞬时得电和延时失电程序如图所示。接点n0闭合,step1得电,当n0断开后,定时器time0开始计时,当计时时间到的时候,step1失电。而step2在n0断开后得电,在定时器时间到时失电。if(n0|step1)&!time0)/如果n0=1同时time0=0,step1得电step1=1;elsestep1=0;if(step1&!n0)step2

23、=1;elsestep2=0;t0=0;/如果step1和n0=0,则step2=1,启动定时变量t0加1if(t09)time0=1;elsetime0=0;/如果定时变量t09,则time0=1if(step1=1)P2_0=0;elseP2_0=1;/用LED灯显示step1的得电/失电状态if(step2=1)P2_1=0;elseP2_1=1;/用LED灯显示step2的得电/失电状态单片机技术基础教程与实践(4)延时得电和延时失电程序延时得电和延时失电程序如图所示。当接点n0闭合,time0开始定时,定时6s时间到,step3得电。当n0断开时,time1开始定时,8秒钟后step

24、3失电。程序如下:if(n0=1|step1)&!time0)/n0=1同时time0=0使step1=1,启动定时器t0step1=1;elsestep1=0;t0=0;if(t06)time0=1;elsetime0=0;/当t06使time0=1if(step3&!n0)step2=1;elsestep2=0;t1=0;/n0=0同时step3=1使step2=1,启动定时器t1if(t18)time1=1;elsetime1=0;/如果t18使time1=1if(time0|step3)&!time1)step3=1;elsestep3=0;/如果time0=1同时time1=0使st

25、ep3=1单片机技术基础教程与实践(5)使用一个按钮的延时得电和延时失电程序下图所示的是使用一个按钮的延时得电和延时失电程序,接点n0接通一次后,延时5秒钟,step4得电,当接点n0接通第二次后,延时8秒,step4失电。单片机技术基础教程与实践(6)定时器和计数器配合使用实现长延时定时器和计数器配合使用的程序如图所示。单片机技术基础教程与实践(7)定时器接力程序定时器接力程序如图所示。图10-19定时器接力程序图10-20计数器定时程序(8)计数器定时程序计数器定时程序如图所示。单片机技术基础教程与实践(9)计数器串联程序计数器串联程序如图所示图10-21计数器串联程序单片机技术基础教程与

26、实践9.顺序控制程序顺序控制程序如图所示。程序由接点n0起动,step1得电并自锁,定时器time0和time1起动计时,进入程序第一步,在time1计时6s时,第一步结束。当time0计时4s时间到,使step2得电、自锁,同时起动定时器time2和time3,程序的第二步开始,当time3计时6s时第二步结束。当time2计时3s时,使step3得电、自锁,同时起动time4,程序第三步开始,当time4计时8s时step3失电,第三步结束。图10-22顺序控制程序单片机技术基础教程与实践源程序如下:if(n0|step1)&!n1&!time1)step1=1;elsestep1=0;t

27、0=0;t1=0;if(t04)&step1)time0=1;elsetime0=0;/第1步if(t16)&step1)time1=1;elsetime1=0;if(time0|step2)&!n1&!time3)step2=1;/第2步elsestep2=0;t2=0;t3=0;if(t23)&step2)time2=1;elsetime2=0;if(t36)&step2)time3=1;elsetime3=0;if(time2|step3)&!n1&!time4)step3=1;/第3步elsestep3=0;t4=0;if(t48)&step3)time4=1;elsetime4=0;

28、单片机技术基础教程与实践10.三个灯轮流闪烁程序单片机技术基础教程与实践11.另一个三个灯轮流闪烁的程序图10-24另一个三灯轮流闪烁梯形图单片机技术基础教程与实践图10-25由开关条件控制的顺序控制程序单片机技术基础教程与实践10.2 顺序功能图顺序功能图SFC设计方法设计方法SFC功能图设计方法是专用于工业顺序控制程序设计的一种方法,该方法能够描述被控系统的工作过程,是设计电气控制系统的重要方法。该方法广泛用于可编程控制器PLC的程序设计,也可以用于单片机控制程序的C语言描述。10.2.1 SFC基础基础SFC图的基本元素是流程步、有向线段、转移和动作说明。1.流程步,又称为工作步,它是控

29、制系统中的一个稳定状态,流程步用矩形方框表示,框中用数字表示该步的编号,编号可以是实际的控制步序号,常用C语言中的静态变量表示。对应于系统的初始状态工作步,称为初始步,该步是系统运行的起点,一个系统至少需要有一个初始步,初始步用双线矩形框表示,流程步如图所示,其中a是工作步,b是初始步。图10-26流程步单片机技术基础教程与实践2.转移转移就是从一个步向另外一个步之间的切换条件,两个步之间用一个有向线段表示可以从一个步切换到另一个步,代表向下转移方向的箭头可以忽略。通常转移用有向线段上的一段横线表示,在横线旁可以用文字、图形符号或逻辑表达式标注描述转移的条件,当相邻步之间的转移条件满足时,就从

30、一个步按照有向线段的方向进行切换。有向线段和转移如图所示。单片机技术基础教程与实践3.动作说明流程步并不是单片机输出端口的动作,步只是控制系统中的一个稳定的状态,在这个状态,可以有一个或多个单片机端口引脚输出的动作,但也可以没有任何输出动作,例如某步只是起动了定时器或是一个等待过程,所以步和单片机输出端口的动作是两个事情。对于一个步,可以有一个或几个动作,表示的方法是在步的右侧加一个或几个矩形框,并在框中加文字对动作进行说明。如图所示。常见的动作的种类:动作不自锁,步结束时动作就结束。动作自锁,步结束时还继续,直到复位到达之后。复位作用,动作的任务是复位以前自锁的动作。起动定时器,定时器可以在

31、步结束时或时间复位信号到达时结束。脉冲作用,当步开始时激活脉冲,该脉冲只作用一次。在时间延迟之后,起动自锁和定时器,直到复位信号到达。当步被激活时,自锁和定时器起动,直到定时时间到达和复位信号到达。起动功能指令,完成特定的动作。单片机技术基础教程与实践4.一些规则(1)步和步之间必须有转移隔开。(2)转移和转移之间必须有步隔开。(3)步和转移,转移和步之间用有向线段连接,正常画SFC图的方向是从上向下或是从左向右,按照正常顺序画图时,有向线段可以不加箭头,否则必须加箭头。(4)一个SFC图中至少有一个初始步。单片机技术基础教程与实践10.2.2 SFC图的结构图的结构1.顺序结构顺序结构是最简

32、单的一种结构,该结构的特点是步与步之间只有一个转移,转移和转移之间只有一个步。2.选择性分支结构选择性分支如右图所示。图中共有2,3、4,5、6和7、8、9四个分支,根据分支转移条件A、C、F和I来决定究竟选择哪一个分支。分支用水平线相连,每一条单一顺序的进入都有一个转移条件,每个分支的转移条件都位于水平线下方,单水平线上方没有转移。如果某一分支转移条件得到满足,则执行这一分支,一旦进入这一分支后,就再也不执行其它分支了。分支结束用水平线将各个分支会合,水平线上方的每个分支都有一个转移条件,而水平线下方没有转移条件。单片机技术基础教程与实践3.并发性分支结构如果在某一步执行完后,需要起动若干条

33、分支,这种结构称为并发分支结构。并发分支结构如图所示。分支开始是用水平双线将各个分支相连,双水平线上方需要一个转移,转移对应的条件称为公共转移条件,如果公共转移条件满足,则同时执行下面所有分支,水平线下方一般没有转移条件,特殊情况下允许有分支转移条件。公共转移条件满足时,同时执行多个分支,但是由于各个分支完成的时间不同,所以每个分支的最后一步通常设置一个等待步。分支结束用水平双线将各个分支汇合,水平双线上方一般没有转移,下方有一个转移。单片机技术基础教程与实践4.循环结构循环结构用于一个顺序过程的多次反复执行,结构示意图如图所示。5.复合结构复合结构就是在一个集顺序、选择性分支、并发分支和循环

34、结构于一体结构,由于结构复杂,必须仔细才能正确的描述实际问题单片机技术基础教程与实践10.2.3 C语言描述语言描述SFC图图1.进入有效工作步(1)起动单片机就进入有效工作步可以设置一个局部变量,该变量在while(1)循环语句外为1,在循环语句结束前使该变量为0,这样该局部变量只在第一个while(1)循环中为1,因此可以作为进入有效工作步的条件。(2)还可以使用按钮进入有效工作步,但是应该加限制条件,就是避免按钮的按下影响工作步正常转移的情况。2.停止有效工作步可以使用按钮停止流程,方法是在while(1)循环结束前,增加语句:if(n0)step0=0;step1=0;stepn=0;

35、/n0是按钮,stepn是工作步若是停止有效工作步后,返回到工作步step0,则可以按照如下语句描述:if(n0)step0=1;step1=0;stepn=0;/n0是按钮,stepn是工作步单片机技术基础教程与实践3.最后一个工作步一般情况下,需要在最后一个工作步完成之后,返回第一个工作步,但是有时需要做一些判断,例如,在1个工艺流程结束后,是否进行第2个工艺流程等。如果在程序中有tj=1停止有效工作的语句,以及tj=0返回第1工作步的语句,则可实现下一个流程的起动与停止操作。判断语句如下:if(n1)tj=1;elsetj=0;/n1是钮子开关信号,如果n1=1,则tj=1,否则tj=0

36、4.工作步的转移条件转移条件可以是来自单片机外部的按钮、行程开关、传感器等输出的信号,也可以是来自内部的定时器的时间到条件、计数器的计数数值条件等。单片机中可以直接使用定时器的时间数值,例如if(t012),表示定时器t0的数值大于12以后就满足转移条件,其中t0是对单片机定时器中断计数的全局变量;又例如,if(cnt8)表示计数器cnt数值大于8时就满足转移条件,其中cnt是可以对按钮动作、流程循环次数等计数的全局变量。单片机技术基础教程与实践5.工作步得电和失电工作步的得电条件是:该步的上一个工作步是有效工作步,而该步的下一步没有工作,这时若出现转移条件,则该工作步就会得电变成有效工作步。

37、工作步失电的条件是:该步的下个工作步得电,则该工作步失电。一般情况下工作步都需要自锁。例如:若step0、step1和step2是三个顺序执行的工作步,则step1得电与失电的条件可以写为:if(step0|step1)&!step2)step1=1;elsestep1=0;一般工作步得电与失电条件的梯形图如图所示。单片机技术基础教程与实践6.选择性分支选择性分支就是在工作步得电的条件中增加一个选择条件,若满足选择条件,则工作步得电,若不满足选择条件的工作步就不能得电。若在起动程序时出现选择分支,则工作步的得电条件应该为起动条件“与”选择条件。若在工作步转移时出现选择性分支,则工作步的得电条件

38、应为转移条件“与”选择条件。选择性分支如图所示,图中n0、n1、n2、n3是按钮或是开关条件。与图对应的C语言描述如下:start=1;while(1)if(n0&step3)|step0|start)&!step1&!step2)step0=1;elsestep0=0;if(n1&step0)|step1)&!step3)step1=1;elsestep1=0;/分支step1if(n2&step0)|step2)&!step3)step2=1;elsestep2=0;/分支step2if(n3&step1|n3&step2)|step3)&!step0)step3=1;elsestep3=

39、0;start=0;图10-37简单选择分支结构单片机技术基础教程与实践7.并发分支并发工作步是在一个得电条件下,几个并发分支都得电,所以几个并发分支的得电条件是一样的。所有并发工作步都结束后才能进行工作步转移,所以若要工作步转移,则需要所有并发分支的的转移条件相“与”。下图所示的是一个具有并发分支的SFC图。该图中工作步step1和工作步step2是并发分支,n0、n1、n2、n3是按钮或是开关条件。start=1;/第1周期信号while(1)if(n0&step3)|step0|start)&!step1&!step2)step0=1;elsestep0=0;if(n1&step0)|s

40、tep1)&!step3)step1=1;elsestep1=0;/并发分支step1if(n1&step0)|step2)&!step3)step2=1;elsestep2=0;/并发/分支step2if(n2&step1&n3&step2)|step3)&!step0)step3=1;elsestep3=0;start=0;step0step1step2step3startn1n2&n3n0.单片机技术基础教程与实践8.第0工作步第0工作步是单片机上电后的状态,当除第0工作步以外的工作步都无效时,第0工作步有效,所以第0工作步的一个得电条件是除第0工作步以外的工作步都无效。停止条件出现后,

41、程序应该回到第0工作步。9.动作输出在有些系统中,工作步就是动作输出,在这种情况下,工作步的继电器就是单片机的输出引脚。而在有些系统中,动作输出是工作步的逻辑组合。动作开始时刻就是工作步得电时刻,动作结束时刻就是工作步失电时刻,若是动作时间是一个工作步,则工作步就可以是输出;若是该动作还需要在下一个工作步继续动作,则这时该动作就是这两个工作步的“或”。单片机技术基础教程与实践10.描述SFC的一般C语言结构描述SFC的一般C语言结构如下:while(1)输入扫描部分工作步流程部分输出部分其他其中:(1)输入扫描部分就是处理按钮、行程开关、传感器等信号。(2)工作流程部分就是按照输入条件,实现工

42、作步的转移,输入条件可以是按钮、行程开关或是传感器等外部输入的信号,也可以是单片机内部的定时器或是计数器信号。(3)输出部分就是描述对应各个工作步的输出动作(4)其他部分描述:停止信号、首次while(1)循环有效信号、按钮信号归0等信号。单片机技术基础教程与实践例题10-1下图是送料小车示意图,小车可以在A、B之间运动,在A、B点各有一个行程开关。小车从A点向B点前进,到达B点,停车6s后,从B点后退到A点,在A点停车8s后再向B点前进,如此往复不止。要求可以人为控制小车的前进起动和后退起动,并且能够任何时候都可以停止小车运行。该题的步是小车前进、定时6秒、小车后退和定时8秒共四个步,转移条

43、件是小车到达B点时的行程开关闭合、B点定时6秒时间到、小车到达A点时的行程开关闭合和A点定时8秒时间到,动作是小车从A点向B点的前进动作、起动6s定时器动作、小车从B点向A点的退回动作和起动8s定时器动作。单片机技术基础教程与实践该题要求能够前进起动和后退起动,这需要选择分支结构,当按下前进起动按钮时,小车向B点前进,当按下后退起动按钮时,小车向A点后退。停止按钮的动作是停止正在工作的步,回到步0。单片机技术基础教程与实践地址信号地址信号n0前进按钮step0上电状态n1后退按钮step1小车前进运行n2停止按钮step2B点定时工作步n3B点行程开关step3小车后退运行n4A点行程开关A点

44、定时工作步run0前进起动run1后退起动time0B点定时器time1A点定时器单片机技术基础教程与实践该题的C语言程序如下:#includeAT89X51.hunsignedintcodetable=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;unsignedintn0,n1,n2,n3,n4,sn;unsignedintkk=8,start,run0,run1;unsignedintstep0=0,step1=0,step2=0,step3=0,step4=0;unsignedinttime0,time1;uns

45、ignedintt0,t1;voidmain()unsignedintnn;/定时器0初始化TMOD=0 x01;/定时器0,M1M0=01(模式1),gate=0(外中断不起作用),C/T=0TH0=0 x3c;/TH初值0 x3cb0=65536-50000=15536,50ms中断一次,每秒20次,时钟12MHzTL0=0 xb0;/TL初值TR0=1;/启动定时器0ET0=1;/设置中断使能寄存器,允许定时器0中断EA=1;/允许所有中断单片机技术基础教程与实践start=1;/启动标志置1while(1)P3=0 xff;/P3口连接8个按键作为输入if(P3_0=0)/如果P3_0

46、引脚连接的按键按下for(nn=0;nn1000;nn+);/延时消抖if(P3_0=0)n0=1;kk=0;/如果按键还在按下状态,则n0=1elsen0=0;if(P3_1=0)/如果P3_1引脚连接的按键按下for(nn=0;nn1000;nn+);if(P3_1=0)n1=1;kk=1;/如果按键还在按下状态,则n1=1elsen1=0;单片机技术基础教程与实践if(P3_2=0)/如果P3_2引脚连接的按键按下for(nn=0;nn1000;nn+);if(P3_2=0)n2=1;kk=2;elsen2=0;if(P3_3=0)/如果P3_3引脚连接的按键按下for(nn=0;nn1

47、000;nn+);if(P3_3=0)n3=1;kk=3;elsen3=0;if(P3_4=0)/如果P3_4引脚连接的按键按下for(nn=0;nn6)time0=1;elsetime0=0;/如果t06,定时器time0=1if(run1|time0&step2|step3)&!step4)step3=1;elsestep3=0;/后退步,step3=1if(n4&step3|step4)&!step1)step4=1;elsestep4=0;t1=0;/到达A点,step4=1,启动定时t1if(t18)time1=1;elsetime1=0;/如果t18,定时器time1=1if(st

48、ep1)P2_6=0;elseP2_6=1;/前进动作信号输出,LED灯显示小车前进if(step3)P2_7=0;elseP2_7=1;/后退动作信号输出,LED灯显示小车后退if(n2)step0=1;step1=0;step2=0;step3=0;step4=0;/停止按钮按下,回到初始步step0start=0;/上电启动标志清0单片机技术基础教程与实践if(step0)sn=0;/将工作步转换成数值在数码管上显示if(step1)sn=1;if(step2)sn=2;if(step3)sn=3;if(step4)sn=4;P0=tablesn;/P0口连接的数码管显示工作步if(st

49、ep0)P2_0=0;elseP2_0=1;/用LED灯显示工作步if(step1)P2_1=0;elseP2_1=1;if(step2)P2_2=0;elseP2_2=1;if(step3)P2_3=0;elseP2_3=1;if(step4)P2_4=0;elseP2_4=1;if(step2)P1=tablet0;/将定时数据显示在P1口连接的数码管上if(step4)P1=tablet1;单片机技术基础教程与实践voidtimer0()interrupt1/定时器0中断服务程序staticunsignedintjj;TH0=0 x3c;/重置初值TL0=0 xb0;/重置初值jj+;i

50、f(jj=20)/如果jj=20,则为1s,为调试方便,可以减小jj值jj=0;t0+;if(t010)t0=0;t1+;if(t110)t1=0;实际调试时可用连接在P3口的按钮代替行程开关和控制按钮。单片机技术基础教程与实践例题10-2 交通信号灯的动作如图所示,请画出该交通灯控制的SFC图。要求可以用按钮强制使南北通或东西通。单片机技术基础教程与实践设计中没有考虑停止按钮,若要交通灯停止工作,只要关掉控制器电源就可以了,南北方向强制按钮用于强制南北绿灯,东西方向强制按钮用于强制东西绿灯。该控制器在通电时自起动。单片机技术基础教程与实践地址信号地址信号n0南北方向强制按钮step1第1步,

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|