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

    单片机课件第13章基于C51单片机的超声波导航模块.ppt

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

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

    单片机课件第13章基于C51单片机的超声波导航模块.ppt

    ,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,本章概述,1任务 任务一:超声波距离测量任务二:超声波导航2要求(1)能够应用超声波准确前方物体的距离(2)能够应用超声波测距引导轮式教育机器人航行,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,13.1 模块功能描述,本案例模块的主要内容是:利用超声波传感器作为轮式教育机器人的双眼,C51单片机作为轮式教育机器人的大脑,按要求设计硬件电路和编写程序,使轮式教育机器人能够随时监控前方障碍物的距离。并根据传感器采集的数据作出不同的运动策略,通过该项目的学习与实践,可以让读者获得如下知识和技能:掌握单片机定时/计数器的基本原理和应用方法;掌握超声波传感器的基本工作原理和编程应用方法;,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,13.2 必备知识,超声波距离传感器简介,超声波传感器是利用超声波的特性研制而成的传感器,它是通过传送一个超声波(远高于人的听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间的输出脉冲来工作的。超声波传感器在非接触性测量方面的应用非常广泛,如检测液体水位(特别是具有腐蚀性的液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属/非金属探伤等,都可以用到超声波距离传感器。本章应用位差超声波距离传感器作为机器人运动的双眼(测距范围是:2厘米至3米),C51单片机作为机器人的大脑,随时判断和监控前方障碍物的距离。示意图请见教材P234页图131所示,13.2 必备知识,位差超声波距离传感器工作时序,位差超声波距离传感器通过发射短超声波爆裂,然后听回音来探测物体。通过测量回波脉冲的宽度(即时间),就能计算出目标的距离,在主机微控制器发送的触发脉冲的控制下,位差超声波传感器发出一道短40 kHz的(超声波)爆裂声,此爆裂声在空气中以约1130英尺每秒的速度传播,当碰到物体时便反射回到传感器,此时传感器会产生一个输出脉冲,向主机微控制器表示回波被探测,这个脉冲宽度就是对应于爆裂回声返回到传感器所需时间。,13.2 必备知识,位差超声波距离传感器工作时序,图13-2 位差超声波传感器工作时序图,13.2 必备知识,位差超声波距离传感器工作时序,注意:位差超声波距离传感器在下列情况下不能精确地测量距离:a)与物体距离大于3米.b)与物体的表面形成的反射角度太小,使声音不能反映回到传感器.c)物体太小以致没有足够强度的声音返回到传感器。示意图请见教材P235页图133所示,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,13.3 设计案例,系统设计方案,系统采用“MCU+传感器+显示设备+执行机构”的总体设计方案,要求MCU对非接触式传感器获取的外部距离信息进行计算转换,将得出的轮式机器人与前方障碍物的距离值送到显示设备显示,并根据程序设定的距离阈值控制轮式机器人实现自动导航功能。其中MCU采用目前性价比较高的AT89C51单片机;传感器采用“超声波传感器”,以非接触的形式测量前方物体的距离;显示设备采用LCD1602液晶显示模块;执行机构采用PARALLAX公司生产的连续旋转伺服电机,其优点是编程控制方便且不需额外增加驱动电路。系统总体框图如下:,图91 直流伺服电机控制框图,13.3 设计案例,系统设计方案,图91 直流伺服电机控制框图,图13-4 系统框图,13.3 设计案例,10.3.2 硬件电路设计,基于C51单片机的超声波距离检测电路原理如图135所示。,图13-5 系统原理图,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序/*=程序名:distance.c功 能:利用超声波传感器测距,并在LCD上显示距离值。=*/#includeat89x52.h#includeuart.h,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序#include#define uint unsigned int#define uchar unsigned charvoid delay_ns(uint i);void delay_nms(uint n);void Time0_Init(void);,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序void main(void)uint count,x,H,L,x1,x2;/定义变量 uart_Init();/串口初始化 Time0_Init();/计数器初始化 LCM_Init();/LCD模块初始化 printf(Program Running!n);,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序while(1)/进入循环体 TL0=0;/计数器低位赋初值0 TH0=0;/计数器高位赋初值0 P1_3=0;/置P1_3为0 P1_3=1;/置P1_3为1,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序 delay_ns(5);/延时5sP1_3=0;delay_ns(750);while(!P1_3);TR0=1;while(P1_3);TR0=0;/定时器1计时停止,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序H=TH0;L=TL0;H=TH0;L=TL0;count=H*256+L;x=count/29.034;if(x0&x400),9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序 x=x/2;x1=x/10;x2=x%10;Set_xy_LCM(0,0);Write_Data_LCM(0 x30+x1);/在LCD上显示距离的十位数Set_xy_LCM(0,1);,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序Write_Data_LCM(0 x30+x2);/在LCD上显示距离的显示个位数Display_List_Char(0,2,cm);printf(x=%d cmn,x);/在PC机上显示器上显示所测到的距离 else,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序printf(no ping!);delay_nms(200);/延时200ms,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序void delay_ns(uint i)/延时ns i=i/10;while(-i);void delay_nms(uint n)/延时n ms,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序 n=n+1;while(-n)delay_ns(900);,9.3 设计案例,10.3.3 软件设计,任务一:超声波距离测量 本任务是根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示1、源程序 void Time0_Init(void)/计数器0初始化程序TMOD|=0 x01;/计数器选择工作模式1TL0=0;/计数器低四位赋初值零TH0=0;/计数器高四位赋初值零TR0=0;/停止计数,13.3 设计案例,软件设计,2、程序运行 按图13-5连接硬件电路,参考第1章介绍的操作步骤编译以上程序,将产生的可执行文件烧写到轮式教育机器人控制板上的单片机程序存储器,开机运行,可以看到LCD显示屏上不断的显示出前方物体的距离值。,13.3 设计案例,3、程序设计思路 下面简要分析以上程序的设计思路,程序设计流程如下:,图13-6主程序流程图,13.3 设计案例,软件设计,主要分为两步:1、先是根据位差超声波传感器的控制时序图,起动位差超声波距离传感器,即通过单片机编程,给超声波传感器的信号引脚提供一个持续时间为5s的高电平,然后拉低信号引脚750s,这样位差超声波传感器就被启动,发出超声爆裂,与此同时,启动单片机的定时器开始计数,当超声波遇到物体时会立即反射回来,位差超声波传感器的接收器接到回波时,会自动拉低其信号引脚的电平,单片机查询到此引脚的电平下降沿到来时停止定时器计数,此时定时器计数值就间接反应了超声波从反射到返回所经历的时间。,13.3 设计案例,软件设计,主要分为两步:2、然后读出定时器的计数值除以2(思考为何除以2),便得到超声波在遇到被测物体返回的时间,根据:距离=速度*时间,就可以计算出前方物体的距离,因超声波在常温下的空气介质中传播的速度大约为344m/s,即29.034s超声波能传播1cm,所以在程序中用语句x=count/29.034来计算距离值,获得被测距离值后,调用LCD显示函数将距离值在LCD模块上显示出来。,13.3 设计案例,软件设计,任务二:超声波导航 在本任务中,轮式教育机器人根据位差超声波距离传感器测量得的“距离”信息 进行避障行走;当轮式教育机器人距离前面障碍物小于20cm时,它会向左拐改变行 进方向,避免与物体碰撞。1、源程序/*=程序名:moveroaming.c 功 能:利用超声波传感器探测前方物体并引导轮式教育机器人避开障碍物=*/#includeat89x52.h#define uint unsigned int,#define uchar unsigned charvoid delay_ns(uint i);void delay_nms(uint n);void Forward(void);void Left_Turn(void);void Right_Turn(void);void Backward(void);void Time0_Init(void);,int main(void)/主函数,程序从这里开始运行 uint count,x,H,L;/定义无符号整型变量count,x,Time0_Init();while(1)/循环 TL0=0;/计数器低位赋初值0 TH0=0;/计数器高位赋初值0 P1_3=0;/置P1_4输出为高电平,其余的输出低电平,P1_3=1;delay_ns(5);/延时5s P1_3=0;delay_ns(750);while(!P1_3);TR0=1;while(P1_3);TR0=0;/定时器1计时停止H=TH0;L=TL0;,count=H*256+L;x=count/29.034;if(x=20)/如果距离小于20cm时 Backward();/后退 Left_Turn();/向左转 else/距离不小于等于20cm时 Forward();/向前走 delay_nms(30);/延时30ms,void delay_ns(uint i)/延时ns i=i/10;while(-i);void delay_nms(uint n)/延时n ms n=n+1;while(-n)delay_ns(900);,void Time0_Init(void)/计数器初始化TMOD|=0 x01;/计数器选取方式1TL0=0;/计数器低位赋初值0TH0=0;/计数器高位赋初值0TR0=0;/停止计数,void Forward(void)/声明一个前进子函数P1_0=1;/设置P1_0输出高电平delay_ns(1700);/延时0.0017s P1_0=0;/设置P1_0输出低电平P1_1=1;/设置P1_1输出高电平delay_ns(1300);/延时0.0013sP1_1=0;/设置P1_1输出低电平delay_nms(20);/延时20ms,void Left_Turn(void)/声明一个向左子函数 uint i;for(i=1;i=7;i+)P1_0=1;/设置P1_0输出高电平 delay_ns(1300);/延时0.0013s P1_0=0;/设置P1_0输出低电平,P1_1=1;/设置P1_1输出高电平 delay_ns(1300);/延时0.0013s P1_1=0;/设置P1_1输出低电平 delay_nms(20);/延时20ms,void Backward(void)/声明一个向后子函数 uint i;for(i=1;i=4;i+)P1_0=1;/设置P1_0输出高电平 delay_ns(1300);/延时0.0013s P1_0=0;/设置P1_0输出低电平 P1_1=1;/设置P1_1输出高电平 delay_ns(1700);/延时0.0017s P1_1=0;/设置P1_1输出低电平 delay_nms(20);/延时20ms,10.3 设计案例,10.3.3 软件设计,任务二:超声波导航 2、程序运行 此处仍然采用图13-5所示的硬件电路,编译以上程序,将产生的可执行文件烧写到轮式教育机器人控制板上的单片 机程序存储器,开机运行,可以看到轮式教育机器人开始向 前行进,当前方20厘米内出现障碍物时,轮式教育机器人先 是后退,然后左转,从而避免碰撞。,10.3 设计案例,10.3.3 软件设计,任务二:超声波导航 3、程序设计思路 下面简要分析以上程序的基本设计思路,程序设计流程如下:,图13-7主程序流程图,13.3 设计案例,软件设计,主要分为两步:1、应用超声波测距,采用与任务一同样的方法,获得被测物体距离;2、判断距离是否在20厘米以内,若大与20厘米,调用函数Forward();驱动轮式教育机器人前进,若小于等于20厘米。调用Backward();驱动轮式教育机器人后退一段距离,接着又调用Left_Turn();驱动轮式教育机器人左拐后程序再返回重复以上过程;,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,13.4 相关知识,轮单片机定时器/计数器概述,在工业检测、控制中,很多场合都要用到计数或者定时功能。例如对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发声器等。At8951单片机内部有两个可编程的定时器/计数器,以满足这方面的需要。它们具有 两种工作模式(计数器模式、定时器模式)和四种工作方式(方式0、方式1、方式2、方式3),其控制字均在相应的特殊功能寄存器(SFR)中,通过对它的SFR的编程,可以方便的选择工作模数和工作方式。定时器/计数器(Timer/Counter)本质上都是加法计数器,当对固定周期的脉冲信号计数时是定时器,对脉冲长度不确定的信号计数时是计数器。每接收到一个计数脉冲,加法计数器的值就加一,当计满时发生溢出,并从0开始继续计数。,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,轮单片机定时器/计数器概述,当设置为定时工作模式时,定时器对8951片内振荡器输出的经12分频后的脉冲计数,即每个机器周期使定时器(T/C0或T/C1)的数值加1直至计满溢出。当采用12MHz晶振时,一个机器周期为1s。当设置为计数工作模式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号产生由1到0的下降沿时,定时器的值加1.不管时定时还是计数工作模式,定时器T0或T1在对内部时钟或外部事件计数时,都不占用CUP时间,除非定时器/计数器溢出,才可能中断CPU的当前操作,计数器的计满溢出信号就是定时/计数器的输出,该信号使TCON的某位(TF0或TF1位)置1,作为定时器/计数器的溢出中断标志,定时器/计数器的内部结构框图如下图所示。,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,轮单片机定时器/计数器概述,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,图13-8 定时器/计数器结构框图,13.4 相关知识,13.4.2 与定时/计数器有关的特殊功能寄存器,1、计数寄存器TH和TL 定时器/计数器T/C0和T/C1都是16位寄存器,由TH高8位和TL低8位构成,在特殊功能寄存器(sfr)中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1,定时器/计数器T/C0和T/C1的初值分别通过TH0/TL0和TH1/TL1来设置,加法计数器是计满溢出时才申请中断,所以在给定时器/计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值,设最大值为 M,计数值为N,初值为 X,则X的计算方法如下:计数状态:X=MN 定时状态:X=M定时时间/T(T=12晶振频率),通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,13.4.2 与定时/计数器有关的特殊功能寄存器,2、定时器/计数器控制寄存器TCON 对TCON的相关位的说明:TF0、TF1:T0、T1溢出标志位。TF0、TF1分别是定时器/计数器T0、T1 的溢出标志位,加法计数器计满溢出时置 1,申请中断,在 中断响应后自动复 0。TF产生的中断申请是否被接受,还需要由中断是否开放来决定。TR1、TR0:T1、T0 的运行控制位。TR1、TR0 分别是定时器/计数器T1、T0 的运行控制位,通过软件置1后,定时器/计数器才开始工作,(如本设计案例中用到定时器T0,启动时用语句:TR0=1;停止时用语句:TR0=0;)在系统复位时被清0。,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,13.4.2 与定时/计数器有关的特殊功能寄存器,3、定时器/计数器方式控制寄存器TMOD TMOD是8位寄存器,分为两组,高四位控制T1,低4位控制T0。对TMOD的各个位的说明:GATE位:门控位。GATE1时,T0、T1是否计数要受到外部引脚输入电平的控制,INT0引脚控制T0,,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,13.4.2 与定时/计数器有关的特殊功能寄存器,INT1引脚控制T1。可用于测量在INT0和INT1引脚出现的正脉冲的宽度。若GATE0,即不使能门控功能,定时计数器的运行不受外部输入引脚INT0、INT1的控制 C/位:计数器模式和定时器模式的选择位。C/0,为定时器模式,内部计数器对晶振脉冲12分频后的脉冲计数,该脉冲周期等于机器周 期,所以可以理解为对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式。C/1,为计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许的最高计数频率为晶振频率的1/24。,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,13.4 相关知识,13.4.2 与定时/计数器有关的特殊功能寄存器,通过上述案例学习和实践,在对单片机定时/计数器的编程应用有了直观认识之后,我们下面再来介绍有关单片机定时/计数器更详细的内容。,M1 M0:四种工作方式的选择位 表13-1 定时/计数器工作方式,13.4 相关知识,13.4.3 定时器/计数器的工作方式,方式0 方式0下,T0和T1工作在13位的定时/计数器方式,由TH的高 8 位和TL的低 5 位组成。当T0的13位计数器加到全部为 1 以后,再加1就产生溢出,这时置TCON的TF0为 1,同时把计数器全部变 0,然后从 0 开始继续计数。图13-9 方式 0(13位计数器),图13-9 方式 0(13位计数器),13.4 相关知识,13.4.3 定时器/计数器的工作方式,方式0的计数长度M为2的13次方,初值也是13位二进制数,但要注意是高8位赋值给TH0,低5位前面补足 3 个 0 凑成 8 位赋给TL0。例如,如要求计数值为1000,则初值为:根据:X=MN XM1000 81921000 1C18H 1110 0000 1 1000B 即赋初值时,TH00 xE0,TL00 x18。,13.4 相关知识,13.4.3 定时器/计数器的工作方式,方式1 方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1时是16位的计数/定时器。方式1时的计数长度M是2的16次方。16位的初值直接拆成高低字节,分别送入TH和TL即可。因为计数长度大,初值计算方便,方式1就定时/计数器最常用的方式,(如在本设计案例中,用的就是方式1:TMOD|=0 x01;),图13-10 方式 1(16位计数器),13.4 相关知识,13.4.3 定时器/计数器的工作方式,方式2 方式0和方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就针对这个问题而设置,它具有自动重装载功能,即自动加载计数初值,所以也称为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。,图13-11 方式 2(8位自动重装初值方式),13.4 相关知识,13.4.3 定时器/计数器的工作方式,4、方式3 在方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器。,13.4 相关知识,13.4.3 定时器/计数器的工作方式,4、方式3 如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,如果设置T1工作在方式3,则T1停止工作,相当于其他方式时令TR10,图13-12 方式 3(两个8位独立计数器),13.4 相关知识,13.4.4 定时器/计数器的应用,1、初始化步骤 在应用定时/计数器之前,要对它计数初始化编程,主要是对寄存器TCON和TMOD的编程以及计算和装载T/C(定时/计数器)的计数初值,一般有一下几个步骤:1、确定定时/计数器的工作方式编程TMOD寄存器;2、计算定时/计数器的计数初值,并装载到TH和T;3、定时/计数器在中断方式工作时,还必须开CPU总中断EA和相应中断源编程IE寄存器;4、启动定时/计数器编程TCON中的TR1或TR,13.4 相关知识,13.4.4 定时器/计数器的应用,2、应用举例 例 已知单片机的晶振频率为fosc=12MHz,应用定时/计数器,在单片机引脚P1_3产生周期为2ms的方波信号。解 周期为2ms的方波,即高低电平各为1ms,用定时/计数器定时1ms,每次时间一到让P1_3取反一次,就可以在该引脚上获得所要波形。因为fosc=12MHz,机器周期=12/12MHz=1s,而定时/计数器在定时模式时就是对fosc的12分频即机器周期进行计数,因此要定时1ms需要计数次数为1000次。所以初值X=MN=65536-1000;下面分别采用中断方式和查询两种方式编程:用定时/计数器0的方式1编程,采用查询方式。,13.4 相关知识,13.4.4 定时器/计数器的应用,#include void main(void)TMOD=0 x01;/设置定时器0,采用方式1TR0=1;/启动定时器T/C0while(1)TH0=(65536-1000)/256;/装载计数初值TL0=(65536-1000)%256;dowhile(!TF0);/查询等待TF0溢出标志P1_3=!P1_3;/P1_3取反TF0=0;/软件清零TF0,13.4 相关知识,13.4.4 定时器/计数器的应用,用定时/计数器0的方式1编程,采用中断方式。#include void timer0(void)interrupt 1 sing 1P1_3=!P1_3;/P1_3取反TH0=(65536-1000)/256;/重装计数初值TL0=(65536-1000)%256;,13.4 相关知识,13.4.4 定时器/计数器的应用,void main(void)TMOD=0 x01;/设置定时器0,采用方式1 TH0=(65536-1000)/256;/装载计数初值TL0=(65536-1000)%256;EA=1;ET0=1;TR0=1;/启动定时器T/Cdowhile(1);/等待定时器溢出中断 编译以上程序,将产生的HEX文件加载到轮式教育机器人控制板单片机内部程序存储器,开机运行,用示波器测量P1_3引脚,可以观察到周期为2ms方波信号输出。,2,4,5,模块功能描述,必备知识,设计案例,学习内容,第13章 基于C51单片机的超声波导航模块,1,3,相关知识,思考练习与拓展训练,13.5 思考练习与拓展训练,思考练习,1、89C51定时/计数器的定时方式和计数方式的区别是什么?2、设fosc=12MHz,89C51定时器T0的方式0、方式1、方式2的最大定时时间分别是多少?3、编程定时器T0,使单片机产生频率为100Hz,占空比为2:1的矩形波信号,设fosc=12MHz。,13.5 思考练习与拓展训练,拓展训练,任务:设计基于89C51单片机的模拟航标灯系统,使其具有:白天航标灯熄灭;夜间按亮2s,灭2s的规律间歇发光的功能。任务要求:设计满足任务要求的硬件电路;给出程序的设计思路,画出详细的程序流程框图;给出程序清单并加上必要的注释;,

    注意事项

    本文(单片机课件第13章基于C51单片机的超声波导航模块.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开