单片机原理与应用-KFIL C项目教程(西电版)项目六 99 s倒计时.pptVIP

单片机原理与应用-KFIL C项目教程(西电版)项目六 99 s倒计时.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目六 99 s倒计时        6.1 项 目 说 明   ? 项目任务   利用51单片机内部的定时/计数器设计99 s倒计时控制电路。   ? 知识培养目标   (1) 掌握51单片机中断系统的组成及应用。   (2) 掌握51单片机定时/计数器的结构以及方式1和方式2的应用。   (3) 掌握51单片机定时/计数器初值的计算,并对其初始化。   (4) 掌握51单片机中断系统、定时/计数器的综合应用。   ? 能力培养目标   (1) 能利用所学知识正确地理解中断、定时/计数器的结构。   (2) 能利用所学知识编写中断、定时/计数器综合应用程序。   (3) 能利用所学知识解决实际工程问题。        6.2 基 础 知 识 6.2.1 定时/计数器概述   51单片机内部有两个互相独立的16位可编程定时/计数器:T0(P3.4)和T1(P3.5),52单片机内部多一个T2定时/计数器。每个定时/计数器有定时和计数两种功能。需要注意的是定时/计数器虽集成在51单片机内部,但它是51单片机内一个独立的硬件部分,CPU将它启动后,就可以做其他工作,定时/计数器会自动开始计数,计满后,向CPU申请中断, 由CPU安排定时/计数器下一步做什么。定时/计数器与CPU的关系就如同闹钟与人的关系一样。   1. 实质   定时/计数器的实质是16位加1计数器,它可以对脉冲的个数加1计数,计数器每接收到一个脉冲就加1,从0加至65535(二进制数为16个1)共需要65535个脉冲,再来一个脉冲,计数器溢出回零表示一轮计数结束,因此16位加1计数器一轮最大的计数值即模为26=65536次。   2. 功能与原理   定时/计数器有定时和计数两种功能,它们的区别在于加1计数器的计数脉冲不相同。   计数功能是对单片机外部发生的事件进行计数,外部事件产生的计数脉冲由引脚T0(P3.4)或T1(P3.5)输入。在引脚T0(P3.4)或T1(P3.5)上,CPU每检测到一个下降沿,计数器加1一次。由于检测一个下降沿需要2个机器周期(1个机器周期是时钟周期的12倍),因此最高计数频率为时钟频率fosc的1/24。计数功能在实际控制中应用广泛,例如,制药厂的生产线上每50粒药片装1瓶,每装入1个药片,就由控制电路产生1个脉冲,将此脉冲输入计数器后就加1一次,计数50次后,再装下一瓶,这就是计数功能的典型应用。   定时功能是将单片机时钟频率fosc12分频后作为计数脉冲,即1个机器周期,计数器加1一次,定时功能与外部事件无关。定时时间与计数器的计数值有什么关系呢?如果单片机晶振为12 MHz时,时钟周期为1/12 μs,12分频后机器周期为12/12 MHz=1 μs;也就是说加1一次需1 μs,加65536次就需65536 μs = 65.536 ms。一般地,定时时间=计数值(加1的次数)×12/ fosc;如果定时1 ms,计数器的计数值为1000 μs×12 MHz/12=1000次。定时/计数器定时时间的长短与时钟频率和计数值有关,当晶振频率确定后,主要由计数值决定定时时间。   定时与计数虽然是对不同脉冲进行计数,但相同的是每来一个脉冲计数器加1,当加到65535(二进制数为16个1)时,再输入一个脉冲计数器就溢出回零,定时/计数器通过溢出回零通知CPU,计数完成或定时时间已到,这和定时的时间一到闹钟就会响的道理是一样的。   定时/计数器不进行设置时,默认从0开始加1,到溢出回零时需加65536次。从上面举例可知,药片装瓶需计数50次,定时1 ms需计数1000次,这些计数值不会恰好是模(如65536),这些任意的计数值如何实现呢?有两种情况:第一种是计数值小于计数器的模(如65536),可以先在计数器中存入一个初值,如果存入的初值为65535,只要再输入1个脉冲就可以使计数器溢出回零,因此计数值是1; 当计数值是50时,所需初值为65486,再来50个脉冲时恰好溢出回零。所以定时/计数器从不同的初值开始加1至溢出回零时,所需计数值不一样,定时时间也随之改变,可得出计数器的初值=计数器的模-计数值,初值的计算是定时/计数器初始化时必需的一步。第二种是计数值大于计数器的模(如65536)时,通过统计定时/计数器溢出的次数来计算计数值,例如,设置定时/计数器计数104次时,第1次溢出回零时计数值为104次,第2次溢出回零时计数值为2×104次……第n次溢出回零时计数值为n×104次,完全可实现大于计数器模的计数值。两种方法结合,就可以实现任意大小的计数值。   大家可以想一下操场的跑道,一圈是400米,径赛时裁判坐在终点位置,100米、200米径赛时,由于小于一圈400米,径赛时选择不同的起跑位置(相当于计数初值)

文档评论(0)

别样风华 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档