C语言脉宽的计算

C语言脉宽的计算,第1张

256是高8位的意思,就是说TH0代表高8位的计数值,那么需要*256,第8位的计数值直接相加就好了

假如你设置了中断周期是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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8051975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存