#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
//*******************************************************************////
系統(tǒng)初始化/
/*******************************************************************//void System_Init(void){OSCCON = 0b11100100; //內(nèi)部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倍頻,出廠校準(zhǔn)TRISC0=0;//led顯示 WPUB = 0b00011000; //RB3,RB4按鍵上拉 LATA = 0x00;LATB = 0x00; //數(shù)據(jù)鎖存為全0LATC = 0x00;}//========================================================================//// CCP3捕獲模塊初始化 ////==============================================================//void CCP_Init(void){ TRISC2=1;//ccp1輸入TRISC1=1;//ccp2輸入TRISB5=1;//ccp3輸入TRISB0=1;//ccp4輸入CCP1CON=0b00000101;//0111 = 捕捉模式:每16 個(gè)上升沿CCP2CON=0b00000101;//0111 = 捕捉模式:每16 個(gè)上升沿CCP3CON=0b00000101;//0101 = 捕捉模式:每個(gè)上升沿捕捉一次CCP4CON=0b00000101;//0100 = 捕捉模式:每個(gè)下降沿捕捉一次 //在捕捉/比較模式下 CCP2 以 Timer1 作為定時(shí)器//在捕捉/比較模式下 CCP1 以 Timer1 作為定時(shí)器CCPTMRS0=0b00000000;//在捕捉/比較模式下 CCP4 以 Timer3 作為定時(shí)器//在捕捉/比較模式下 CCP3 以 Timer3 作為定時(shí)器//CCPTMRS1=0b00000000;//TMR1GE=0;//TMR3GE=0;T1CON=0X01;//開啟定時(shí)器1===8分頻T3CON=0X31;//開啟定時(shí)器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) //系統(tǒng)中斷{if(CCP3IF){CCP3IF=0;LED=~LED; TMR1H=0; //清定時(shí)器1重新定時(shí) TMR1L=0;}}void main(){System_Init();CCP_Init();LED=1;PEIE=1; //(TM2中斷為外設(shè)中斷)所有未被屏蔽的外設(shè)中斷1開放0關(guān)閉GIE=1; //使能所有未被屏蔽的中斷1使能0關(guān)閉//TRISC2=1;while(1);}