1、 出版社 理工分社单片机应用技术项目教程版项目项目9 9 测速表测速表 出版社 理工分社单片机应用技术项目教程版教学目标教学目标知识目标:1定时器的结构;2定时/计数的区别;3定时器结合中断处理程序的应用。技能训练目标:1.了解霍尔传感器的使用方法;2熟练使用定时/计数器T0、T1;3结合中断的方式,灵活应用T0、T1。出版社 理工分社单片机应用技术项目教程版工作任务工作任务转速测量表转速测量表设计要求:设计一测速系统,以霍尔元件为测速的敏感元件,以8051单片机为信号处理控制器,测量当前转盘的速度,并将值通过4位数码管实时显示。出版社 理工分社单片机应用技术项目教程版项目分析项目分析 转速是
2、电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量。转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有 M 法(测频法)、T 法(测周期法)和 M/T 法(频率周期法)。M 法是利用一段时间间隔内产生的输出脉冲数来确定转速。T法是通过测量光电编码器两个相邻脉冲的时间间隔,即脉冲周期来确定转速。而 M/T 法相对于其它两种方法有较高的精度,但它的实时性差。由于该系统采用灵敏性和可靠性很高的光电传感器件进行速度采集,因此采用 M 法(测频法)。转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动。光电采集的输出脉冲信号,其频率和转速成正比。出版社
3、理工分社单片机应用技术项目教程版项目分析项目分析 该测速系统以AT89C51单片机接收霍尔传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器/计数器进行定时和计数,根据计算出电机转速送到通过4位数码管实时显示。首先,将一颗小磁钢贴在测速的轮盘边缘,注意其S靠外(由A3144的特性决定),霍尔传感器A3144解决轮盘安装固定,然后将A3144的输出信号输入到单片机用于显示当前转速。系统框图如图9-1。出版社 理工分社单片机应用技术项目教程版项目分析项目分析图91 转速测量系统框图 出版社 理工分社单片机应用技术项目教程版项目分析项目分析图9-2霍尔传感器测试原理开关型霍尔传感器A3144测
4、量原理,如图9-2。出版社 理工分社单片机应用技术项目教程版项目分析项目分析 在MCS-51单片机的控制应用系统中,常用的定时方法有:软件定时、硬件定时、可编程定时器。软件定时是通过执行一个循环程序来进行时间延迟,时间精确,不需要附加其它硬件电路;系统硬件定时是由硬件电路完成,无需占用CPU的时间;可编程定时器通过对系统时钟的计数来实现,其计数值通过程序设定,并且通过改变计数值来改变定时的时间,比较方便。本项目介绍的定时器/计数器为可编程定时器/计数器,通过编程可用来实现定时控制、延时、信号发生、检测信号等。另外,该定时器/计数器还可以作为串行通信中波特率发生器。2.2.定时定时/计数方法计数
5、方法 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台理解两种理解两种“工作模式工作模式”-“-“定时定时”&“&“计数计数”共同点:都是对脉冲加 1计数不同点:定时-对内部机器脉冲计数 计数-对外部脉冲计数 t=T*n脉冲数定时时间周期 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台设定的加入量量筒加水的过程类比说明定时量筒加水的过程类比说明定时/计数过程计数过程最大值80ml定时:初始值35ml 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台量筒加水的过程类比说明定时过程量筒加水的过程类比说明定时过程设定初值15536工作方式1时,16位
6、计数器最大值65535,满时“溢出”计50000次50ms给寄存器TH0、TL0赋值TH0=0 x3C;TL0=0 xB0;出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台量筒加水的过程类比说明计数过程量筒加水的过程类比说明计数过程读取当前的计数值设定计数初值 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台一、定时一、定时/计数器的结构计数器的结构 MCS-51单片机内部有两个1616位的可编程定时器位的可编程定时器/计数计数器器,称为定时器,称为定时器0 0(T0T0)和定时器)和定时器1 1(T1T1),),可以通过编程选择其作为定时器使用或作为计数器使用
7、。此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台图93 定时/计数器逻辑结构图 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1 1、定时、定时/计数器的工作模式计数器的工作模式 “定时/计数器”有两种工作模式,一种是定时模式,一种是计数模式。作为定时器时,是以内部机器周期的脉冲作为基准脉冲,通过计基准脉冲的数量来实现定时功能;作为计数器时,是对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲进行计数,利用外部脉冲的下降沿触发计数,每输入一个脉冲,加法计数器加1,且
8、外部脉冲的最高频率不能超过时钟频率的1/24。出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台 TMOD是定时/计数器的工作方式寄存器,其地址为89H,格式如图9-4。图9 4 方式寄存器TMOD2 2、方式寄存器、方式寄存器TMOD(Timer Moden)TMOD(Timer Moden)出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台掌握四种掌握四种“工作方式工作方式”,见表,见表9-19-1M1 M0M1 M0工作方式工作方式功能说明功能说明0 0方式013位计数器0 1方式116位计数器1 0方式2初值自动重载8位计数器1 1方式3T0:分为两个8位计
9、数器;T1:停止计数表表9-1注:应先以工作方式注:应先以工作方式1为例,掌握其用法,其他几种方式可类推!为例,掌握其用法,其他几种方式可类推!出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台 0 0 0 0 0 0 0 1 TMOD=0 x01;例:定义定时器T0、T1工作方式(TMOD),要求:T1纯软件启动,工作于定时模式,工作方式为方式0;T0纯软件启动,工作于定时模式,工作方式为方式1。图9-3 方式寄存器TMOD 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台 TCON用于控制定时器的启动、停止、标识定时器的溢出和中断情况,其格式如图9-5。图9-
10、4 控制寄存器TCON溢出中断标志位?3、控制寄存器控制寄存器TCON(Timer controler)TCON(Timer controler)出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台二、定时二、定时/计数器的工作方式计数器的工作方式 首先,以T0为例,理解掌握工作方式1的应用。=主要从以下几个寄存器的设置入手:TMOD-用于工作模式的设置 TH0,TL0-存储定时/计数值 TR0(TCON的D4位)-开始/停止位 TF0(TCON的D5位)-”溢出”标志位 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1 1工作方式工作方式0 0-13-13位定时
11、位定时/计数方式计数方式图9-5工作方式0逻辑电路结构 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台1 1工作方式工作方式0 0-13-13位定时位定时/计数方式计数方式难点:13位初值的设置 例如:需要定时1ms,则计数次数为1ms/1us=1000次。那么T0的初值应设为X=M-计数值=8192-1000=7192=1c18H=0001 1100 0001 1000B由于13位定时器中,TL0的高3位未使用,填写0,TH0占高8位,所以实际得到的初值X=1110 0000 0001 1000B=e018H,语句表达为:TH0=0 xe0;TL0=0 x18;如图9-6所
12、示:出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台13位初值的设置 图9-6方式0的初值设定 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台2 2工作方式工作方式1-161-16位定时位定时/计数方式计数方式图9-7 工作方式1逻辑电路结构 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台16位初值的设置 例如:需要定时50ms,则计数次数为1ms/1us=50000次。那么T0的初值应设为X=M-计数值=65536-50000=15536=3CB0H=0011 1100 1011 0000B。由于采用16定时器,直接设置X=3CB0H。用语
13、句表达,分配到高8位的TH0和低8位的TL0,写为:TH0=0 x3c;TL0=0 xB0;出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台3工作方式2-8位自动重载初值方式图9-8工作方式2逻辑电路结构 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台4工作方式3图9-9工作方式3逻辑电路结构 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台三三.定时定时/计数器的使用计数器的使用1、单片机的定时/计数可以采用查询方式或者中断方式来实现。2、初始化程序:由于定时/计数器的功能是由软件编程确定的,所以,在使用定时器/计数前必须对其进行初始化。初始
14、化骤如下:(1)(1)确定工作方式确定工作方式对对TMODTMOD赋值。赋值。如赋值语句为:TMOD=0 x10;表明定时器1工作在方式1,且工作在定时器方式。(2)(2)预置定时或计数的初值预置定时或计数的初值直接将初值写入直接将初值写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1。定时/计数器的初值因工作方式的不同而不同。假设最大计数值为M,则各种工作方式下的M值如下 方式0:213=8192 方式1:216=65536 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台 方式2:28=256 方式3:定时器0分成两个8位计数器,所以两个定时器的M值均为256。由
15、于定时器/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下:X=M 计数值 (3)(3)根据需要开启定时器根据需要开启定时器/计数器中断计数器中断可以直接对可以直接对IEIE寄存器赋寄存器赋值。值。(4)(4)启动定时器启动定时器/计数器工作计数器工作将将TR0TR0或或TR1TR1置置“1”1”。GATE=0时,直接由软件置位启动;GATE=1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。操作为:TR1=1。出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台练习1:分别采用查询法和中断法,利用定时器T0,写出10ms延时的子程序
16、 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台void delay()/*一:工作模式设置TMOD=0 x01;/对T0而言,纯软件启动、定时模式,工作方式1/*二、赋予初值*/TH0=0 x3c;TL0=0 xbo;/*三、开始定时*TR0=1;/启动计数器/*四、用查询法查看定时器溢出否*/while(TF0=0);/查询TF0=0?/*查询法实现50ms延时*/出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台u 中断法初始化程序段:初始化程序段:/*一:工作模式设置/*/TMOD=0 x01;/对T0而言,纯软件启动、定时模式,工作方式1/*二、赋予初
17、值*/TH0=0 x3c;TL0=0 xb0;/*三、开启总中断及定时中断*/EA=1;ET0=1;/*三、开始定时*TR0=1;/启动计数器while(1);/实际应用中,执行其他处理任务 出版社 理工分社单片机应用技术项目教程版项目知识平台项目知识平台/*中断处理函数*/void int0()interrupt 1 /加入定时时间到后的处理内容,或者是改写标志变量 TH0=0 x3c;/方式1重赋初值 TL0=0 xb0;思考:“查询法”、“中断法”各有什么优劣?出版社 理工分社单片机应用技术项目教程版项目实施项目实施练习2:对计数模式的理解 用按键模拟外部脉冲,实现单片机对外部脉冲计数,
18、即按键按下一次,数码管上计数值加一。见仿真演示:出版社 理工分社单片机应用技术项目教程版项目实施项目实施【活动一活动一】硬件电路设计硬件电路设计图图9.12 转速测量仿真电路转速测量仿真电路XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3
19、.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52R11kR21kR31kR41kR51kR61kR71kR81kQ1NPNQ2NPNQ3NPNQ4NPN(A)注:测转速,仿真时等价于测试脉冲频率注:测转速,仿真时等价于测试脉冲频率输入脉冲,可修改其频率输入脉冲,可修改其频率修改输入脉冲的频率,在数码管上可实时显示当前频率!修改输入脉冲的频率,在数码管上可实时显示当前频率!ABCD 出版社 理工分社单片机
20、应用技术项目教程版项目实施项目实施【活动二活动二】软件设计软件设计算法分析算法分析 采用定时计数的方法,用T0定时100ms,将外部脉冲接入T1(P3.5),在固定的100ms时间内,T1计外部脉冲的数量X,即可算得该脉冲的频率XmssXf101001。出版社 理工分社单片机应用技术项目教程版项目实施项目实施。2 程序设计 出版社 理工分社单片机应用技术项目教程版项目实施项目实施1启动Keil uVision4软件,创建新工程:CH9.UVPROJ,CPU选择Atmel 89C52。2对工程的属性进行设置:目标属性中选择“生成HEX文件”。3编写参考源程序ch9.c,以C为扩展名保存在工程文件
21、夹中。4将参考源程序加入程序组:鼠标右键单击程序组图标,加入文件组。5调试:进入调试状态,期间可能需要修改参考源程序,直到没有语法错误为止。打开相应窗口,运行程序,观察运行结果。三、程序仿真与调试 出版社 理工分社单片机应用技术项目教程版项目实施项目实施转速测量表实物图四、四、实物制作实物制作。2 程序设计 出版社 理工分社单片机应用技术项目教程版项目考核项目考核考核项目 考核内容技术要求评分标准得分备注总体设计任务分析方案设计软件和硬件功能划分任务明确(5分);方案设计合理、有新意(10分);软件和硬件功能划分合理(5分);20分硬件设计片内器件分配;电路原理图设计;电路制作;片内器件分配正
22、确、合理(5分);电路原理图设计正确(10分);电路制作:布线正确、整齐、合理(5分);20分软件设计算法和数据结构设计;流程图设计;编程;算法和数据结构设计正确、合理(5分);流程图设计正确、简明;(5分);编程正确、有新意(10分);20分系统仿真与调试调试顺序;错误排除;调试结果;调试顺序正确(5分);能熟练排除错误(10分);调试后运行正确(5分);20分实训报告书写;内容;图形绘制;结果分析书写规范整齐(5分);内容翔实具体(5分);图形绘制正确、完整、全面(5分);能正确分析实验结构(5分);20分合计100分 出版社 理工分社单片机应用技术项目教程版项目小结项目小结1、两套定时/
23、计数器-T0,T1;2、两种工作模式-定时,计数;3、四种工作方式-工作方式0,1,2,3;4、几个关键寄存器-TMOD,TH0,TL0,TR0,TF0(以T0为例)5、程序设计中,定时/计数器的实现常采用的两种方法-查询法与中断法。2 程序设计 出版社 理工分社单片机应用技术项目教程版复习思考复习思考1霍尔传感器测速项目,除本文所述方法外,也可以将霍尔传感器的输出信号接入单片机的外部中断引脚(P3.2)或(P3.3),计两相邻脉冲间隔时间。无论采用哪种方法都存在测量精度、测量范围、响应速度等问题,请读者自行讨论分析这些指标。2在时钟例子中,如何加入按键扫描,实现设置当前时间和设置闹钟的功能?出版社 理工分社单片机应用技术项目教程版项目拓展项目拓展2 程序设计1.用计数器T1的中断控制蜂鸣器发出1KHz音频2.超声波测距仪的制作