《单片机原理与应用》教材
项目五 制作数字频率计
数字频率计是一种新型的数字测量仪器,以十进制数字来显示被测信号的频率。它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性信号的频率,还可以测量转速、脉搏等物理量,因此数字频率计在测量方面得到广泛的应用。
【知识目标】
?知道走时器/计数器的结构。
?熟记工作方式寄存器TM0D和拉制寄存器TC0N的各位含义。 ?熟记方式0、方式1、方式2和方式3的特点. 【技能目标】
?学会应用片内定时器T0和T1实现定时和计数功能。
?模仿数字频率计参考程序,能编写测量范围为0---9999HZ的数字频率计程序。
任务一 定时器/计数器
【任务目标】
知识1 定时器/计数器的结构
1.说明几个概念 (1)计数
在生活中计数的例子随处可见,例如班级选班委,对同学的选票统计就是计数。对单片机而言,计数功能就是对外部输入脉冲的个数进行统计。
(2)计数器的容量
从生活中的一个例子讲起,例如水龙头没关紧,水-滴一滴地滴入下雨的水盆中,7k盆里的水会逐渐变满,最终会有一滴水使盆中的水变满,若再有一滴水落下,水将会溢出水盆,说明水盆是有容量的,同样计数器也是如此。MCS-51
系列单片机的最大计数是216=65536。如果超出这个计数容量,就会溢出。
(3)定时器
单片机的计数器还可以用于定时,比如说要定时1个小时,相当于秒针走了3600次,在这里,时间就转换为秒走的次数,定时功能就是通过对单片机内部脉冲计数来实现的。
MCS-51系列单片机有两个可编程的定时器/计数器。分别称为定时器/计数器。和定时器/计数器1。它们都是十六位加法计数结构,分别由TH0、TL0和THl、TLl两对8位计数器组成,它们具有定时和计数两种功能。
2.定时器/计数器的结构
为了说明定时器/计数器的工作原理,图5-1给出了单片机定时器/计数器的结构方框图。
(1)计数器
定时器/计数器的核心就是一个加1计数器,它是由两个8位特殊功能寄存器TLi和THi组成(i=0或1)。利用软件的方法可将它们置为不同的工作方式,在不同的工作方式下,其组成结构就不同。
图5-1定时器/计数器的结构方框图
(2)计数脉冲输入
脉冲的来源有两个,一是外部脉冲,另一个是系统的时钟脉冲。当C/T=0时,对内部振荡频率的12分频脉冲计数,实现定时功能:当C/T=1时,对外部Ti的脉冲进行计数,实现计数功能。
(3)控制逻辑
从图5-1中可以看出,当GATE=0时,由TRi控制定时器的启动与停止:当GATE=l时,由TRi与时Ti共同控制定时器的启动与停止。
(4)计数溢出
计数器计数溢出时,TFiCi=l或0)置位(TFi=1),并请求中断,中断响应
后TFi自动请零。
3.工作方式寄存器TM0D和控制寄存器TC0N (1)工作方式寄存器TM0D
工作方式寄存器TM0D是一个可编程的特殊功能寄存器,字节地址为89H,不可位寻址,只能用字节传送指令设置其内容。复位后,TM0D=00H,通过软件可设定定时器/计数器的启动方式、计数脉冲源与工作方式。TM0D寄存器各位的含义如图5-2所示。
图5-2TM0D各位含义
(2)控制寄存器TC0N
控制寄存器TC0N是一个8位特殊功能寄存器,用来存放控制字,字节地址为88H,可以位寻址。低4位与外部中断有关,高4位控制定时器/计数器启动与记录溢出标志。复位后,TC0N=00H,其各位含义如图5-3所示。
图5-3TC0N各位含义
知识2 定时器/计数器的四种工作方式
定时器/计数器有4种工作方式,由TM0D中的M1M2两位来确定。T0/T1在4种工作方式中的方式。、方式1、方式2下的工作原理完全相同,但方式3仅T0具有。
1.方式0
用软件设置TM0D中的MIM0=00时,定时器/计数器工作于方式0,计数长度为13位,由TL噩(TL0)的低5位(高3位未使用)和THl(TH0)的8位构成。T1在方式。下的原理如图5-4所示。
图5-4定时器/计数器TI/T0方式0逻辑图
1)当C/T=0时:定时功能,计数器输入信号为系统晶振的12分频。 当C/T=1时:计数功能,计数器输入信号为外部信号。
2)当GATE=0时:启动控制仅由TRl决定,也就是当TR1=1时启动,当TR同时停止。
当GATE=l时:启动控制由TR1和INT1共同决定,即TR1=1、INT1=1时启动。
3)在方式0下,计数输入信号作用于TL1的低5位产生溢出时向TH1的最低位进位,当13位计数器计满时,控制寄存器TC0N中溢出标志位TF1置“1”,并使13位计数器清零,程序员需对计数器重赋初值。
例5-1T0定时器工作在方式0,要求单片机P1.0输出周期为2ms的方波,设单片机晶振频率为6MHz。
2ms的方波如图5-5所示。高、低电平各为1ms,故只要每隔1ms对P1.0取反一次即可得到这个方波。
定时初值可按式(5-1)计算。
式中,X为初值,T为定时时间(μs)。 由式(5-1)可知:T0定时器的初值X为 X=213-500=8192-500=7692=lE0CH=1111000001100
定时器工作于方式。时,低8位TL0只使用了5位,其余码均计入高8位TH0中,故T0的初值应为:TH0=0F0H,TL0=0CH。程序如下(中断方式)。