单片机嵌入式系统原理及应用ch7.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文档。上传文档
查看更多
* 例7.2 用定时器0,方式2计数,要求每计满100次,将P1.0 端取反。 分析:TMOD 计数初值:TH0=TL0=28-100=156=9CH 程序如下: ORG 1000H START:MOV TMOD,#06H MOV TL0,#9CH MOV TH0,#9CH SETB TR0 LOOP:JBC TF0,DONE ; 判计满100次否?若计 ; 满则清零TF0且转DONE SJMP LOOP DONE:CPL P1.0 SJMP LOOP * 例7.3 已知单片机晶振频率为12MHz,要求使用T0定时0.5ms,使单片机P1.0引脚上连续输出周期为1ms的方波。 分析:首先算出机器周期=12/(12MHz)=1us,所以0.5ms需要T0计数M次 M=0.5ms/1us=500 2565008192,所以选择方式0 初值N=213-500=7692=1E0CH 因为选用方式0,低8位TL0只使用低5位,其 余的均计入高8位TH0的初值。 TL0=0CH, TH0=0F0H * 程序如下: ORG 0000H RESET: AJMP START ORG 000BH AJMP T0INT ORG 0100H START: MOV SP,#60H MOV TH0,#0F0H MOV TL0,#0CH SETB TR0 SETB ET0 SETB EA MAIN: AJMP MAIN T0INT: CPL P1.0 MOV TL0,#0CH MOV TH0,#0F0H RETI T0中断服务程序 * 例7.3可以在P1.0脚上产生约500Hz的方波,但是定时精度不高。原因有两个:一个是中断服务子程序执行时间未计入在内;二是从中断申请到CPU响应这个中断所经历的时间未计入T0 定时,这个时间肯定是不确定的值,在允许T0中断嵌套时定时精度更差。 对定时精度要求十分精确的场合,可以对上述两项误差进行补偿。下述补偿方法。 补偿方法的原理是: ①在中断服务子程序执行过程中关掉总中断,防止其它中断嵌套影响定时精度; ②用CLR TR0 指令停止 T0 计数,此时 T0 的计数值恰好反映了从T0溢出申请中断直到CPU响应中断这一段时间长短。把这个误差值按高8位和低5位分别加到T0的预置初值上去,这就补偿了CPU响应中断申请之前的定时误差; ③在中断服务子程序的关 T0 指令到启动 T0 指令之间还有14个机器周期的时间,也应该每次加在T0的预置初值上去。 * 例7.3 程序中的中断服务子程序应该改成,实现精确定时 T0INT: CLR EA ;关中断 CLR TR0 ;停止T0 计数 MOV A,#0F0H ;取高8位计算的初值 ADD A,TH0 ;加修正值 ADD TH0, A ;修正后送TH0 MOV A,#0CH ;取低5位计算的初值 ADD A, #0EH ;加14个机器周期 ADD A,TL0 ;加修正值 JNB ACC. 5, LOW5_CARRY ;判断低5位有进位否? INC TH0 ANL A, LOW5_CARRY: MOV TL0, A ;修正后TL0。 CPL P1.0 SETB TR0 ;启动T0 SETB EA ;开中断 RETI * 例7.4 设单片机8031使用的晶振频率为6MHz,编程使P1.7脚输出1kHz连续方波。 解: 在6MHz时钟下,机器周期为2μS。而1kHz方波的高、低电平持续时间都是500μS,折合250个机器周期,允许使用8位定时器,选用T0模式2的定时功能,即可自动重装初值的8位定时器,在T0每次溢出时,不仅置位中断标志位TF0,还把TH0的初值自动装入TL0,

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档