TRISCbits.TRISC1=1;//配置为输入引脚
TRISCbits.TRISC2=1;//配置为输入引脚
CCP1CON=0x04;//捕捉模式,每个1时钟的上升沿捕捉
T3CONbits.T3CCP1=0;//Timer1作为CCP1的时钟源
T3CONbits.T3CCP2=0;
PIR1bits.CCP1IF=FALSE;//捕捉标志清零
PIE1bits.CCP1IE=TRUE;//允许捕捉中断
IPR1bits.CCP1IP=TRUE;//高优先级
T1CON=0x00;//16位定时,预分频为1:1,F=FOSC/4
//TMR1L=0;
//TMR1H=0;
PIR1bits.TMR1IF=FALSE;//定时器TMR1溢出标志清零
PIE1bits.TMR1IE=TRUE;//允许定时器TMR1溢出中断
IPR1bits.TMR1IP=TRUE;//高优先级
//T1CONbits1.TMR1ON=TRUE;//TMR1开始计时
T3CON=0x00;
TMR3H=(65536-11965)/256;
TMR3L=(65536-11965)%256;
PIR2bits.TMR3IF=FALSE;//定时器TMR3溢出标志清零
PIE2bits.TMR3IE=TRUE;//允许定时器TMR3溢出中断
IPR2bits.TMR3IP=FALSE;//低优先级
T3CONbits.TMR3ON=TRUE;//TMR3开始计时
INTCONbits.GIEH=TRUE;
INTCONbits.GIEL=TRUE;
RCONbits.IPEN=TRUE;
while(1)
{
if(TRUE==MyTMR1.Flag)
{
while(FALSE==Timer1S.Enable);
temp=MyTMR1.HighData;
temp《《=16;
temp|=MyTMR1.LowData;
calctemp=12000000;
calctemp/=temp;
calctemp*=100;
temp=calctemp;
NumberLED.DotPointer=2;
for(i=0;i i=0;
while(temp)
{
NumberLED.Buffer[i]=temp%10;
temp/=10;
i++;
}
MyTMR1.Flag=FALSE;
Timer1S.Enable=FALSE;
}
}
}
来源;21ic
关于控制,MCU就介绍完了,您有什么想法可以联系小编。