新手求助,求PIC16F877A测频率的程序!
我有用887做过频率计,在30-100khz是准的,超过就不行了,你看看!
void main()
{
Initial();
// Buz();
while(1)
{
while(!T0IF);//判断2.5ms到否
T0IF=0;
TMR0=0x64;
OPTION_REG=0x03; //2500=(256-TMR0)*16*Tosc*4
keyscan();//
display();/**/
GIE=1;//
TMR1ON=1;//
Hpl=500000/T3;
Dsbuf[0]=Hpl%10;
Dsbuf[1]=(Hpl%100)/10;
Dsbuf[2]=(Hpl/100)%10;
Dsbuf[3]=(Hpl/1000)%10;
Dsbuf[4]=Keycnt%10;
Dsbuf[5]=(Keycnt%100)/10;
Dsbuf[6]=(Keycnt/100)%10;
Dsbuf[7]=(Keycnt/1000)%10;
}
}
void interrupt CCP1ZD()
{
if(CCP1IF)
{ CCP1IF=0;//
cp1u.cp1buf[0]=CCPR1L;
cp1u.cp1buf[1]=CCPR1H;
Ccpbuf[Ccpcnt]=cp1u.Ccp;
Ccpcnt++;
if(Ccpcnt==2)
{ Ccpcnt=0;
if(Ccpbuf[1]>Ccpbuf[0])
T3=Ccpbuf[1]-Ccpbuf[0];
else {T3=0xffff-Ccpbuf[0]+Ccpbuf[1];}
}
CCP1IF=0;//
}
}
你好,你发的程序我看了,但是从主程序跟中断也看不出什么,你能把完整的程序发给我吗?万分感谢,我的邮箱是980765192@qq.com