资源描述
,*,出版社 理工分社,单片机应用技术项目教程版,项目,9,测速表,知识目标:,1,定时器的结构;,2,定时,/,计数的区别;,3,定时器结合中断处理程序的应用。,技能训练目标:,1.,了解霍尔传感器的使用方法;,2,熟练使用定时,/,计数器,T0,、,T1,;,3,结合中断的方式,灵活应用,T0,、,T1,。,转速测量表,设计要求:,设计一测速系统,以霍尔元件为测速的敏感元件,以,8051,单片机为信号处理控制器,测量当前转盘的速度,并将值通过,4,位数码管实时显示,。,转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量。转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有,M,法,(,测频法,),、,T,法,(,测周期法,),和,M/T,法,(,频率周期法,),。,M,法是利用一段时间间隔内产生的输出脉冲数来确定转速。,T,法是通过测量光电编码器两个相邻脉冲的时间间隔,即脉冲周期来确定转速。,而,M/T,法相对于其它两种方法有较高的精度,但它的实时性差。由于该系统采用灵敏性和可靠性很高的光电传感器件进行速度采集,因此采用,M,法,(,测频法,),。转速是以单位时间内转数来衡量,,在变换过程中多数是有规律的重复运动。光电采集的输出脉冲信号,其频率和转速成正比。,该测速系统以,AT89C51,单片机接收霍尔传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器,/,计数器进行,定时和计数,,根据计算出电机转速送到通过,4,位数码管实时显示。首先,将一颗小磁钢贴在测速的轮盘边缘,注意其,S,靠外(由,A3144,的特性决定),霍尔传感器,A3144,解决轮盘安装固定,然后将,A3144,的输出信号输入到单片机用于显示当前转速。系统框图如图,9-1,。,图,9,1,转速测量系统框图,图,9-2,霍尔传感器测试原理,开关型霍尔传感器,A3144,测量原理,如图,9-2,。,在,MCS-51,单片机的控制应用系统中,常用的定时方法有:,软件定时、硬件定时、可编程定时器,。软件定时是通过执行一个循环程序来进行时间延迟,时间精确,不需要附加其它硬件电路;系统硬件定时是由硬件电路完成,无需占用,CPU,的时间;,可编程定时器通过对系统时钟的计数来实现,其计数值通过程序设定,并且通过改变计数值来改变定时的时间,,比较方便。,本项目介绍的定时器,/,计数器为可编程定时器,/,计数器,通过编程可用来实现定时控制、延时、信号发生、检测信号等。另外,该定时器,/,计数器还可以作为串行通信中波特率发生器,。,2.,定时,/,计数方法,理解两种,“,工作模式,”,-,“,定时,”,&,“,计数,”,共同点,:都是对脉冲加,1,计数,不同点,:定时,-,对内部机器脉冲计数,计数,-,对外部脉冲计数,t=T*n,脉冲数,定时时间,周期,设定的加入量,量筒加水的过程类比说明定时,/,计数过程,最大值,80ml,定时:,初始值,35ml,量筒加水的过程类比说明定时过程,设定初值,15536,工作方式,1,时,,16,位计数器最大值,65535,,满时,“,溢出,”,计,50000,次,50ms,给寄存器,TH0,、,TL0,赋值,TH0=0 x3C,;,TL0=0 xB0,;,量筒加水的过程类比说明计数过程,读取当前的计数值,设定计数初值,一、定时,/,计数器的结构,MCS-51,单片机内部有两个,16,位的可编程定时器,/,计数器,,称为定时器,0,(,T0,)和定时器,1,(,T1,),,可以通过编程选择其作为定时器使用或作为计数器使用。此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。,图,9,3,定时,/,计数器逻辑结构图,1,、定时,/,计数器的工作模式,“,定时,/,计数器,”,有两种工作模式,一种是,定时,模式,一种是,计数,模式。,作为,定时器,时,是以,内部机器周期的脉冲,作为基准脉冲,通过计基准脉冲的数量来实现定时功能;,作为,计数器,时,是对芯片引脚,T0(P3.4),或,T1(P3.5),上的输入脉冲进行计数,利用,外部脉冲的下降沿,触发计数,每输入一个脉冲,加法计数器加,1,,且外部脉冲的最高频率不能超过时钟频率的,1/24,。,TMOD,是定时,/,计数器的工作方式寄存器,其地址为,89H,,格式如图,9-4,。,图,9,4,方式寄存器,TMOD,2,、方式寄存器,TMOD(Timer Moden),掌握四种,“,工作方式,”,,见表,9-1,M1 M0,工作方式,功能说明,0 0,方式,0,13,位计数器,0 1,方式,1,16,位计数器,1 0,方式,2,初值自动重载,8,位计数器,1 1,方式,3,T0,:分为两个,8,位计数器;,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-4,控制寄存器,TCON,溢出中断标志位?,3,、,控制寄存器,TCON(Timer controler),二、定时,/,计数器的工作方式,首先,以,T0,为例,理解掌握工作方式,1,的应用。,=,主要从以下几个寄存器的设置入手:,TMOD-,用于工作模式的设置,TH0,TL0-,存储定时,/,计数值,TR0,(,TCON,的,D4,位),-,开始,/,停止位,TF0,(,TCON,的,D5,位),-,”,溢出,”,标志位,1,工作方式0,-13,位定时,/,计数方式,图9-5工作方式0逻辑电路结构,1,工作方式0,-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,所示:,13,位初值的设置,图,9-6,方式,0,的初值设定,2,工作方式,1-16,位定时,/,计数方式,图9-7,工作方式1逻辑电路结构,16,位初值的设置,例如:需要定时,50ms,,则计数次数为,1ms/1us=50000,次。那么,T0,的初值应设为,X=M-,计数值,=65536-50000=15536=3CB0H=0011 1100 1011 0000B,。,由于采用,16,定时器,直接设置,X=3CB0H,。用语句表达,分配到高,8,位的,TH0,和低,8,位的,TL0,,写为:,TH0=0 x3c;,TL0=0 xB0;,3,工作方式,2-8,位自动重载初值方式,图9-8工作方式2逻辑电路结构,4,工作方式,3,图9-9工作方式3逻辑电路结构,三,.,定时,/,计数器的使用,1,、单片机的定时,/,计数可以采用,查询方式,或者,中断方式,来实现。,2,、初始化程序:,由于定时,/,计数器的功能是由软件编程确定的,所以,在使用定时器,/,计数前必须对其进行初始化。,初始化,骤如下:,(1),确定工作方式,对,TMOD,赋值。,如赋值语句为:,TMOD=0 x10;,表明定时器,1,工作在方式,1,,且工作在定时器方式。,(2),预置定时或计数的初值,直接将初值写入,TH0,、,TL0,或,TH1,、,TL1,。,定时,/,计数器的初值因工作方式的不同而不同。假设最大计数值为,M,,则各种工作方式下的,M,值如下,方式,0,:,2,13,=8192,方式,1,:,2,16,=65536,方式,2,:,2,8,=256,方式,3,:定时器,0,分成两个,8,位计数器,所以两个定时器的,M,值均为,256,。,由于定时器,/,计数器工作的实质是做,“,加,1,”,计数,所以,当最大计数值,M,值已知时,,初值,X,可计算如下:,X=M,计数值,(3),根据需要开启定时器,/,计数器中断,可以直接对,IE,寄存器赋值。,(4),启动定时器,/,计数器工作,将,TR0,或,TR1,置,“,1,”,。,GATE=0,时,直接由软件置位启动;,GATE=1,时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。操作为:,TR1=1,。,练习,1,:分别采用查询法和中断法,利用定时器,T0,,写出,10ms,延时的子程序,void delay(),/*,一:工作模式设置,TMOD=0 x01;,/,对,T0,而言,纯软件启动、定时模式,工作方式,1,/*,二、赋予初值*,/,TH0=0 x3c;,TL0=0 xbo;,/*,三、开始定时*,TR0=1,;,/,启动计数器,/*,四、用查询法查看定时器溢出否*,/,while(TF0=0);,/,查询,TF0=0,?,/*,查询法实现,50ms,延时*,/,中断法,初始化程序段:,/*,一:工作模式设置,/*/,TMOD=0 x01;,/,对,T0,而言,纯软件启动、定时模式,工作方式,1,/*,二、赋予初值*,/,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,:对计数模式的理解,用按键模拟外部脉冲,实现单片机对外部脉冲计数,即按键按下一次,数码管上计数值加一。,见仿真演示:,【,活动一,】,硬件电路设计,【,活动二,】,软件设计,算法分析,采用定时计数的方法,用,T0,定时,100ms,,将外部脉冲接入,T1(P3.5),,在固定的,100ms,时间内,T1,计外部脉冲的数量,X,,即可算得该脉冲的频率,。,。,2,程序设计,1,启动,Keil uVision4,软件,创建新工程:,CH9.UVPROJ,,,CPU,选择,Atmel 89C52,。,2,对工程的属性进行设置:目标属性中选择,“,生成,HEX,文件,”,。,3,编写参考源程序,ch9.c,,以,C,为扩展名保存在工程文件夹中。,4,将参考源程序加入程序组:鼠标右键单击程序组图标,加入文件组。,5,调试:进入调试状态,期间可能需要修改参考源程序,直到没有语法错误为止。打开相应窗口,运行程序,观察运行结果。,三、程序仿真与调试,转速测量表实物图,四、,实物制作,。,2,程序设计,考核项目,考核内容,技术要求,评分,标准,得分,备注,总体设计,任务分析,方案设计,软件和硬件功能划分,任务明确(,5,分);,方案设计合理、有新意(,10,分);,软件和硬件功能划分合理(,5,分);,20,分,硬件设计,片内器件分配,;,电路原理图设计;,电路制作;,片内器件分配正确、合理(,5,分);,电路原理图设计正确(,10,分);,电路制作:布线正确、整齐、合理(,5,分);,20,分,软件设计,算法和数据结构设计;,流程图设计;,编程;,算法和数据结构设计正确、合理(,5,分);,流程图设计正确、简明;(,5,分);,编程正确、有新意(,10,分);,20,分,系统仿真与调试,调试顺序;,错误排除;,
展开阅读全文