欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《顺序控制系统》PPT课件.ppt

    • 资源ID:5620201       资源大小:639.50KB        全文页数:58页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《顺序控制系统》PPT课件.ppt

    第五章 定时/计数器顺序控制系统,5.1 顺序控制系统任务分析5.2 89C51单片机定时器/计数器5.3 基于89C51顺序控制系统,课程目标、重点与难点,课程目标:掌握单片机定时器/计数器的特点;学会利用单片机 进行顺序控制系统的设计与应用。课程重点与难点:合理选择定时器/计数器工作方式、初始值的计算、初始化程序的设计;1S定时程序的设计及工程中如 何运用定时计数器。,一、顺序控制系统实物图,5.1 顺序控制系统任务分析,图5-1 顺序控制系统实物图,二、顺序控制系统的硬件结构分析,图5-2 顺序控制系统硬件接线图,5.1 顺序控制系统任务分析,三、控制时序图,图5-3 顺序控制系统控制时序图,5.1 顺序控制系统任务分析,四、控制过程:1、状态1:P1输出0 x05,持续1s;2、状态2:P1输出0 x03,持续1s;3、状态3:P1输出0 x0f,持续1s;4、状态4:P1输出0 x0e,持续1s;5、状态5:P1输出0 x00,持续1s;6、状态6:P1输出0 x04,持续1s;再回到状态1,周而复始。,5.1 顺序控制系统任务分析,五、顺序控制系统的组成1、电工电子实验箱2、CPU89C51:主要起控制作用。3、5V继电器4个。4、24M晶振及2个20pF或30pF的起振电容。5、20F的电解电容,2个1K的电阻以及一个按钮开关。6、电阻(1K)、导线若干。,5.1 顺序控制系统任务分析,六、顺序控制系统所涉及的知识点(1)定时/计数器的概念。(2)89C51单片机中定时/计数器的应用。(3)C51定时/计数器中断服务程序的设计与应用。,5.1 顺序控制系统任务分析,5.2 89C51单片机定时器/计数器,定时和计数功能最终都是通过计数实现的,若计数的事件源是周期固定的脉冲,则可以实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能由一个部件实现。实现定时和计数的方法一般有软件、专用硬件电路和可编程定时器/计数器三种方法。采用软件只能定时,且占用CPU时间,降低了CPU的使用效率。专用硬件电路可实现精确的定时和计数,但参数调节不便。可编程定时器计数器,不占用CPU时间,能与CPU并行工作,实现精确的定时和计数,又可以通过编程设置其工作方式和其它参数,因此使用方便。,一、定时器/计数器的功能1、定时方式:每一个计数周期(T计数)计数器加1,直至计满溢出(从全1到全0)产生中断请求。对于一个N位的加1计数器,若T计数是已知的,则从初值a开始加1计数至溢出所占用的时间为:当N=8、a=0时,最大定时时间为:T=256T计数,图5-4 定时器/计数器结构框图,5.2 89C51单片机定时器/计数器,2、计数方式:外部输入信号的下降沿触发计数,计数器在每个时钟周期或时钟周期的12分频采样外部输入信号,若一个周期的采样值为1,下一个周期的采样值为0,则计数器加1,故识别一个从1到0的跳变需2个周期,所以,单片机对外部输入信号最高的计数速率是时钟频率的1/24。同时,外部输入信号的高电平与低电平保持时间均需大于一个周期。,5.2 89C51单片机定时器/计数器,二、定时器/计数器的结构,5.2 89C51单片机定时器/计数器,图5-4 定时器/计数器结构框图,三、与定时器/计数器有关的特殊功能寄存器1、特殊功能寄存器TMOD,5.2 89C51单片机定时器/计数器,定时器工作方式选择:,5.2 89C51单片机定时器/计数器,2、定时/计数器控制寄存器(TCON),TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,TF1可作查询测试用,此时只能由软件清0。TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。TF0:定时器0溢出标志位。其功能及操作情况同TF1。TR0:定时器0运行控制位。其功能及操作情况同TR1。,5.2 89C51单片机定时器/计数器,四、定时器/计数器的工作方式1、工作方式0,5.2 89C51单片机定时器/计数器,图5-5 定时器/计数器0工作方式0逻辑结构框图,计数器的计数值范围是:18192定时时间的计算公式为:(213计数初值)晶振周期12或(213计数初值)机器周期。,5.2 89C51单片机定时器/计数器,2、工作方式1当M1M0=01时,定时/计数器设为工作方式1,定时/计数器的等效电路如图5-6所示。,图5-6 定时器/计数器工作方式逻辑结构框图,5.2 89C51单片机定时器/计数器,计数器的计数值范围是:165536定时时间的计算公式为:(216计数初值)晶振周期12或(216计数初值)机器周期方式0和方式1的区别:在于计数器的位数不同,方式0为13位,而方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字(GATE、TF0、TR0)和方式0相同。,5.2 89C51单片机定时器/计数器,图5-7定时器/计数器工作方式2逻辑结构框图,3、工作方式2当M1M0=10时,定时/计数器为工作方式2。等效电路如图5-7所示。,5.2 89C51单片机定时器/计数器,工作方式2的特点:具有自动重装载初值功能,即自动加载计数初值。在这种工作方式中,16位计数器分为两部分,TL0为计数器,TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不需要重新赋值时间常数,而由预置寄存器TH0以硬件方法自动给计数器TL0重新加载。,5.2 89C51单片机定时器/计数器,、工作方式 当M1M0=11时,定时/计数器处于工作方式3,定时/计数器T0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。等效电路参见图5-8。,5.2 89C51单片机定时器/计数器,图5-8 定时器/计数器T0工作方式3逻辑结构框图,5.2 89C51单片机定时器/计数器,在工作方式的情况下,定时/计数器1通常作为串行口的波特率发生器使用,以确定串行通信的速率,当作波特率发生器使用时,只需设置好工作方式,即可自动运行。,图5-9 定时器/计数器T1工作方式3逻辑结构框图,5.2 89C51单片机定时器/计数器,五、定时/计数器的编程和应用定时计数器的初始化编程步骤:(1)工作方式控制字送TMOD寄存器;(2)根据定时时间要求或计数要求计算计数器初值;(3)送计数初值的高八位和低八位到THi和TLi寄存器中;(4)启动定时(或计数),即将TRx置位(设置TCON)。(5)如果工作于中断方式,需要置位EA(中断总开关)及ETx(允许定时/计数器中断)并编中断服务程序。,5.2 89C51单片机定时器/计数器,最大定时时间(fOSC12MHz):方式0:TMAX=2131s=8.192ms方式1:TMAX=2161s=65.536ms方式2、3:TMAX=281s=0.256ms,5.2 89C51单片机定时器/计数器,例5-1 用定时器实现P1.0所接LED每60ms亮或灭一次,设系统晶振为12M。分析:(1)设置定时器的工作方式,然后给定时器赋初值,即进行定时器的初始化。这里选择定时器0,工作于定时方式,工作方式1,即16位定时/计数的工作方式,不使用门控位。(2)工作方式控制字送TMOD。由(1)知定时器的工作方式字TMOD应为00000001B,即0 x01。,5.2 89C51单片机定时器/计数器,(3)定时初值应为65536600005536,由于不能直接给T0赋值,必须将5536转化为十六进制即为0 x15a0,这样可以写出初始化程序:TMOD0 x01;TH00 x15;TL00 xa0;(4)初始化定时器后,要定时器工作,必须将TR0置1,程序中用“TR01;”来实现。可以用中断或查询的方式来使用定时器。,5.2 89C51单片机定时器/计数器,给定时器赋初值的语句也可以采用如下方法:TH0=(65536-2000)/256;TL0=(65536-2000)%256;或 TH0=-2000/256;TL0=-2000%256;,5.2 89C51单片机定时器/计数器,1、查询方式参考源程序:include sbit P1_0=P10;void main(void)P1=0 xff;TMOD=0X01;TH0=0 x15;TL0=0 xa0;TR0=1,while(1)if(TF0=1)TF0=0;TH0=0 x15;TL0=0 xa0;P1_0=P1_0;,5.2 89C51单片机定时器/计数器,2、中断方式参考源程序:include sbit P1_0=P10;void timer0()interrupt 1 TH0=0 x15;TL0=0 xa0;P1_0=P1_0;,void main(void)P1=0 xff;TMOD=0X01;TH0=0 x15;TL0=0 xa0;TR0=1;EA=1;ET0=1;While(1);,5.2 89C51单片机定时器/计数器,例5-2 P1口接有八个发光二极管,编程使八个管依次点亮,每个管亮100ms,设晶振为6MHz。,图5-10 例5-2的电路图,5.2 89C51单片机定时器/计数器,分析:利用T1完成100ms的定时,当P1口线输出“0”时,发光二极管亮,每隔100msP1口输出左移一次,采用定时方式1,先计算计数初值:由于fosc=6M,Tm=2s,因此时间常数的计算为:TH0=(65536-100000/2)/256;TL0=(65536-100000/2)%256;,5.2 89C51单片机定时器/计数器,1、查询方式参考源程序:#include void main(void)P1=0 xfe;/第一只LED亮 TMOD=0 x10;/定时器1方式 TH1=0 x3c;TL1=0 xb0;/装载计数初值 TR1=1;/启动T0,5.2 89C51单片机定时器/计数器,while(1)while(TF1=0);/查询等待TF1置位 P1=1;/定时时间到,下一只LED亮 if(P1=0 x00)P1=0 xfe;TF1=0;/软件清TF1 TH0=(65536-100000/2)/256;TL0=(65536-100000/2)%256;,5.2 89C51单片机定时器/计数器,2、中断方式源程序:#include Timer1()interrupt 3 using 1/T1中断服务程序 P1=1;/下一只LED亮 TH0=(65536-100000/2)/256;/装载计数初值 TL0=(65536-100000/2)%256;void main(void)TMOD=0 x10;/T1工作在定时方式1,5.2 89C51单片机定时器/计数器,P1=0 xfe;/第一只LED亮 TH0=(65536-100000/2)/256;/装载计数初值 TL0=(65536-100000/2)%256;EA=1;ET1=1;/CPU开中断,允许T1中 TR1=1;/启动T1开始定时 while(1);/等待中断,5.2 89C51单片机定时器/计数器,例5.3 若fOSC=12MHz,T1工作于方式1,产生50ms的定时中断,TF1为高级中断源。试编写主程序和中断服务程序,使P1.0产生周期为1s的方波。解:让P1.0每500ms取反一次即可实现。定时器的单次定时时间不可能达到500ms,可让定时器多次定时产生500ms的定时时间,如让T1工作在方式1,单次定时时间为50ms,那么T1中断10次就是500ms的时间。(1)确定定时常数假设使用fOSC的12分频作为计数源,则T计数12/fOSC 12/(12106)1s;时常初值为:216-5010315536=3CB0H;TH1=0 x3c,TL0=0 xb0。,5.2 89C51单片机定时器/计数器,(2)初始化程序 包括T1初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入T1。本例中将初始化操作放在主程序中完成,当程序规模较大时,应编写单独的初始化程序,以利于程序的模块化设计。(3)中断服务程序 中断服务程序除了完成要求的方波产生这一工作之外,还要注意将时间常数重新送入T1中,为下一次产生中断作准备。,5.2 89C51单片机定时器/计数器,程序清单如下(主程序):,#include sbit P1_0=P10;int count=10;/10次T1中断为500msvoid main(void)TMOD=0 x10;/T1方式1 P1_0=0;TH1=0 x3c;/初值 TL1=0 xb0;IE=0 x88;/允许T1中断 IP=0 x08;/TF1中断为高级中断 TCON=0 x20;/启动T1 while(1);/死循环,等待中断,产生方波,5.2 89C51单片机定时器/计数器,程序清单如下(中断服务程序):,void Timer1_ISR(void)interrupt 3 TH1=0 x3c;/重装初值 TL1|=0 xb0;count-;/中断计数 if(count=0)/500ms到,重赋计数初值,P1.0取反 count=10;P1_0=P1_0;,问题:为什么用TL1|=0 xb0;而非TL1=0 xb0?,5.2 89C51单片机定时器/计数器,例5-4 在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮一秒灭一秒周而复始,设fosc=12MHz。分析:当fosc=12MHz时,定时/计数器的最大定时时间为65.536ms,显然不能满足定时1S的要求,解决办法有两种。方法1:利用单片机的T0和T1来实现,即T0工作在定时方式,进行100ms的定时,T1工作在计数方式。控制方式为:T0定时50ms,定时时间到,P1.0取反作为T1的计数脉冲,当T1计10个脉冲正好为1S。硬件连线连线如图5-11所示。,5.2 89C51单片机定时器/计数器,图5-11硬件连线控制示意图,图5-12程序流程图,5.2 89C51单片机定时器/计数器,方法1:采用中断方式#include sbit P1_0=P10;sbit P1_7=P17;void timer0(void)interrupt 1 using 1/T0中断服务程序 P10=P10;/100ms到P1.0反向 TH0=(65536-50000)/256;/重载计数初值 TL0=(65536-50000)%256;,5.2 89C51单片机定时器/计数器,void timer(void)interrupt 3 using 2/T1中断服务 P1_P1_7;/1s到,灯变状态 main()P1_7=0;/置灯初始灭 P1_0=;/保证第一次反向便开始计数 TMOD=0 x61;/T0方式定时,T1方式计数 TH0=(65536-50000)/256;/计数初值 TL0=(65536-50000)%256;,5.2 89C051单片机定时器/计数器,TH1=(256-10);TL1=(256-10);/预置计数初值 IP=0 x08;/置优先级寄存器 EA=1;ET0=1;ET1=1;/开中断 TR0=1;TR1=1;/启动定时计数器*/while(1);/等待中断,5.2 89C51单片机定时器/计数器,方法2:用T0定时,软件计数的方法。采用中断定时50ms,软件计数器count计数20次来实现1S定时,程序如下:#include sbit P1_7=P17;bit flag=1;unsigned char count=0;void timer0(void)interrupt 1 using 1 count+;if(count=20),5.2 89C51单片机定时器/计数器,count=0;/1S时间到。计数器count清0;flag=0;/1S时间到。标准位flag清0;TH0=(65536-50000)/256;/重载计数初值 TL0=(65536-50000)%256;main()P1_7=0;/置灯初始灭 TMOD=0 x01;/T0方式定时,5.2 89C51单片机定时器/计数器,TH0=(65536-50000)/256;/计数初值 TL0=(65536-50000)%256;EA=1;ET0=1;ET1=1;/开中断 TR0=1;while(1)while(flag);/等待中断 P1_7P1_7;/1s到,灯变状态 flag=1;/标志位置1,等待下一个1S,5.2 89C51单片机定时器/计数器,5.3 基于89C51顺序控制系统,一、89C2051顺序控制系统硬件设计,二、89C2051顺序控制系统程序流程图,中断控制程序流程图,5.3 基于89C51顺序控制系统,主程序流程图,5.3 基于89C51顺序控制系统,三、89C2051顺序控制系统软件设计#include sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_7=P17;bit flag=1;bit flag1=0;unsigned char count;,5.3 基于89C51顺序控制系统,void timer0(void)interrupt 1 using 1 count+;if(count=20)count=0;/1S时间到。计数器count清0;flag=0;/1S时间到。标准位flag清0;TH0=(65536-50000)/256;/重载计数初值 TL0=(65536-50000)%256;,5.3 基于89C51顺序控制系统,main()TMOD=0 x01;/T0方式定时 TH0=(65536-50000)/256;/计数初值 TL0=(65536-50000)%256;EA=1;ET0=1;ET1=1;/开中断 P1=0 xff;while(1)if(P3_7=0),5.3 基于89C51顺序控制系统,flag1=1;TR0=1;while(flag1)while(flag);/等待1S flag=1;P1_1=0;P1_3=0;while(flag);/等待1S flag=1;,5.3 基于89C51顺序控制系统,P1_1=1;P1_2=0;while(flag);/等待1S flag=1;P1_2=1;P1_3=1;while(flag);/等待1S flag=1;P1_2=1;P1_3=1;while(flag);/等待1S flag=1;,5.3 基于89C51顺序控制系统,P1_0=0;while(flag);/等待1S flag=1;P1_1=0;P1_2=0;P1_3=0;while(flag);/等待1S flag=1;P1_1=1;P1_2=1;,5.3 基于89C51顺序控制系统,

    注意事项

    本文(《顺序控制系统》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开