第6章单片的定时器计数器.ppt

2)设脉宽大于65.5ms,中断方式记录TH1TL1溢出中断次数。 计算脉宽的子程序的计算式如下: 脉宽t = (R4 ×216 + R3 R2 ) ×T (T为机器周期) ORG 0000H AJMP MAIN ORG 001BH INC R4 ;记录T1溢出次数 RETI ORG 0100H MAIN:MOV R4,#0 MOV SP,#60H MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00H SETB EA SETB ET1 ;开T1中断 WAIT1: JB P3.3,WAIT1 SETB TR1 WAIT2:JNB P3.3,WAIT2;等待正脉冲到来 WAIT3:JB P3.3,WAIT3;等待正脉冲结束 CLR TR1 ;关闭T1 MOV IE,#00 ;关闭中断 MOV R2,TL1 ;读出T1 MOV R3,TH1 LCALL PPS ;计算脉宽 HERE:SJMP HERE ;其他任务 PPS: … ;计算脉宽子程序 例题2:设晶振频率fOSC=6MHz,分别讨论各种工作方式下最长定时时间。 解: 1. 由fOSC=6MHz可知,MC=2us; 2. 由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。 所以此时有: 方式0: (213–0)×2us

文档评论(0)

1亿VIP精品文档

相关文档