|
/FCKSM = 00;時鐘切換使能 FOS = 11主振蕩器XT晶振模式外部4MHz
_FWDT(0X0000);//關(guān)狗
_FBORPOR(0X3A2);//MCLREN禁止 欠壓2.7V 上電延時16MS
_FGS(0X03);
*/
void Delay_1ms(unsigned int t)//t = 1000大概1s
{
unsigned int i,j;
for(i = 0;i < t;i ++)
for(j = 0;j < 100;j ++);
}
#define SCLK PORTBbits.RB1
unsigned int Time;
void Timer1_Init(void)//定時器初始化
{
T1CONbits.TON = 0;//定時器關(guān)閉
T1CON = 0x0000;//空閑工作 預(yù)分頻1:4 不用外部時鐘 FOSC/4
T1CONbits.TSYNC = 1;//外部時鐘
IEC0bits.T1IE = 1;//允許Timer1中斷請求
INTCON1 |= 0X8000;//不要中斷嵌套
IPC0bits.T1IP = 0x07;//中斷優(yōu)先級7
T1CONbits.TON = 1;//定時器使能
}
int main()
{
TRISB = 0x00;//RB口設(shè)置為輸出
Timer1_Init();
while(1)
{
//PORTB = 0x02; //高電平輸出
// PORTBbits.RB1=1;
// SCLK = 1;
Delay_1ms(1000);
//PORTB = 0x00;//低電平輸出
//PORTBbits.RB1=0;
// SCLK = 0;
Delay_1ms(1000);
}
}
void __attribute__((__interrupt__, auto_psv)) _T1Interrupt(void)//定時器1中斷
{
IFS0bits.T1IF = 0;//清中斷
//定時器中斷處理函數(shù)
T1CONbits.TON = 0;//定時器使能
TMR1 = -62500;
T1CONbits.TON = 1;//定時器使能
Time ++;
if(Time == 16)
{
Time = 0;
//T ++;
// SCLK = 0;
}
SCLK = (Time & 0x08) ? 1 : 0;
}
|
|