网站大量收购独家精品文档,联系QQ:2885784924

第6章AT89S51单片机的定时器(精品·公开课件).ppt

第6章AT89S51单片机的定时器(精品·公开课件).ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT89S51单片机的定时器/计数器 思考:单片机系统实现定时功能的方法? 思考:单片机系统实现定时功能的方法? 本章主要内容: 6-1.定时器概述 6-2.定时器的控制 6-3.定时器的4种模式及其应用 6-4.定时器/计数器综合应用举例 6.1 定时器概述 AT89S51单片机有2个16位的可编程定时器/计数器,称为定时器/计数器0和定时器/计数器1,分别由两个8位的特殊功能寄存器TH0、TL0和TH1、TL1组成。 用于定时控制、延时、外部事件计数和检测等场合。 每个定时器可由软件设置为定时工作方式或技术工作方式及其它灵活的可控功能方式,这些功能由TMOD和TCON所控制。 定时器/计数器的结构和工作原理 定时器/计数器的结构 定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 计数器工作原理 计数器工作原理 计数器输入的计数脉冲源 系统的时钟占当期输出脉冲经12分频后产生,通过T0或T1引脚对外部脉冲信号计数。 计数过程 每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 计数器工作原理 定时器工作原理 6.3 定时器的4种模式及应用 计数器工作方式选择 模式0 模式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。 6.3.1 模式1及应用 模式1的计数位数是16位,由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成了16位加1计数器 。 例6-1 用定时器T1产生一个50Hz的方波,由P1.1输出。 方波周期为T=1/50=0.02s=20ms,用T1定时10ms,单片机采用12MHZ晶振,一个机器周期是1us,即是计数器计数10000次。 TH1 = (65536-10000)/256; TL1 = (65536-10000)%256; 用查询方式编程 void main() { TMOD = 0x10;//T1模式1,定时 TR1 = 1; //定时器开始计数 while(1) { TH1 = (65536-10000)/256; TL1 = (65536-10000)%256; // 装入计数初值 while (TF1 != 1); TF1 = 0; //清除T1溢出标志位 P1_1 = ~P1_1; } } 用中断方式编程 初始化程序应该完成以下工作: 1.对TMOD赋值,以确定T0和T1的工作方式。 2.计算初值,并将其写入TH0、TL0或TH1、TL1。 3.中断方式时,则对IE赋值,开放中断。 4.使TR0或TR1置位,启动定时计数器。 程序流程: 程序(主程序) #include reg52.h #define uchar unsigned char #define uint unsigned int sbit P1_1 = P1^1; void main() { TMOD = 0x10;//T1模式1,16位计数器 TH1 = (65536-10000)/256; TL1 = (65536-10000)%256; // 装入计数初值 EA = 1; //开总中断 ET1 = 1; //开定时器1中断 TR1 = 1; //定时器开始计数 while(1); } 程序(定时器1中断服务程序) void timer1_int(void) interrupt 3 { TH0 = (65536-10000)/256; TL0 = (65536-10000)%256; //重新装入计数初值 P1_1 = ~P1_1; } 例题6-2 5.3.2 模式2及其应用 模式2为自动重装初值的8位计数方式。 在模式2下,当计数器计满255(FFH)溢出时,CPU自动把TH 的值装入TL中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。 二、模式 2 工作特点 可以自动重新装载的8位定时器/计数器。 例6-3 当P3

文档评论(0)

秦圈圈 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档