假如你设置了中断周期是1ms,当你取值的时候time1=TH0*256+TL0,time1就是总共脉宽的时间长度(假设下降沿触发),time1代表两次触发的间隔
在这两次触发的中间TIME0一共累加了time1次,TL0每次累加到256的时候会向TH0加1
#include<reg51.h>#define uint unsigned int
uint width
sbit pulse=P3^2
main()
{
TMOD=0x09 //定时器0模式1,GATE=1
TH0=0
TL0=0
while(pulse) //等待P3.2变低
TR0=1 //启动定时器0
while(!pulse) //等待脉冲变高
while(pulse) //等待脉冲变低
TR0=0 //关闭定时器0
pulse=TH0*256+TL0 //取定时值。
while(1)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)