INT0中断可以计数,但每来一个计数脉冲,程序都需要进中断处理程序,软件处理计数。T0计数则是每来一个计数脉冲,硬件自动计数,只有在计数器溢出时才触发中断处理。
所以,要计数肯定是用T0更好一些,但前提是T0没有做别的功能用。有时用INT0计数,不是INT0好不好用的问题,是51的计数器都被占用了,没办法只好用INT0加软件计数凑合了。
【1】用T0计数实现。根据计数次数要求,设置计数初值。溢出后引起一次中断,进入服务程序。
【2】用INT0中断实现,检测管脚电平变化,适合低频周期脉冲个数计数,这里可设为下降沿触发,每周期引起中断一次,累加次数,结合定时器还可测周期。
两种方案均可,高速用Ti更高效,低速也可用/INTi以节省定时计数资源。
用计数器/定时器中的计数功能来玩你这好。用INT中断可要另加计数器了,并还要次次操作。用这计数器可就不用了,要满了65535次后才操作一次。因这是硬件计数,精度也高的多的。
所以,用T1计数测频率,可以测到3MHz,用INT0测频率,只能测到65kHz。