单片机基于C五一单片机的超声波导航模块专家讲座_第1页
单片机基于C五一单片机的超声波导航模块专家讲座_第2页
单片机基于C五一单片机的超声波导航模块专家讲座_第3页
单片机基于C五一单片机的超声波导航模块专家讲座_第4页
单片机基于C五一单片机的超声波导航模块专家讲座_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

245

模块功效描述必备知识设计案例

学习内容第13章基于C51单片机超声波导航模块

13相关知识思索练习与拓展训练

单片机基于C五一单片机的超声波导航模块第1页本章概述

1.任务

任务一:超声波距离测量任务二:超声波导航2.要求(1)能够应用超声波准确前方物体距离(2)能够应用超声波测距引导轮式教育机器人航行单片机基于C五一单片机的超声波导航模块第2页245模块功效描述必备知识设计案例

学习内容第13章基于C51单片机超声波导航模块

13相关知识思索练习与拓展训练

单片机基于C五一单片机的超声波导航模块第3页13.1模块功效描述

本案例模块主要内容是:利用超声波传感器作为轮式教育机器人双眼,C51单片机作为轮式教育机器人大脑,按要求设计硬件电路和编写程序,使轮式教育机器人能够随时监控前方障碍物距离。并依据传感器采集数据作出不一样运动策略,经过该项目标学习与实践,能够让读者取得以下知识和技能:

掌握单片机定时/计数器基本原理和应用方法;

掌握超声波传感器基本工作原理和编程应用方法;单片机基于C五一单片机的超声波导航模块第4页245模块功效描述必备知识设计案例

学习内容第13章基于C51单片机超声波导航模块

13相关知识思索练习与拓展训练

单片机基于C五一单片机的超声波导航模块第5页13.2必备知识

13.2.1超声波距离传感器介绍超声波传感器是利用超声波特征研制而成传感器,它是经过传送一个超声波(远高于人听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间输出脉冲来工作。超声波传感器在非接触性测量方面应用非常广泛,如检测液体水位(尤其是含有腐蚀性液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属/非金属探伤等,都能够用到超声波距离传感器。本章应用位差超声波距离传感器作为机器人运动双眼(测距范围是:2厘米至3米),C51单片机作为机器人大脑,随时判断和监控前方障碍物距离。

示意图请见教材P234页图13—1所表示单片机基于C五一单片机的超声波导航模块第6页13.2必备知识

13.2.2位差超声波距离传感器工作时序

位差超声波距离传感器经过发射短超声波爆裂,然后"听"回音来探测物体。经过测量回波脉冲宽度(即时间),就能计算出目标距离,在主机微控制器发送触发脉冲控制下,位差超声波传感器发出一道短40kHz(超声波)爆裂声,此爆裂声在空气中以约1130英尺每秒速度传输,当碰到物体时便反射回到传感器,此时传感器会产生一个输出脉冲,向主机微控制器表示回波被探测,这个脉冲宽度就是对应于爆裂回声返回到传感器所需时间。单片机基于C五一单片机的超声波导航模块第7页13.2必备知识

13.2.2位差超声波距离传感器工作时序

图13-2位差超声波传感器工作时序图单片机基于C五一单片机的超声波导航模块第8页13.2必备知识

13.2.2位差超声波距离传感器工作时序

注意:位差超声波距离传感器在以下情况下不能准确地测量距离:a)与物体距离大于3米.b)与物体表面形成反射角度太小,使声音不能反应回到传感器.c)物体太小以致没有足够强度声音返回到传感器。示意图请见教材P235页图13—3所表示单片机基于C五一单片机的超声波导航模块第9页245模块功效描述必备知识设计案例

学习内容第13章基于C51单片机超声波导航模块

13相关知识思索练习与拓展训练

单片机基于C五一单片机的超声波导航模块第10页13.3设计案例

13.3.1系统设计方案系统采取“MCU+传感器+显示设备+执行机构”总体设计方案,要求MCU对非接触式传感器获取外部距离信息进行计算转换,将得出轮式机器人与前方障碍物距离值送到显示设备显示,并依据程序设定距离阈值控制轮式机器人实现自动导航功效。其中MCU采取当前性价比较高AT89C51单片机;传感器采取“超声波传感器”,以非接触形式测量前方物体距离;显示设备采取LCD1602液晶显示模块;执行机构采取PARALLAX企业生产连续旋转伺服电机,其优点是编程控制方便且不需额外增加驱动电路。系统总体框图以下:图9—1直流伺服电机控制框图单片机基于C五一单片机的超声波导航模块第11页13.3设计案例

13.3.1系统设计方案图9—1直流伺服电机控制框图图13-4系统框图单片机基于C五一单片机的超声波导航模块第12页13.3设计案例

10.3.2硬件电路设计基于C51单片机超声波距离检测电路原理如图13—5所表示。图13-5系统原理图单片机基于C五一单片机的超声波导航模块第13页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序/*=========================================================程序名:distance.c功能:利用超声波传感器测距,并在LCD上显示距离值。===========================================================*/#include"at89x52.h"#include"uart.h"单片机基于C五一单片机的超声波导航模块第14页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序#include<LCD.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay_nµs(uinti);voiddelay_nms(uintn);voidTime0_Init(void);单片机基于C五一单片机的超声波导航模块第15页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序voidmain(void){ uintcount,x,H,L,x1,x2;//定义变量uart_Init();//串口初始化Time0_Init(); //计数器初始化LCM_Init(); //LCD模块初始化printf("ProgramRunning!\n");单片机基于C五一单片机的超声波导航模块第16页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序while(1)//进入循环体 { TL0=0; //计数器低位赋初值0 TH0=0; //计数器高位赋初值0P1_3=0; //置P1_3为0 P1_3=1;//置P1_3为1单片机基于C五一单片机的超声波导航模块第17页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序

delay_nµs(5);//延时5µs P1_3=0;delay_nµs(750); while(!P1_3); TR0=1; while(P1_3); TR0=0; //定时器1计时停顿单片机基于C五一单片机的超声波导航模块第18页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(x>0&&x<400)

单片机基于C五一单片机的超声波导航模块第19页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(0x30+x1);//在LCD上显示距离十位数 Set_xy_LCM(0,1);单片机基于C五一单片机的超声波导航模块第20页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序 Write_Data_LCM(0x30+x2);//在LCD上显示距离显示个位数 Display_List_Char(0,2,"cm");printf("x=%dcm\n",x);//在PC机上显示器上显示所测到距离

} else单片机基于C五一单片机的超声波导航模块第21页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序 printf("noping!!");delay_nms(200);//延时200ms }}单片机基于C五一单片机的超声波导航模块第22页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序 voiddelay_nµs(uinti)//延时nµs{i=i/10;while(--i);}voiddelay_nms(uintn)//延时nms{单片机基于C五一单片机的超声波导航模块第23页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序

n=n+1;while(--n)delay_nµs(900);}单片机基于C五一单片机的超声波导航模块第24页9.3设计案例

10.3.3软件设计

任务一:超声波距离测量本任务是依据超声波传感器时序原理图,应用c51单片机定时/计数器实现对前方物体距离测量并在LCD模块上显示1、源程序voidTime0_Init(void)//计数器0初始化程序{ TMOD|=0x01; //计数器选择工作模式1 TL0=0; //计数器低四位赋初值零 TH0=0; //计数器高四位赋初值零 TR0=0; //停顿计数}单片机基于C五一单片机的超声波导航模块第25页13.3设计案例

13.3.3软件设计2、程序运行按图13-5连接硬件电路,参考第1章介绍操作步骤编译以上程序,将产生可执行文件烧写到轮式教育机器人控制板上单片机程序存放器,开机运行,能够看到LCD显示器上不停显示出前方物体距离值。单片机基于C五一单片机的超声波导航模块第26页13.3设计案例

3、程序设计思绪下面简明分析以上程序设计思绪,程序设计流程以下:图13-6主程序流程图单片机基于C五一单片机的超声波导航模块第27页13.3设计案例

13.3.3软件设计主要分为两步:1、先是依据位差超声波传感器控制时序图,起动位差超声波距离传感器,即经过单片机编程,给超声波传感器信号引脚提供一个连续时间为5µs高电平,然后拉低信号引脚750µs,这么位差超声波传感器就被开启,发出超声爆裂,与此同时,开启单片机定时器开始计数,当超声波碰到物体时会马上反射回来,位差超声波传感器接收器接到回波时,会自动拉低其信号引脚电平,单片机查询到此引脚电平下降沿到来时停顿定时器计数,此时定时器计数值就间接反应了超声波从反射到返回所经历时间。单片机基于C五一单片机的超声波导航模块第28页13.3设计案例

13.3.3软件设计主要分为两步:2、然后读出定时器计数值除以2(思索为何除以2),便得到超声波在碰到被测物体返回时间,依据:距离=速度*时间,就能够计算出前方物体距离,因超声波在常温下空气介质中传输速度大约为344m/s,即29.034µs超声波能传输1cm,所以在程序中用语句x=count/29.034来计算距离值,取得被测距离值后,调用LCD显示函数将距离值在LCD模块上显示出来。单片机基于C五一单片机的超声波导航模块第29页13.3设计案例

13.3.3软件设计

任务二:超声波导航在本任务中,轮式教育机器人依据位差超声波距离传感器测量得“距离”信息进行避障行走;当轮式教育机器人距离前面障碍物小于20cm时,它会向左拐改变行进方向,防止与物体碰撞。1、源程序

/*=========================================================程序名:moveroaming.c功能:利用超声波传感器探测前方物体并引导轮式教育机器人避开障碍物=========================================================*/#include"at89x52.h"#defineuintunsignedint单片机基于C五一单片机的超声波导航模块第30页

#defineucharunsignedcharvoiddelay_nµs(uinti);voiddelay_nms(uintn);voidForward(void);voidLeft_Turn(void);voidRight_Turn(void);voidBackward(void);voidTime0_Init(void);单片机基于C五一单片机的超声波导航模块第31页

intmain(void)//主函数,程序从这里开始运行{ uintcount,x,H,L;//定义无符号整型变量count,x,

Time0_Init();

while(1)//循环 { TL0=0; //计数器低位赋初值0 TH0=0; //计数器高位赋初值0P1_3=0; //置P1_4输出为高电平,其余输出低电平单片机基于C五一单片机的超声波导航模块第32页

P1_3=1; delay_nµs(5);//延时5µsP1_3=0;delay_nµs(750); while(!P1_3); TR0=1; while(P1_3); TR0=0; //定时器1计时停顿 H=TH0; L=TL0;单片机基于C五一单片机的超声波导航模块第33页

count=H*256+L;x=count/29.034; if(x<=20)//假如距离小于20cm时 { Backward();//后退 Left_Turn();//向左转 } else//距离大于等于20cm时 { Forward();//向前走 } delay_nms(30);//延时30ms } }单片机基于C五一单片机的超声波导航模块第34页

voiddelay_nµs(uinti)//延时nµs{i=i/10;while(--i);}voiddelay_nms(uintn)//延时nms{n=n+1;while(--n)delay_nµs(900);}单片机基于C五一单片机的超声波导航模块第35页

voidTime0_Init(void)//计数器初始化{ TMOD|=0x01;//计数器选取方式1 TL0=0; //计数器低位赋初值0 TH0=0; //计数器高位赋初值0 TR0=0;//停顿计数}单片机基于C五一单片机的超声波导航模块第36页

voidForward(void)//申明一个前进子函数{ P1_0=1;//设置P1_0输出高电平 delay_nµs(1700);//延时0.0017sP1_0=0;//设置P1_0输出低电平 P1_1=1;//设置P1_1输出高电平 delay_nµs(1300);//延时0.0013s P1_1=0;//设置P1_1输出低电平 delay_nms(20);//延时20ms}单片机基于C五一单片机的超声波导航模块第37页

voidLeft_Turn(void)//申明一个向左子函数{ uinti; for(i=1;i<=7;i++) { P1_0=1;//设置P1_0输出高电平 delay_nµs(1300);//延时0.0013sP1_0=0;//设置P1_0输出低电平单片机基于C五一单片机的超声波导航模块第38页

P1_1=1;//设置P1_1输出高电平 delay_nµs(1300);//延时0.0013s P1_1=0;//设置P1_1输出低电平 delay_nms(20);//延时20ms }}单片机基于C五一单片机的超声波导航模块第39页

voidBackward(void)//申明一个向后子函数{ uinti; for(i=1;i<=4;i++){ P1_0=1;//设置P1_0输出高电平 delay_nµs(1300);//延时0.0013sP1_0=0;//设置P1_0输出低电平 P1_1=1;//设置P1_1输出高电平 delay_nµs(1700);//延时0.0017s P1_1=0;//设置P1_1输出低电平 delay_nms(20);//延时20ms}}单片机基于C五一单片机的超声波导航模块第40页10.3设计案例

10.3.3软件设计任务二:超声波导航2、程序运行此处依然采取图13-5所表示硬件电路,编译以上程序,将产生可执行文件烧写到轮式教育机器人控制板上单片机程序存放器,开机运行,能够看到轮式教育机器人开始向前行进,当前方20厘米内出现障碍物时,轮式教育机器人先是后退,然后左转,从而防止碰撞。单片机基于C五一单片机的超声波导航模块第41页10.3设计案例

10.3.3软件设计任务二:超声波导航3、程序设计思绪下面简明分析以上程序基本设计思绪,程序设计流程以下:图13-7主程序流程图单片机基于C五一单片机的超声波导航模块第42页13.3设计案例

13.3.3软件设计主要分为两步:1、应用超声波测距,采取与任务一一样方法,取得被测物体距离;2、判断距离是否在20厘米以内,若大与20厘米,调用函数Forward();驱动轮式教育机器人前进,若小于等于20厘米。调用Backward();驱动轮式教育机器人后退一段距离,接着又调用Left_Turn();驱动轮式教育机器人左拐后程序再返回重复以上过程;单片机基于C五一单片机的超声波导航模块第43页245模块功效描述必备知识设计案例

学习内容第13章基于C51单片机超声波导航模块

13相关知识思索练习与拓展训练

单片机基于C五一单片机的超声波导航模块第44页13.4相关知识

13.4.1轮单片机定时器/计数器概述

在工业检测、控制中,很多场所都要用到计数或者定时功效。比如对外部脉冲进行计数、产生准确定时时间、作串行口波特率发声器等。At89C51单片机内部有两个可编程定时器/计数器,以满足这方面需要。它们含有两种工作模式(计数器模式、定时器模式)和四种工作方式(方式0、方式1、方式2、方式3),其控制字均在对应特殊功效存放器(SFR)中,经过对它SFR编程,能够方便选择工作模数和工作方式。定时器/计数器(Timer/Counter)本质上都是加法计数器,当对固定周期脉冲信号计数时是定时器,对脉冲长度不确定信号计数时是计数器。每接收到一个计数脉冲,加法计数器值就加一,当计满时发生溢出,并从0开始继续计数。

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第45页13.4相关知识

13.4.1轮单片机定时器/计数器概述

当设置为定时工作模式时,定时器对89C51片内振荡器输出经12分频后脉冲计数,即每个机器周期使定时器(T/C0或T/C1)数值加1直至计满溢出。当采取12MHz晶振时,一个机器周期为1µs。当设置为计数工作模式时,经过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号产生由1到0下降沿时,定时器值加1.不论时定时还是计数工作模式,定时器T0或T1在对内部时钟或外部事件计数时,都不占用CUP时间,除非定时器/计数器溢出,才可能中止CPU当前操作,计数器计满溢出信号就是定时/计数器输出,该信号使TCON某位(TF0或TF1位)置1,作为定时器/计数器溢出中止标志,定时器/计数器内部结构框图以下列图所表示。

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第46页13.4相关知识

13.4.1轮单片机定时器/计数器概述

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。图13-8定时器/计数器结构框图单片机基于C五一单片机的超声波导航模块第47页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=M-N定时状态:X=M-定时时间/T(T=12÷晶振频率)

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第48页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。

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第49页13.4相关知识

13.4.2与定时/计数器相关特殊功效存放器3、定时器/计数器方式控制存放器TMODTMOD是8位存放器,分为两组,高四位控制T1,低4位控制T0。对TMOD各个位说明:GATE位:门控位。GATE=1时,T0、T1是否计数要受到外部引脚输入电平控制,INT0引脚控制T0,

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第50页13.4相关知识

13.4.2与定时/计数器相关特殊功效存放器INT1引脚控制T1。可用于测量在INT0和INT1引脚出现正脉冲宽度。若GATE=0,即不使能门控功效,定时计数器运行不受外部输入引脚INT0、INT1控制C/位:计数器模式和定时器模式选择位。C/=0,为定时器模式,内部计数器对晶振脉冲12分频后脉冲计数,该脉冲周期等于机器周期,所以能够了解为对机器周期进行计数。从计数值能够求得计数时间,所以称为定时器模式。C/=1,为计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)外部脉冲(负跳变)计数,允许最高计数频率为晶振频率1/24。

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。单片机基于C五一单片机的超声波导航模块第51页13.4相关知识

13.4.2与定时/计数器相关特殊功效存放器

经过上述案例学习和实践,在对单片机定时/计数器编程应用有了直观认识之后,我们下面再来介绍相关单片机定时/计数器更详细内容。M1M0:四种工作方式选择位表13-1定时/计数器工作方式M1M0方式说明00013位定时器(TH8位和TL低5位)01116位定时器/计数器102自动重装入初值8位计数器113T0分成两个独立8位计数器,T1在方式3时停顿工作单片机基于C五一单片机的超声波导航模块第52页13.4相关知识

13.4.3定时器/计数器工作方式方式0方式0下,T0和T1工作在13位定时/计数器方式,由TH高8位和TL低5位组成。当T013位计数器加到全部为1以后,再加1就产生溢出,这时置TCONTF0为1,同时把计数器全部变0,然后从0开始继续计数。图13-9方式0(13位计数器)图13-9方式0(13位计数器)单片机基于C五一单片机的超声波导航模块第53页13.4相关知识

13.4.3定时器/计数器工作方式方式0计数长度M为213次方,初值也是13位二进制数,但要注意是高8位赋值给TH0,低5位前面补足3个0凑成8位赋给TL0。比如,如要求计数值为1000,则初值为:依据:X=M-NX=M-1000=8192-1000=1C18H=1110000011000B即赋初值时,TH0=0xE0,TL0=0x18。单片机基于C五一单片机的超声波导航模块第54页13.4相关知识

13.4.3定时器/计数器工作方式方式1方式1和方式0工作原理基本相同,唯一不一样是T0和T1工作在方式1时是16位计数/定时器。方式1时计数长度M是216次方。16位初值直接拆成高低字节,分别送入TH和TL即可。因为计数长度大,初值计算方便,方式1就定时/计数器最惯用方式,(如在本设计案例中,用就是方式1:TMOD|=0x01;)图13-10方式1(16位计数器)单片机基于C五一单片机的超声波导航模块第55页13.4相关知识

13.4.3定时器/计数器工作方式方式2方式0和方式1最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在重复设置初值问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就针对这个问题而设置,它含有自动重装载功效,即自动加载计数初值,所以也称为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置存放器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置存放器TH以硬件方法自动给计数器TL0重新加载。图13-11方式2(8位自动重装初值方式)单片机基于C五一单片机的超声波导航模块第56页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能够组成二个定时器或者一个定时器和一个计数器。单片机基于C五一单片机的超声波导航模块第57页13.4相关知识

13.4.3定时器/计数器工作方式

4、方式3假如定时/计数器0工作于工作方式3,那么定时/计数器1工作方式就不可防止受到一定限制,因为自己一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,假如设置T1工作在方式3,则T1停顿工作,相当于其它方式时令TR1=0图13-12方式3(两个8位独立计数器)单片机基于C五一单片机的超声波导航模块第58页13.4相关知识

13.4.4定时器/计数器应用1、初始化步骤在应用定时/计数器之前,要对它计数初始化编程,主要是对存放器TCON和TMOD编程以及计算和装载T/C(定时/计数器)计数初值,普通有一下几个步骤:1、确定定时/计数器工作方式——编程TMOD存放器;2、计算定时/计数器计数初值,并装载到TH和TL;3、定时/计数器在中止方式工作时,还必须开CPU总中止EA和对应中止源——编程IE存放器;4、开启定时/计数器——编程TCON中TR1或TR

单片机基于C五一单片机的超声波导航模块第59页13.4相关知识

13.4.4定时器/计数器应用2、应用举例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论