#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
uint i=0;
uchar ledflag;
void init(void)
{
TRISD=0;
// PORTD=0xfe;
OPTION_REGbits.PSA=1; //把预分频器给看门狗
OPTION_REGbits.PS2=1; //看门狗的预分频器
OPTION_REGbits.PS1=1;
OPTION_REGbits.PS0=1; OPTION_REGbits.T0CS=0;
TMR0=6;
INTCONbits.T0IF=0;
INTCONbits.T0IE=1;
INTCONbits.PEIE=1;
NTCONbits.GIE=1;
} void main(void)
{
uchar k=0;
init();
PORTD=0xfe;
while(1)
{
if(ledflag==1)
{
PORTD=(PORTD<<1)|0x01;
ledflag=0;
k++;
if(k==8)
{
k=0;
PORTD=0XFE;
}
}
}
}
void interrupt timer0()
{
if(INTCONbits.T0IF==1)
{
INTCONbits.T0IF=0; //定时器0 每200ms LED灯移动一次
TMR0=6;
i++;
if(i==1000)
{
i=0;
ledflag=1;
}
CLRWDT(); //每中断一次,清除看门狗计数器和预分频器的值
} }
|