请问C51的外部中断程序怎么编写?

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:30:52
霍尔传感器采集到上部到位信号后以中断形式输入,定时器开始计时,然后采集到下部到位信号后停止计时,记录两次中断的时间间隔

用t0计时,要确保第一个中断是上部到位,如不能保证就用2个外部中断吧。
并且2次中断间隔不能超过65.536ms(12MHz),如超过就用t0中断计时。
思路就是上部中断清零TH0、TL0,下部中断统计。
unsigned short time; //时间间隔
unsigned char bUp = 0; //上部到位

static void int_ex0(void) interrupt 0 using 1
{
if(bUp == 0)
{
bUp = 1;
TH0 = 0;
TL0 = 0;
}
else
{
time = TH0;
time <<= 8;
time |= TL0;
bUp = 0;
}
}