单片机应用技术C语言版定时器计数器.ppt
方法1: 初值: C=65536-50000=15536 =3CB0H ∴ TH0=3CH, TL0=B0H * * 方法2 初值: TH0=(65536-N)/256; TL0=(65536-N)%256; N=t/T(计数个数)。 若采用的晶振为11.0592MHz, T=1.09s,则定时50ms时,N=45872 * * 三、 定时器的应用举例 例1 单片机系统晶振频率为12MHz,利用定时器T0的方式2使P1.0口输出周期为0.2ms的方波信号。 分析:每隔0.1ms改变一次P1.0的输出状态,即形成方波。 1、初值计算: 在方式2下:C= 28-100=156=9CH * * 2、C语言程序: #include sbit p1_0=P1^0;//进行位定义 void main ( ) { TMOD=0x02;//T0工作在方式2 TL0=0x9c;//装入计数(重装)初值 TH0=0x9c; EA=1;//允许定时器1中断 ET0=1;//开中断 TR0=1 ;//启动定时器1 while(1); } * * IE (A8H) D7 D6 D5 D4 D3 D2 D1 D0 EA — — ES ET1 EX1 ET0 EX0 中断允许寄存器 * * void time0 ( ) interrupt 1 { p1_0=~p1_0; //取反,产生方波 } 编号 n 所代表的中断源 0 外部中断0 1 定时/计数器0 2 外部中断1 3 定时/计数器1 4 串口 * * 单片机应用技术 (C语言版)第7章 定时器/计数器 * * 第7章 定时器/计数器 目 录 7.1 定时器/计数器的结构及原理 7.2 定时器/计数器的控制 7.3 定时器/计数器的工作方式 7.4 定时器/计数器应用举例 * * 本章主要讨论MCS-51单片机定时器/计数器的逻辑结构和工作原理。内容主要有定时器T0、T1的逻辑结构,工作方式的选择和应用。 本章为单片机的主要内容,也是第8章串行口的学习的基础。 * * 7.1 MCS-51 计数/定时器的原理 实质是计数器,脉冲每次下降沿,计数器加1. 计数脉冲来源于内部的晶振,由于周期极为准确,称定时器。 计数脉冲来源于外部引脚,由于周期一般不准确,称为计数器。 89c51 有2个可独立控制的16位定时器/计数器: T0、T1 +1计数器 溢出 中断 脉冲 控制 开关 计数(定时)周期:机器周期 * * 计数周期的计算: 12MHz晶振:每计一个数的时间为1uS。如:计100个数的时间为100uS。计50000个数的时间为50mS。 11.0592MHz晶振:每计一个数的时间为1.085uS。 * * 几个基本概念 1、计数器的容量:容量一般用二进制的位数表示。 2、加1计数器:每来一个脉冲,计数数值加1。 3、计数器溢出:计数器计数达到容量的最大值时,再来一个脉冲,计数值将回到0,重新计数,且相应的标志位置1,称为“溢出”。 4、计数初值:计数器开始计数的值。 * * 7.1.2 MCS-51定时/计数器的结构 * * MCS-51定时/计数器结构说明: 两个16位的可编程定时器/计数器:定时器/计数器0、1。 每个定时器有两部分构成:THx和TLx 特殊功能寄存器TMOD和TCON ,主要对T0和T1进行控制。 引脚P3.4、P3.5,输入计数脉冲。 特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来。 * * MCS-51定时/计数器的工作原理 定时器/计数器T0、T1 的内部结构简图如下图所示。 C/T=0 中断请求 振荡器 T H x ( 8 位 ) TLx ( 8 位 ) Tx 12 分频 TFx C/T=1 控制 TRx * * 从上图可以看出: 定时器的实质是一个加1计数器。 C/T =0 ,为定时器方式。 计数信号由片内振荡电路提供,振荡脉冲12分频送给计数器,每个机器周期计数器值增1。 * * C/T =1 ,为计数方式。 计数信号由Tx引脚(P3.4、P3.5)输入,每输入一有效信号,相应的计数器中的内容进行加1。 控制信号TRx=1时,定时器启动。 当定时器由全1加到全0时计满溢出,从0开始继续计数,TFx=1 ,向CPU申请中断。 * * 7.2.2 T0、T1的控制寄存器TCON TCON (88H) D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 定时器的控制寄存器 TF1、T