单片机原理与应用——基于AT89S51+Proteus仿真 第2版 课件 第5、6章 单片机的中断系统、单片机的定时计数器.ppt

单片机原理与应用——基于AT89S51+Proteus仿真 第2版 课件 第5、6章 单片机的中断系统、单片机的定时计数器.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*在计算机与外部设备交换信息时,存在高速的CPU和低速的外设之间的矛盾。为了保证CPU送来的数据不至于丢失,可以采取两种办法:查询方式和中断方式。*强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混*强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混*强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混*强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混*强调:中断返回与子程序返回的差异在于优先级激活触发器的自动复位,两者不能搞混**第6章单片机的定时/计数器分析:此例题是计数应用,计数值是100,因此我们用T1工作于计数方式2,则:TMOD=01100000B=60H。因为计数值为100,所以计数器初值为:256-100=156。参考程序如下第6章单片机的定时/计数器(3)方式0使用13位的定时/计数器(THi7-0+TLi4-0)定时时间t=(213-a)×12/fosc(μs)计数初值a=213-t×fosc/1212MHz时的最大定时量t=213μs=8.192ms第6章单片机的定时/计数器第6章单片机的定时/计数器除计数器位数不同外,方式0与方式1的逻辑结构并无差异。方式0采用13位计数器是为了与早期产品MCS-48单片机兼容。方式0的初值计算比较麻烦,一般采用方式1替代。方式0方式1(4)方式33种组合状态T1仍可设置为方式0~2;通常将T1设定为定时方式2(作为波特率发生器使用)第6章单片机的定时/计数器TH0+TF1+TR1组成的8位定时器TL0+TF0+TR0组成的8位定时/计数器T1组成的无中断功能的定时器特点:方式3下T0可有2个具有中断功能的8位定时器6.1定时/计数器的结构与工作原理6.2定时/计数器的控制寄存器6.3定时/计数器的工作方式6.4定时/计数器的编程和应用第6章单片机的定时/计数器应用:定时器——用于定时控制,或作为分频器发生各种不同频率的方波;计数器——用于外部脉冲统计或外部中断源扩充;复杂应用—需要将定时与计数结合起来。第6章单片机的定时/计数器 定时器/计数器的应用步骤: ?确定工作模式和工作方式 ?计算计数初值 计数:计数初值=2n-计数值X 定时:计数初值=2n-定时时间Tc/机器周期TM =2n-Tc?fosc/12 ?编写应用程序 ?定时器/计数器的初始化:定义TMOD、写入计数初值TLx和THx、设置中断系统(如采用查询方式处理溢出标志则禁用中断)、启动定时计数器运行。 ?定时器/计数器的中断服务程序。第6章单片机的定时/计数器【例6-5】利用定时/计数器扩展外部中断源,将定时/计数器T0或T1充当一个外部中断源。分析:定时/计数器在计数模式下,如果把初值置为全l,只要在计数输入端(T0或T1)加一个脉冲,就可以使计数器溢出,产生计数溢出中断。因此,可以把一个外部中断请求作为计数脉冲输入,则可以利用计数中断完成外部中断服务的任务,相当于扩展了一个外部中断源。实现:把外部计数输入端T0(P3.4)或T1(P3.5)作扩充中断源输入,设置计数工作方式2,即自动装载8位计数方式,且初值为255。第6章单片机的定时/计数器第6章单片机的定时/计数器以T0为例,参考程序如下:#includereg51.hvoidmain(){ …TMOD=0x06; //计数器0为工作方式2 TH0=0xff; //计数初值为255TL0=0xff; //计数初值为255EA=1; //开总中断 ET0=1; //开T0中断 TR0=1; //启动计数while(1) {…} }voidt0-int(void)interrupt1 //中断服务函数 {…} 第6章单片机的定时/计数器【例6-6】长时间的定时。设单片机晶振频率为12MHz,编程使P1.0引脚上产生周期为2秒的等宽正方波连续脉冲。解:根据题意,产生周期2秒的正方波需要间隔1秒钟给P1.0引脚取反,因此需要定时1秒钟。而在12MHz晶振频率下,定时器最大定时时间为(216-0)×1μs=65.536ms,显然直接利用定时器是不能定时1s的。但我们可以利用一个软计数器t对定时器的溢出次数来计数(当然也可以用另外一个定时/计数器来计数,不过为了节省资源通常用软计数器),比如用T0定时50ms,那么50ms溢出1次,溢出

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档