生成的代码同样不行
void main()
{
/************************************系统初始化****************************************/
WDTCCR = 0x00; //关闭看门狗
//本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程
CLKSWR = 0x51; //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
CLKDIV = 0x01; //Fosc 1分频得到Fcpu,Fcpu=16MHz
/**********************************相关配置初始化**************************************/
P2M0 = 0x88; //P00设置为推挽输出
/**********************************UART配置初始化**************************************/
Timer5Init();
P2_0=0;
while(1)
{
P2_1 = ~P2_1;
Delay_ms(2000);
}
}
//定时器5初始化
//时钟频率:16.000MHz
//定时长度:20微秒
void Timer5Init(void)
{
T5CON &= 0xCF;//1分频
T5CON &= 0xF3;//16位自动重装
RCAP5H = 0xFE;//重装值高8位
RCAP5L = 0xC0;//重装值低8位
TH5 = 0xFE;//初值高8位
TL5 = 0xC0;//初值低8位
T5CON &= 0x7F;//清除中断标志
IE1 |= 0x10;
T5CON |= 0x02;//开启定时器
EA = 1;
}
unsigned long int counter=0;
//T5中断服务函数
void Timer5Interrupt (void) interrupt T5_VECTOR
{
T5CON &= 0x7F;//清除中断标志
counter++;
if(counter>=500)
{
P2_1 = 1;
counter=0;
}
}
|