第7章定时器1_第1页
第7章定时器1_第2页
第7章定时器1_第3页
第7章定时器1_第4页
第7章定时器1_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 MCS - 51单片机内部定时器/计数器第第7章章 MCS - 51单片机内部定时器单片机内部定时器/ 计数器计数器7.1 定时器定时器/计数器的结构及工作原理计数器的结构及工作原理 7.2 方式和控制寄存器方式和控制寄存器 7.3 工作方式工作方式7.4 定时器定时器/计数器应用举例计数器应用举例 第7章 MCS - 51单片机内部定时器/计数器 加法计数器是计满溢出时才申请中断加法计数器是计满溢出时才申请中断, 所以在给计数器所以在给计数器赋初值时赋初值时, 不能直接输入所需的计数值不能直接输入所需的计数值, 而应输入的是计数而应输入的是计数器计数的最大值与这一计数值的差值。器计数

2、的最大值与这一计数值的差值。 7.1 定时器定时器/计数器的结构及工作原理计数器的结构及工作原理 第7章 MCS - 51单片机内部定时器/计数器7.2 方式和控制寄存器方式和控制寄存器 一、一、 定时器定时器/计数器的方式寄存器计数器的方式寄存器TMOD 图图 7.1 TMOD各位定义各位定义 第7章 MCS - 51单片机内部定时器/计数器1. M1M0工作方式控制位工作方式控制位 表表 7.1 工作方式选择表工作方式选择表 M1 M0 方式方式说说 明明0 0013 位定时器位定时器(TH的的 8 位和位和TL的低的低 5 位)位) 0 1117 位定时器位定时器/计数器计数器 1 02

3、自动重装入初值的自动重装入初值的 8 位计数器位计数器 1 13 T0 分成两个独立的分成两个独立的 8 位计数器位计数器, T1 在方式在方式 3 时停止时停止工作工作 第7章 MCS - 51单片机内部定时器/计数器 2. C/T 定时器方式或计数器方式选择位定时器方式或计数器方式选择位 若若C/T=1时时, 为计数器方式为计数器方式; C/T = 0时时, 为定时器方式。为定时器方式。 3. GATE 定时器定时器/计数器运行门控标志位计数器运行门控标志位 当当GATE=1时时, 只有只有INT0 (或或INT1)引脚为高电平且引脚为高电平且TR0(或或TR1 )置置 1 时时, 相应的

4、定时器相应的定时器 /计数器才被选通工作计数器才被选通工作, 这时可用于测量在这时可用于测量在INTx端出现的正脉冲的宽度。若端出现的正脉冲的宽度。若GATE=0, 则只要则只要 TR0 (或或 TR1)置置 1, 定时器定时器 /计数器就被选计数器就被选通通, 而不管而不管 INT0 (或或 INT1)的电平是高还是低。的电平是高还是低。 第7章 MCS - 51单片机内部定时器/计数器 二、二、 定时器定时器/计数器控制寄存器计数器控制寄存器TCON TF0、TF1分别是定时器分别是定时器/计数器计数器T0、 T1 的溢出标志位的溢出标志位, 加法计数器计满溢出时置加法计数器计满溢出时置

5、1, 申请中断申请中断, 在中断响应后自动复在中断响应后自动复 0。TF产生的中断申请是否被接受产生的中断申请是否被接受, 还需要由中断是否开放还需要由中断是否开放来决定。来决定。 TR1、TR0 分别是定时器分别是定时器 /计数器计数器T1、 T0 的运行控制的运行控制位位, 通过软件置通过软件置 1 后后, 定时器定时器 /计数器才开始工作计数器才开始工作, 在系统复位在系统复位时被清时被清 0。 第7章 MCS - 51单片机内部定时器/计数器7.3 工作方式工作方式 一、一、 方式方式 0 13 位定时器位定时器(TH的的 8 位和位和TL的低的低 5 位)位)定时时间定时时间T=12

6、/fosc*(213-a)us a是计数初值是计数初值二、二、 方式方式1 17位计数器位计数器定时时间定时时间T=12/fosc*(217-a)us a是计数初值是计数初值第7章 MCS - 51单片机内部定时器/计数器三、方式三、方式 2初始常数自动重装载初始常数自动重装载定时时间定时时间T=12/fosc*(28-a)us a是计数初值是计数初值 四、四、 方式方式 3 两个两个 8 位独立计数器位独立计数器定时时间定时时间T=12/fosc*(28-a)us a是计数初值是计数初值第7章 MCS - 51单片机内部定时器/计数器7.4 定时器定时器/计数器应用举例计数器应用举例 一、一

7、、 方式方式 0 的应用的应用例例1:设定时器设定时器T0选择工作方式选择工作方式0,定时时间,定时时间1ms, fosc=7MHZ,确定确定T0的初值并计算该方式下最大的定时时间的初值并计算该方式下最大的定时时间T值。值。解:定时时间解:定时时间T1ms,根据公式,根据公式T=12/fosc*(213-a)us 解得解得a=77921E0CH000 11110000 01100B所以所以TH00F0H,TL0=0CHTmax12/fosc*(213-0)us =17.384ms第7章 MCS - 51单片机内部定时器/计数器例例2:利用定时器利用定时器T0选择工作方式选择工作方式0,产生,产

8、生1ms的定时,在的定时,在P1.0引脚上输出周期为引脚上输出周期为2ms的方波,的方波, fosc=12MHZ,编程采用查询方编程采用查询方式实现该功能。式实现该功能。1. TMOD 0000 0000B=00H2. 由公式由公式T=12/fosc*(213-a)us 解得解得 a=7192=1C1BH=000 11100000 11000B 所以所以TH00E0H,TL0=18H3. MOV TMOD, #00H SETB TR0 LOOP: MOV TH0,#0E0H MOV TL0,#18H第7章 MCS - 51单片机内部定时器/计数器WAIT: JNB TF0,WAIT CPL P

9、1.0 CLR TF0 SJMP LOOP第7章 MCS - 51单片机内部定时器/计数器C语言程序参考如下 #include sbit P1_0=P10; void main( ) char i; TMOD=0 x00; TH0=0 xE0;TL0=0 x18; TR0=1; for(; ;) TH0=0 xE0; TL0=0 x18;第7章 MCS - 51单片机内部定时器/计数器 do while(!TF0) P1_0=!P1_0;TF0=0; 第7章 MCS - 51单片机内部定时器/计数器二二. 方式方式1的应用的应用例例1:用定时器用定时器T1产生一个产生一个50Hz的方波,由的方

10、波,由P1.0输出。用输出。用查询方式,设查询方式,设fosc=12MHz。解:解:T1/5020ms 定时时间定时时间t10ms 由由t=12/fosc*(217-a)us 得得a55537D8F0H TH1=D8H, TL1=F0H MOV TMOD, #10H SETB TR1LOOP: MOV TH1, #0D8H MOV TL1, #0F0H第7章 MCS - 51单片机内部定时器/计数器WAIT: JNB TF1, WAIT CLR TF1 CPL P1.0 SJMP LOOP三三. 方式方式2的应用的应用 方式方式 2 是定时器自动重装载的操作方式是定时器自动重装载的操作方式,

11、在这种方式下在这种方式下, 定时器定时器0和和1的工作是相同的的工作是相同的, 它的工作过程与方式它的工作过程与方式0、方式、方式 1 基本相同基本相同, 只不过在溢出的同时只不过在溢出的同时, 将将 8 位二进制初值自动重位二进制初值自动重装载装载, 即在中断服务子程序中即在中断服务子程序中, 不需要编程送初值。不需要编程送初值。 第7章 MCS - 51单片机内部定时器/计数器例例1:用定时器用定时器T1的工作方式的工作方式2,对外部信号计数,要求,对外部信号计数,要求计满计满100次则将次则将P1.0端取反,设端取反,设fosc=12MHz。查询方式。查询方式由公式由公式 计数次数计数次

12、数28a,得,得a1579CH MOV TMOD, #70H SETB TR1 MOV TH1, #9CH MOV TL1, #9CH WAIT: JNB TF1, WAIT CLR TF1 CPL P1.0 SJMP WAIT第7章 MCS - 51单片机内部定时器/计数器/*文件名:文件名:Lesson5-2.c*版版 本:本:V2.0_C*功功 能:能:P10、P11口控制红色口控制红色LED和绿色和绿色LED交替交替1秒亮灭秒亮灭(定时器定时器)*创创 建:吴文波建:吴文波*/#include sbit P10=P10;sbit P11=P11;unsigned char data t

13、ime_1s,sn;/*中断方式中断方式第7章 MCS - 51单片机内部定时器/计数器*函数名:函数名:Timer1Init*功功 能:能:Timer1Init实现实现Timer1初始化状态初始化状态 *输输 入:无入:无*返返 回:无回:无*函数名:函数名:Timer1(定时器定时器1中断服务函数中断服务函数)*功功 能:能:Timer1实现中断实现中断100ms(晶振晶振6M) *输输 入:入:time_1s*返返 回:回:time_1s*说说 明:定时器明:定时器1实现的定时无法直接达到实现的定时无法直接达到1s*/void Timer1Init(void)TMOD=0 x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1;TR1=0;第7章 MCS - 51单片机内部定时器/计数器 void Timer1() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; time_1s+; if(time_1s=10) TR1=0; time_1s=0;

温馨提示

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

评论

0/150

提交评论