#include
#include
#include
3__PROG_CONFIG(4,0x0081); //PIC的配置字
4__PROG_CONFIG(5,0xC00F); //PIC的配置字
5__PROG_CONFIG(6,0xE00F); //PIC的配置字
6__PROG_CONFIG(7,0x400F); //PIC的配置字7
#define LED LATC0
//*******************************************************************////
系统初始化/
/*******************************************************************//void System_Init(void){OSCCON = 0b11100100; //内部8MHz //bit6-4 //111 = HFINTOSC – (16 MHz)//110 = HFINTOSC/2 – (8 MHz) //101 = HFINTOSC/4 – (4 MHz) //100 = HFINTOSC/8 – (2 MHz)//011 = HFINTOSC/16 – (1 MHz)OSCTUNE= 0b01000000; //使能PLL 4X倍频,出厂校准TRISC0=0;//led显示 WPUB = 0b00011000; //RB3,RB4按键上拉 LATA = 0x00;LATB = 0x00; //数据锁存为全0LATC = 0x00;}//========================================================================//// CCP3捕获模块初始化 ////==============================================================//void CCP_Init(void){ TRISC2=1;//ccp1输入TRISC1=1;//ccp2输入TRISB5=1;//ccp3输入TRISB0=1;//ccp4输入CCP1CON=0b00000101;//0111 = 捕捉模式:每16 个上升沿CCP2CON=0b00000101;//0111 = 捕捉模式:每16 个上升沿CCP3CON=0b00000101;//0101 = 捕捉模式:每个上升沿捕捉一次CCP4CON=0b00000101;//0100 = 捕捉模式:每个下降沿捕捉一次 //在捕捉/比较模式下 CCP2 以 Timer1 作为定时器//在捕捉/比较模式下 CCP1 以 Timer1 作为定时器CCPTMRS0=0b00000000;//在捕捉/比较模式下 CCP4 以 Timer3 作为定时器//在捕捉/比较模式下 CCP3 以 Timer3 作为定时器//CCPTMRS1=0b00000000;//TMR1GE=0;//TMR3GE=0;T1CON=0X01;//开启定时器1===8分频T3CON=0X31;//开启定时器3===8分频T5CON=0X31;TMR1IE=0;TMR3IE=0;TMR1L = 0;TMR1H = 0;TMR3L = 0;TMR3H = 0;TMR5L = 0;TMR5H = 0;CCPR1H=0;CCPR1L=0;CCP1IF=0;CCP1IE=1;CCPR2H=0;CCPR2L=0;CCP2IF=0;CCP2IE=1;CCPR3H=0;CCPR3L=0;CCP3IF=0;CCP3IE=1;CCPR4H=0;CCPR4L=0;CCP4IF=0;CCP4IE=1;}static void interrupt SystemISR(void) //系统中断{if(CCP3IF){CCP3IF=0;LED=~LED; TMR1H=0; //清定时器1重新定时 TMR1L=0;}}void main(){System_Init();CCP_Init();LED=1;PEIE=1; //(TM2中断为外设中断)所有未被屏蔽的外设中断1开放0关闭GIE=1; //使能所有未被屏蔽的中断1使能0关闭//TRISC2=1;while(1);}