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就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查