51单片机 C语言 怎样测量高电平持续的时间
2个回答
展开全部
假设定时器不溢出,P1.0为高电平输入引脚:
while(P1^0==1);//等待眼前的高电平过去
while(P1^0==0);//等待下一个高电平来到
TR0=1;//启动定时器
while(P1^0==1);//等待高电平结束
TR0=0;//关闭定时器
HIGH=TL0+TH0*256;//读取时间
while(P1^0==1);//等待眼前的高电平过去
while(P1^0==0);//等待下一个高电平来到
TR0=1;//启动定时器
while(P1^0==1);//等待高电平结束
TR0=0;//关闭定时器
HIGH=TL0+TH0*256;//读取时间
追问
开始呢?需要打开哪些中断?还有中断的服务程序怎么写?
追答
为防止定时器溢出,可以打开定时器0中断,每次中断发生将变量N加1
这样,总的计时时间就要用长整形数据表示
T=N*65536+TH0*256+TL0 N是定时器溢出次数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询