单片机原理及应用2版张伟4节.pptVIP

  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文档。上传文档
查看更多
PPT研究院 POWERPOINT ACADEMY * * * * 定时器/计数器工作方式 3下的T1 当T0工作在方式3下,T1的功能要受到限制,它不能去置位TF1也不再受TR1和的控制。在这种情况下,T1通常用作串行口波特率发生器。当T0工作在方式3时T1的逻辑电路框图如4-9和图4-10所示: 定时器/计数器应用举例 【例4-7】某自动化生产线每隔5ms左右可生产一件产品。如果两件产品的间隔小于4ms或大于6ms均视为生产线出现异常,立即触发报警。请为该系统设计相关程序。 解:可以在该生产线上设置一个传感器,当检测到一件产品经过时即向单片机的脚发送高电平,当下一件产品到来时,立即使脚的信号翻转成低电平以使单片机复位定时器,瞬间再使脚变成高电平开始下一个周期。单片机只需根据脚的高电平维持时间判断生产线是否正常。 可以设定定时器的初始值,使其可以实现一个足够长的定时,比如8ms。然后根据检测到的脉冲实际值与设定值之差来判断生产线状态。设系统时钟频率为6MHz,其程序可以设计如下: MOV TMOD,#09H ;(GATE)=1,方式1 MOV TH0,#0F0H MOV TL0,#60H MOV IE,#00H WT1: JB P3.2,WT1 ;开机后的暂时等待 SETB TR0 WT2: JNB P3.2,WT2 WT3: JB P3.2,WT3 CLR TR0 MOV R2,TL0 MOV R3,TH0 ;暂存本次检测到的两产品之间的时间间隔 MOV TH0,#0F0H MOV TL0,#60H ;重新赋初值,为下一个检测周期作准备 SETB TR0 CLR C MOV A,R2 SUBB A,#30H MOV A,R3 SUBB A,#0F8H JC WT4 ;两产品之间的时间间隔小于4ms则转移 MOV A,R2 SUBB A,#7CH MOV A,R3 SUBB A,#0FCH JC WT2 ;两产品之间的时间间隔小于6ms则转移,继续检测 WT4: SETB P1.0 ;触发报警 ┇ 【例4-8】已知某单片机控制系统的晶振频率为6MHz,现需要在P1.0脚输出周期为400μS,占空比为10:1的矩形波,请编程实现。 分析:占空比即信号周期与脉冲宽度之比。由题意可知在P1.0脚应输出高电平为40μS、低电平为360μS的周期信号。 解法1:可以用T0的定时方式2产生40μS的定时,如果当前P1.0脚输出信号为高电平则只要T0溢出即可以将其翻转;如果当前P1.0脚输出信号为低电平则通过计数器计数T0连续溢出的次数,连续9次溢出才可以将其信号翻转。程序如下所示: 主程序: MOV TMOD,#02H ;指定T0的工作方式 MOV TH0,#0ECH ;设定定时器T0的计数初值 MOV TL0,#0ECH MOV R7,#09H ;设置计数器的初值,为低电平阶段的9次溢出作准备 SETB P1.0 ;使P1.0脚的初态为高电平 SETB ET0 ;允许T0中断 SETB EA SETB TR0 ;开启定时器T0 SJMP $ ;踏步等待 中断服务程序: JNB P1.0,CY1 ;如果P1.0脚正在输出低电平则转移 CLR P1.0 ;P1.0脚正在输出高电平,一次溢出就将其变为低电平 RETI ;返回 CY1: DJNZ R7,CY2 ;P1.0脚正在输出低电平,需要判断是否连续溢出9次 SETB P1.0 ;T0已连续溢出9次,将P1.0脚置为高电平 MOV R7,#09H ;重新设置计数器的初值 CY2: RETI ;返回 解法2:用T0的定时方式2交替产生40μS和360μS的定时,并控制P1.0脚输出信号形式。程序如下所示: 主程序: MOV TMOD,#02H ;指定T0的工作方式 MOV TH0,#4CH ;设定下次(低电平阶段)定时的计数初值 MOV TL0,#0ECH ;设定本次(高电平阶段)定时的计数初值 SETB P1.0 ;使P1.0脚的初态为高电平 SETB ET0 ;允许T0中断 SETB EA SETB TR0 ;开启定时器T0 SJMP $ ;踏步等待 中断服务程序: CPL P1.0 ;使P1.0脚信号翻转 JB P1.0,DJ1 ;如果P1.0脚正在输出高电平则转移 MOV TH0,#0ECH ;本次P1.0脚输出低电平,为下次定时40μS作准备 RETI;返回 DJ1: MOV TH0,#4CH ;本次P1.0脚输出高电平,为下次定时360μS

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档